„Opracuj system, a nie oprogramowanie”
DevOps jest jednym z największych modnych słów w świecie technologii w ostatnim czasie, ponieważ oferuje organizacji ogromną ilość korzyści w celu skrócenia cyklu życia oprogramowania.
Spis treści:
Co to jest DevOps?
Nie ma jednej definicji ani właściwej odpowiedzi na pytanie „Czym jest DevOps”?
DevOps nie jest narzędziem, technologią ani żadnym frameworkiem; jest to bardziej filozofia i koncepcja. Jest to zestaw praktyk, który łączy tworzenie oprogramowania (Dev) i operacje IT (Ops), co pomaga skrócić cykl życia systemów i zapewnić ciągłą integrację i dostarczanie z wysoką jakością oprogramowania.
Jeśli jesteś początkującym, sprawdź ten wpis wprowadzający lub weź udział w tym kursie online – Docker dla absolutnie początkującego.
Korzyści DevOps
- Lepsza współpraca i komunikacja
- Szybsza dostawa oprogramowania lub produktu
- Ciągła redukcja kosztów
- Ulepszony proces
- Szybsze rozwiązywanie problemów
W świecie DevOps nie ma jednego magicznego narzędzia, które zaspokoi wszystkie potrzeby. Chodzi o wybór odpowiedniego narzędzia, które odpowiada potrzebom organizacji. Dowiedzmy się o nich.
Ciągła integracja
Jenkins
Jenkins to jedno z najpopularniejszych narzędzi DevOps typu open source, które wspiera ciągłą integrację i dostarczanie za pośrednictwem DevOps. Umożliwia ciągłą integrację i ciągłe dostarczanie projektów, niezależnie od platformy, na której pracują użytkownicy, za pomocą różnych potoków budowania i wdrażania. Jenkins można zintegrować z kilkoma narzędziami do testowania i wdrażania.
Travis CI
Travis CI to hostowana w chmurze, rozproszona platforma ciągłej integracji używana do tworzenia i testowania projektów hostowanych na GitHub i Bitbucket. Jest konfigurowany poprzez dodanie pliku YAML.
Może być testowany za darmo dla projektów open source i odpłatnie dla projektu prywatnego.
Bambus
Bambus to jeden z popularnych produktów opracowanych przez Atlassian w celu wspierania bezproblemowej ciągłej integracji. Większość funkcji jest wstępnie zbudowana, co oznacza, że nie musimy pobierać różnych wtyczek, takich jak Jenkins. Obsługuje również bezproblemową integrację z innymi produktami Atlassian, takimi jak JIRA i Bitbucket.
Hudson
Hudson jest wolnym oprogramowaniem napisanym w JAVA i działa w kontenerze serwletów, takim jak GlassFish i Apache Tomcat. Zapewnia możliwość wyzwalania pakietu automatyzacji z dowolnymi zmianami w odpowiednim systemie zarządzania źródłami, takim jak GIT, SVN itp. Zapewnia również obsługę wszystkich projektów maven i bazowych Java.
TeamCity
TeamCity to ciągła integracja oparta na serwerze i budująca narzędzie do zarządzania opracowane przez JetBrains. Posiada prosty i łatwy w użyciu interfejs użytkownika (UI) i zapewnia postęp kompilacji, szczegółowe informacje o kompilacji oraz informacje o historii dla wszystkich konfiguracji i projektów.
OkrągCI
OkrągCI jest dostępny w formie rozwiązań opartych na chmurze, a także on-premise do ciągłej integracji. Jest łatwy i szybki do uruchomienia i obsługuje lekkie, czytelne konfiguracje YAML.
Tutaj znajdziesz więcej narzędzi CI.
Planowanie i współpraca
JIRA
JIRA jest jednym z popularnych narzędzi do zarządzania projektami opracowanymi przez Atlassian, służącym do śledzenia problemów, błędów i projektów. Pozwala użytkownikowi śledzić status projektu i wydania. Można go łatwo zintegrować z innymi produktami Atlassian, takimi jak Bitbucket, a także z innymi narzędziami DevOps, takimi jak Jenkins.
Luźny
Luźny to narzędzie do współpracy oparte na chmurze freemium, które umożliwia komunikację i współpracę zespołową w jednym miejscu. To narzędzie może być również używane do udostępniania dokumentów i innych informacji między członkami zespołu. Można to również łatwo zintegrować z innymi narzędziami, takimi jak GIT, Jenkins, JIRA itp.
Powiększenie
Powiększenie to platforma do konferencji internetowych i natychmiastowego udostępniania ekranu. Możesz zachęcić swój zespół do przyłączenia się za pomocą dźwięku lub wideo.
Nie ma znaczenia, jak duży jest Twój zespół, Zoom jest w stanie obsłużyć nawet 1000 odbiorców podczas spotkania online.
Clarizen
Clarizen to oprogramowanie do współpracy i zarządzania projektami, które pomaga w śledzeniu problemów, zarządzaniu zadaniami i zarządzaniu portfelem projektów. Jest łatwy do dostosowania i posiada przyjazny dla użytkownika interaktywny interfejs użytkownika.
Asany
Asany to aplikacja mobilna i internetowa zaprojektowana, aby pomóc zespołom organizować, śledzić i zarządzać swoją pracą w efektywny i wydajny sposób. Służy do śledzenia codziennych zadań zespołu oraz obsługi wiadomości i komunikacji w całej organizacji.
Zarządzanie kodem źródłowym
SVN
SVN to scentralizowane narzędzie do kontroli wersji i źródła opracowane przez Apache. Pomaga programistom w utrzymaniu różnych wersji kodu źródłowego i utrzymaniu pełnej historii wszystkich zmian.
Gita
Gita to rozproszony system kontroli wersji, którego celem jest szybkość, integralność danych, wsparcie dla rozproszonych, nieliniowych przepływów pracy. Oprócz zarządzania kodem źródłowym może być również używany do śledzenia zmian w dowolnym zestawie plików.
Bitbucket
Bitbucket to internetowa platforma hostingowa opracowana przez Atlassian. Bitbucket oferuje również skuteczny system przeglądu kodu i śledzenie każdej zmiany w kodzie. Można go łatwo zintegrować z innymi narzędziami DevOps, takimi jak Jenkins, Bamboo.
GitHub
GitHub to platforma do hostingu kodu przeznaczona do kontroli wersji i współpracy. Oprócz swoich funkcji oferuje całą rozproszoną kontrolę wersji i zarządzanie kodem źródłowym (SCM) Git.
Oferuje funkcje kontroli dostępu i współpracy, takie jak śledzenie błędów, tworzenie funkcji i żądania, zarządzanie zadaniami itp. dla projektu.
Budować
Mrówka
Apache Ant to narzędzie do kompilacji i wdrażania oparte na języku Java o otwartym kodzie źródłowym. Obsługuje format pliku XML. Posiada kilka wbudowanych zadań, które pozwalają nam kompilować, składać, testować i uruchamiać aplikacje Java.
Maven
Maven to narzędzie do automatyzacji kompilacji, używane głównie w projektach Java. Zawiera plik XML, który opisuje budowany projekt oprogramowania, jego zależności od innych zewnętrznych komponentów i modułów, kolejność kompilacji, katalogi i inne wymagane wtyczki.
Chrząknięcie
Chrząknięcie to narzędzie wiersza poleceń JavaScript, które pomaga tworzyć aplikacje i pomaga programistom w automatyzacji powtarzalnych zadań, takich jak kompilacja, testowanie jednostkowe, linting kodu i walidacja itp. Jest to dobra alternatywa dla narzędzi takich jak Make lub Ant.
Gradle
Gradle to system automatyzacji kompilacji typu open source, który opiera się na koncepcjach Apache Maven i Apache Ant. Obsługuje właściwy język programowania Groovy zamiast pliku konfiguracyjnego XML. Oferuje wsparcie dla kompilacji przyrostowych, automatycznie określając, które części kompilacji są aktualne.
Zarządzanie konfiguracją
Marionetka
Marionetka to narzędzie do zarządzania konfiguracją typu open source służące do konfigurowania, wdrażania i zarządzania wieloma serwerami. To narzędzie wspiera koncepcję infrastruktury jako kodu i jest napisane w Ruby DSL. Obsługuje również dynamiczne skalowanie w górę iw dół maszyn w zależności od potrzeb.
Szef kuchni
Szef kuchni to narzędzie do zarządzania konfiguracją typu open source opracowane przez Opscode przy użyciu Rubiego do zarządzania infrastrukturą na maszynach wirtualnych lub fizycznych. Pomaga w zarządzaniu złożoną infrastrukturą w locie na maszynach wirtualnych, fizycznych i w chmurze.
Ansible
Ansible to narzędzie typu open source do zarządzania konfiguracją IT, udostępniania oprogramowania, orkiestracji i wdrażania aplikacji. Jest to proste, ale potężne narzędzie do automatyzacji prostych i złożonych wielowarstwowych aplikacji informatycznych.
SaltStack
SaltStack jest oprogramowaniem typu open source napisanym w Pythonie i wykorzystuje model push do wykonywania poleceń za pośrednictwem protokołu SSH. Oferuje wsparcie zarówno dla skalowania poziomego, jak i pionowego. Obsługuje szablony YAML do zapisywania dowolnych skryptów.
Terraforma
Terraforma to narzędzie typu open source do bezpiecznego i wydajnego budowania, zmieniania, wdrażania i wersjonowania infrastruktury. Służy do zarządzania istniejącymi i popularnymi dostawcami usług, a także niestandardowymi rozwiązaniami wewnętrznymi. Pomaga w zdefiniowaniu infrastruktury w konfiguracji/kodzie i pozwoli użytkownikowi w łatwy sposób przebudować/zmienić i śledzić zmiany w infrastrukturze.
Włóczęga
Włóczęga to jedno z popularnych narzędzi do budowania i zarządzania maszynami wirtualnymi (VM). Ma łatwy w użyciu i konfigurowalny przepływ pracy, który koncentruje się na automatyzacji. Pomaga skrócić czas konfiguracji środowiska programistycznego, zwiększa parzystość produkcji.
Ciągłe bezpieczeństwo
Snyk
Zintegrować Snyk w cyklu rozwoju, aby automatycznie znajdować i naprawiać luki w zabezpieczeniach typu open source. Obsługuje JS, .Net, PHP, NPM, jQuery, Python, Java itp. i może być zintegrowany podczas kodowania, zarządzania kodem, CI/CI, kontenerów i wdrażania.
Snyk otrzymał największą bazę podatności typu open source.
Invicti
Invicti automatycznie skanuje Twoją aplikację pod kątem luk w zabezpieczeniach i dostarcza przydatne, tajne raporty, dzięki czemu możesz podejmować działania w oparciu o priorytety. Scenariusz bezpieczeństwa DevOps polegałby na zbadaniu nowego zatwierdzenia i zgłoszeniu błędu bezpośrednio do systemu śledzenia, takiego jak Jira lub GitHub, i ponowne skanowanie po naprawieniu przez programistę. Widzisz, jak integruje się na każdym etapie SDLC.
Testowanie
Selen
Selen jest najpopularniejszym i otwartym narzędziem testowym. Obsługuje automatyzację testów w różnych przeglądarkach i maszynach operacyjnych. Można go łatwo zintegrować z narzędziami do zarządzania testami, takimi jak ALM, JIRA, a także z innymi narzędziami DevOps, takimi jak Jenkins, Teamcity, Bamboo itp.
JUnit
JUnit to platforma testów jednostkowych typu open source używana przez programistów do pisania i uruchamiania powtarzalnych przypadków testowych. Obsługuje różne adnotacje testowe, za pomocą których każdy programista może napisać bezproblemowy przypadek testu jednostkowego. Można go łatwo zintegrować z innymi narzędziami DevOps, takimi jak Jenkins, GIT itp.
TestNG
TestNG to framework testujący Open Source, który został zaprojektowany i zainspirowany przez Junit i Nunit. Można go łatwo zintegrować z web-driverem selenu, aby skonfigurować i uruchomić skrypty testów automatyzacji. Generuje również różne raporty z testów, takie jak HTML lub XSLT.
Monitorowanie
Nagios
Nagios to open-source i jedno z najpopularniejszych narzędzi do ciągłego monitorowania. Nagios pomaga monitorować systemy, aplikacje, usługi i procesy biznesowe w kulturze DevOps. Ostrzega użytkowników, gdy coś pójdzie nie tak z infrastrukturą, a także ostrzega ich, gdy problem zostanie rozwiązany.
Sensu
Sensu to narzędzie do monitorowania typu open source napisane w języku Ruby, które pomaga w prosty i skuteczny sposób monitorować serwery, usługi, aplikacje, infrastrukturę chmury. Jest łatwy do skalowania, dzięki czemu możemy z łatwością monitorować tysiące serwerów.
Datadog
Datadog jest opartym na agencie narzędziem do pomiaru serwera. Obsługuje integrację z różnymi serwerami internetowymi, aplikacjami i serwerami w chmurze. Jego usługa pulpitu nawigacyjnego zapewnia różne wykresy dotyczące monitorowania w czasie rzeczywistym w całej infrastrukturze.
JELEŃ KANADYJSKI
JELEŃ KANADYJSKI to zbiór trzech produktów o otwartym kodzie źródłowym — Elasticsearch, Logstash i Kibana, które są opracowywane, zarządzane i utrzymywane przez firmę Elastic. Pozwala użytkownikom pobierać dane z dowolnego źródła, w dowolnym formacie, a następnie wyszukiwać, analizować i wizualizować te dane w czasie rzeczywistym.
Sematekst
Sematekst to kompleksowe rozwiązanie do monitorowania, które zapewnia dogłębny wgląd w infrastrukturę IT. Zapewnia monitorowanie wydajności frontonu i zaplecza, monitorowanie dzienników, monitorowanie dostępności i wydajności interfejsu API i witryny internetowej, monitorowanie doświadczenia użytkownika i wiele innych.
Chociaż jest dostarczany z gotowymi pulpitami nawigacyjnymi i regułami alertów dla popularnych aplikacji i infrastruktury, takich jak popularne bazy danych i sklepy NoSQL, serwery w chmurze, sieć, kontenery itp., możesz łatwo dostosować pulpity i alerty do swoich potrzeb w zakresie monitorowania. Sematext oferuje potężne alerty z wykrywaniem anomalii, wykrywaniem awarii serca, planowaniem i licznymi integracjami do dostarczania powiadomień o alertach.
Grafana
Grafana to platforma analityczna typu open source do monitorowania wszystkich wskaźników z infrastruktury, aplikacji i urządzeń sprzętowych. Możesz wizualizować dane, tworzyć i udostępniać pulpit nawigacyjny, konfigurować alerty i współpracować. Możesz pobierać dane z ponad 30 źródeł, w tym Prometheus, InfluxDB, Elasticsearch, AWS CloudWatch itp.
Nowa relikwia
Nowa relikwia to produkt do analizy oprogramowania do monitorowania wydajności aplikacji (APM), który dostarcza w czasie rzeczywistym i trendów dane dotyczące wydajności aplikacji internetowych oraz poziomu zadowolenia użytkowników końcowych. Obsługuje kompleksowe śledzenie transakcji i wyświetla je za pomocą różnych kolorowych wykresów, wykresów i raportów
Hosting w chmurze
AWS
AWS to platforma hostingowa stworzona przez Amazon, która oferuje elastyczne, niezawodne, skalowalne, łatwe w użyciu, skalowalne i ekonomiczne rozwiązania. Korzystając z tej platformy chmurowej, nie musimy martwić się konfiguracją infrastruktury IT, która zwykle zajmuje rozsądną ilość czasu.
GCP
Chmura Google to kompletny zestaw usług hostingu i przetwarzania w chmurze publicznej oferowanych przez Google.it obsługuje szeroką gamę usług obliczeniowych, przechowywania i tworzenia aplikacji, które korzystają ze sprzętu Google.
Lazur
Lazur to platforma przetwarzania w chmurze zaprojektowana przez firmę Microsoft do tworzenia, wdrażania, testowania i zarządzania aplikacjami i usługami za pośrednictwem globalnej sieci jej centrów danych. Usługi świadczone przez Microsoft Azure mają formę PaaS (Platforma jako usługa) oraz IaaS (Infrastruktura jako usługa).
Konteneryzacja/Orkiestracja
Doker
Doker to narzędzie do tworzenia, wdrażania i uruchamiania aplikacji przy użyciu kontenerów. Ten kontener pozwala programiście spakować aplikację ze wszystkimi potrzebnymi komponentami i podkomponentami, takimi jak biblioteki i inne zależności, i wysłać ją w postaci pojedynczego pakietu. Ta praca nad koncepcją statku i bieganie w dowolnym miejscu.
Kubernetes
Kubernetes to system organizacji kontenerów typu open source, pierwotnie zaprojektowany przez Google, a obecnie obsługiwany przez Cloud Native Computing Foundation. Służy do automatyzacji wdrażania, skalowania i zarządzania aplikacjami. Działa również z innymi narzędziami kontenerowymi, w tym z Dockerem.
Poznaj więcej narzędzi do aranżacji kontenerów tutaj.
Wniosek
Mam nadzieję, że powyższe narzędzia pomogą Ci w Twojej podróży DevOps.
Podobał Ci się artykuł? Co powiesz na dzielenie się ze światem?