 Pierwsze kroki z DevOps Termin DevOps został wprowadzony w latach 2007 – 2009 przez Patricka Debois, Gene’a Kima i Johna Willisa i reprezentuje połączenie słów Development (Dev) i Operations (Ops). Dało to początek ruchowi, który opowiada się za łączeniem razem programistów i operacji. Zapewnia to użytkownikom dodaną wartość biznesową dużo szybciej, co czyni ją bardziej konkurencyjną na rynku. Kultura DevOps to zestaw praktyk zmniejszających bariery między programistami, którzy chcą szybciej wprowadzać innowacje i dostarczać, a zespołami operacyjnymi, które chcą zagwarantować stabilność systemów produkcyjnych i jakość wprowadzanych zmian systemowych. Kultura DevOps to także rozszerzenie zwinnych (ang. agile) procesów (scrum, XP itd.), co pozwala skrócić czas dostawy, angażując programistów i zespoły biznesowe. Procesy te są często trudne do przeprowadzenia z powodu niewłączania operacji do tych samych zespołów. Komunikacja i to połączenie między Dev i Ops umożliwiają lepsze śledzenie kompleksowych wdrożeń produkcyjnych i częstsze wdrożenia o wyższej jakości, co pozwala zaoszczędzić pieniądze dla firmy. Aby ułatwić tę współpracę i poprawić komunikację między programistami a zespołami operacyjnymi, w procesach należy wprowadzić kilka kluczowych elementów, jak pokazano poniżej: ♾️ Częstsze wdrożenia aplikacji z integracją i ciągłym dostarczaniem (tzw. CI/CD). ♾️ Wdrażanie i automatyzacja testów jednostkowych i integracyjnych z procesem skoncentrowanym na projektowaniu opartym na zachowaniu (ang. behawior-driven design — BDD) lub projektowaniu opartym na testach (ang. test-driven design — TDD). ♾️ Wdrożenie sposobu zbierania informacji zwrotnych od użytkowników. ♾️ Monitorowanie aplikacji i infrastruktury. Ruch DevOps opiera się na trzech założeniach: ♾️ Kultura współpracy. To jest istota DevOps — fakt, że zespoły nie są już rozdzielone (jeden zespół programistów, jeden zespół Ops, jeden zespół testerów itd.). Ludzie ci łączą się, tworząc multidyscyplinarne zespoły, które mają ten sam cel: jak najszybsze dostarczenie wartości dodanej do produktu. ♾️ Procesy. Aby oczekiwać szybkiego wdrożenia, zespoły te muszą śledzić procesy rozwoju oparte na metodologiach agile z iteracyjnymi fazami, które pozwalają na lepszą funkcjonalność, wyższą jakość i szybszą informację zwrotną. Te procesy powinny być zintegrowane nie tylko z przepływem pracy programistycznej z ciągłą integracją, ale także z przepływem pracy wdrażania z ciągłym dostarczaniem i wdrażaniem. Proces DevOps podzielony jest na kilka faz: A. Planowanie i ustalanie priorytetów funkcjonalności. B. Rozwój. C. Ciągła integracja i dostarczanie. D. Ciągłe wdrażanie. E. Ciągłe monitorowanie. Fazy te są przeprowadzane cyklicznie i iteracyjnie przez cały czas trwania projektu. ♾️ Narzędzia. Wybór narzędzi i produktów używanych przez zespoły jest bardzo ważny w DevOps. W rzeczywistości, kiedy zespoły zostały podzielone na Dev i Ops, każdy zespół używał swoich specyficznych narzędzi — narzędzi do wdrażania dla programistów i narzędzi infrastruktury dla Ops — co jeszcze bardziej zwiększyło luki komunikacyjne. W zespołach, które łączą programowanie i operacje, oraz w tej kulturze jedności używane narzędzia muszą być użyteczne i możliwe do wykorzystania przez wszystkich członków. Deweloperzy muszą zapoznać się z narzędziami monitorującymi używanymi przez zespoły Ops w celu jak najwcześniejszego wykrywania problemów z wydajnością i z narzędziami bezpieczeństwa dostarczanymi przez Ops w celu ochrony dostępu do różnych zasobów. Ops z kolei musi zautomatyzować proces tworzenia i aktualizacji infrastruktury oraz zintegrować kod z menedżerem kodu. Wszystkie te czynności tworzą praktyki IaC. Można je jednak wykonać tylko we współpracy z programistami, którzy znają infrastrukturę potrzebną dla aplikacji. Zadania zespołów operacyjnych należy również zintegrować z procesami i narzędziami wydawania aplikacji. Poniższy diagram ilustruje trzy założenia kultury DevOps — współpracę między Dev i Ops, procesy i wykorzystanie narzędzi. Możemy nawiązać do kultury DevOps za pomocą definicji Donovana Browna (http://donovanbrown.com/post/what-is-devops): „DevOps to połączenie ludzi, procesów i produktów, które umożliwia ciągłe dostarczanie wartości naszym użytkownikom końcowym”. Korzyści z ustanowienia kultury DevOps w przedsiębiorstwie są następujące: ♾️ Lepsza współpraca i komunikacja w zespołach, co ma wpływ na ludzi i na społeczne więzi w firmie. ♾️ Krótsze czasy realizacji produkcji, co skutkuje lepszą wydajnością i satysfakcją użytkownika końcowego. ♾️ Zmniejszone koszty infrastruktury dzięki IaC. ♾️Znaczna oszczędność czasu dzięki cyklom iteracyjnym zmniejszającym liczbę błędów aplikacji i narzędziom automatyzacji, które ograniczają liczbę zadań wykonywanych ręcznie, dzięki czemu zespoły skupiają się bardziej na opracowywaniu nowych funkcji o wartości dodanej dla biznesu.  Albo sięgnij po NOWOŚĆ "DevOps w praktyce. Wdrażanie narzędzi Terraform, Azure DevOps, Kubernetes i Jenkins. Wydanie II" 🆕  Poznaj drugie, zaktualizowane i uzupełnione wydanie książki poświęconej wdrażaniu najlepszych praktyk DevOps przy użyciu nowoczesnych narzędzi. W książce znajdziesz najważniejsze informacje o kulturze DevOps, opis narzędzi i technik stosowanych do jej wdrażania, takie jak IaC, potoki Git i CI/CD, a także automatyzację testów i analizę kodu. Sporo miejsca poświęcono tu konteneryzacji aplikacji za pomocą Dockera i platformy Kubernetes. Publikacja omawia także kwestię skracania przestojów podczas wdrażania oprogramowania i omówienie możliwości stosowania praktyk DevOps w projektach open source. Uwaga! Warto zwrócić uwagę na ostatni rozdział, w którym pokazano zasady wdrażania niektórych praktyk DevOps w całym cyklu życia projektów 😉 Więcej nowości dla specjalisty DevOps 🆕 |