Visitors have accessed this post 3522 times.

Руководство по DevOps для начинающих: как попасть в IT-индустрию

8
0
3522
25 декабря 2020 9:32
Автор: Rebrain Me
DevOps

Visitors have accessed this post 3522 times.

Перевод статьиhttps://medium.com/slalom-build/beginners-guid-to-devops-how-to-make-it-into-the-industry-c1652d59807

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

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

  • Инфраструктура (облако или On-Prem)
  • Мониторинг
  • Автоматизация
  • Сети
  • Безопасность
  • Непрерывная интеграция и развертывание (CI/CD)

Этим широким спектром знаний вы должны полностью овладеть, когда начинаете карьеру в DevOps, и я не уверен, что в колледже или университете есть степень, которая называлась бы «Бакалавр DevOps». Итак, как же можно начать карьеру в DevOps?

Из моего личного опыта инженеры DevOps имеют за плечами 2 бэкграунда:

1 — разработчик, который интересуется инфраструктурой и решением задач.

2 — сисадмин, который умеет и желает развиваться.

Независимо от того, какой путь вы выберете, знайте, что в DevOps вы часто будете координировать информацию от нескольких команд (бэкенд, веб-интерфейс, DB и т. д.) и постоянно находиться в центре всего происходящего. Это и хорошо, и плохо, но это зависит от того, что вы хотите извлечь из данного опыта.

Теперь, когда вы немного поняли роль инженера DevOps в компании, расскажу о некоторых личностных качествах и профессиональных навыках, которые, я считаю, являются ключом к успеху.

Полная автоматизация мышления

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

1 — инфраструктура как код (IaC), например: Terraform, CloudFormation, ARM или Google Cloud Deployment Manager.

2 — управление конфигурацией, например: Ansible, Chef, Puppet или PowerShell DSC.

3 — язык программирования для скриптов, например, Python, Bash или GO.

4 — командная строка в зависимости от вашей среды (Linux или Windows). Не стоит управлять рабочими нагрузками из пользовательского интерфейса.

5 — управление репозиторием: в этой части будет сложно продвинуться, если вы не используете Git или какую-либо форму VCS. Изучите его, включите в свои рабочие процессы, так как это сэкономит вам кучу времени.

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

Эти инструменты помогут вам построить конвейеры CI/CD, масштабировать и, что наиболее важно, удовлетворять потребности бизнеса в кратчайшие сроки.

Придерживайтесь своих стандартов

Все инструменты, которые мы упомянули, — отличные. Но в то же время следует упомянуть, что 2 инженера могут использовать одни и те же инструменты, но получить разные результаты. Они будут 100% рабочими и правильными, просто разными. Чтобы решить эту проблему, стоит внедрить свои стандарты кода и используемых инструментов.

Первое, что сделала наша команда, когда мы приняли Ansible, — это установка строгого стандарта YAML. Это очень важно, потому что со временем к вам присоединятся новые члены команды, и, в конечном итоге, вы можете даже открыть доступ к некоторым из инструментов разработчикам.

Документация, документация, и еще раз документация

Когда вы начнете внедрять подход IaC, инструменты управления конфигурацией и т. д., вы быстро поймете, что написание любой документации в Confluence или Wiki — это провал. Ваш декларативный код — вот ваш источник истины и рабочий документ.

Вы спросите, где мы документируем то, как все это запустить? Файл README.md в репозитории всегда сделает эту работу.

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

Коммуникация и вовлеченность

Не приступайте к решению задачи, не убедившись, что у вас есть полное понимание того, каковы цели и задачи вашей команды. Эти командные цели автоматизации, IaC и т. д. помогут вам понять, какой вклад вы вносите в работу команды, в свою карьеру и, в конечном итоге, в бизнес.

В DevOps очень важно общаться внутри вашей команды и с другими командами. Я искренне верю, что лучшие системы разрабатываются и внедряются, когда вы являетесь частью единой многофункциональной команды и каждый использует свой опыт и знания. Вы можете посмотреть и убедиться, что в Slalom Build мы относимся к этой части очень серьезно, так как она встроена непосредственно в нашу методологию разработки продуктов (PEM).

Никогда не говорите «Мы так всегда делали»

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

Стремление к обучению

В зависимости от того, в какой области DevOps вы работаете, у вас есть доступ к обучению и получению множества сертификатов, будь то облачные сервисы, такие как AWS, GCP, Azure и т. д., или даже такие инструменты, как Kubernetes, VMware, RedHat и т. д.

Сертификация полезна тем, что помогает получить базовые знания, но я считаю, что такое обучение не дает реального опыта, который может сильно отличаться от теории. Чтобы преодолеть этот разрыв, можно, конечно, читать статьи и слушать подкасты, но ничто не сравнится с реальным опытом в реальном проекте. Ниже привожу некоторые подкасты, которые я слушаю, чтобы оставаться в курсе новых разработок (обратите внимание, в списке приведены подкасты на английском языке — ред.):

Книга «Надежность и безотказность как в Google», является обязательной к прочтению, поскольку она помогает понять основные принципы, которые мы рассмотрели.

От редакции

Если вы хотите стать DevOps-инженером, путь будет долгим и, вероятно, непростым. Но если вам нравится постоянно учиться, разбираться в новых фичах и инструментах, копаться в настройках – нет ничего невозможного. Для тех, кто хочет освоить самые актуальные навыки DevOps-инженера на практике — мы создали практикум DevOps by Rebrain.

А еще каждую неделю мы в live режиме решаем кейсы на наших открытых онлайн-практикумах, присоединяйтесь к нашему каналу в Телеграм, вся информация там — http://rebrainme.com/channel.

Комментарии (3)
Введено символов из возможных
Не отвечать

Вам также может понравится

7 шагов HighLoad
array(1) { [0]=> object(WP_Term)#11536 (16) { ["term_id"]=> int(9) ["name"]=> string(8) "HighLoad" ["slug"]=> string(8) "highload" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(9) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(3) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(9) ["category_count"]=> int(3) ["category_description"]=> string(0) "" ["cat_name"]=> string(8) "HighLoad" ["category_nicename"]=> string(8) "highload" ["category_parent"]=> int(0) } } HighLoad

Автор - Александр Пряхин

Все! Хочу работать с высоконагруженными системами, - решили вы. Начинаю учиться.

Ну что ж, давайте попробуем. Разберем пошагово, какие этапы вам нужно пройти, чтобы стать специалистом по высоким нагрузкам.

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

0
0
4 декабря 2020
Как получить список заданий Cron в Linux
array(1) { [0]=> object(WP_Term)#976 (16) { ["term_id"]=> int(6) ["name"]=> string(5) "Linux" ["slug"]=> string(5) "linux" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(6) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(28) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(6) ["category_count"]=> int(28) ["category_description"]=> string(0) "" ["cat_name"]=> string(5) "Linux" ["category_nicename"]=> string(5) "linux" ["category_parent"]=> int(0) } } Linux

Перевод статьи - https://linoxide.com/linux-how-to/how-to-list-cron-jobs-in-linux/

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

7
0
25 сентября 2020
Что должен уметь Linux-администратор
array(1) { [0]=> object(WP_Term)#11535 (16) { ["term_id"]=> int(6) ["name"]=> string(5) "Linux" ["slug"]=> string(5) "linux" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(6) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(28) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(6) ["category_count"]=> int(28) ["category_description"]=> string(0) "" ["cat_name"]=> string(5) "Linux" ["category_nicename"]=> string(5) "linux" ["category_parent"]=> int(0) } } Linux

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

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

26
1
6 ноября 2020