Wersjonowanie podstawą wydajności

Przez ostatnie pięć lat DevOps zataczał coraz szersze kręgi, przynosząc ścisłą współpracę miedzy działami rozwoju i operacji, przed którymi stawiał wspólny cel: szybsze tworzenie kodu o lepszej jakości. Kluczem do sukcesu DevOps jest wdrożenie i stosowanie się do jednej z najistotniejszych praktyk: wersjonowania wszystkiego.

Takie wszechobecne wersjonowanie zwiększa wydajność i poprawia rezultaty. Wspólne wersjonowanie w obu działach – rozwoju i operacji – umożliwia osiągnięcie świetnych rezultatów. Organizacje, które wdrożyły DevOps z kontrolą wersji, osiągają znaczną poprawę w zakresie szybkości i jakości tworzenia kodu oraz usług. Takie organizacje:

  • 30 razy częściej przeprowadzają wdrożenia,
  • tworzą kod 8000 razy szybciej,
  • mają 2 razy większe szanse na osiągnięcie sukcesu bez problemów związanych z bezpieczeństwem czy zgodnością z przepisami prawa,
  • 12 razy szybciej przywracają systemy do działania w przypadku problemów.

Biznesowe efekty DevOps

Oprócz tych miar typowych dla IT, organizacje, które wdrożyły DevOps, mają dwukrotnie większe szanse osiągnąć lepsze rezultaty, niż zakładany poziom dochodowości, produktywności oraz udział w rynku.

Jest kilka czynników, które różnią te pracujące bardzo wydajnie organizacje od innych. Jednak na pytanie, która metryka technologiczna bądź kulturowa ma największe znacznie: średni czas przygotowania kodu, odsetek udanych wdrożeń, czas wdrożeń czy też ich częstotliwość, najczęściej pada odpowiedź: kontrola wersji wszystkich produkcyjnych artefaktów. Z ankiet przeprowadzonych wśród firm stosujących DevOps wynika, że do najważniejszych wskaźników wydajności IT należą:

  1. kontrola wersji wszystkich produkcyjnych artefaktów,
  2. ciągła integracja i wdrożenie (continuous integration & deployment),
  3. zautomatyzowane testy akceptacyjne,
  4. wzajemna ocena zmian,
  5. wysoka kultura zaufania,
  6. aktywne monitorowanie środowiska produkcyjnego,
  7. wzajemnie korzystne relacje między działami rozwoju i operacji.

Wspólne wersjonowanie buduje zaufanie

Jeśli oba działy korzystają z tego samego systemu kontroli wersji, każdy może odtworzyć środowisko produkcyjne bazując tylko na tym, co jest w tym systemie. Oprócz tego, wspólne korzystanie z systemu kontroli wersji sprawia, że wszelkie zmiany w kodzie i środowisku są stale integrowane i wdrażane do środowiska produkcyjnego. Wspólna kontrola wersji sprzyja wzajemnej odpowiedzialności i zaufaniu między Development i Operations.

Środowisko obejmuje wszystko poza kodem instalowanych na nim aplikacji, np.: bazy danych, systemy operacyjne, ustawienia konfiguracyjne. Aby to kontrolować, wszystkie ustawienia konfiguracyjne powinny być odnotowane w systemie kontroli wersji, służąc jako pojedyncze źródło zaufania, na którym każdy może polegać, niezależnie od środowiska (np. deweloperskie, testowe, produkcyjne).

Ciągłe dostarczanie zmian wymaga przygotowania środowiska jak najbardziej zbliżonego do środowiska produkcyjnego, wykorzystując do tego celu zautomatyzowane procesy uruchamiane na żądanie. Aby zapewnić powtarzalność wyników, mechanizm budowania środowiska testowego i deweloperskiego powinien również być kontrolowany w systemie wersjonowania. Ten czynnik gwarantuje, że każdy może odtworzyć środowisko, bazując tylko na tym, co jest w systemie kontroli wersji, w przeciwieństwie do przypadków, w których wiedzę tą posiadają tylko pojedyncze osoby.

Dział operacji powinien wersjonować wszystkie produkcyjne artefakty, tak jak dział rozwoju obejmuje wszystko kontrolą wersji. Aby zoptymalizować dostarczanie, analitycy z agencji Forrester rekomendują:

  • Optymalizację kosztów poprzez używanie narzędzi i technologii umożliwiających automatyzację powtarzalnych procesów.
  • Zwiększenie szybkości dostarczania przez zautomatyzowanie przełączania między kolejnymi fazami cyklu życia, dopóki cały cykl nie zostanie zautomatyzowany.
  • Eliminację ręcznych procesów, które są podatne na błędy.

Wersjonowanie podstawą wydajności

Kontrola wersji w przebiegu wdrożenia