Zautomatyzujmy infrastrukturę IT.
Był czas, kiedy wszystko związane z instalacją infrastruktury, konfiguracją, konserwacją odbywało się ręcznie. Wiele osób w zespole było kiedyś zaangażowanych. Wszystkie rzeczy były ręczne. Proces ten wiązał się ze znacznym ryzykiem błędu ludzkiego, co prowadziło do słabej dostępności, bezpieczeństwa i wydajności aplikacji.
Nie można zapomnieć o całkowitym koszcie infrastruktury.
Ale dzięki nowoczesnej technologii i filozofii, takiej jak DevOps, nie stanowi to już problemu.
Obecnie mamy kilka narzędzi do wykonywania zadań związanych z tworzeniem, wdrażaniem i zarządzaniem infrastrukturą. Wykorzystując odpowiednie oprogramowanie, można zautomatyzować całą infrastrukturę przy mniejszym zaangażowaniu człowieka. Nie mówię o łatwych rzeczach, ale o złożonych zadaniach, takich jak udostępnianie infrastruktury, konfiguracja całej aplikacji itp.
Automatyzacja infrastruktury to proces wdrażania komponentów sprzętowych/oprogramowania, systemu operacyjnego, komponentów sieciowych, komponentu do przechowywania danych za pomocą IaC (infrastruktura jako kod). Ten proces ma interwencję człowieka tylko w celu napisania takiego kodu, który będzie zawierał wszystkie szczegóły do utworzenia i wdrożenia niezbędnych komponentów.
Oto lista najpopularniejszych narzędzi do automatyzacji infrastruktury szeroko stosowanych w branży.
Ansibl
Ansibl to bezagentowy silnik IT typu open source, który automatyzuje wdrażanie aplikacji, zarządzanie konfiguracją i orkiestrację IT. Został założony w 2012 roku i został napisany w najmodniejszym obecnie języku, Pythonie. Aby zaimplementować całą automatyzację, Ansible używa podręcznika, w którym wszystkie konfiguracje są napisane w języku czytelnym dla człowieka, YAML.
Jeśli jesteś nowicjuszem, sprawdź to Ansible Wprowadzenie.
Ansible ma architekturę bezagentową, co oznacza, że nie musisz instalować żadnego oprogramowania osobno na wszystkich serwerach. Jest zgodny z modelem opartym na wypychaniu, w którym musisz mieć system lokalny ze wszystkimi niezbędnymi konfiguracjami, a te konfiguracje są wypychane na serwery docelowe.
Funkcje Ansible’a:
- Automatyzacja za pomocą prostego, czytelnego dla człowieka języka
- Architektura bez agentów, możesz łączyć się z serwerami za pomocą prostego SSH.
- Model wypychania wypycha konfiguracje na serwer z obsługiwanej przez Ciebie maszyny lokalnej.
- Zbudowany na Pythonie, więc obsługuje wiele bibliotek i funkcjonalności Pythona.
- Wyselekcjonowana kolekcja modułów Ansible stworzona przez zespół inżynierów Red Hat.
Dla przedsiębiorstw Red Hat oferuje Ansible Tower.
Umiejętność Ansible jest dobra dla Sysadmina, programisty, inżyniera Infra, a jeśli potrzebujesz trochę przewagi, sprawdź to Samouczek Udemy.
Stos soli
Stos soli może wykonywać zarządzanie infrastrukturą, zarządzanie konfiguracją, orkiestrację z dużą szybkością. W porównaniu z innymi podobnymi narzędziami, takimi jak Chef i Puppet, duża szybkość SaltStack jest tutaj znaczącym wyróżnikiem. Jego pierwsze wydanie miało miejsce w 2011 roku i podobnie jak Ansible, jest również napisane w Pythonie.
Ma architekturę master-slave, w której Salt Master jest głównym demonem, który zarządza wszystkim, a Salt Minions to demony niewolników instalowane w każdym zarządzanym systemie w celu wykonywania instrukcji wysyłanych przez Salt Master. Salt Master wysyła niezbędną konfigurację i polecenia do Salt Minions, a Salt Minions wykonuje je na swojej maszynie, aby zastosować całą automatyzację IT.
Funkcje SaltStack:
- Zaprojektowany z myślą o skali i szybkości, może obsłużyć do 10 000 stworów na mistrza.
- Bardzo łatwy w konfiguracji, ma pojedynczą architekturę zdalnego wykonywania.
- Pliki konfiguracyjne w SaltStack obsługują wszystkie rodzaje języków.
- Może równolegle wykonywać polecenia w systemach zdalnych, co pomaga w szybkim stosowaniu automatyzacji.
- Zapewnia prosty interfejs programowania przy użyciu interfejsów API języka Python.
Szef kuchni
Jedną z głównych przyczyn incydentów produkcyjnych jest niespójna konfiguracja aplikacji lub infrastruktury. Jest to powszechny problem i Szef kuchni ma na celu naprawienie tego.
Chef to narzędzie do zarządzania konfiguracją do zarządzania infrastrukturą. Został napisany w języku Ruby, a pierwsze wydanie miało miejsce w 2009 roku przez OpsCode.
Zarządzanie Infrastrukturą Szefa Kuchni produkt utrzymuje spójność każdego środowiska z tymi samymi konfiguracjami w infrastrukturze. Zapewnia różne narzędzia, takie jak Chef Infra, Chef Automate, Chef Enterprise i Chef Community do zarządzania infrastrukturą.
Funkcje zarządzania infrastrukturą szefa kuchni:
- Konfiguracje są napisane w YAML, łatwym do nauczenia się języku czytelnym dla człowieka.
- Zawiera wiele narzędzi programistycznych do pisania książek kucharskich (konfiguracji), testowania i rozwiązywania zależności.
- Łatwe funkcje współpracy w wersji Enterprise do łatwej obsługi złożonych środowisk.
- Wsparcie integracji z setkami narzędzi DevOps, takich jak GitHub, Jenkins, Azure Terraform.
Śruba
Śruba jest jednym z projektów open-source firmy Puppet.
Jest to bezagentowe narzędzie orkiestracyjne do automatyzacji IT. Korzystając z Bolt, możesz zautomatyzować wszystkie ręczne zadania, które musisz wykonać dzisiaj zgodnie z potrzebami. Mówię o zadaniach, takich jak wdrażanie aplikacji, rozwiązywanie problemów z serwerami, zatrzymywanie się do ponownego uruchamiania usługi, łatanie i aktualizowanie systemów itp.
Ponieważ Bolt nie wymaga agentów, nie musisz instalować żadnego oprogramowania agenta na zdalnych maszynach docelowych. Musisz zainstalować Bolt w swoim systemie lokalnym i możesz połączyć zdalne systemy docelowe za pomocą SSH lub WinRM.
Cechy śruby:
- Pisz plan śrub (połączenie poleceń, skryptów i zadań) w YAML, łatwy w użyciu i nauce.
- Dostępnych jest wiele istniejących planów i przepływów pracy Kuźnia lalek (biblioteka modułów).
- Z łatwością przenieś swoją automatyzację z Bolt do Puppet Enterprise, aby uzyskać lepszą skalowalność.
Terraformacja
Terraformacja to narzędzie udostępniania infrastruktury o otwartym kodzie źródłowym, służące do tworzenia i wdrażania infrastruktury przy użyciu infrastruktury jako kodu (IaC). Hashicorp opracował go, a pierwsze wydanie miało miejsce w 2014 roku.
Zapoznaj się z wprowadzeniem Terraform dla początkujących.
Terraform całkiem dobrze współpracuje z dostawcami usług w chmurze, takimi jak AWS, Azure, GCP, Alibaba. Możesz z łatwością wdrażać swoją infrastrukturę i zarządzać nią na dowolnym z tych dostawców usług w chmurze, korzystając z Terraform. Obecnie terraform jest szeroko stosowany przez wiele organizacji do zarządzania klastrami Kubernetes.
Zalety Terraforma:
- Z łatwością zarządza konfiguracją niezmiennej infrastruktury.
- Może wykonać pełną orkiestrację infrastruktury, a nie tylko zarządzanie konfiguracją.
- Używa HashiCorp Configuration Language (HCL), który jest czytelny dla człowieka i bardzo łatwy do nauczenia.
- Dostarcza gotowe moduły i dostawców dla setek narzędzi i technologii poprzez rejestr terraform.
Gdy zdecydujesz się go użyć, nie zapomnij postępować zgodnie z tymi najlepszymi praktykami Terraform.
Wniosek
To była moja lista najpopularniejszych rozwiązań do automatyzacji infrastruktury, które oferują produkty dla organizacji od średniej wielkości do poziomu korporacyjnego. Jeśli zaczynasz przygodę z DevOps i chcesz zautomatyzować swoją infrastrukturę oraz związane z nią monotonne zadania, to jest właściwy moment, aby wybrać jedno z wyżej wymienionych rozwiązań i rozpocząć automatyzację.