Menu
Zamknij menu
Zaloguj się
Asseco Academy » Baza Wiedzy » Zaprojektuj DevOps z głową – rola architektury od kuchni
07.08.2025 -

Zaprojektuj DevOps z głową – rola architektury od kuchni

Co ma wspólnego DevOps z architekturą?

DevOps przestaje być ewenementem. Coraz częściej stanowi podstawową kulturę i podejście organizacji IT do wdrażania i utrzymywania oprogramowania.

Jednocześnie wciąż istnieje różne rozumienie tego, czym jest DevOps. W niniejszym artykule przez DevOps będę rozumiał zarówno kulturę jak i zestaw praktyk polegających integracji, współpracy i zwiększeniu szybkości przepływu prac oraz uzyskaniu wymaganej jakości w całym łańcuchu wartości IT mających na celu sukces całej organizacji (zarówno biznesu jak i IT).

DevOps łączy ze sobą praktyki zwinnego wytwarzania oprogramowania z ciągłym testowaniem, dostarczeniem, wdrażaniem (w miarę rozwoju DevOps słowo „continous” dodawane jest także do innych obszarów IT). Podstawą do tych praktyk jest oczywiście automatyzacja.

Gdzie jest architektura w DevOps?

Pozostaje pytanie, gdzie w tym wszystkim jest architektura. Wymienię kilka kluczowych obszarów, na które warto zwrócić uwagę

1. Architektura systemów projektowanych przez architektów

2. Technologie, które wspierają DevOps

3. Architektura i architekci jako uczestnicy łańcucha wartości DevOps

Przyjrzyjmy się tym czterem wskazanym obszarom.

Architektura jako fundament DevOps

DevOps polega w szczególności na stosowaniu praktyk wspierających szybkie dostarczanie stosując nieduże przyrosty oprogramowania.

Takie praktyki są łatwiejsze przy odpowiedniej modularności wdrażanych systemów i odejście od monolitycznych architektur. Mówimy też często o luźno powiązanej architekturze (ang. loosely coupled architecture) oraz prostocie. Jeden z pięciu ideałów DevOps wprowadzonych w książce Projekt Jednorożec (Unicorn Project) G. Kene’a mówi także o tym: lokalność i prostota (Locallity and simplicity). W takiej architekturze łatwiej jest dostarczać i wdrażać oprogramowanie w niedużych przyrostach. Chodzi tutaj zarówno o samo wdrożenie na produkcji, jak i także wszystkie wcześniejsze kroki, jak np. testowanie. Silnie powiązana architektura wymaga sporego narzutu testów regresji, po przy silnych zależnościach zakres testów zwykle jest bardzo duży.

Innym przykładem praktyki DevOps, która wymaga odpowiedniej architektury jest rozdzielenie wdrożenia oprogramowania (deployment) od jego udostępnienia (release) wraz z wykorzystaniem tzw. feature toggles (przełączników funkcjonalności). Polega to na tym, że funkcjonalność jest wdrażana na produkcji, ale udostępniania użytkownikowi dopiero po zmianie przełącznika. Pozwala to nawet na dostarczanie niedokończonej funkcjonalności, która już jest zintegrowana z produkcyjną wersją aplikacji, jednak nie jest widoczna dla użytkownika i nie psuje części działającej. Wymaga to odpowiedniego projektowania systemów, aby separować poszczególne części i projektować je w taki sposób, by mogły działać poprawnie w obu trybach (udostępnionej i nieudostępnionej funkcjonalności).

Technologie wspierające DevOps

Projektowane systemy mogą być oparte o różne technologie. Na ich wybór powinno rzutować także gotowość tych technologii do szybkiego dostarczania. Dobrym przykładem w tym kontekście są mikroserwisy i konteneryzacja.

Architekci częścią systemu DevOps

Kolejnym aspektem jest właściwie zaprojektowanie procesów architektonicznych. Jeśli przyjmiemy tzw. phase gate approach (podejście oparte na bramkach decyzyjnych), w którym mamy tradycyjny proces oraz architektów od których musimy uzyskać akceptację, to trudno będzie optymalizować przepływ w takim łańcuchu wartości. Architektura (podobnie do bezpieczeństwa) powinna być włączona w całość działań dostarczania działając zarówno jako ciało doradcze jak i weryfikacyjne. Mówiąc w uproszczeniu: lepiej jest robić od początku dobre projekty i implementację niż poprawiać na końcu gotowe oprogramowanie.

Drugim aspektem jest działanie architektów w kulturze DevOps – zarówno wspierając ją jak i promując. DevOps to nie tylko narzędzia, ale także kultura współpracy, zwinności, współodpowiedzialności za całość łańcucha wartości dostarczanych rozwiązań.

Podsumowanie

Na kilku powyższych przykładach widać, że architektura i DevOps mają wiele wspólnych elementów. Można powiedzieć, że nie ma DevOps bez architektury. Z drugiej strony te kilka przykładów może być pomocne dla architektów, by umieli się odnaleźć w zwinnym świecie kultury DevOps oraz rozumieli swoje miejsce w tym świecie.

Tekst: Mirosław Prywata

Czym zajmuje się Asseco?
Jakie są nasze mocne strony?
Poznaj jakość Asseco