Как продолжение от моего последнего поста о Вещи, которые я ищу, когда нанимают младшего инженера DevOps — Это то, что я ищу из старшего инженера. Все сводится к тому, что я считаю ядро DEVOPS — помогая инженерным командам отправлять свои приложения быстро и безопасно для производства.
На высоком уровне это означает, что способность обеспечить:
- рабочий процесс CI
- Знание рабочих процессов выпуска
- Автоматизированный рабочий процесс доставки нескольких услуг в несколько тестовых сред
- Мониторинг и оповещение производства
Старший инженер должен знать, как предоставить эти основные ресурсы в инженерную команду таким образом, чтобы позволить циклам быстрого выпуска. Они могут иметь специальность в одной из этих областей, но достаточно знают, чтобы обеспечить достойное основание во всех этих областях. Посмотрим, что это значит на практике.
Настройка и поддержка системы/рабочего процесса CI для поддержки многих услуг, охватывающих множественные инженерные команды.
Это как базовый нужен номер один из каких-либо разработчиков или разработчиков. Эти вопросы должны иметь приличные ответы:
— Как/где я должен запустить мои тесты браузера? — Как/где я проверю мою конфигурацию/инфраструктуру — как-код? — Как мне получить больше узлов, чтобы запустить больше тестов? — Могут ли ваши команды строят свои трубопроводы, как они хотят? — Можно ли развернуть до производства самостоятельно? — Как мне развернуть?
Например — команда из 20 инженеров создает приложение Android — возможно, вы настраиваете AWS Device Farm, Code Building и CodePipipeline и предоставляют модули Terraform/Cloudbation и лучшие практики, чтобы ваши команды были быстро. Они должны иметь возможность просматривать журналы, повторные повторные сборки, см. Скриншоты их тестов, чтобы назвать несколько. Если вы небольшая команда с несколькими услугами, Travesci/Circleci может быть достаточно хорошей. Если вы большая команда, вы можете выбрать использовать GitLab. Если у вас есть очень конкретные требования к тестированию, вам может потребоваться опираться на Дженкинс.
Некоторые практики масштабируются лучше, чем другие, и многие из них связаны с некоторыми из вашей организации культуры. Я видел десятки команд, каждый из которых управляет своим собственным экземпляром Дженкинса, а также дюжины команды в зависимости от централизованно управляемых экземпляров Дженкинса. В одном контексте он отлично работает, в то время как в другой, это может быть на практике кошмара.
Видел многократный выпуск рабочие процессы
Поскольку количество сайтов/услуг, которые ваша команда создает увеличение, вам нужно иметь метод безумии, чтобы все быстро отправились клиентам, а также сохранить все ваши внутренние заинтересованные стороны, обновляемые по мере отправления внесения изменений. Я надеюсь, что они познакомились с хорошими из них и главное, я бы хотел, чтобы кто-то смог предоставить отличные отзывы о плохом рабочем процессе выпуска, которые они видели.
Некоторые команды создают интересные рабочие процессы для его поддержки. Такие вещи, как релиза поезда Для организации релизов по всему командам или Непрерывная среда доставки где все отправляется после того, как он проходит через трубопровод. Старший инженер сможет рекомендовать и реализовать доказательную концепцию с другими инженерными командами, излагающими процесс выпуска. Ты будешь Использование рабочего процесса ITIL
Настройте автоматическое развертывание на разные runtimes и сред
В начале ваши команды могут быть сосредоточены на JS, но придет время, когда есть решение, которое можно построить только с использованием другого языка. Или другая структура. Поскольку ваши команды растут, ваше решение для управления конфигурацией должно масштабироваться на потребности ваших команд. Можно ли развернуть приложения Java как быстро/легко и Nodejs приложения? Что, если вам нужно представить Python/Go в Mix, сколько или как мало вашего трубопровода необходимо изменить?
Вы можете настроить рабочий процесс Docker Build/Deploow, где команды могут построить/развертывать все, что они хотят, чтобы их контейнер в контейнер к уходушевленному кластеру K8, или у вас может быть шеф-повар/несовместимый рабочий процесс, в котором развертываются развертывание в центре Chef-Server или Ansible. Может быть, используя SCP для развертывания на удаленный сервер действительно все, что вам нужно.
Настройте и масштабируйте распределенную платформу мониторинга для приложений и инфраструктуры
Когда вы развертываете ваше приложение, вам нужно увидеть, работает ли он как предназначен. Ваши команды должны иметь все инструменты, доступные в их распоряжении — они должны иметь возможность просматривать такие вещи, как:
— ЦП/метрики памяти и сюжет его на графике рядом с другими хозяевами — централизованные журналы по всем хостам
Когда вы становитесь более зрелыми, и ваши потребности растут, вы захотите добавить больше пользовательских метрик для вашего приложения, такого как детали уровня приложения, используя такие инструменты, как Newrelic APM и/или DataDog.
Для начала, возможно, используя инструмент SaaS, как PaperTrail или Logz.io, может быть достаточно хорошим. Поскольку ваши услуги растут и нуждаются в изменении, может иметь смысл использовать более крупный поставщик, такой как Splunk или упругий. Или если у ваших старших инженеров есть специальность в этой области, они могут развернуть эластично-поиск + кибана + архитектуру Logstash/Flyentd и связывайте его автоматически ко всем вашим услугам.
Заключение
Есть и другие вещи, которые я обращаю внимание со старшими инженерами (особенно в отношении таких вещей, как практики безопасности), но их опыт и решения этих общих основных проблем — то, что я заинтересован в большей степени. То, что я ищу, это опыт, увидящий различные типы приложений, развернутых в широком спектре команд с различными требованиями и приоритетами. После того, как вы видели несколько, вы можете увидеть процессы, которые работают и те, которые не.
Как вы освободите на производство, это особый интерес, и всегда есть что-то, что нужно учиться в том, что делают другие компании. Какой лучший/худший процесс выпуска вы видели? Дай мне знать в комментариях.
IntricateCloud Я разделяю вещи, которые я узнал о строительных и управлении приложениями на AWS.
Первоначально опубликовано в www.intricateCloud.io 8 октября 2018 года.
Оригинал: «https://dev.to/intricatecloud/4-things-i-look-for-in-a-senior-devops-engineer-1p2o»