Роли и обязанности AWS DevOps-инженера: обзор профессии
Автор статьи — IT-эксперт Питер Мерфи.


Кто такой AWS DevOps-инженер?
AWS DevOps-инженер — это специалист со знаниями и навыками в области администрирования систем, разработки программного обеспечения и автоматизации, который специализируется на работе с облачными сервисами AWS (Amazon Web Services).
AWS DevOps-инженеры должны уметь:
- Строить безопасную, надежную и масштабируемую облачную инфраструктуру с использованием Amazon Web Services.
- Внедрять лучшие практики мониторинга приложений и составлять рекомендации по их улучшению.
- Писать документацию и примеры кода, составлять инструкции и презентации для стейкхолдеров разного уровня, руководствуясь лучшими практиками DevOps.Использовать инструменты автоматизации.
- Писать документацию и примеры кода, составлять инструкции и презентации для стейкхолдеров разного уровня, руководствуясь лучшими практиками DevOps.
- Обеспечивать бесперебойную работу продакшна и тестовой среды/стейджинга.
- Работать с услугами AWS, включая VPC, EC2, Ebs, S3, ASG, Cloudwatch, Lambda и балансировщиком нагрузки.
- Использовать инструменты для оркестрации контейнеров: AWS ECS, Docker и Kubernetes.
- Работать с методами непрерывной разработки и тестирования.
Для новичков в этой отрасли также важно развивать soft skills, в том числе навыки общения. Полезным будет и знание основных терминов, используемых инженерами DevOps.

Роли AWS DevOps-инженеров
В рамках методологии DevOps есть разные специализации и роли, причем некоторые из них во многом схожи. Для AWS DevOps-инженеров конкретные навыки и обязанности могут варьироваться, но все они связаны с использованием сервисов AWS.
К основным ролям можно отнести следующие:
- Инженер DevOps: работает с услугами AWS, чтобы управлять, автоматизировать и оптимизировать развертывание и инфраструктуру приложений.
- Облачный архитектор: проектирует и внедряет облачные решения Amazon Web Services.
- Администратор SysOps: отвечает за управление ресурсами AWS, непрерывную работу систем, мониторинг и устранение неполадок.
- Инженер DevSecOps: фокусируется на создании безопасных пайплайнов непрерывной интеграции и доставки (CI/CD) в соответствии с требованиями.
- Инженер по автоматизации: специализируется на автоматизации подготовки, развертывания и управления инфраструктурой с использованием инструментов AWS, таких как CloudFormation и Terraform.
- Специалист по контейнеризации: работает с контейнерами, например Docker и Kubernetes, в облаке Amazon Web Services, чтобы упростить развертывание контейнеризованных приложений.
- Инженер по бессерверным вычислениям: использует инструменты AWS Lambda, API Gateway и DynamoDB для создания бессерверных приложений.
- Инженер CI/CD: создает и оптимизирует пайплайны непрерывной интеграции и доставки с помощью инструментов AWS DevOps.
- Инженер IaC: описывает инфраструктуру и управляет ей с помощью кода, обычно с использованием инструментов, таких как AWS CloudFormation или Terraform.
- Инженер по оптимизации и производительности: оптимизирует ресурсы Amazon Web Services для того, чтобы сэкономить затраты и улучшить производительность и масштабируемость.
Что нужно знать AWS DevOps-инженеру?
Полный список знаний и навыков, необходимых любому AWS DevOps-инженеру, получится достаточно длинным, поэтому разберем основные компетенции.
- Непрерывная доставка (CD)
Инженер по AWS DevOps должен глубоко понимать концепции непрерывной доставки (CD) и уметь их применять в реальных условиях. Здесь важно иметь представление о популярных инструментах CD, например Jenkins, GitHub, GitLab, Travis и Spinnaker. Использование нативных услуг AWS требует знакомства с AWS CodeBuild, CodeDeploy и CodePipeline.
- Мониторинг производительности приложений
Мониторинг производительности приложений (англ. application performance management, APM) предоставляет важные сведения о работе приложения, что упрощает поиск проблем и отладку кода. Популярные инструменты для мониторинга — AppDynamics, New Relic и Dynatrace.
Работа с Amazon Web Services требует знания Amazon CloudWatch, включая CloudWatch Logs, CloudWatch Agent, CloudWatch Events и CloudWatch Alarms. Также важно знакомство с AWS X-Ray, Amazon Elasticsearch Service, Amazon SNS и Kibana.
Другие инструменты, которые могут быть полезными, — Logrotate, Syslog, Logstash, Nagios, Filebeat, InfluxDB, Grafana и Prometheus.
- Лучшие практики AWS
Специалист должен хорошо разбираться в инструментах и услугах Amazon Web Services, а также доступных альтернативах (вне AWS).
- Инфраструктура как код (IaC)
AWS DevOps-инженеры активно используют инструменты IaC, такие как CloudFormation, Pulumi, Terraform и AWS CDK. Концепция IaC предполагает, что облачные объекты управляются и документируются в виде кода.
- Контейнеры
Многие компании отходят от традиционных моделей развертывания приложений в пользу контейнеризованной системной инфраструктуры. Поэтому любой DevOps-инженер должен владеть инструментами для работы с контейнерами, например Docker Swarm, Docker Engine, Systemd-spawn, реестрами контейнеров, LXC, Kubernetes и т. д.
- Инфраструктура как сервис (IaaS)
К IaaS относятся вычислительные и сетевые ресурсы, с помощью которых можно развертывать и поддерживать приложения без дополнительных затрат на физическую инфраструктуру. Chef, Ansible, SaltStack и Puppet — широко используемые инструменты для управления конфигурацией приложений.
- Автоматизация
Для автоматизации требуются навыки и опыт применения скриптовых языков, таких как Python и JavaScript, а также работа с утилитами GNU, bash, PowerShell, понимание AWS Lambda, cron, SNS и CloudWatch Events.
- IT-операции
Для успешной работы бизнеса важен правильно выстроенный процесс управления IT-операциями. В рамках этого процесса DevOps-специалист отвечает за реагирование на различные неполадки и их своевременное устранение. Здесь будет полезно знание Ubuntu, Amazon Linux, CentOS, Windows и RedHat Enterprise Linux.
- Сотрудничество и коммуникация
Один из главных принципов методологии DevOps — эффективное взаимодействие между командами разработки и операций, поэтому стоит уделить внимание развитию коммуникативных навыков.
Заключение
Популярность облачных вычислений растет, и компании ищут профессионалов, умеющих эффективно управлять облачными ресурсами. К ним можно отнести и AWS DevOps-инженеров — специалистов с уникальной комбинацией знаний, навыков и опыта, которые отвечают за эффективное использование облачных сервисов AWS для разработки масштабируемых и высокопроизводительных приложений.