За последнее десятилетие, инженерные и технологические организации сходились на общий набор лучших практик для построения и развертывания облачных применений. Эти лучшие практики включают непрерывную доставку, контейнеризацию и создание наблюдаемых систем.
В то же время облачные нативные организации радикально изменились, как они организованы, перемещаясь от крупных отделений (разработка, QA, операций, выпуск) для меньших, независимых команд развития. Эти команды разработки приложений поддерживаются двумя новыми функциями: инженерия надежности на сайте и проектирование платформы. Организация SRE и платформы являются духовным преемником традиционных операционных команд и приносят дисциплину разработки программного обеспечения для различных аспектов операций.
Команды проектирования платформы применяют принципы разработки программного обеспечения для ускорения доставки программного обеспечения. Инженеры платформы гарантируют, что группы разработки приложений являются продуктивными во всех аспектах жизненного цикла доставки программного обеспечения.
Инженерные группы надежности сайта Примените принципы разработки программного обеспечения для повышения надежности. Инженеры по надежности на сайте минимизируют частоту и воздействие сбоев, которые могут повлиять на общую надежность облачного применения.
Эти две команды часто замешаются, и условия иногда используются взаимозаменяемо. Действительно, некоторые организации консолидают разработку SRE и платформы в ту же функцию. Это происходит, потому что обе роли применяют общий набор принципов:
- Платформа как продукт. Эти команды проводят время в понимании своих внутренних клиентов, строят дорожные карты, имеющие запланированную выпуск каденции, написание документации и делать все вещи, которые входят в программный продукт.
- Платформы самообслуживания. Эти команды строят свои платформы для внутреннего использования. На этих платформах лучшие практики кодируются, чтобы пользователи этих платформ не нужно беспокоиться об этом — они просто нажимают кнопку. В Кукольные лаборатории 2020 Состояние DEVOPS Отчет Кукольные лаборатории обнаружили, что высокофункциональные организации DEVOPS имели больше инфраструктуры самообслуживания, чем эволюционные организации Low DevOps.
- Постоянная фокус на Устранение труда Отказ Как определено в книге Google Sre, труд руководствуется, повторяется, автоматически, тактическая работа. Лучшие команды SRE и платформы определяют труд и работают, чтобы устранить ее.
Инженеры платформы постоянно изучают все жизненный цикл развития программного обеспечения от источника к производству. Из этого интроспективного процесса они создают рабочий процесс, который позволяет разработчикам приложений быстро Code и Ship Software. Базовый рабочий процесс обычно включает в себя систему контроля источника, связанную с непрерывной интеграционной системой, а также способ развертывания артефактов в производство.
По мере того, как число разработчиков приложений, использующих рабочий процесс, потребляет потребности платформы. Различные команды разработчиков приложений нуждаются в аналогичных, но разных рабочих процессах, поэтому инфраструктура самообслуживания становится важной. Общие целевые показатели платформы для самообслуживания включают CI/CD, оповещение и рабочие процессы развертывания.
В дополнение к самообслуживанию, образованию и сотрудничеству становятся вызовами. Инженеры платформы обнаруживают, что они все чаще проводят время обучения разработчикам приложений на лучшие практики и как лучше всего использовать платформу. Разработчики приложений также обнаруживают, что они зависят от других команд разработчиков приложений, и посмотрите на группу инженерной платформы, чтобы дать им инструменты продуктивно сотрудничать с разными командами.
Инженеры надежности на сайте создают и развиваются системы для автоматической запуска приложений, надежно. Концепция инженерии надежности сайта возникла в Google, и подробно описана в книге Google Sre. Бен Трейнор Слокс, SVP в Google, отвечающий за технические операции, описал SRE как «Что произойдет, когда вы задаете инженеру программного обеспечения для разработки операционной команды».
SRES определяют целы на уровне обслуживания и строить системы, чтобы помочь услугам достичь этих целей. Эти системы превращаются в платформу и рабочий процесс, который охватывает мониторинг, управление инцидентами, устранение отдельных точек отказа, смягчения отказа и многое другое.
Ключевой частью культуры SRE состоит в том, чтобы лечить все сбой как отказ в системе надежности. Строгие пост-замерты имеют решающее значение для определения основной причины сбоя, а корректирующие действия вводятся в автоматическую систему для продолжения повышения надежности.
Один из нас (Bjorn Freeman-Benson) управлял инженерной организацией на новом реликве до 2015 года, поскольку она выросла с горстки клиентов на десятки тысяч клиентов, все отправляют миллионы запросов в секунду в облако. Новая реликвия имела независимые команды Sre и Platform Engineering, которые следили за общими принципами, изложенными выше.
Одна из причин, по которой эти команды были построены отдельно, заключалась в том, что люди, прошедшие в этих ролях. В то время как инженеры SRES, так и для платформы нуждаются в сильных системах инженерных навыков в дополнение к классическим навыкам программирования, роли диктуют очень разные типы личности. SRES, как правило, наслаждается управлением кризисом и выбросить адреналиновые выбросы от устранения неполадок отключения. Менеджеры SRE процветают при интенсивном давлении и хороши при набирающемся и управляющих подобных людях. С другой стороны, инженеры платформы более типичные инженеры программного обеспечения, предпочитая работать без прерывания на большие сложные проблемы. Менеджеры проектировщики платформы предпочитают работать на постоянной каденции.
За последнее десятилетие Девопс стал популярным сроком, чтобы описать многие из этих практик. Совсем недавно Gitops также появился как народный срок. Как DevOps и Gitops относятся к платформам и командам SRE?
И DevOps, и Gitops являются слабодирующимся набором принципов о том, как управлять различными аспектами инфраструктуры. Основные принципы обоих этих философий — автоматизация, инфраструктура как код, применение программного обеспечения — очень похожи.
Дежол — это широкое движение, которое началось с акцентом на устранение традиционных силосов между развитием и эксплуатацией. Со временем, такие стратегии, как автоматизация и инженерные приложения для инфраструктуры и инженерные приложения, с учетом операций, получили широкое приемочное приемочное приемование в виде лучшего создания высоконадежных приложений.
Гитопсы — это подход для доставки приложений. В гитах декларативная конфигурация используется для кодификации желаемого состояния приложения в любой момент во времени. Эта конфигурация управляется в версией системе управления источником, как единственный источник правды. Это обеспечивает аудитаемость, воспроизводимость и согласованность конфигурации.
DevOps — это набор руководящих принципов для SRE, а гитапс является набором руководящих принципов для проектирования платформы.
Инженерно-платформенные и платформенные инженерии на уровне надежности сайта являются двумя функциями, которые имеют решающее значение для оптимизации инженерных организаций для строительства облачных приложений. Команда SRE работает, чтобы доставить инфраструктуру для высоконадежных приложений, в то время как команда инженерной платформы работает для обеспечения инфраструктуры для быстрого развития приложений. Вместе эти две команды разблокируют производительность команд развития приложений.
Эта история была первоначально опубликована на Блог посла Отказ
Оригинал: «https://dev.to/ambassadorlabs/the-rise-of-cloud-native-engineering-organizations-4dge»