DevOps
Tworzenie wartościowego oprogramowania to skomplikowany proces, zwłaszcza w przypadku dynamicznych aplikacji webowych, które podlegają częstym update’om i zmianom. Wykorzystanie odpowiednich metod pracy, sprawdzonych narzędzi i stosowanie żelaznej dyscypliny pozwala jednak trzymać go w ryzach i zapewnić ciągłość w wydawaniu nowych wersji aplikacji praktycznie bezboleśnie lub nawet niezauważalnie.
Aby to osiągnąć, niezbędna jest zmiana sposobu myślenia i funkcjonowania organizacji, integrująca zespoły deweloperskie (Dev), operacyjne (Ops). Ops obejmuje już nie tylko wsparcie i utrzymanie ale także użytkowników czyli Biznes.
Tylko w ten sposób możliwa jest bowiem pełna współpraca i zrozumienie procesu przez wszystkie strony – DevOps nazywa to burzeniem „wall of confusion”.
Czym jest DevOps?
DevOps to odpowiedź na rosnącą współzależność rozwoju i operacji (łącznie z Biznesem). Jest modelem współpracy między programistami, utrzymaniem ,wsparciem i Biznesem zapewniający aktywne uczestnictwo wszystkich zespołów w dostarczaniu nowych wersji i pozwalający na szybkie i sprawne wytwarzanie oprogramowania. Łączy ciągłą integrację, ciągłe monitorowanie i ciągłe wydawanie. Wykorzystuje narzędzia automatyzacyjne, takie jak Bitbucket, Bamboo, FishEye, Crucible, SonarQube, Ansible, Git, Jenkins, Docker czy Kubernetes.
DevOps to metodyka, ale także zmiana w kulturze funkcjonowania organizacji, dzięki której ta może ciągle ulepszać swój produkt oraz zwiększać wydajność i produktywność swoich zespołów.
Zastosowanie
Jeżeli Twoja organizacja często wydaje nowe wersje oprogramowania bądź wdraża wiele zmian na środowiskach produkcyjnych, DevOps pozwoli jej zrobić to szybko i z zachowaniem najwyższych standardów jakości. Jest szczególnie potrzebny w branżach takich jak banki, media, telekomunikacja czy e-commerce, gdzie zapewnienie ciągłości działania aplikacji jest z punktu widzenia klientów kluczowe.
Internetowi giganci, tacy jak Flickr, mają fizyczną możliwość wspierania do 10 wdrożeń nowych funkcjonalności dziennie, nie zaburzając jednocześnie działania systemu. Do osiągnięcia takich wyników niezbędna jest maksymalna automatyzacja procesów wytwórczych. Dlatego też z DevOps związane są też metody takie jak Continuous Deployment oraz Continuous Delivery, pozwalające zespołom deweloperskim oraz utrzymaniowym na zautomatyzowanie dużej części swojej pracy dzięki wyspecjalizowanym aplikacjom.