Co to jest wdrażanie oprogramowania?

Ukończone

Według Wikipedii", "wdrażanie oprogramowania" składa się ze wszystkich działań, które udostępniają system oprogramowania do użytku. Ogólny proces wdrażania składa się z kilku powiązanych działań z możliwymi przejściami między nimi. Każdy system oprogramowania jest unikatowy i w związku z tym „wdrożenie” powinno być interpretowane jako ogólny proces, który należy dostosować odpowiednio do określonych wymagań lub cech.

Niektóre używają terminów "wdrażanie" i "instalacja" zamiennie, ale instalacja oprogramowania jest tylko częścią procesu wdrażania. Wdrożenie obejmuje o wiele więcej. Działania wdrażania mogą obejmować:

  • Serwer "Racking and stacking" (Stojaki i układanie w stosy).
  • Wdrażanie zaktualizowanego oprogramowania na tym serwerze.
  • Używanie takich elementów jak skrypty i infrastruktura jako kod.
  • Nawet poruszanie się po biurze z dyskiem USB, ręczne instalowanie oprogramowania na komputerach.

Ręczne wdrażanie oprogramowania jest pracochłonne i nie skaluje się dobrze. Automatyzacja ułatwia i bardziej opłacalne zapewnienie spójności podczas wdrażania nowego oprogramowania lub aktualizowania istniejącego oprogramowania w organizacji.

Naszym celem w ramach tej ścieżki szkoleniowej jest to, jak najlepiej wdrożyć oprogramowanie pod kątem niezawodności. Ten moduł dotyczy nie tylko wdrażania oprogramowania, ale także wdrażania infrastruktury w chmurze. Odwołania do wdrażania usługi lub rozwiązania mogą oznaczać wdrażanie oprogramowania, infrastruktury chmury, konfiguracji i wszystkich rzeczy, które są konieczne do niezawodnego udostępnienia systemu oprogramowania do użytkowania.

Scenariusz: wdrożenie epickie

Słowo epicka oznacza "wielkie, monumentalne lub rozległe", ale w kontekście tej dyskusji nie jest to dobra rzecz. Termin "epicki" został ukuty przez Jez Humble w swojej książce Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation , ponieważ reprezentuje ogromne (i niezwykle destrukcyjne) przedsięwzięcie. Oto przykład tego, co zwykle się dzieje:

  • Organizacja opracowuje aplikację do sprzedaży. Ta aplikacja jest aktualizowana dokładnie dwa razy w roku.
  • Podczas tych aktualizacji wdrażane są wszystkie nowe funkcje, poprawki błędów (duże i małe) oraz aktualizacje zależności.
  • Pierwsze wdrożenie w roku jest planowane na weekend Święta Pracy, a drugie na weekend po Dniu Dziękczynienia.
  • Każda aktualizacja to sytuacja w stylu „wszystkie ręce na pokład”. Zespół ds. aplikacji, zespół pomocy technicznej, zespół infrastruktury, zarządzanie; wszyscy biorą udział we wdrożeniu.
  • Usługi są tymczasowo przełączane w tryb offline, gdy wdrożenie jest w toku.
  • Historia wykazała, że wdrożenie jest zawsze obarczone problemami, inżynierią na żądanie, rozwiązywaniem problemów i zmianami zarządzania konfiguracją.
  • Rzadko idzie dobrze, a po jego zakończeniu rozwiązanie sprawia wrażenie skleconego z poszczególnych elementów w niepowtarzalny sposób.

Taka sytuacja nie oznacza dobrego wdrożenia. Metoda wdrożenia rozległego pociąga za sobą intensywną pracę ręczną, która wiąże się z wieloma problemami:

  • To złożone.
  • To stresujące.
  • To ryzykowne.
  • To powolne.
  • Nie można go odtworzyć ze względu na wszystkie złożone kroki.
  • Często wymaga kilku ekspertów do ukończenia.

Ponieważ ten proces jest długi i uciążliwy, musi być zaplanowany na czas, kiedy spowoduje najmniejsze zakłócenia w pracy użytkowników, co oznacza prawdopodobnie czas niewygodny dla zespołu wdrożeniowego, taki jak weekend lub wakacje.

Członkowie zespołu mogą czuć się spieszeni, aby ukończyć operację mamuta w przedziale czasu, powodując ich błędy konfiguracji. Ponadto długi czas między wdrożeniami może spowodować, że zapomnisz dokładnie, jak działają elementy.

Dylemat wdrożenia

Wdrażanie oprogramowania to złożone zadanie, a w przypadku "zaoszczędzenia" wielu istotnych zmian, poprawek i dodatków funkcji w celu wdrożenia wszystkich w jednym z nich zwiększasz złożoność, a tym samym zwiększasz prawdopodobieństwo wystąpienia błędu. Ponadto jeśli coś zaczyna iść źle, ta złożoność utrudnia wyśledzenie zasadniczej przyczyny problemu.

Złożoność może również powodować problemy dla użytkowników końcowych, ponieważ mogą one mieć do czynienia z uczeniem się wielu nowych funkcji i zmian jednocześnie, nie wspominając o błędach, które są wprowadzane przez złożoność wdrożenia epickiego.

Powinien być lepszy sposób, a tam jest. Dobra wiadomość jest taka, że tradycyjna strategia wdrażania rozległego nie jest jedyną opcją. W następnej lekcji dowiemy się lepszego sposobu przechodzenia do tego procesu.