DevOps (development and operations) jest zbiorem zasad na styku tworzenia oprogramowania, a także procesów zachodzących wokół tego. Devops Engineer zajmuje się tworzeniem oraz przygotowywaniem infrastruktury na którym oprogramowanie byłoby uruchamiane. Wiele firm IT kładzie coraz większy nacisk na prawidłową kulturę DevOps, co w praktyce oznacza coraz większy wzrost jakości CI/CD oraz wzrost popularności rozwiązań typu IaaC (Infrastructure as a Code).
 

DevOps – model pracy

Głównym założeniem DevOps jest ścisła współpraca działu deweloperskiego i operacyjnego oraz komunikacja pomiędzy nimi. Dzięki tej specyficznej kulturze pracy możliwe jest szybkie osiąganie zamierzonych celów, a zatem bardzo szybka edycja na rynek gotowego, działającego produktu najwyższej jakości.

DevOps

Wraz z coraz większą popularnością metodologii powstał także zawód inżyniera DevOps, który nastawiony jest na zagadnienia związane z pracą obu działów, deweloperskiego i operacyjnego. Posiada on umiejętności pozwalające przyspieszyć i poprawić jakość relacji pomiędzy tymi zespołami oraz wprowadzić szereg automatyzacji sprzyjających szybszemu powstaniu wysokiej jakości produktu. Do najczęściej stosowanych przez niego narzędzi należą: GIT, Jenkins, JIRA, Selenium, Kubernetes, Puppet i wiele innych. Do jego głównych zadań należy szeroko pojęta automatyzacja, która pozwala deweloperom w sposób szybki i poprawny tworzyć i zarządzać wysokiej jakości kodem czy umożliwia konfigurację serwerów, narzędzi i całego środowiska pracy obu zespołów. Zadaniem inżyniera DevOps jest również optymalizacja narzędzi oraz rozwiązań software i hardware, a także nieustanna analiza wydajności pracy maszyn i ludzi w dążeniu do zwiększenia wydajności pracy.

 

DevOps oraz IaaC (Infrastructure as a Code)

Wraz z rozwojem kultury Devops powstał szereg narzędzi do tworzenia infrastruktury z wykorzystaniem kodu. Najpopularniejszym jest Terraform, a zaraz za nim idą w parze rozwiązania takie jak AWS SDK specyficzne do tworzenia rozwiązań w chmurze AWS.
Jest to o tyle ciekawe rozwiązanie, że tworzenie serwerów, zmiana ustawień sieci VPC, które były do tej pory wykonywane manualnie teraz są obsługiwane przez zewnętrzne oprogramowanie, które konwertuje kod do zapytań do dostarczycieli usług chmurowych. Dzięki temu otwarcie, czy też zamknięcie podobnego do siebie projektu zajmuje minuty, a wiele godzin pracy inżynierów. Powtarzalne czynności możemy zamknąć w moduły, które przyjmują tylko poszczególne parametry i zmieniają ustawienia.