Выяснилось: самые важные инструменты DevOps для новичков
21 февраля 2022 г.Инструменты, которые вам нужно изучить
DevOps – это сокращение от Development Operations. DevOps – одна из самых горячих тем сегодня. Чтобы стать DevOps-инженером, вам нужно освоить множество навыков.
DevOps — это совместная ответственность группы разработки и эксплуатации. Это практика и инструменты, которые позволяют эффективно запускать службы и приложения в выбранной инфраструктуре. Он охватывает предоставление и обслуживание инфраструктуры и процессов, которые в ней выполняются.
Я занимаюсь DevOps (наряду с разработкой) со своей командой уже много лет. У меня не было знаний об инструментах, но постепенно я приобрел опыт в довольно многих из них.
Здесь я представляю дорожную карту, которая может помочь вам развить навыки DevOps:
Компьютерная и сетевая архитектура
Компьютерная и сетевая архитектура – это понимание базовой структуры компьютерной системы и принципов работы сетей. Сюда входит функционирование ЦП, памяти, внешних устройств, сетевых протоколов, протоколов маршрутизации и т. д.
Знание этого поможет вам принимать такие решения, как:
- Какой службе нужны какие ресурсы (сервер)
- Какой должна быть структура сетей, таких как подсети и группы безопасности
- Какие порты открыть
Скрипт
Написание сценариев — важный навык для любой области, которая требует от вас программирования. Это обязательный навык для разработчика DevOps.
DevOps включает в себя автоматизацию процессов, для которых инженеры должны писать сценарии. Скрипты можно создавать на разных языках — shell, python, javascript и т. д.
Умение писать сценарии позволяет легко автоматизировать развертывание, процессы и повседневную деятельность.
git и Гитхаб/Битбакет/Гитлаб
Git – самый популярный среди разработчиков контроль версий. Github/Bitbucket/Gitlab – это репозитории, которые размещать git-серверы для вас. На этих платформах вы храните свой код в git, и эти платформы предоставляют вам множество инструментов управления.
Инженер DevOps должен быть знаком с командами git и конвейерами DevOps, предоставляемыми этими платформами. Это помогает им настроить конвейеры CI/CD.
Дженкинс
Jenkins – один из наиболее часто используемых инструментов автоматизации и CI/CD. Это сервер автоматизации с открытым исходным кодом.
Большое разнообразие плагинов, поддерживаемых Jenkins, пригодится при автоматизации ваших проектов. Эти плагины варьируются от таких инструментов, как Jira, JUint, до инфраструктурных плагинов, таких как плагин EC2, Docker, и коммуникационных плагинов, таких как Slack Notification.
Ansible/Puppet/Chef/SaltStack
Ansible, Puppet, Chef и SaltStack все это инструменты автоматизации инфраструктуры и управления конфигурацией. Эти инструменты используются для развертывания, настройки и управления серверами в больших масштабах.
Споры о том, какой из этих инструментов лучше, ведутся уже довольно давно.
Я выбрал Ansible в первую очередь из-за простоты настройки и управления. Создать плейбуки Ansible для развертывания чрезвычайно просто.
Изучение одного из этих навыков является обязательным для разработчика DevOps.
Докер
С помощью Docker вы можете контейнеризовать свои приложения и службы. Вы можете создавать контейнеры с различными приложениями, изолированными друг от друга. Каждый контейнер имеет свои файлы, установленное программное обеспечение и библиотеки.
Docker также считается более быстрым способом развертывания по сравнению с Ansible, Puppet, Chef и SaltStack. Эти контейнеры можно использовать для размещения приложения на сервере любого типа.
Облачные платформы
Чтобы стать отличным разработчиком DevOps, вам нужно узнать (почти) все об облачной платформе и всех предоставляемых ею услугах.
Знание облачной платформы позволяет выбрать правильный сервис для ваших целей и помогает снизить затраты на инфраструктуру.
Управление журналом
Наличие значимых журналов для ваших приложений и служб является важным аспектом развертывания. Управление журналом включает в себя следующее:
Правильное управление журналом для вашего программного обеспечения приносит следующие значения:
- Отладка
- Анализ ошибок
- помогает контролировать ваши приложения
- Поведение пользователей
Существует множество способов управления журналами. Есть несколько таких инструментов, предоставляемых облачными платформами, например CloudWatch AWS.
ELK – наиболее широко используемый инструмент для мониторинга и визуализации журналов. Это комбинация трех инструментов с открытым исходным кодом:
Вы можете анализировать, искать и фильтровать журналы. Kibana поможет вам создать красивую визуализацию из журналов.
CI/CD
Непрерывная интеграция/непрерывное развертывание — это процесс выпуска программного обеспечения, которое было квалифицировано и развернуто автоматически.
CI/CD сокращает время от внесения изменений в код до поставки программного обеспечения.
Построение конвейеров CI/CD — одна из самых важных обязанностей команды DevOps. Существует множество способов создания конвейеров, таких как конвейер Gitlab, конвейер Bitbucket, сборка AWS Code.
Чтобы построить конвейер CI/CD, вам необходимо работать вместе с командой Dev и QA. Отличный конвейер (сопровождаемый отличными практиками) не требует ручного вмешательства от фиксации кода до тестирования и развертывания.
Инфраструктура как код
Создание и настройка облачной инфраструктуры с помощью консоли, предоставляемой облачной платформой, проста и наивна.
Использовать консоль просто и рекомендуется для небольших инфраструктур. Для крупных инфраструктур вам необходимо иметь свою инфраструктуру в виде кода. Вы можете поднимать и отключать стеки с помощью одной команды или нажатия кнопки.
CloudFormation (от AWS) и Terraform – несколько популярных «инфраструктура как код». программные средства.
Кубернетес
Kubernetes – это система с открытым исходным кодом, которая используется для развертывания и управления контейнерами на нескольких серверах.
В настоящее время в качестве способа развертывания предпочтение отдается контейнерам. Kubernetes решает эту проблему в больших масштабах, запуская приложения и гарантируя отсутствие простоев.
Популярные облачные платформы предоставляют готовые сервисы Kubernetes, такие как
- GKE по GCP
- EKS от AWS
- AKS от Azure
Заключительные слова
Вам не нужно овладевать всеми вышеперечисленными навыками, чтобы стать инженером DevOps. Вам, безусловно, нужно освоить некоторые из этих навыков и учиться по мере необходимости.
- Впервые опубликовано [здесь] (https://levelup.gitconnected.com/the-ultimate-devops-roadmap-for-newbies-65ea10a0c115)*
Оригинал