Спонсировал этот пост.
Поскольку организации масштабируют свою облачную инфраструктуру и приложения, команды платформы все больше чувствуют напряжение. Команда платформы (или команда по инфраструктуре/DevOps) поручена предоставить надежную основу, включая трубопроводы CI/CD, облачные среды, инструменты и защитные требования.
Проблема заключается в том, что по мере роста числа разработчиков и услуг инженеры платформы могут перегружаться с помощью запросов на поддержку и эксплуатационных задач.
Одним из наиболее эффективных способов уменьшить прямую рабочую нагрузку на платформные команды является внедрение инфраструктуры самообслуживания для разработчиков. Однако самообслуживание в этом пространстве часто неправильно понимается; Это не означает, что разработчики сами пишут инфраструктуру.
Вместо этого это позволяет им запросить и управлять ресурсами в рамках ограждений, установленных командой платформы, обеспечивая согласованность, безопасность и соответствие при одновременном сокращении узких мест.
Растущее бремя для команд платформ
В современной технологической организации команды платформы носят много шляп. Они могут нести ответственность за обеспечение инфраструктуры (создание ресурсов AWS/GCP для команд), поддержание трубопроводов CI/CD, управление общими услугами, такими как базы данных и мониторинг, обеспечение соблюдения политик безопасности и, как правило, выступая в качестве центра облачных экспертов. Эти обязанности, как правило, выходят из контроля быстрее, чем команда может масштабироваться, чтобы справиться с ними.
Несколько проблем увеличивают бремя инфраструктурных команд:
- Облачная сложность: Каждый новый проект добавляет больше услуг, требующих команд платформ для управления обеспечением и шаблонами в масштабе.
- Билет Опс: Разработчики полагаются на команды платформы для каждого запроса на инфраструктуру, создавая узкие места по мере роста очередей билетов.
- Оперативный труд: Повторяющиеся задачи, такие как исправление, устранение неполадок и масштабирование, подводят команды реагировать вместо автоматизации.
- Контекст переключение: Поддержка нескольких команд заставляет инженеров прыгать между задачами, снижение эффективности и повышение когнитивной нагрузки.
Если команды платформы пытаются не отставать, разработчики испытывают задержки, инфраструктура становится все труднее управлять, и вся организация замедляется. Во многих организациях бремя настолько велико, что наши платформы не имеют пропускной способности для расследования опций оптимизации.
Случай инфраструктуры самообслуживания
Одним из подходов к снижению бремени инженеров инфраструктуры является обеспечение самообслуживания. Это позволяет разработчикам запросить и потреблять инфраструктурные ресурсы, такие как базы данных, очереди и API по требованию, без необходимости открывать билеты или ждать ручного обеспечения.
Включая инфраструктуру самообслуживания, команды платформы масштабируют свои вклады от реализаций, специфичных для проекта, в создание автоматизации многоразового использования, ограждений, политики и инфраструктуры для многих команд. Вместо того, чтобы вручную предоставлять каждый ресурс, они создают политики и инструменты, которые позволяют командам двигаться быстрее, не обходя требования к безопасности и соответствию.
Обеспечение самообслуживания без потери контроля
Команды платформ могут внедрить инфраструктуру самообслуживания, обеспечивая при этом безопасность, соблюдение и управление, внедряя ключевые стратегии, такие как:
- Многоразовые шаблоны и каталоги: Стандартизированные паттерны инфраструктуры, такие как предварительно сконфигурированные трубопроводы CI/CD и службы, позволяют разработчикам раскрывать ресурсы без ручного вмешательства.
- Инфраструктура как код с ограждениями: Разработчики определяют, что им нужно, используя такие инструменты, как Terraform или Pulumi, но команды платформы обеспечивают соблюдение требований, предоставляя утвержденные модули и политики.
- Доступ на основе ролей и обеспечение соблюдения политики: Самообслуживание не означает неограниченный доступ. Команды платформы устанавливают разрешения, бюджетные ограничения и политику в качестве правил кода (например, открытый политический агент) для обеспечения безопасного контролируемого предоставления ресурсов.
- Внутренние платформы разработчиков (ВПЛ): Unified UIS, интерфейс командной строки (CLI) и другие инструменты, которые абстрагируют сложность инфраструктуры, интеграция создания репо, настройки CI/CD и мониторинг в удобный для разработчика рабочие процессы.
Задача состоит в том, чтобы самообслуживание не приводило к дрейфу конфигурации, пробелам безопасности или непоследовательным развертываниям инфраструктуры. NICE помогает решить это, выступая в качестве интерфейса между командами разработчиков и инфраструктурой, позволяя разработчикам объявлять то, что им нужно, обеспечивая, чтобы команды платформы сохраняли контроль над тем, как предоставляются и управляются ресурсы.
Пример: обеспечение безопасной и последовательной инфраструктуры
Вот возможный сценарий, когда команда или разработчик приложений запрашивает использование облачного хранилища в своем приложении. Традиционно, когда команде нужен новый ведро для хранения, процесс может выглядеть примерно так:
С инфраструктурой самообслуживания этот рабочий процесс меняется. Разработчики запрашивают то, что им нужно в коде или через платформу, а автоматизация обрабатывает обеспечение в соответствии с предварительно утвержденными политиками.
Используя такой инструмент, как NILIC, разработчики могут определять требования к инфраструктуре без написания низкоуровневого терраформа или иметь дело с API-интерфейсом облачных поставщиков.
Импорт {Bucket} от ‘@nitic/sdk’; // Разработчик объявляет новое ведро для хранения пользователей загрузки const userfiles = bucket (‘user-uploads’). Разрешить («читать», ‘write’, ‘delete’); // Позже в коде их приложения: Async Function SaveUserFile (FileName: String, Data: Buffer) {await userfiles.file (имя файла) .write (data); console.log (`Сохраняемый файл $ {fileName} для пользователя-uploads bucket.`); } 12345678910 Import {Bucket} от ‘@nitic/sdk’; // Разработчик объявляет новое ведро для хранения пользователя uploadsconst userfiles = bucket (‘user-uploads’). Allow (‘read’, ‘write’, ‘delete’); // Позже в коде их приложения: Async Function SaveUserFile (FileName: String, Data: Buffer) {await userfiles.file (имя файла) .write (data); Console.log (`Сохраняемый файл $ {fileName} для пользователя-uploads bucket.`);}
Когда этот код запускается, NIRT автоматически предоставляет необходимое ведро для хранения в AWS или GCP в пределах ограничений, определенных инженерами платформы.
Сохранение ограждений на месте
В то время как разработчики могут запросить ресурсы, команды платформы обеспечивают соответствие, обеспечивая соблюдение политик на уровне инфраструктуры. Например, все ведра S3 могут быть автоматически зашифрованы с помощью политики Terraform по всей платформе:
Ресурс «AWS_S3_BUCKET_SERVER_SIDE_ENCRYPTION_CONFIGUTURE» «Bucket_Encryption» {bucket = aws_s3_bucket.bucket.id Правило {Apply_server_Side_Encryption_by_default {sse_algorithm = «aes256» «AWS_S3_BUCKET_SERVER_SIDE_ENCRYPTION_CONFIGUTURE» «BUCKET_ENCRYPTION» {BUCKET = AWS_S3_BUCKET.BUCKET.ID Правило {Apply_server_Side_Encryption_by_default {sse_algorithm = «aes256»}}}}}}}}}}}}}}
Этот подход гарантирует:
- Разработчики получают то, что им нужно, не ожидая.
- Команды платформы сохраняют полный контроль над безопасностью и соответствием.
- Исправить один раз, разверните исправления во всех проектах
- Никто не должен вручную создавать ресурсы или просмотреть билеты.
- Инфраструктура постоянно развертывается в разных проектах
- Каждый проект всегда синхронизируется с его необходимой инфраструктурой
Заключение
Команды платформы являются основой любой технологической организации, но реактивные процессы не масштабируются, особенно когда задействована ручная работа. По мере роста команд спрос на инфраструктурные ресурсы увеличивается, и инженеры платформы не могут позволить себе тратить все свои запросы на обработку, проблемы развертывания и управление билетами.
«Самообслуживание разработчика может звучать как мечта: платформа, которую разработчики могут использовать для свободного развития-не обременен, обширной, инструментами, которые им не нужно знать, как использовать, и билеты, которые требуются навсегда».
—Кукольный
Инфраструктура самообслуживания уменьшает трение, повышает безопасность и гарантирует, что команды платформы остаются под контролем. Перейдя от ручной подготовки к автоматизации, обеспечению соблюдения политики и инструментам самообслуживания, удобными для разработчиков, команды платформы:
- Устранить узкие места без ущерба для безопасности.
- Уменьшите очереди билета и эксплуатационный труд.
- Освободите время, чтобы сосредоточиться на автоматизации и улучшениях платформы.
Вместо того, чтобы быть привратниками, команды платформы становятся мощными, помогая командам двигаться быстрее, обеспечивая, чтобы инфраструктура осталась безопасной и масштабируемой. Вот как организации масштабируются, не сжигая свои платформы.
NICE-это облачная структура, которая повышает производительность разработчиков и уверенность в OPS, объединение бэкэнд и кода инфраструктуры для быстрого создания и поставки облачных приложений. Devs создают ваше приложение, платформа определяет правильную инфраструктуру, а NILIC автоматизирует обеспечение, которое работает для обоих. Узнайте больше последних из Nitic Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Рак Шива, вице -президент по технике инженерии в команде NITIC, глубоко привержен повышению опыта для разработчиков программного обеспечения. С богатым 15-летним пребыванием в индустрии программного обеспечения он начал свое инженерное путешествие, погруженное в волнующие вызовы … Подробнее от Rak Siva