CM, Prostředí, Údržba



Podobné dokumenty
Vývojové prostředí, maintenance

Obecné informace o cvičeních

Agenda. Docházka Návrat k minulému praktickému cvičení Zápočtové práce. Dokumentace. Dotazy, přání, stížnosti. Co, jak a proč dokumentovat

Workflow sdíleného projektu ve VisualParadigm

Joelův test. 12 kroků k lepšímu programování. Jaroslav Šnajdr

Project management. Příprava projektu Zahájení High level plánování. Vykonávání Detailní plánování Vykonávání Řízení a monitorování

1 Nástroje pro správu verzí. 1.1 Pojmy:

ZÁLOHA A OBNOVA ABRA GEN

BM Software, Databáze Docházky 3000 na NAS serveru (pro MySQL) Němčičky 84, Němčičky u Břeclavi. Úvodní informace:

Rozvoj a údržba systémů

FlowMon novinky. Představení FlowMon verze 5.0. Petr Špringl

Centrální správa PC na MU. Pavel Tuček

Odbor informatiky a provozu informačních technologií

Zkušenosti s budováním základního registru obyvatel

TECHNICKÉ POŽADAVKY NA NÁVRH, IMPLEMENTACI, PROVOZ, ÚDRŽBU A ROZVOJ INFORMAČNÍHO SYSTÉMU

Správa verzí souborů na cvičení

INSTALAČNÍ MANUÁL. TME gadget

Provozní řád zálohování virtuální infrastrukury

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

Uživatelská příručka

multiverze Pro Windows Vista/XP/9x/2000

ZÁLOHA A OBNOVA ABRA GEN

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Technická dokumentace

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

Sentech AL 7000 C. Instalace a ovládání programu BREATH

Internetový obchod ES Pohoda Web Revolution

DLS V v1.2. Nové funkce. Používání programu DLS V

Agenda. Docházka Odhadování Neohlášený test Vedení projektů Historie projektů

SCM = Source Code Management software, základní typologie rozdělení je podle počtu a umístění základního úložiště kódu(=repository) na:

Aktuální otázky provozu datových skladů PAVEL HNÍK

Verzovací systémy. Pořádek především!

Praktické zkušenosti s Azure DevOps

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

Maintenance. Tomáš Krátký, Bohumír Zoubek

2013 IBM Corporation

Technologie. Osnovy kurzu: Školení správců systému. 1. den, dopolední blok

Maintenance. Tomáš Krátký. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Informační systém pro e-learning manuál

Instalace systému Docházka 3000 na operační systém ReactOS Zdarma dostupné kompatibilní alternativě k systému Windows

Microsoft Windows Server System

Zálohování v Linuxu: která možnost je ta správná?

BeeSIP ANEB BEZPEČNOST SILNIČNÍHO PROVOZU V IP TELEFONII

SQL Server Data Tools (SSDT) RNDr. David Gešvindr MVP: Azure MCSE: Data Platform MCSD: Windows Store

Univerzální rezervační systém. Uživatelská příručka

On-line dražební systém EDEN návod k použití

ZÁLOHA A OBNOVA ABRA GEN

INTERNÍ TECHNICKÝ STANDARD ITS

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Integrace formou virtualizace

Olga Rudikova 2. ročník APIN

EvMO postup při instalaci

O2 Managed Backup & Restore Power

Profesionální služby kolem Linuxu

Kompletní návod na nákup a čtení eknih ve formátech PDF a epub na PC a MAC

Daniela Lišková Solution Specialist Windows Client.

Zálohování v MS Windows 10

Výpočetní zdroje v MetaCentru a jejich využití

Virtualizace serverů v ČSOB

DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM Č. 18

Kolektiv autorů PROEFES. Metodický návod. k aplikaci Převodník. Masarykova univerzita

Nastavení propojení s eshopem

Vedení projektů, Odhadování, historie

Jak testovat software v praxi. aneb šetříme svůj vlastní čas

Nastavení CADprofi pro CAD, aktivace a registrace CADprofi

O NÁS. Specializujeme se na návrh a vývoj v následujících oblastech:

IT 3. Projekt centrálního zálohovacího systému v ČSOB Pojišťovně. Michal Mikulík. špička v každém směru

Disaster recovery as a service od společnosti GAPP System

Agenda. Smysl teoretických cvičení Klasifikace Obecná pravidla Bugzilla Klasické problémy Poznámky k jednotlivým pojmům Antipatterns Testování testů

KATALOG SLUŽEB NÁSLEDNÉ PODPORY

1 Přesun síťového serveru

Instalační a uživatelská příručka

STUDIJNÍ MATERIÁL PRO TECHNICKOU CERTIFIKACI ESET Business Edition, ESET Remote Administrator

Administrace Oracle. Práva a role, audit

Efektivní ochrana dat ve virtualizovaném prostředí. Marek Bradáč

Zadavatel: Česká republika Český statistický úřad Na padesátém 81/ Praha 10 Strašnice IČO:

Nebojte se přiznat, že potřebujete SQA

Nastavení propojení s eshopem

Návod na instalaci SW certifikátu aplikace PARTNER24

MS SQL Server 2008 Management Studio Tutoriál

Průvodce instalací aplikace MIPS

eduroam.cz - monitoring infrastruktury a detekce problémů

Docházka 3000 evidence pro zaměstnance z více firem

Zprovoznění vybraných částí systému PROXIO pro zefektivnění vnitřních procesů odboru dopravy ÚMČ Praha 8

Zabezpečení proti SQL injection

TMEGadget. by TMESolutions

SOFTWAROVÉ INŽENÝRSTVÍ 1

Řízení reálných projektů, agilní metodiky

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Nová áplikáce etesty zá te z ove testová ní

1.05 Informační systémy a technologie

GDPR v aplikaci Nabídky Plus

Správa stanic a uživatelského desktopu

Aplikace objednávání svozů

Dotazy na event #E256

Nastavení programu pro práci v síti

Transkript:

CM, Prostředí, Údržba

Agenda Docházka CM Vývojové prostředí Údržba Dotazy, přání, stížnosti

CM Confiuguration management!= konfigurace systému. Configuration management ~ správa verzí Typická situace V produkci je B3 V akceptaci je B4 Testuje se B5 Pracuje se na B6 Chyby z produkce je třeba opravit prioritně i když se na nových verzích neprojevují.

CM co verzovat Zdrojové kódy (ne generované) Data Databázové dumpy (v rozumné míře) Knihovny Dokumenty Celé dodávky Minimálně ta poslední abyste byli schopni zjistit, co že jste to zákazníkovi vlastně poslali.

CM nástroje CVS, SVN, Základní nástroj Branche Nevhodné pro velké soubory Sdílený disk Vhodný na velké soubory Nevhodný na sdílení zdrojových kódů Bugzilla Vhodná na dokumenty

CM - vývoj vs. údržba Zásadní rozdíl Během vývoje Jede se nad trunkem Člověk si vystačí s commit a update (a občas merge) Feature větve (někdy) Údržba Časté přecházení mezi větvemi Mergeovaní změn z větví a mezi větvemi

Dodávky Když máme co, stačí to dodat :-) Co? Komu? Jak? A) Na servery nasazujeme dodávku my B) Zákazník si nasazuje dodávku sám

Dodávky A) Dodávku nasazujeme my Jednodušší z pohledu chyb v dodávce Případné chyby jednoduše opravíme a dodáme znovu Pozor - některé věci jdou dělat jen jednou je dobré na to skripty připravit IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = OBJECT_ID('p_ink_predp_ppr') AND name = 'zaznam_id') ALTER TABLE p_ink_predp_ppr ADD zaznam_id numeric(9) null go

Dodávky B) Zákazník si dodávku nasazuje sám Nemáme práci se samotným nasazením O to lepší musí být dodávka Instalační ní postup musí být hodně dobře popsaný a připravený na různé varianty (nasazení na akceptační, ostrou) Počet obrátek v akceptaci můžou měřit a nějak vnímat :-)

Velký release Dodávky Dodáváme celý systém Dodávka má zpravidla pevně danou strukturu Je potřebné si dopředu stanovit, jak co dodáváte Přepsání konfigurace by mohl být slušný problém Tedy jestli dodáváme všechno, nebo jen inkrementy něčeho a zbytek celý, Po dodávce do akceptace následuje testování u zákazníka Přijdou chyby (nedoufejte v opak). Z Z toho plyne další dodávka Lépe dodávat jen změněné ě ěné instalační sety (psychologický efekt) Obvykle máme dvě obrátky v akceptaci, jedna je výjimka, tři snad ještě nebyly :-)

Dodávky Malá dodávka (patch) Používáme pro malé změny mezi klasickými buildy Dodáváme pouze změny zdrojáky, zkompilované classy, data vždy jen to, co se změnilo v některých ohledech rychlejší méně dokumentace Dopad dodávky na CVS (SVN) Většinou to znamená vytvořit novou větev Ale pokud čekám obrátky v akceptaci a jen opravuji, chvíli mi stačí main trunk (HEAD) Někdy stačí tag

Vývojové prostředí Nejenom IDE Vývojové prostředí umožňuje vývojářům vyvíjet Velmi neformálně řečeno Soubor HW a SW (včetn četně konfigurace a dat) Může to být jeden notebook stejně jako tucet serverů. Občas se přidává ještě ě dokumentace a personální zdroje.

Prostředí Může jich být hodně Vývojové lokální Vývojové centrální Testovací - automatické testy Předakceptační Akceptační Produkční #1 Produkční #2 Minimum je vývojové a produkční. Rozumné minimum je vývojové, testovací, akceptační a produkční

Co vše to zahrnuje Všechny typy CIs (configuration item) Instalace Zálohy Nepodceňovat SW infrastruktura Např. OS, DBMS, Podpůrné nástroje Ant, CVS/SVN, Bugzilla

Vývojové prostředí Mělo by se podobat cílovému prostředí Ne vždy je to možné => projektové riziko Nedegradovat ho Například vyřazení autorizace, protože mě obtěžuje Práce s maximálním oprávněním

Automatizace Noční život Stáhne se aktuální verze zdrojových kódů Přeloží se Nasadí se (včetně například uložených procedur) Spustí se testy Případně se do sdíleného adresáře kompletně vygeneruje dodávka. O výsledku je někdo informován Důležité hlavně, když se něco nepovede

Automatizace (2) Automatizace tvorby dodávky Stojí čas (nezanedbatelné množství) Zrychlení času tvorby dodávky Možnost tvorby dodávky v rámci nočního buildu Testuje se oproti verzi, která půjde k zákazníkovi Odstranění ní lidských chyb Obzvlášť nepříjemné, pokud jde dodávka přímo do produkce (například obsahuje opravu kritické chyby) CruiseControl + Ant u nás základní nástroje pro automatizaci.

Zálohování Automatické Zálohuje se Vývojová / Testovací / databáze Build skripty (včetně CC) SVN/CVS Bugzilla a ostatní podpůrný SW Natavení systému (a ostatního SW) Práci si lze usnadnit použitím virtualizace Zálohuje se celý virtuální server.

Příklad ze života V pátek dopoledne musela být dodávka. Ve čtvrtek odpoledne se zhroutil filesystém na hlavním serveru Běžela na něm hlavní databáze (ze které se dodávka generovala) Běžel na něm CruiseControl (který dodávku generoval)

Příklad ze života (2) Bylo třeba obnovit server ze záloh. < 18 hodin Odpovídající HW nebyl k dispozici Použití VMWare Někteří se moc nevyspali Viz. obrázek

Příklad ze života (3) Obnovit plnou funkcionalitu se nepodařilo Nakonec jsme použili část starší dodávky (ze středeční noci) Část jsme sestavili ručně S velikým rizikem, že se na něco zapomene Zachránilo nás to, že vývojové prostředí tvoří více fyzických a virtuálních serverů.

Příklad - poučení Zálohujte Všechno a pořád Zkuste si občas ty zálohy obnovit Pokud to lze, rozdělte klíčové funkce mezi více serverů Databáze, tvorba dodávky (CruiseControl), Virtualizace může pomoci Zálohování celé VM

Důsledek Přestanou-li existovat Sdílené disky CVS/ SVN Počítače lidí na projektu Vývojové prostředí pak ze záloh je možno postavit vývojové prostředí. Ekonomicky!

Údržba Fáze života SW po prvotním nasazení do ostrého provozu. Mýtus údržba je zlo. Musíte zachovávat zpětnou kompatibilitu Není moc prostoru pro radikální architektonická rozhodnutí. Systém často udržují lidé, kteří ho nevytvářeli Neznají ho, nechápou ho. Většinou nejvýnosnější část projektu Pokud se na ní dobře připravíme.

Příprava na údržbu Kvalitně systém navrhnout Myslet dopředu. Pokud to teď zákazník nechce, nebude to náhodou chtít za rok? Nepřehánět to. Dobrá dokumentace Kuchařky Kvalitní regresní testy Dobrá specifikace Jinak se k údržbě nikdy nedostanete

Údržba Změnové řízení = miniwaterfall Specifikace, design, programování, testování, Waterfall je zde vhodný Menší riziko podcenění ní pracnosti Systém známe Platí pro ní stejné poučky jako pro vývoj z nuly. Až na pár výjimek (viz waterfall)

Typické problémy Podcenění Opomenutí Chuť "vydělat" na parciální věci Závislost na konkrétních lidech Ne každý se tím dokáže nadchnout Plíživé ničení architektury, designu, prg. technik "Čemu nerozumím mažu vs. Bojím se cokoliv smazat, abych něco nerozbil

Příklad ze života Zákazník hlásil chybu: Po změně hesla v aplikaci dojde při komunikaci s centrem k zablokování uživatelského účtu. Problém byl způsoben následujícím řádkem: user.setpassword(password) //heslo pred zmenou Řádek mi nedával smysl, tak jsem ho zakomentoval. Čímž se problém odstranil

Příklad ze života Jeden kolega si všiml mé úpravy a nebyl z ní příliš nadšen. Řádek smysl měl řešil předchozí chybu. Společně jsme vymysleli řešení Přesunuli jsme řádek před kritickou sekci. Nyní fungovaly opravy obou chyb Bohužel se rozbila jiná maličkost autentizace Šlo se přihlásit libovolným heslem

Cvičení Specifikace ZŘ již byla zákazníkem odsouhlasena, ale nyní požaduje provedení drobné úpravy jak se zachováte? Zákazník hlásí chybu v internetovém obchodě, který jste mu dodali při dvojím kliknutí na tlačítko Odeslat objednávku dojde k dvojnásobnému založení objednávky v systému. Jak budete reagovat? Opravit chybu ve vývojovém prostředí zabere 2 hodiny, do kdy slíbíte, že bude mít zákazník novou verzi?

Cvičení Začíná růst chybovost vašich dodávek. Co s tím uděláte? Zákazník rozporuje váš odhad 5 MDs na změnu kódu u jednoho produktu (kód se používá v DB jako primární identifikátor). Jak mu to vysvětlíte? Zákazník není spokojen se stávajícím dodavatelem a poptává vás na převzetí údržby systému. Jaké informace si vyžádáte?

Diskuse Komentáře Otázky Připomínky Upřesnění Poznámky