Задача
Целью проекта явилось настраивание инфраструктуры с нуля, а также организация нескольких уровней рабочего процесса, в результате которых система приобрела рабочий и современный вид.
Подход
Недавно мы завершили работу над поддержкой приложения для менеджмента для одного из наших крупных американских заказчиков, когда команда DevOps была вовлечена в разработку с самого начала и смогла реализовать не только актуальные и востребованные на момент реализации проекта подходы, но и развить их вместе с ростом проекта.
- Сперва была осуществлена схема разработки, предполагающая использование VCS, CI и CD, Cruise Control и Scripting как основу для улучшения процессов непрерывной интеграции и поставок.
- В качестве хостовых систем были использованы физические сервера на Linux предоставленные заказчиком и настроенные нами.
- Затем, используя подход инфраструктура как код (Ansible) в проект были внедрены системы виртуализации на базе Xen/OpenStack, позволившие инженерам DevOps разворачивать сложные системы в сжатые сроки c возможностью их гибкого изменения.
- Одновременно для целей проекта была переработана инфраструктура VCS, CD и CI. Это позволило обеспечить более быстрые и качеcтвенные отгрузки новых версий продукта.
- Были внедрены распределенные билд-системы на базе Jenkins, а код перенесен в Mercurial и Git.
- Тестовые среды с помощью Ansible были смигрированы в облако.
- Учитывая бурный рост проекта и повышенную нагрузку на облака, было принято решение на перенос систем мониторинга с Nagios в Zabbix, так как последняя считается более гибкой и мощной системой мониторинга.
- Впоследствии, продуктовые среды были также смигрированы в облако с помощью Ansible.
Результат
Эспертиза DevOps в использовании облачных технологий на примере приложения для управления инфраструктурой предприятия
- DevOps специалисты значительно сократили простой во время обновления системы, а также ускорили время подготовки новых систем.
- Наша команда оптимизировала процессы внутренней разработки и оценки качества.
- DevOps инженерам удалось углубить автоматизацию процессов разворачивания систем и поддержки продуктовых сред.
- Был автоматизирован процесс обратной связи с клиентом, что позволило ускорить работу по клиентской поддержке, а также повысить уровень сервиса в целом.
- Осуществлено переключение на использование микросервисов и контейнеризации на базе Docker, согласно требованиям разработки. В настоящее время непрерывно идет процесс поддержки проекта в актуальном состоянии версий используемых инструментов и сред, таких как OpenStack и, например, Jenkins. Без постоянной поддержки и мониторинга невозможно гарантировать бесперебойную работу системы.