Рубрика:
Заочный круглый стол
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
DevOps: как разработку скрестить с эксплуатацией
Сегодняшний ИТ-специалист, чтобы быть профи, должен иметь просто энциклопедический объем знаний «по предмету». Объять необъятное как раз и помогают круглые столы журнала «Системный администратор». На этот раз мы обсудим входящую в нашу жизнь практику DevOps
- Что такое DevOps – одним предложением?
- Используется ли данный подход в разработке в вашей компании?
- Привнес ли он больше плюсов или минусов со стороны системных администраторов? А как дело обстоит со стороны разработчиков и тестировщиков?
- Что, на ваш взгляд, в нем нужно изменить или добавить?
- Как выстроены взаимоотношения в вашем отделе с отделом разработки при использовании данного подхода?
- Участвуют ли в этом сотрудники по информационной безопасности?
- Что в DevOps на первом месте: коммуникация, проект, удобство, автоматизация, внедрение или безопасность?
- Как, на ваш взгляд, можно совместить разработку – эксплуатацию – информационную безопасность? Что должно быть первым, а что последующим звеном?
- Какими основными знаниями должен обладать кандидат на позицию DevOps? DevOps – это системный администратор, разработчик или больше менеджер?
ПАВЕЛ КОСАЧЕВ, руководитель управления ЦОД, компания «Финам», Москва
1. Методология, призванная сократить время от выпуска релиза до его выкладки.
2. Да, используется в некоторых проектах.
3. Это очень сложный вопрос. Граница ответственности администраторов обычно ограничивается проверкой функционирования системного ПО, а за функционал отвечает разработчик. Это в принципе сокращает расходы компании, но нет контрольной функции со стороны бизнеса.
4. DevOps – методология с узкой степенью применимости (нельзя использовать при строительстве зданий, запуске в космос) в тех областях, где степень ошибки велика.
5. Выкладка осуществляется CI-тулами в автоматическом режиме, команда эксплуатации получает нотификацию об изменениях. Откаты разрабатываемого продукта происходят также через CI-тулы.
6. Нет.
7. Внедрение.
8. Служба безопасности формирует политики, разработчики и эксплуатация знают их и выполняют, служба безопасности осуществляет контроль исполнения.
9. В любом случае навыки по диагностике должны быть на хорошем уровне. Остальное зависит от конкретного проекта и использования в нем системного софта, прикладной части.
«DevOps называют специалистов, которые работают на стыке разработки ПО и администрирования» |
|
Экспертное мнение |
АЛЕКСАНДР МАЙОРОВ, Tutu.ru, руководитель отдела Frontend-разработки |
DevOps – это акроним от англ. development и operations. Сегодня термином «DevOps» называют специалистов, которые работают на стыке разработки ПО и администрирования. Сейчас есть четкое разделение труда: разработчик пишет код большого приложения, а системный администратор отвечает за работу данного приложения на серверах. Но прежде чем код попадет на боевые серверы, его нужно каким-то образом выкатить... Такой процесс называется термином «деплой». И тут встает вопрос: как деплоить? Что это за процесс, какие инструменты? Выходит, что нам нужен программист со знаниями системного администрирования. Собственно такой специализированный программист и называется DevOps. Человек, который умеет писать код, знает, как работает Docker, умеет настраивать серверы и пишет обвязку для программного обеспечения, взаимодействия с различными сервисами мониторинга и конфигураций (таких, как etcd, elastic...).
При этом надо понимать, что этим термином также называется и методология разработки ПО, сфокусированная на активном взаимодействии программистов, тестировщиков и админов, синхронизировано обслуживающих общий продукт. Главная цель – создание единого цикла взаимозависимости разработки, эксплуатации и деплоя программного обеспечения, чтобы в конечном счете помогать быстрее и проще создавать и обновлять эксплуатируемые программные продукты.
|
КОНСТАНТИН КОНДАКОВ, Director of DevOps, компания IDG, Сан-Франциско
1. Эффективная совместная работа разработчиков, системных администраторов и отдела тестирования, основанная на новых принципах работы и на автоматизации многих процессов.
2. Да, безусловно!
3. Да, конечно! Системные администраторы знают, почему и зачем нужно то или иное оборудование, а разработчики и тестировщики также не работают в вакууме.
4. Хотелось бы больше участия со стороны менеджеров продукта.
5. Работаем вместе!
6. У нас нет выделенных сотрудников по информационной безопасности, все вместе работают над проблемами безопасности.
7. Коммуникация.
8. Безопасность важнее, так как взломанная система способна нанести непоправимый урон целой компании.
9. Сложно сказать – у нас есть люди, имеющие опыт как системных администраторов, так и разработчиков. Важно, чтобы было представление о центрах обработки данных, масштабируемых системах и как работает высоконагруженная система.
«DevOps предполагает автоматическую интеграцию – это процесс автоматического тестирования» |
|
Экспертное мнение |
АЛЕКСАНДР КАЛЕНДАРЕВ, OTG, руководитель группы (ТимЛид) |
Масштабы современных проектов растут, растет сложность, со сложностью растет количество проблем. DevOps – это методология, которая позволяет с наименьшими издержками осуществлять «выкатывание» проекта на «продакшен».
Как обычно это происходит: проект хранится в gitlab или ином репозитории. После выполнения скрипта миграции «выкладывается» исходный код на сервер, и хорошо, если проект заработал. Но после выкладки могут появиться ошибки… Это все хорошо для маленьких проектов.
А теперь представим, что у нас в проекте, кроме PHP-кода, на котором реализована основная логика, есть еще node.js, который обеспечивает websocket-соединения, демоны, написанные на Go. Кроме БД на MySQL, в проекте есть еще MongoDb, Redis, а может быть еще и Cassandra и RabbitMQ. И тут у системного администратора начинается ад…
В разных компаниях используются разные методологии. Где-то выкладку осуществляют через Docker-контейнеры. Где-то Docker-контейнеры используются только для разработки. Это очень удобно – например, новому сотруднику, можно быстро на рабочем месте развернуть среду, где уже все настроено.
В этом случае не надо устанавливать кучу нестандартного софта, например «кастомную» сборку nginx или mysql, собственное PHP-расширение, множество иных пакетов. В этом случае Docker-контейнер сильно помогает, особенно если проект сложный.
Системному администратору, работающему с парком серверов, советую использовать ansible, назначив каждому серверу свою роль, можно выполнять автоматически удаленное переконфигурирование нужных серверов, выполнять скрипты выкладки кода. Можно быстро ввести новый сервер в свой кластер.
DevOps предполагает автоматическую интеграцию – это процесс автоматического тестирования – и после положительного прохождения всех тестов выкладку кода. У нас за это отвечает Jenkins, который осуществляет тестирование изапускает скрипт выкладки.
В каждом проекте свои особенности, свои рецепты выкладок. Кому-то что-то может не подойти.
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|