ru:https://highload.today/blogs/kak-bystro-vprygnut-v-devops-gde-zarabatyvayut-po-5000-esli-vy-uzhe-razrabotchik/ ua:https://highload.today/uk/blogs/kak-bystro-vprygnut-v-devops-gde-zarabatyvayut-po-5000-esli-vy-uzhe-razrabotchik/
logo
DevOps      29/06/2021

Как быстро впрыгнуть в DevOps, где зарабатывают по $5000, если вы уже разработчик

Олег Миколайченко BLOG

Head of Infrastructure в SQUAD

Уже написано много статей, как стать DevOps-инженером с нуля, хотя я очень сомневаюсь в их реалистичности. Интереса к этой профессии много — неудивительно, ведь вполне реальные зарплаты там достигают $5000.

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

Изучаем, как работает платформа в деталях 

Часто «локально» все работает, даже когда в Kibana видно кучу ошибок с прода. В этом могут быть виноваты все (бизнес, девопсы, разработчики), и это нужно чинить в первую очередь.

Development environment должен быть создан теми же инструментами и из той же кодовой базы. Как описывать инфраструктуру как код, будем учить дальше — сейчас разбираемся, как она в целом работает. 

Это может быть Kubernetes, AWS EKS, или даже EC2-инстансы под балансировщиком нагрузки — что угодно. На этом этапе нужно полностью дать себе ответ на вопрос — как выглядит production-окружение? Как оно действительно работает?

Как проверить, что вы поняли, как работает инфраструктура: 

  • произошел Aha-момент;
  • понятно, что происходит после merge в git;
  • вы нашли метрику, на основе которой работает автоскейлинг;
  • графики на Grafana имеют какой-то смысл;
  • Онлайн-курс "React Native Developer" від robot_dreams.
    Опануйте кросплатформну розробку на React Native та навчіться створювати повноцінні застосунки для iOS та Android.
    Програма курсу і реєстрація
  • Jenkins такой же страшный и непонятный, но уже меньше.

Полезные хаки: 

  • пытаемся нарисовать архитектуру в draw.io и добавить как плагин в Confluence (скорее всего, такой архитектуры там нет, поэтому всем будет полезно);
  • dev-окружение полностью повторяет production, но намного меньше (это нужно для того, чтобы «локально» тоже не работало);
  • для каждой неизвестной технологии формируем базовое понимание, в идеале — пару слов, которые точно описывают предназначение (например, Istio — коммуникация между сервисами, AWS ALB — балансировщик HTTP/HTTPS, CloudFront — обычный CDN и т.д.).

На этом этапе вы уже победили, так как по итогам в худшем случае окажетесь Staff Engineer, который понимает в деталях, как работает приложение и как работает production. Теперь вы — центр знаний и путь коммуникации с DevOps. Вас любят девопсы, ваша команда и тестировщики. 

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

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

Самое время разобраться в Infrastructure as a Code, а именно — понять, каким образом настроили инфраструктуру.

Опираясь на мой опыт, могу сказать что с вероятностью 80% вы увидите Terraform + Ansible, а с 20% — разные тулы (CloudFormation, Pulumi, Chef, Puppet, Crossplane и т.д.). Опытные девопсы скажут, что Ansible — это не IaC, а Crossplane — вообще GitOps для IaC, но мы сейчас это упустим и будем считать, что эти тулы делают одно и то же — позволяют описывать инфраструктуру в коде.

Дальше идем с тестовую лабораторию и делаем следующее:

Курс Digital Marketing від Mate academy.
На курсі ви навчитесь запускати рекламу в кабінтеах Facebook/Instagram та Google. Ви також познайомитися з SEO та Email marketing. Це ті навики які найчастіше просять ІТ компанії від Junior Marketers. А ми вас не лише навчимо, а й працевлаштуємо!
Дізнатися більше про курс
  • настраиваем первый сервер на HCL в Terraform;
  • настраиваем первую базу данных и пользователей в ней;
  • настраиваем firewall, SSH-ключи;
  • масштабируем первый сервер в пачку серверов;
  • добавляем их все в балансировщик.

И добавляем теории: 

  • что такое Terraform state;
  • как заимпортить существующие ресурсы в Terraform-код;
  • зачем нужен state lock;
  • Онлайн-курс "Створення текстів" від Skvot.
    Великий практичний курс для розвитку скілів письма та створення історій, які хочеться перечитувати Результат курсу — портфоліо з 9 робіт та готовність братися за тексти будь-яких форматів.
    Детальніше про курс
  • как сделать удобный модуль;
  • какие удобные линтеры добавить (tfsec, tflint и т.д.).

И дальше стоит попросить доступ в Terraform-репозиторий. Цель — более детально изучить, как настроена инфраструктура. На этом этапе вы уже сделали для девопсов архитектуру, обучили свою команду и ускорили CI. Проблем быть не должно. 

Полезные хаки: 

  • вся инфраструктура должна быть в коде, до самого маленького сеттинга;
  • нет, как с юнит-тестами не получится, потом не напишем;
  • в любимую IDE уже есть HCL-плагин;
  • на любую задачу уже есть готовый опенсорс-модуль. 

Мониторим приложение

Дальше добавляем кастомные метрики, которые могут помочь понять, в каком состоянии находится приложение: RPS, тайминги на операции, counter на завершенные задачи, количество ошибок + все, что может показаться вам полезным.

Основи Python для школярів від Ithillel.
Відкрийте для вашої дитини захопливий світ програмування з нашим онлайн-курсом "Програмування Python для школярів". Ми вивчимо основи програмування на прикладі мови Python, надаючи зрозумілі пояснення та цікаві практичні завдання.
Зареєструватися

Базовый вариант — использовать Prometheus SDK, продвинутый — OpenTelemetry. В 99% случаев у вас уже будет Prometheus (или еще Datadog/New Relic, но запущен процесс миграции в Prometheus), поэтому лучше начать реализацию с первого варианта и «продавать» второй.

Сделайте дашборд в Grafana на основе этих метрик. Все переменные должны быть шаблонизированы (кластер, окружение). Спросите о обратной связи и улучшите дашборд.

Дальше посмотрите, как сделать алерты для оповещений. Базово — Alertmanager в Slack, продвинуто — Alertmanager → PagerDuty → роутинг оповещений между членами команды и severity.

Разберитесь, как именно работает мониторинг и как сделать, чтобы с вашего приложения собирались метрики. Посмотрите, куда они попадают и сколько хранятся.

Изучаем Kubernetes + 100500 тулов 

CNCF Landscape: 955 проектов

CNCF Landscape: 955 проектов — https://landscape.cncf.io/

Обязательно нужно знать Kubernetes — это основная платформа для микросервисов и будет такой до 2030 года, дальше — будет видно. Советую начинать с Kubernetes by Example, потом можно сдать CKA-сертификацию (она будет полезна, так как включает hands-on-экзамен — это значит, что нельзя просто заучить правильные ответы).

Вместе с Kubernetes вы разберетесь:

  • в типах деплойментов (Recreate, Rolling Update, Canary, Blue/Green) + научитесь их реализовывать;
  • в типах сервисов, селекторах, ингрессах; 
  • в упаковке приложений в helm;
  • в автоскейлинге нод, подов, и задач;
  • Онлайн-курс "Бренд-менеджмент" від Laba.
    Розберіться в комплексному управлінні брендом: від його структури до комунікації з аудиторією.Дізнайтесь принципи побудови бренд-стратегії, проведення досліджень і пошуку свого споживача.
    Детальніше про курс
  • в kube-prometheus-operator — one love; 
  • в том, какие задачи решают тулы в CNCF.

Сначала может показаться, что Kubernetes — самое ужасное, что случалось в вашей жизни. Потом может прийти мысль, что это как разработка на YAML с чтением документации. И только на третьем этапе приходит осознание, что это — отличный оркестратор. С огромным количеством багов и еще большим набором инструментов для разных задач.

Linux 

Нужно выучить Linux Administrator Roadmap

3 обязательные книги

Google SRE books 

Google SRE books

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

  1. Site Reliability Engineering — теория для девопсов, поможет всегда знать как правильно делать, и выходить сухим из воды.
  2. The Site Reliability Workbook — практика, позволит не набивать своих шишек, а учиться на ошибках других.
  3. Building Secure & Reliable Systems — практики для работы в команде безопасно и продуктивно (так, как это делают в Google).

    Читать строго в этой последовательности. 

Осознаем свою ценность 

DevOps — это о коммуникации и взаимодействии в первую очередь. Поймите, где ваша сила.

Бізнес англійська від Englishdom.
Тут навчають за методикою Кембриджу, завдяки якій англійську вивчили понад 1 мільярд людей. Саме вона використовується в найкращих навчальних закладах світу, і саме за нею створені курси.
Інформація про курс

Разработчик, который переходит в DevOps, может быть очень полезен. Вот почему: 

  • вы точно знаете, что можно выкосить из этапа сборки приложения;
  • с легкостью можете поправить код конфигурации, аргументы;
  • можете быстро и качественно добавить новые метрики или новую библиотеку;
  • более «понятно» продать tracing, rate limits или autoscaling команде разработки;
  • можете починить баг в любой опенсорс-девопс-туле (мало кто из девопсов может);
  • знаете отличия между инкапсуляцией и полиморфизмом.

У тестировщиков вообще все карты в обоих рукавах: 

  • опыт автоматизации и знание языков программирования;
  • Курс English For Tech: Speaking&Listening від Enlgish4IT.
    Після курсу ви зможете найкраще презентувати свої досягнення, обговорювати проекти та вирішувати повсякденні завдання англійською мовою. Отримайте знижку 10% за промокодом TCENG.
    Дізнатись про курс
  • понимание, как правильно тестировать инфраструктурные изменения;
  • опыт взаимодействиями с разработчиками; 
  • характерный склад ума, который позволит просчитать большинство edge-кейсов перед деплоем в прод;
  • знание всего девопс-тулсета для мониторинга (конечно, ведь вам не раз приходилось!).

Резюмируя: инженеру из любой области будет интересно в DevOps, и команда только выиграет от такого свежего члена команды. Новый опыт, другой фокус, желание закатать рукава — это основная ценность и очень важная составляющая.

kubectl apply -f joboffer.yaml

Дальше остается только применить полученные знания и получить предложение о работе. В сообществах программистов бытует мнение, что DevOps много зарабатывают просто так — это, конечно, не так. Я очень верю, что эта статья сориентирует в космосе вариантов свитчинга в DevOps и приведет к нужному результату.

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Онлайн-курс "Project Manager" від Laba.
Станьте проджектом, що вміє передбачати ризики наперед і доводити проєкт до результату, який хочуть замовники. Поділиться досвідом Павло Харіков, former Head of PMO в Kyivstar.
Програма курсу і реєстрація

Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: