DevOps инженери – кои са те и какво правят
Кои са DevOps инженерите? Какво точно правят и с какво се различават от Agile инженерите? Нека разберем условията и да разгледаме основните технологии и инструменти, които трябва да знаете, за да станете DevOps разработчик.
Първото и основното нещо – DevOps всъщност не е специализация. Това са методи, които комбинират разработка, тестване и внедряване на софтуер в един процес, точно като Agile. Но, за разлика от подхода Agile, практиките на DevOps обединяват и оперативния екип, увеличавайки автоматизацията и сътрудничеството във всички части на жизнения цикъл на програмата или приложението. Първоначално терминът DevOps се използваше само за описание на самия подход към разработката на софтуер, но след това новата професия започна да се нарича с този термин. Според статистиката с подхода DevOps броят на грешките по време на внедряването на програмата намалява пет пъти.
Така отговорът на въпроса „кой е devops и какво прави той“ ще бъде: DevOps Engineer е ИТ специалист, който синхронизира работата на програмисти, тестери и системни администратори, а също така отговаря за автоматизирането на конфигурация и внедряването на приложения. Тоест, той се занимава с въпроси в пресечната точка на програмирането (dev – разработка) и (ops – операции).
Какво прави DevOps инженер?
В зависимост от квалификация обхватът на дейността на специалиста може да включва следните категории на разработка, тестване и внедряване на софтуер:
- Контрол върху непрекъснатото създаване на код по време на всички етапи
- Създаване на мрежа от облачни услуги с установени връзки между тях
- Постоянно наблюдение и организиране на централизирано логване
- Гарантиране на сигурността на данните и всичко свързано с проекта
- Разработка, конфигуриране и настройка на инфраструктура
Независимо каква е работата на DevOps, изискванията за фундаментални познания за позицията на такъв специалист:
- Владеене на език за програмиране – най-често това е Bash и/или Python
- Уверена работа с операционна система Linux
- Възможност за работа с облачна инфраструктура AWS (Amazon Web Services), Azure, Google Cloud
- Разбиране как работят базите данни
- Практически опит със системи за събиране и автоматизиране на конфигурации и оркестрация.
Три основи на DevOps Software: Python, Linux и AWS. За да станете devops, трябва постоянно да подобрявате знанията си, да ги актуализирате, да научавате нови методи и инструменти.
Какви инструменти и технологии използва DevOps?
Тъй като DevOps е методологична концепция, създаване и конфигуриране на инфраструктура, автоматизиране на процеси, пакетирането не е универсално. Следователно има много технологии и инструменти, които могат да бъдат използвани.
Инструментите на DevOps се променят и подобряват бързо и постоянно, докато концепциите много по-рядко. Използването на инструменти ще ви позволи да овладеете и въплътите концепции от всички нива на сложност.
Какви инструменти трябва да овладее DevOps Engenieer?
- Система за контрол на версиите (SCM). Най-често използваните онлайн услуги са GitLab, GitHub, Jenkins, BitBucket, Bamboo.
- Непрекъсната интеграция (CI) в изолирана контейнерна среда – GitLab-CI инструменти, Jenkins и др.
- Управлението на данни – инструментариум за поддържане на бази данни са FlywayDB, LiquiBase, Flocker.
- Amazon Web Services, Azure, Heroku
- Оркестрация – OpenShift, Docker, Swarm
- Мониторинг New Reliс, Zabbix, DataDog
- Logging Splunk, ELK Stack
Инструменти за сътрудничество
Те се използват за развитие и оптимизиране на сътрудничеството, както и за разработване на нови начини за взаимодействие в екип. Категории:
- Проследяване на задачи с Jira, Trello, Pivotal Tracker
- ChatOps – системи за съобщения MatterMost, Slack
- Документация за вътрешна употреба – вики-система Confluence , маркиране на данни MarkDown
Следва да отбележим, че hard skills и усвоените инструменти може да варират в зависимост от проекта! Специалистите са назначени за проекта с конкретна цел, така че уменията и инструментите са индивидуален въпрос. Има шанс да се заемете с проект и да се почувствате свободни с уменията, които вече имате, а може би,ще трябва да овладеете нови, за да изпълнявате работни задачи.
В допълнение към такива усвоени популярни инструменти като Azure, AWS, Git, Jenkins и др., работи че и с високо мащабируеми решения. Приспособявайки се към желанието на клиента, те избират индивидуален подход, като не губят, а само придобиват нови знания и разширяват границите на своя опит.
Какво да научите за DevOps? Препоръки за литература:
- “The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations” Gene Kim, Patrick Debois, John Willis, Jez Humble
- “Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale” Jennifer Davis, Ryn Daniels
- “Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))” Jez Humble, David Farley
- “Securing DevOps: Security in the Cloud” Julien Vehent
- “Practical Guide to Continuous Delivery“ Eberhard Wolff
- “Terraform: Up and Running: Writing Infrastructure as Code“ Yevgeniy Brikman
- “Cloud Native DevOps with Kubernetes: Building, Deploying, and Scaling Modern Applications in the Cloud” John Arundel, Justin Domingus
Кой може да стане DevOps инженер
Ако говорим за това кой най-често преминава към devops, това са системните администратори, те най-често овладяват тази специализация, тъй като техните знания частично отговарят на изискванията на специалността. Те трябва да овладеят основните DevOps технологии и инструменти, свързани с тестване и внедряване. Също така, тестери с опит, които искат да научат нови области, могат да станат DevOps инженери. За да направите това, можете да използвате данни от отворени източници, видео уроци в YouTube, общности в Telegram или да вземете курсове. Последният вариант предоставя повече възможности за получаване на позиция Trainee.
10 популярни въпроса за интервю за DevOps инженер
Подготвяте ли се за вашето Junior DevOps интервю? Прегледахме форумите предварително, разговаряхме с HR специалисти и отделихме 10-те най-чести въпроса, които се задават на интервю за начинаещ Devops. Гледайте, за да сте подготвени:
- Какво е Scrum? Как работи той?
- Какво е Kanban? Как работи той?
- Системна архитектура на Linux. Основни команди за управление на операционната система чрез командната обвивка
- Кои са основните мрежови протоколи? Каква е разликата между тях?
- VPN протокол. Примери за VPN сървър
- Основи на Git (основни команди, управление на клонове, маркиране)
- CI/CD. Основни етапи
- Примери за CI/CD системи. Какъв DSL използват?
- Системи за виртуализация. Как действат?
- Контейнеризация. Основни времена за изпълнение на контейнери. Основни Docker команди
Как да станете DevOps инженер
За да станете DevOps инженер и да се квалифицирате за позицията Senior DevOps, трябва постоянно да учите и да овладявате непрекъснато развиващите се инструменти и технологии.
Можете да започнете с DevOps Roadmap, която очертава по разбираем начин какво точно трябва да знаете, откъде да започнете. Добра първа стъпка е да потърсите онлайн курсове по избрани теми.
За да научите AWS, можете да започнете с различни курсове на aws.amazon.com. Това са над 100 продукта за разработка на AWS. Тук можете не само да учите, но и да получите помощта на външни сертифицирани експерти и практически опит.
Azure на Microsoft – azure.microsoft.com – предоставя безплатна опция за акаунт за изграждане, внедряване и управление на приложения в множество облаци.
DevOps Engineer е обещаваща специализация, която предоставя широки възможности за професионално развитие. Всеки, който е привлечен от работата по разработка на софтуер и който иска да разбере всички връзки на жизнения цикъл на софтуера, за да създаде висококачествен и популярен продукт, може да започне.