Поиск по сайту:
Счастливой жизни нет, есть только счастливые дни (А. Терье).

DevOps – путь джедая

14.07.2023
DevOps – путь джедая

«– Мой код превосходен, а инфраструктура тормозит. А еще ваша сеть, кхм-кхм, работает так себе.

– Сеть работает отлично, задержка в пределах нормы, это вы там что-то понаписали» 

– из разговора разработчика и системного администратора

До появления DevOps, подобное “перебрасывание мяча” от одного отдела к другому было обыденностью:

  1. у сетевого администратора не хватало компетенций и информации о том, как настраивать сервера для развертывания среды разработки;
  2. приходилось подключать для этого самих программистов;
  3. у которых, в свою очередь, не было исчерпывающих компетенций в инфраструктуре.

 

Бизнес такая картина не устраивала, и к моменту, когда time to market встал во главе бюджетов на ИТ, на стыке этих областей знаний появился DevOps-инженер  – системный администратор, который понимает и инфраструктурную часть, и разработку.

Иными словами, DevOps – это новый виток эволюции админа, который умеет  больше и, конечно, зарабатывает больше. Он значительно ускоряет релизы обновлений, открывает путь к легкому масштабированию и повышению надежности инфраструктуры и превращает разработку в полноценный “конвейер”.

Путь такой эволюции часто тернист. Рассмотрим, как пройти его без помех и овладеть инструментами DevOps-инженера.

 

Управление исходным кодом

На этапе старта обязательно знать 3 инструмента:

Git

Git позволяет отслеживать изменения в коде, совместно работать над проектами и управлять историей версий. Git обеспечивает эффективную работу в команде, возможность ветвления и слияния кода, а также возврат к предыдущим версиям при необходимости.

GitHub

Основные преимущества: высокая доступность и производительность своей инфраструктуры, понятный интерфейс с продвинутыми функциями, различные интеграции и хороший уровень безопасности.

Читать  5 способов, которыми владельцы малого бизнеса могут мотивировать себя

Gitlab

Система поддерживает полный цикл разработки, включающий управление исходным кодом на Git, Continuous integration, Continuous Delivery, issue tracking. На одном Gitlab можно полностью вести разработку, «деплоиться» и прочее. Хорошей новостью для будущих DevOps стал открытый бета-тест Code Suggestions — ИИ-функции, помогающей разработчикам писать код. С помощью Code Suggestions пользователи могут генерировать фрагменты кода по текстовому описанию на естественном языке. К примеру, можно попросить написать шаблонный сниппет или тесты.

 

Контейнеры и контейнерная оркестровка

Контейнеры – это изолированные и легковесные пакеты, включающие приложения и их зависимости, например, библиотеки и конфигурационные файлы. Они могут быть запущены на любой платформе с контейнерной поддержкой.

Технология обеспечивает единообразное окружение для разработки, тестирования и развертывания приложений в разных средах. Ключевые инструменты:

Docker – это платформа, позволяющая упаковать приложения в легковесные, изолированные контейнеры, которые могут быть развернуты на любой платформе. Docker облегчает разработку, доставку и масштабирование.

Чтобы быстрее освоить инструмент, рекомендуем ознакомиться с подборкой из 21 исполняемой и информативной команды Docker.

Kubernetes – это система контейнерной оркестровки с открытым исходным кодом, которая обеспечивает автоматизированное развертывание и управление контейнеризированными приложениями. Kubernetes позволяет создавать и администрировать кластеры, обеспечивая автоматическое масштабирование, самовосстановление и балансировку нагрузки.

Helm – это пакетный менеджер для Kubernetes. Helm позволяет упаковывать приложения и компоненты инфраструктуры Kubernetes в управляемые чарты, которые легко устанавливать и обновлять.

 

Инфраструктура как код (IaC)

Это подход, при котором инфраструктура и ее конфигурация определяются и управляются через код. IaC позволяет автоматизировать процессы развертывания и управления инфраструктурой, а также обеспечивает повторяемость и масштабируемость. Наиболее популярные инструменты: Terraform, Ansible, Puppet и Chef.

Читать  Как получить ввод от пользователя в сценарии Bash [Дополнительные методы]

Terraform позволяет определить инфраструктурные ресурсы в виде декларативного кода и автоматически развернуть их на облачных платформах или локальных серверах. Terraform обеспечивает повторяемость, масштабируемость и упрощает управление состоянием инфраструктуры. Овладеть инструментом быстрее поможет утилита для автоматизации и организации совместной работы с Terraform – terrakube.

Ansible – это инструмент для автоматизации конфигурации и управления серверами. Он позволяет определить и автоматически достичь желаемого состояния как локальных, так и удалённых систем.

44 совета по Ansible: рекомендации, Best Practices, подходы для работы с внутренними компонентами продукта – размещены здесь.

Puppet или Chef – это инструменты для конфигурационного управления и оркестрации серверов, обеспечивающие централизацию, масштабируемость и повторяемость процессов.

 

Процессы непрерывной сборки и доставки (CI/CD)

Continuous Integration/Continuous Delivery – это практика разработки ПО, которая включает автоматическую сборку, тестирование и развертывание приложений на протяжении всего жизненного цикла проекта. В DevOps необходимо знать CI/CD, чтобы ускорять процесс доставки приложений и снижать вероятность ошибок, позволяя командам быстро и безопасно вносить изменения. На практике используют:

Jenkins – это инструмент с открытым исходным кодом для автоматизации сборки, тестирования и развертывания приложений.

GitLab CI/CD позволяет разрабатывать, тестировать и развертывать приложения на основе репозиториев GitLab.

CircleCI – это облачная платформа CI/CD, которая предоставляет простые и гибкие возможности для автоматизации сборки и развертывания приложений.

Читать  Источник бесперебойного питания: щит от электронных бед

 

Мониторинг и логирование

Мониторинг и логирование помогают обеспечить стабильность и производительность:

  • отслеживая состояния системы, метрик, доступности и проблем с приложениями;
  • собирая и анализируя записи о действиях и событиях.

Инструменты, которые DevOps должен знать:

Prometheus – популярная система мониторинга и сбора метрик, которая позволяет отслеживать состояние системы и приложений, а также предоставляет возможности алертинга. Полезное о Prometheus – Awesome Prometheus.

Grafana – инструмент для визуализации данных из различных источников, в том числе, Prometheus, и создания дашбордов для мониторинга производительности и состояния системы.

Nagios – система с открытым исходным кодом, которая предоставляет возможности для мониторинга различных ресурсов и служб, а также отправки оповещений о проблемах.

 

Резюме

Мы рассмотрели ключевые инструменты, которые необходимо освоить, чтобы стать DevOps. Но на этом путь не заканчивается – концепция напрямую взаимосвязана с такими понятиями, как Lean, ITIL и Agile. Как именно – рассказали тут. Об облачной “революции” в мире разработки – тут.

Также всё большую популярность набирает область DevSecOps, где безопасность и управление уязвимостями играют одну из ключевых ролей. О главном в защите приложений и управлении уязвимостями за 10 минут рассказали здесь. А о том, чему могут научить самые крупные кибератаки – здесь.

На “десерт” – Общий набор DevOps tools 2023:

 

Подробный список с описанием тут.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
В современном мире, где информационные технологии играют все более важную…

Спасибо!

Теперь редакторы в курсе.