Семь лет назад CodeX начинался как клуб веб-разработки при Университете ИТМО, а сейчас это распределенная по всему миру команда специалистов, за плечами которой множество проектов, включая крупные и популярные. Например, визуальный редактор Editor.js, которым пользуются многие известные медиа, такие как vc.ru и TJournal.
Помимо работы над проектами, члены команды пишут статьи и проводят мастер-классы CodeX Meetup — небольшие совместные практические упражнения, позволяющие разобраться в какой-нибудь технологии или подходе. Новый сезон митапов открылся 15 июля практическим занятием по работе с Ansible — инструментом, который помогает автоматически настраивать сервера и инфраструктуру в облаке.
Александр Менщиков, ведущий разработчик CodeX:
«Цель CodeX Meetup: один митап — плюс один полезный навык. На этот раз мы рассказывали о такой важной в DevOps вещи, как Ansible. Наша деятельность тесно связана с проектированием и разворачиванием различных сервисов. У нас много проектов, большая и постоянно растущая база серверов, сложная инфраструктура. Ansible позволяет автоматизировать значительную часть работ по настройке и поддержке всего этого, а также составить документацию. И мы рады поделиться нашим опытом.
Мы уже много лет занимаемся разработкой: начинали с простых веб-сервисов, сейчас же делаем высоконагруженные проекты с сотней серверов. И мы познали всю “боль” DevOps, прошли все этапы: от ручных настроек серверов к bash-скриптам и, наконец, к автоматизации.
Первая проблема, с которой мы столкнулись, когда перешли на автоматизацию, — это документирование инфраструктуры и конфигураций. Иногда невозможно понять, как держать конфигурацию в актуальном состоянии. Например, кто-то поменял какую-то настройку и забыл указать это в документации, или сделал что-то не то и получил сайд-эффект, о котором сам и не догадывается. Непонятно, как обновлять программное обеспечение, как проверять, развернулась ли новая функция. Ansible как раз эти проблемы помогает решать».
Ansible позволяет хранить все конфигурации и документацию в виде кода (Infrastructure as Code) — как текстовые файлы, легко читаемые и воспринимаемые человеком. За счет встроенных модулей программы типа Ansible позволяют всю инфраструктуру описать простым и лаконичным языком. А еще с его помощью можно упростить процесс деплоя (разворачивания новой версии приложения), обновления системы и внесения любых изменений — так, чтобы это происходило бесшовно и незаметно для пользователей.
Но прежде всего нужно понять два свойства Ansible, которые многие неправильно используют, из-за чего этот инструмент им кажется не очень полезным. Первое важное свойство — это идемпотентность: скрипты пишутся так, что результат выполнения каждый раз будет одинаковый, можно не бояться побочных эффектов. Второе свойство: Ansible работает через push-режим, то есть позволяет не писать команды вручную для каждого отдельного сервера, а сразу отправлять команды для изменений с management машины на все остальные сервера.
У Ansible много различных альтернатив — они работают примерно одинаково. При этом Ansible из них самый простой, и с него точно следует начинать. На прошедшем мастер-классе участники с нуля научились разворачивать инфраструктуру веб-сервиса, написали и запустили первые плейбуки, научились организовывать код в роли и публиковать их в Ansible Galaxy. При этом большинство участников не имели опыта в DevOps, что не помешало выполнить упражнение.
Александр подчеркивает, что в команде CodeX происходит обмен знаниями и навыками, за счет чего все специалисты имеют разносторонний опыт и широкий кругозор — разработчики разбираются в дизайне и DevOps, менеджеры умеют кодить и так далее. Во многом это получается благодаря таким митапам, которые раньше проводились только внутри команды, а потом стали доступны всем желающим.
Следить за расписанием встреч можно в социальных сетях, а записываться на них — через специального бота в Telegram.
Митап проходил на базе CodeX Lab — нового образовательного проекта, который CodeX запустил в партнерстве с Факультетом безопасности информационных технологий. Здесь студенты смогут проходить стажировки и практику, получить опыт работы над полноценными продуктами, а наиболее амбициозные — попасть в основной состав CodeX. Набор в CodeX Lab откроется в начале учебного года.