DevOps vs. AppOps

Print Friendly, PDF & Email

W świecie IT uczenie się nowych modnych słów to codzienność. Większość z nich jest jak meteor, spala się, zanim w pełni zrozumiesz, czego dotyczy. Niektóre inne będą trendem do naśladowania w nadchodzących latach. Mogę wspomnieć np. o DevOps, który patrząc po ofertach pracy coraz bardziej rozpycha się na rynku. Stawki również są zacne jak na polskie warunki. Jednak wymaga jednocześnie masy wiedzy.
Całe to wprowadzenie wyjaśnia, dlaczego jesteśmy bombardowani nowymi terminami i musimy skupić się na właściwych. Wierzę w koncepcje, które pozostają nawet wtedy, gdy technologie i trendy wychodzą z mody.
Dlatego w tym artykule postaram się omówić koncepcję AppOps, warto wiedzieć o niej wcześniej.

NoOps

NoOps ma na celu usunięcie wszystkich przestrzeni, które powodują tarcia pomiędzy zespołami operacyjnymi (adminami) a deweloperami. Może się to wydawać drastycznym rozwiązaniem, ale nie chodzi o branie tego dosłownie. Właściwa interpretacja — możliwa do zrealizowania — polega na usunięciu w jak największym stopniu komponentu ludzkiego w fazie wdrażania i dostarczania rozwiązania. Automatyzacja dobrze wykonana pomaga w zachowaniu wyższych standardów dostarczania rozwiązań w IT.
Takie podejście jest naturalnie wspierane przez chmurę publiczną, która pomaga nowoczesnym rozwiązania działać samodzielnie – automatycznie. Jakiś czas temu opisałem kwestie DevOps oraz NoOps, a tutaj już kolejna zmiana się szykuje w tym dynamicznym światku IT.
NoOps jest również niebezpieczny dla Nas, ponieważ eliminuje właśnie ten Nasz czynnik ludzki. W pewnym momencie wystarczą sami programiści, reszta wykona się automagicznie sama? Tylko czy na pewno sama.

Aplikacja

Nie ważne czy zespół pracuje nad małą aplikacją czy rozwiązaniem o zasięgu globalnym, metodologia DevOps pomaga w sprawnym zarządzaniu projektem. Obecnie automatyzacja, która pozwala na wdrażanie coraz to nowszych wersji aplikacji jest na topie. Każdy potrzebuje metodologii DevOps i infrastruktury do wdrożenia konkretnego rozwiązania. Ale czy naprawdę jesteśmy pewni, że chcemy poświęcić na to czas i pieniądze? Czy można jakoś pozbyć się zarządzania infrastrukturą lub chociaż wprowadzić do niej większą elastyczność? Tutaj z pomocą przybywa chmura obliczeniowa, która nie eliminuje zarządzania całkowicie, ale znacznie je technicznie upraszcza.
Skupienie się na aplikacji, pozwoli na lepszej jej przygotowanie dla klienta końcowego, natomiast automatyzacja środowiska przyspieszy wdrażanie nowych wersji. Dobrze jest się nie martwić jakiej bazy potrzebujemy, jakiego frameworka etc.

Dlaczego AppOps?


Jednym z najbardziej oczywistych scenariuszy wyjaśniających zalety AppOps jest każda aplikacja oparta na Kubernetes. W rzeczywistości każda aplikacja PHP ma taką samą konfigurację, z wyjątkiem parametrów. To samo dla Java, .Net lub aplikacji pisanych w innych językach czy frameworkach. Rzecz w tym, że Kubernetes jest agnostyczny wobec zawartości aplikacji hosta, więc musimy informować go o każdym szczególe, ale dobrze jest to zrobić automatycznie. W przypadku wszystkich nowych aplikacji musimy zacząć od początku, nawet jeśli technologia jest taka sama.

Nie wymyślaj koła na nowo


Powinienem tylko raz wyjaśnić, jak jest zbudowana aplikacja PHP. I nie traciłbym czasu na definiowanie sposobu wdrażania aplikacji PHP, ponieważ wszystkie aplikacje PHP na świecie są w zasadzie takie same i spodziewałbym się, że ktoś (być może dostawca) da kiedyś społeczności odpowiednią konfigurację. Załóżmy na chwilę, że mamy taką konfigurację wielokrotnego użytku. Wystarczy po prostu opracować aplikację, przygotować automatyzacje środowiska wdrożeniowego i zapomnieć o sprawie. Koniec z wymyślaniem koła na nowo. Przy takim podejściu najważniejsze jest uruchomienie aplikacji, bez zagłębiania się w szczegóły, które wykona automatyzacja o ile została wcześniej poprawnie przygotowana. Kolejne wersje aplikacji w przyszłości o ile będę miały dodawane jedynie nowe funkcjonalności powinny być dostępne dla odbiorcy końcowego bez większych zmian w infrastrukturze.
Takie podejście nie dotyczy tylko świata deweloperów, można rozszerzyć je na maszyny wirtualne, usługi w chmurze i tak dalej. Dlatego właśnie AppOps może sprawdzić się w dzisiejszym szalonym świecie, który każdego dnia generuje nowe pomysły w IT.

Przewidywanie przyszłości AppOps

Kubernetes nie ma magicznego rozwiązania, aby np. klaster mógł przewidzieć, co wdrażasz. Kubernetes ma zarządzać kontenerami, które bardzo szybko mają się dostosowywać do sytuacji w organizacji. Mamy dwie opcje:

  • Zrób to po staremu, przygotowując automatyzacje ręcznie poprzez YAML z domieszką Terraform,
  • Zrób to w chmurze, stosując rozwiązania, które pozwalają skupić się na aplikacji oraz jej wdrożeniu zamiast na ciągłym przygotowywaniu infrastruktury, która ciągle się zmienia

Po staremu

Robienie po staremu to najłatwiejsze, ale najmniej modne rozwiązanie, aby nie wymyślać koła na nowo.
Jeśli pracujesz z Kubernetes, możesz używać narzędzi takich jak Helm lub ArgoCD do automatyzacji konfiguracji aplikacji i tworzenia definicji aplikacji wielokrotnego użytku.
Jeśli pracujesz z maszynami wirtualnymi, dobrym rozwiązaniem jest przygotowanie skryptów Ansible.
Możesz być zainteresowany użyciem Terraform jako łatwego rozwiązania opartego na chmurze do zarządzania infrastrukturą jako kodem (IaaC).
Poza tym wszystkie powyższe rozwiązania są świetne, jednak potrzebny będzie czas na napisanie skryptów automatyzujących ich przetestowanie oraz poprawienie ewentualnych błędów. Takie rozwiązanie ma również wady, często budowanie takiej infrastruktury zajmuje kilka godzin, więc ewentualne problemy mogą pojawić się później co opóźni wdrożenie.

Po nowemu

W dobie chmury korzystanie z gotowych usług jest świetnym impulsem do rozwoju.
Dlatego warto przy pierwszej próbie ocenić łatwe w użyciu rozwiązanie. Kubernetes w chmurze zawiera kilka narzędzi, które pozwalają dokonywać wdrożeń na poziomie aplikacji zapominając o tym, co się za tym kryje.
Jednym z narzędzi jest Shipa, które pozwala na wdrażania aplikacji bez żadnego procesu DevOps. To rozwiązanie naprawdę pozwala skupić się tylko na rozwoju aplikacji, zapominając o serwerach, wymaganiach etc.
Drugą opcją jest Devtron, która pozwala Kubernetes na wdrażania w płynny sposób rozwiązań dla klientów. W połączeniu z niektórymi predefiniowanymi recepturami pozwala zapomnieć o infrastrukturze.
Sądzę, że wzrost popularności metodologii DevOps w podejściu AppOps przyspieszy.

Podsumowanie

Innowacje w dziedzinie tworzenia i dostarczania aplikacji ewoluowały w ostatnich latach niesamowicie.
Chmura dała duży impuls, ponieważ bardzo duża ilość zasobów, które możemy znaleźć w sieci oparta jest właśnie o chmurę publiczną. Na liście narzędzi, które dokonały wielkiej rewolucji w przyspieszeniu wdrażania rozwiązań, znajduje się Kubernetes, drogę torował wcześniej Docker.
Chociaż wszystkie te rozwiązania przyspieszyły cyfrową transformację na całym świecie, nie jest to wszystko co można uzyskać wykorzystując nowinki, które pokazują się każdego dnia na rynku IT. Z czasem konieczne będzie jeszcze większe zredukowanie czasu potrzebne na konfigurację infrastruktury. Jest to obowiązkowe, aby skupić się bardziej na części związanej z tworzeniem aplikacji i zapewnić wartość dla użytkownika końcowego.
Korzystając z narzędzi, które zarządzają infrastrukturą z wyższego punktu widzenia, ukrywamy złożoność i możemy skupić się na tym, co naprawdę ma znaczenie dla biznesu.


Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.

Link do formularza tutaj: https://beitadmin.pl/pomysly

Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).

Dodaj komentarz

beitadmin.pl - Droga Administratora IT