Опенсорсні інструменти DevOps: основне на 2021 рік
Що повинен знати і якими інструментами повинен володіти хороший DevOps-фахівець? На цю тему можна написати дисертацію, адже сфера DevOps — це скоріше рух чи філософія, аніж жорсткий набір правил чи практик. Ми склали перелік опенсорсних проєктів DevOps, які забезпечують все. Від складання контейнерів та оркестрування, до керування конфігурацією та автоматизацією CI/CD тощо.
Цей матеріал підійде і тим, хто прагне стати спеціалістом DevOps, і тим, хто їх невпинно шукає.
1. Kubernetes
Саме Kubernetes очолює список проєктів DevOps з відкритим вихідним кодом цього року. Це опенсорсне програмне забезпечення використовується для оркестрування контейнерів. Замість випуску мікросервісів вручну, Kubernetes (K8s) може автоматизувати розгортання, обслуговування та масштабування груп контейнерів у виробничому середовищі. ПЗ розміщується на сервері Cloud-Native Computing Foundation (CNCF).
2. Docker
Опенсорсне ПО Docker використовують для створення, доставляння та запуску програми у вигляді легкого контейнера. Контейнери упаковують двійкові файли, бібліотеки та залежності, які потрібні для запуску програми. За останні десятиліття контейнери відіграли ключову роль у гнучкій розробці, а контейнери Docker очолили цю революцію. У його основі лежить Docker Engine. Docker Hub також є відмінним ресурсом для пошуку та обміну попередньо упакованими функціями у вигляді контейнерів. Крім того, щоб усунути вразливості контейнерів може бути корисно використовувати інструменти аудиту контейнерів з відкритим кодом, такі як Docker Bench або Anchore.
3. Istio
Мікросервіси — зручний стиль розробки, але вони приносять складності у дотриманні послідовності застосування мережевої політики у всіх ваших сервісах. Сервісна сітка, наприклад, опенсорсна Istio, розв’язує цю проблему. Вона містить додатковий проксі-сервер поруч із кожним контейнером і абстрагує ці мережеві можливості до рівня управління.
4. GitHub Actions
GitHub — одна з найпопулярніших платформ для спільної роботи над програмним забезпеченням у світі. GitHub Actions спрощує автоматизацію всіх програмних робочих процесів. Тут можна створювати, тестувати та розгортати свій код прямісінько з GitHub. Зробіть так, щоб перевірки коду, управління філіями та сортування проблем виконувались так, як ви хочете.
5. Jenkins
Більшість філософії DevOps полягає в пошуку способів більш ефективної автоматизації та розгортання нових ітерацій. Частиною цієї мети є створення оптимізованого конвеєра безперервної інтеграції та безперервного доставляння (CI/CD). Jenkins — це опенсорсний сервер автоматизації із сотнями плагінів для автоматизації створення, розгортання та тестування програмних проєктів. Хоча GitHub Actions теоретично може замінити CI-сервер у майбутньому, більшість команд DevOps, як і раніше, віддають перевагу інструментам CI (Jenkins, CircleCI, TravisCI та GitLab Community Edition).
6. Prometheus
Prometheus — це набір інструментів для моніторингу та оповіщення систем. Prometheus є комплексним рішенням, до складу якого входять і фреймворк для моніторингу, і власна темпоральна база даних. Перевагами проєкту можна назвати: простоту розгортання; широкі можливості інтеграції зі сторонніми програмами та сервісами; зручний графічний інтерфейс для роботи з метриками.
7. Ansible
Опенсорсний Ansible можна використовувати для автоматизації таких речей, як виділення ресурсів у хмарі, робота в мережі, розгортання, керування конфігурацією та інших завдань. Ansible має просту, але ефективну архітектуру, яку відносно легко зібрати — все, що вам потрібно, це текстовий редактор та командний рядок.
8. Chef
Chef — це ще одне рішення «інфраструктура як код» (IaC) для автоматизації керування конфігурацією. Chef використовує Ruby та добре працює з усіма основними постачальниками хмарних послуг (CSP). Це може бути дуже корисно при створенні та налаштуванні великої кількості машин.
9. Terraform
Terraform – це інструмент для безпечного та ефективного створення, зміни та управління версіями інфраструктури. Ще один інструмент IaC, який можна використовувати для запуску збірки, управління версіями та подальшої автоматизації з використанням файлів конфігурації. Одним з унікальних аспектів Terraform є акцент на керуванні версіями — це дозволяє вам оновлювати проєкт вашого сервісу так само як і ваше ПЗ.
10. JAMStack
Проєкти JAMStack, які більше схожі на методологію «негласної розробки», ніж на окремий інструмент із відкритим вихідним кодом. Наприклад, JAMStack часто використовує опенсорсні системи керування контентом, такі як Ghost, Strapi та/або Netlify CMS. Сьогодні Jamstack використовується для ширшого позначення архітектурного підходу до створення вебсайтів.
11. ELK Stack
Пошукова та аналітична система ELK Stack — це об’єднання трьох проєктів з відкритим вихідним кодом, які підтримує Elastic: Elasticsearch, Logstash і Kibana. Logstash — це конвеєр обробки даних на стороні сервера, який одночасно приймає дані з декількох джерел, перетворює їх, а потім відправляє в схованку, таку як Elasticsearch. Kibana дозволяє користувачам візуалізувати дані за допомогою діаграм та графіків у Elasticsearch. За допомогою цих компонентів розробники можуть отримувати та реєструвати дані з будь-якого джерела та створювати корисні візуалізації.
12. Nagios
- Nagios дозволяє організаціям виявляти та розв’язати проблеми ІТ-інфраструктури до того, як вони вплинуть на критично важливі бізнес-процеси. Цей опенсорсний інструмент написаний мовою C. Він використовується для моніторингу мережі, серверів та додатків. Nagios допомагає моніторити Windows, Linux, UNIX та вебдодатки. Він надає два методи для моніторингу сервера: агентний та безагентний. Під час моніторингу мережі він також перевіряє мережеві з’єднання, маршрутизатори, комутатори та інші необхідні речі.
Підсумок
Світ DevOps сповнений цікавих проєктів з відкритим вихідним кодом. Ви можете вибрати інструмент, який відповідає потребам вашого бізнесу. Вищезгадані інструменти DevOps добре працюють не лише окремо, а й разом.
Є що додати чи вважаєте якийсь проєкт зайвим? Пишіть у коментарях.