fbpx

Poziom master z Maturity Model dla Continuous Delivery?

Opublikowane przez Jerzy Wickowski w dniu

Małe złowte koła zębate. Dużo kół

Dawno, dawno temu, natrafiłem na Maturity Model (model dojrzałości?) procesów ciągłego dostarczania. Zaintrygował mnie, lecz potraktowałem go jako ciekawostkę. Ostatnio, już bardziej świadomie, wróciłem do niego. Nabywszy przez lata doświadczenia, nabrał on dla mnie nowego znaczenia. Pokazuje on, że CD to nie tylko jeden element, ale kompleksowa adaptacja wielu obszarów działalności. Przy czym, gdzieś trzeba zacząć i jest to uwzględnione, jako pierwszy krok w kolumnie Initial. Natomiast ostatnia kolumna przedstawia automatyczny samo działający i samo korygujący się mechanizm wdrożeniowy. Jak może wyglądać poziom master z Maturity Model dla Continuous Delivery? Zaciekawiony? Zapraszam.

Skupimy się dziś na ostatniej kolumnie i jej konsekwencjach. W zależności od wersji nazywa się ona Optymizing lub Expert. Nomenklatura nie jest ważna, ale jeżeli wiemy, o czym mówimy. Załóżmy, że to mamy. Jak zatem wygląda firma po wdrożeniu tego wszystkiego?

Maturity Model
Maturity Model – źródło: http://blog.arungupta.me/continuous-integration-delivery-deployment-maturity-model

Kultura i organizacja

Mamy zespoły krossfunkcyjne, co w tłumaczeniu znaczy, że są one interdyscyplinarne. Jeżeli wciąż Ci to nic nie mówi, przełóżmy na język ludzki. Teamy składają się z członków o różnych kompetencjach, co znaczy ni mniej, ni więcej, że taki zespół pokonuje wszystkie problemy, jakie stają mu na drodze. Sam lub wie jak znaleźć pomoc. Jest w stanie doprecyzować wymagania, zaplanować architekturę, zaimplementować odpowiednie funkcjonalności oraz wdrożyć na produkcję to, co stworzy. Dodatkowo wiedza i umiejętności w zespole są tak rozproszone, że, nawet gdy zabraknie głównego architekta, zespół potrafi podejmować decyzje i dalej działać. Ponadto, jeżeli coś się wysypie, to każdy potrafi sprawdzić, przeanalizować, poprawić i wdrożyć na produkcję.

Budowa i deployment

Proces wdrażania aplikacji na produkcję jest całkowicie automatyczny. Nie wymagamy ludzkiej ingerencji, od momentu wrzucenia kodu do repozytorium do chwili, aż znajdzie się on na produkcji. Skonfigurowanie tego wymagało czasu, ale dzięki wytrwałej pracy udało się nam osiągnąć taki stan. Wymagało to wdrożenia wielu mechanizmów, tworzonych od pierwszych chwil życia aplikacji. Takich jak zestawy testów, automatyczna analiza kodu, dopieszczony monitoring aplikacji oraz stabilny deployment. Dzięki temu żaden release nie jest nam straszny.

Jak często wdrażasz aplikację na produkcję? Myślisz, że to co piszę to jest bajka? Jeżeli chcesz wiedzieć więcej, to koniecznie sprawdź DeployAcademy gdzie pobierzesz poradnik ze wskazówkami jak deployować 100 razy dziennie oraz zapiszesz się na wartościową listę mailową.

DeployAcademy.pl 

Wdrażanie

Opanowaliśmy wdrożenia produkcyjne do perfekcji. Są dla nas chlebem powszednim, bułką z masłem, małym piwem przed śniadaniem. Prawie zapomnieliśmy czym jest rollback. Owszem dzieje się czasem, ale sam, automatycznie. W dodatku, dzięki zastosowaniu feature switchy, rozdzieliliśmy deployment od releasu, co pozwala klientowi włączać i wyłączać poszczególne funkcjonalności na produkcji.

Zarządzanie danymi

Wszystkie skrypty migracyjne odpalamy automatycznie. Mało tego, są testowane, jeszcze przed wdrożeniem na produkcję, weryfikując czy nic nie zepsują. Ponadto sprawdzamy, czy zmiany te nie są łamiące, by w razie konieczności przywrócenia poprzedniej wersji wciąż wszystko działało.

Testy i weryfikacja

Posiadamy odpowiednią infrastrukturę sprawdzającą aplikację na wielu poziomach. Począwszy od analizy statycznej i testów jednostkowych, będących pierwszym filtrem odsiewającym błędne paczki. Poprzez testy baz danych, api, integracyjne sprawdzające ogólną spójność aplikacji. Skończywszy na dokładnym monitoringu aplikacji produkcyjnej, by móc automatycznie przywrócić poprzednią wersję. Na samym końcu testerzy sprawdzają, czy rzeczywiście nowa wersja przynosi oczekiwaną wartość biznesowi.

Informowanie i raportowanie

Logowanie wraz z wizualizacją danych mamy dopracowane do perfekcji. Widzimy ile trwają poszczególne kroki procesu Continous Deployment, gdzie pojawiają się błędy, jak historycznie zmieniało się pokrycie testami oraz jak często build kończył się niepowodzeniem. To nie wszystko. Jesteśmy w stanie analizować, jak działa aplikacja, gdzie są największe obciążenia i gdzie pojawiają się błędy. A to wszystko na żywo z możliwością konfigurowania dashboardów. Dzięki czemu wiemy, gdzie coś zaczyna się sypać i dlaczego.

Na koniec

Pamiętaj, że ostatni level to taki Złoty Graal, niekoniecznie uda się go nam osiągnąć, ale nakreśla kierunek, gdzie warto iść. Jeżeli potrzebujesz wskazówek, zapraszam Cię serdecznie do projektu DeployAcademy, gdzie dowiesz się więcej.

Czy brzmi to dla Ciebie sensownie? A może czegoś brakuje lub chcesz o coś zapytać? Wal śmiało!



Czy to był wartościowy artykuł? Zapisz się, a wyślę Ci dwa ebooki o czystym kodzie oraz będę informował Cię o nowych postach

0 Komentarzy

Dodaj komentarz

Twój adres email nie zostanie opublikowany.

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

[contact-form-7 404 "Nie znaleziono"]

Zapisz się

Wyślę Ci dwa dokumenty mówiące o jakości kodu. Dodatkowo będę Cię informował o nowych postach i nowościach.