Nasz proces
DevOps
Metodyka DevOps (Development and Operations) jest wykorzystywana i rozwijana od 2009 roku. Głównie przez duże firmy, korporacje, ale coraz częściej bywa także stosowana do wytwarzania oprogramowania przez mniejsze organizacje.
Stworzona została w celu uściślenia, skoordynowania prac programistów zajmujących się utrzymaniem i rozwojem oprogramowania.
Z czasem poszerzona została także o kwestie bezpieczeństwa całej infrastruktury (DevSecOps – Development, Security and Operations) i stała się jednym najpopularniejszych obecnie "narzędzi", metodyk tworzenia produktów cyfrowych.
Podstawą DevOps jest budowanie produktu:
- integralnego – dzięki pełnej perspektywie jego oglądu
- bezpiecznego – stale monitorowanego pod kątem jakości, spójności i bezbłędności
- zracjonalizowanego – tworzonego na podstawie danych.
Znajduje szczególne zastosowanie w projektach, w których występuje:
- duża ilość i częstotliwość zmian (dobowych, tygodniowych, miesięcznych)
- konieczność minimalizacji ryzyka
- konieczność skrócenia czasu pracy i czasu wprowadzenia zmian.
Metodyka DevOps oparta jest na 5 kluczowych filarach:
- nieprzerwanej integracji (Continuous Integration)
- nieprzerwanej dostawie (Continuous Delivery)
- nieprzerwanym monitorowaniu (Continuous Monitoring)
- nieprzerwanym testowaniu (Continuous Testing)
- nieprzerwanym wdrażaniu (Continuous Deployment).
Mikrousługi w metodyce DevOps
Istotą mikrousług jest podział złożonych pracy, rozwoju oprogramowania, systemów, procesów na mniejsze, prostsze i niezależne części (usługi).
Usługi różnią się celem, funkcjami, jednak ich cechą wspólną jest niezależność od innych usług, dzięki czemu mogą być rozwijane w mniejszych zespołach, działających w zwinny sposób.
Zarządzanie zmianami, generalnie projektem, w metodyce DevOps pozwala w bardziej realistyczny sposób określać terminy wdrożenia zmian (np. w aplikacji), szybciej reagować na zmieniające się potrzeby klienta.
Ciągła integracja w tej metodzie polega na regularnym wprowadzaniu zmian do głównej gałęzi kodu oraz automatycznym testowaniu rezultatów, jakie te zmiany powodują.
Pozwala to zachować jego stabilność. Dostarczanie w formule ciągłej polega także na zautomatyzowanym udostępnianiu nowych wersji w środowisku produkcyjnym.
DevOps pozwala również zarządzać poszczególnymi wersjami kodu. A systemy kontroli wersji umożliwiają automatyczne i skuteczne śledzenie wersji, historii zmian.
Oferują możliwość przywracania kodu do wersji stabilnej i pozbawionej błędów, konfliktów.
Popularność metodyki DevOps nie jest przypadkowa i wynika z jej licznych zalet:
- cykle aktualizacji i innowacji są częstsze
- część procesów jest automatyzowana i jednocześnie poddana kontroli
- ilość błędów, poprawek znacząco spada
- każda zmiana jest weryfikowana pod kątem bezpieczeństwa jej wprowadzenia
- nowe funkcje dodawane są do systemu w o wiele prostszy sposób
- produkt jest nadzorowany w fazie rozwoju, wdrożenia, eksploatacji
- projekt staje się o wiele bardziej elastyczny
- system jest pod stałym monitoringiem, pozwalającym oszacować jego wydajność
- reakcja organizacji na zmiany rynkowe jest w tej metodyce o wiele szybsza i skuteczniejsza
- w przypadku awarii łatwiej zdiagnozować, które wdrożenie jest za nią odpowiedzialne
- wdrożenia są wprowadzane często, ale w niewielkim zakresie
- wszystkie procesy są wykonywane zdecydowanie szybciej
- zespoły – programistyczny i operacyjny – stanowią jeden zintegrowany zespół.
Cykl życia produktu w metodyce DevOps
Dzięki metodyce, kulturze DevOps, DevOps Engineer może skuteczniej planować, programować, wdrażać i rozwijać produkty.
Planowanie polega na wylistowaniu, zdefiniowaniu funkcji i cech przyszłego systemu. Podział prac na mniejsze jednostki, mikrousługi, pozwala śledzić rozwój w dokładniejszy sposób.
W fazie rozwoju system jest tworzony, testowany oraz stale integrowany. Faza wdrożenia polega m.in. na zdefiniowaniu procesu zarządzania wersjami.