[Перевод] Что такое платформенная инженерия: как она связана с DevOps и SRE?

Появление новых ролей и обязанностей в IT и разработке сильно повлияло на работу современных компаний. Одно из направлений, которое с каждым годом становится популярнее, — платформенная инженерия. В этой статье разберемся, что это такое, почему важность ПИ растет и какое отношение она имеет к DevOps и SRE (Site Reliability Engineering).

c67bffe37f1f4ceeab77fbe97d59e07d.png

Начнем с DevOps

DevOps — это не просто модное слово. Это культурное и техническое движение, цель которого — объединить разработку программного обеспечения (Dev) и IT-эксплуатацию (Ops). По сути, DevOps должен рушить барьеры между этими сферами и обеспечивать их эффективное взаимодействие. А уже это взаимодействие позволяет автоматизировать и оптимизировать процессы поставки программного обеспечения.

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

DevOps-инженеры играют ключевую роль в ряде важных процессов. Среди них:

  • Непрерывная интеграция и непрерывное развертывание (CI/CD): автоматизация процессов сборки, тестирования и развертывания ускоряет выпуск ПО.

  • Infrastructure as Code (IaC): предоставление и управление инфраструктуры как кода позволяет автоматизировать и масштабировать процессы.

  • Мониторинг и логирование: внедрение надежных средств мониторинга и логирования помогает превентивно выявлять и решать проблемы.

Разбор SRE

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

Хотя SRE и DevOps имеют схожие цели, у них разные подходы. DevOps ориентирован на оптимизацию всего процесса поставки ПО, а внимание сфокусировано на автоматизации, сотрудничестве и коммуникации. SRE полностью фокусируется на обеспечении надежности и доступности сервиса. Здесь приходится работать с такими концепциями, как SLO (Service Level Objectives, цели уровня обслуживания) и SLI (Service Level Indicators, индикаторы уровня обслуживания), тщательно управляя бюджетами ошибок.

Задачи SRE:

  • Надежность сервиса: делать так, чтобы сервис соответствовал установленным целям надежности и доступности, определенным в SLO.

  • Бюджет ошибок: управлять бюджетом ошибок для достижения баланса между инновациями и надежностью.

  • Управление инцидентами: реагировать на инциденты, извлекать уроки из них и улучшать надежность системы.

Роль платформенной инженерии

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

Почему платформенная инженерия находится в стадии роста

Рост значимости ПИ объясняется требованиями современной разработки к надежной, автоматизированной и масштабируемой инфраструктуре. Растет количество облачных вычислений, контейнеризации и микросервисов, и это усиливает потребность в ПИ. Компании осознали, что надежная платформа может заметно ускорить процессы разработки и развертывания.

Обязанности платформенных инженеров

У инженеров множество обязанностей, среди них:

  • Предоставление инфраструктуры: настройка и управление ресурсами инфраструктуры, часто с использованием средств IaC, таких как Terraform или Ansible.

  • Оркестрация контейнеров: развертывание и управление контейнеризированными приложениями с использованием средств оркестрации, таких как Kubernetes или Docker.

  • Сеть и Service Mesh: обеспечение безопасной и эффективной коммуникации между сервисами в рамках платформы.

  • Мониторинг и масштабирование: внедрение решений по мониторингу и корректировка инфраструктуры при необходимости для достижения требований к производительности и доступности.

Различия: DevOps vs. SRE vs. платформенная инженерия

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

Основные различия

  • DevOps ориентирован на оптимизацию всего пайплайна поставки программного обеспечения, с акцентом на автоматизации, сотрудничестве и коммуникации.

  • SRE фокусируется исключительно на обеспечении надежности и доступности сервиса, опираясь на SLO, SLI и тщательное управление бюджетом ошибок.

  • ПИ сосредоточена на создании и обслуживании инфраструктуры, поддерживающей разработку приложений, особое внимание — на эффективности и масштабируемости.

Области пересечения

Хотя эти роли различны, они часто пересекаются в нескольких аспектах:

  • Автоматизация: все три роли сильно полагаются на автоматизацию для оптимизации процессов.

  • Мониторинг: DevOps, SRE и платформенные инженеры разделяют ответственность за внедрение надежных систем мониторинга и оповещения.

  • Сотрудничество: оно имеет первостепенное значение во всех трех ролях для обеспечения бесперебойной работы и постоянного улучшения.

Когда выбирать каждую роль

Выбор между DevOps, SRE или ПИ зависит от конкретных потребностей и приоритетов организации. Есть несколько сценариев:

  • Выбираем DevOps, если цель — оптимизация всего пайплайна поставки программного обеспечения для более быстрых и надежных релизов.

  • Выбираем SRE, когда надежность и доступность сервиса обязательны, и мы стремимся установить четкие SLO и SLI.

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

Тенденции развития в ПИ

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

Появление облачных технологий оказало трансформационное воздействие. Платформенные инженеры теперь всё чаще сталкиваются с задачей управления и оптимизации облачной инфраструктуры, используя сервисы от AWS, Azure, Google Cloud и других провайдеров. Беспроблемное взаимодействие с этими облачными платформами стало фундаментальным навыком для платформенных инженеров.

Микросервисы и контейнеризация кардинально изменили процесс разработки программного обеспечения. Инженеры активно участвуют в оркестрации контейнеров, часто используя Docker и Kubernetes. Архитектура микросервисов приносит новый уровень гибкости и масштабируемости в приложения, но также добавляет и сложности, с которыми инженерам нужно справляться.

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

Платформенная инженерия — успешные кейсы

Чтобы было проще представить, как ПИ влияет на разработку, рассмотрим несколько реальных кейсов.

  1. Netflix. Стриминг — отличный пример компании, которая использовала платформенную инженерию. Они разработали инструменты и платформы, позволяющие своим инженерам фокусироваться на создании контента и инновациях, вместо управления инфраструктурой. Этот подход сыграл ключевую роль в их глобальном успехе.

  2. Spotify. Инфраструктура Spotify — свидетельство силы ПИ. С акцентом на автоматизацию и масштабируемость они смогли предоставить беспроблемный опыт стриминга музыки для миллионов пользователей по всему миру.

Преимущества и результаты

В этих кейсах видны преимущества платформенной инженерии:

  • Ускоренное развитие: платформенная инженерия оптимизирует управление инфраструктурой, позволяя разработчикам сосредоточиться на написании кода и более быстром внедрении новых функций.

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

  • Масштабируемость: масштабируемая инфраструктура адаптируется к росту и колебаниям спроса, обеспечивая возможность обслуживать миллионы пользователей без сбоев.

Карьера в платформенной инженерии

Сейчас в мире растет спрос на квалифицированных специалистов в этой области. Если вы рассматриваете карьеру в этой сфере, вот что вам следует знать:

Необходимый набор навыков:

  • Умение внедрять Infrastructure as Code (IaC) с использованием Terraform или Ansible

  • Опыт в оркестрации контейнеров с использованием Kubernetes или Docker.

  • Знание облачных платформ, таких как AWS, Azure, Google Cloud.

  • Понимание лучших практик в области сетевых технологий и безопасности.

  • Навыки написания сценариев и автоматизации.

  • Способность к сотрудничеству и коммуникации.

Обучение и сертификация

Чтобы построить карьеру в сфере ПИ, можно пройти программы обучения и сертификации, предлагаемые платформами AWS, Google Cloud и CNCF (Cloud Native Computing Foundation).

Возможности для карьеры

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

Заключение

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

Поскольку роли DevOps, SRE и платформенных инженеров продолжают формировать картину ролей в области IT, важно понимать различия и перекрывающие моменты между ними для принятия обоснованных решений.

© Habrahabr.ru