В погоне за надежностью
Быть на стыке разработки и эксплуатации непросто. Нашим читателям чуть легче, потому что Evrone рассказывает о полезных инструментах и источниках информации. Сегодня речь пойдет об инструментах DevOps, которые помогут выстроить инфраструктуру из разных элементов, найти сбойные правила Prometheus и улучшить восприятие изменений в коде за счёт визуализации diff / merge.
Взболтать, а не смешивать
Сегодня почти всё можно получить как услугу. Вам могут доставить на дом еду, подать автомобиль, забрать одежду в химчистку или предоставить доступ к развлечениям. Такой подход проник во все сферы. Нет проблем заказать физический или виртуальный сервер, кластер Kubernetes или хранилище данных у любого провайдера инфраструктуры. Вроде бы идеальный мир, но есть нюансы. Когда речь заходит об объединении разнородных элементов инфраструктуры, особенно в контейнеризованной среде, возникают проблемы.
Для каждого элемента приходится разрабатывать прослойку, которая будет взаимодействовать с другими элементами. Здесь разработчики сталкиваются с разными API и разным поведением систем. Конечно, можно переложить ответственность на провайдера, но такой подход не всегда можно безболезненно реализовать. Ещё есть способ разрешить ситуацию, прибегнув к помощи уже существующего программного обеспечения, например, crossplane.
Эта штука представляет собой add-on для Kubernetes и решает задачу объединения элементов инфраструктуры различных вендоров в единое целое. В итоге мы получаем доступ к согласованному универсальному API, которое управляет поставщиками услуг, ресурсами и абстракциями.
Такая единая точка входа значительно экономит время при разработке и поддерживает основных поставщиков облачных услуг в мире: AWS, Azure, Google Cloud, и многих других. Кстати, crossplane станет одной из тем доклада нашего CTO Александра Кириллова на DevOpsConf 2022. Мероприятие пройдет 13-14 июня в Москве на территории инновационного центра Сколково.
Кроме того, разработчики в январе 2022 года анонсировали проект Terrajet, позволяющий сгенерировать провайдеров Crossplane непосредственно из Terraform. Это в обозримом будущем позволит корректно взаимодействовать со всеми поставщиками облачных услуг. Так что подход Infrastructure as Code продолжает набирать обороты и лидировать в трендах построения облаков.
Поиск сбоящих правил Prometheus
Одна из ключевых задач DevOps — выстраивание надежной автоматизированной системы сборки, тестирования, упаковки и доставки приложений. Достижение этого невозможно без достаточного количества проверок. Причём проверять можно не только исходный код, но и вносимые в конфигурационные файлы изменения. Но как проверить правила того же самого Prometheus, не запуская его в production?
В качестве инструмента можно взять promcheck. Эта утилита, во-первых, позволяет выполнить проверку вручную из CLI. Во-вторых, её можно легко встроить в CI/CD-пайплайн для автоматической проверки. Ну и, в заключение, утилиту можно запускать в качестве экспортера Prometheus для регулярной проверки набора правил.
Работает всё это следующим образом: promcheck дёргает векторные селекторы и смотрит, возвращается ли результат. Это одновременно и плюс, и минус. С одной стороны, получив результат, мы понимаем, что конкретный селектор работает. Но некоторые селекторы намеренно могут не отдавать ответа, что приведёт к ложному срабатыванию.
На каждый селектор формируется отдельный HTTP-запрос. Ответ же предоставляется в текстовом виде, JSON или YAML. Количество селекторов будет напрямую влиять на скорость проверки, а интервал между проверками задаётся соответствующим флагом.
Обзор визуальных инструментов слияния
Рано или поздно каждый, кто пользовался GitHub, задумывался о том, что было бы неплохо иметь средство визуализации для операций diff / merge. Это позволило бы лучше понимать изменения, ведь мозг значительно быстрее обрабатывает картинки, чем текст. Текст с пояснительным изображением наш мозг понимает быстрее. На этом, кстати, основан секрет успешности смайликов и эмодзи.
Но вернемся к нашей задаче. Такие средства визуализации уже созданы и давно используются. Если быть точным, то на StackOverflow 13 лет назад уже был задан вопрос об этом. Так что же использовать в 2022 году для этих целей? Сейчас расскажем:
- Meld — одна из старейших утилит продолжает успешно справляться со своими задачами. Это сравнение файлов (как двухстороннее, так и трехстороннее) и каталогов. Утилита поддерживает самые популярные системы контроля версий и доступна для большинства дистрибутивов Linux и Windows. Пользователи macOS оказались немного обделены официальным вниманием, но вполне могут использовать портированную версию.
- Beyond compare — ещё один «мастодонт», продолжающий помогать разработчикам по всему миру. Отличительная черта — всеядность. Даже если вам надо сравнить два каталога в каком-нибудь Dropbox или Amazon S3, эта штука справится. Работает на любой ОС и активно дорабатывается. Единственным минусом можно считать её проприетарность. Цена, впрочем, адекватная — 30 долларов за стандартную версию и 60 за Pro. Попробовать триал можно бесплатно в течение месяца.
- Helix Visual Merge Tool — более известная как P4Merge. Очень простая и в то же время функциональная утилита, позволяющая визуализировать различия между файлами. Прелесть в том, что сравнивать можно не только текстовые файлы, но и файлы других форматов, например, графических.
Интересно послушать
Обучение
Курс Python в Evrone Academy
60 учебных модулей
Если вы думаете о смене работы или хотите стать частью нашей команды, но у вас недостаточно коммерческого опыта, то теперь можно учиться прямо в Evrone. А после — попасть к нам на оплачиваемую стажировку.
Основа обучения в Evrone Academy — наши высокие требования к разработчикам и опыт в проектах. Мы записали лекции, подготовили текстовые версии, добавили практические задания — это позволит вам подтянуть знания до middle-уровня. На стажировке мы дополним теорию практикой, а после — добро пожаловать на «боевой» проект.
Сейчас академия доступна в режиме early access — можно пройти базовые части по Python или Ruby. Но мы уже готовим новые материалы и практические задания, подписывайтесь на нас в соцсетях, чтобы не пропустить обновления!
Конкурсы для разработчиков
DevOps Quiz
до 22 апреля 2022
Предлагаем проверить себя в нашем новом квизе по практикам DevOps.
Его составляли наши опытные разработчики, так что придётся хорошо подумать. Внутри десять вопросов и несколько вариантов ответов, из которых лишь один правильный.
Среди тех, кто правильно ответит на все вопросы мы разыграем Яндекс.Станцию.
Митапы
DevOps meetup
13 июля 2022 - 19:00
Рады сообщить, что у нас запланирован отличный DevOps Meetup, который пройдёт 6-го апреля. Детальная информация о мероприятии будет опубликована позже, следите за нашими новостями.
Вакансии
Evrone
Мы открыты для новых DevOps-инженеров. В Evrone можно работать удалённо с первого дня, мы поддерживаем и оплачиваем участие в Open-source проектах, а расти в грейдах можно с помощью честной системы проверки навыков и менторства.