Сегодня использование DevOps в больших корпорациях и маленьких компаниях общепринятое и привычное явление. Но прогресс, как известно, не стоит на месте. Что же еще требуется современному production окружению для наилучшего функционирования?
Production окружение и использование DevOps
Не так давно разработчики выделяли несколько особенностей production окружения:
- приложение, которое работает на сервере/виртуально;
- базы данных размещены на отдельно размещенных серверах;
- наличие фронтендов;
- дополнительные сервисы инфраструктуры.
Но при широком применении цифровых продуктов в сфере бизнеса возникла необходимость увеличения скорости и объемов IT-разработок. В результате этого изменилась и сама методология, что привело к некоторым сложностям:
- в командной работе;
- в управлении зависимостями;
- в релизах;
- в решении ошибок в больших приложениях.
Во избежание перечисленных проблем и перешли к использованию практики DevOps.
Результаты эксплуатации DevOps
Начинающие админы, начав использовать инструменты DevOps, отмечают множество «плюсов». Среди них:
- docker для упаковки софта, который может быть развернут в самых различных production окружениях;
- фиксированное восстановление усложненной инфраструктуры с «нуля»;
- оркестровка сервисов;
- широкий спектр управляющего tooling`a.
Но основное в DevOps для таких специалистов – легкое масштабирование добавленных серверов в случае острой необходимости, так как инфраструктура представляет собой «облако» поверх них. Теперь она с серверами docker-, kube-, на которых по несколько десятков контейнеров. При этом на отдельных железках размещены:
- общие БД;
- resource-intensive;
- latency-sensitive.
Поэтому возникла задача распределения «облачных» ресурсов на сервисы пользователя и автоматического резервного копирования в «облако».
Подход Google App Engine
При использовании GAE происходит автоматическое масштабирование залитого кода. В этом случае «облако» регулирует инстансы, исходя из полученной нагрузки на определенное приложение. Отметим ключевые моменты GAE:
- для Cgroups:CPU:
- необходимость в подборке параметров методом тестирования;
- рабочая модель распределения ресурсов «слоты + фоновая нагрузка»;
- для Cgroups:memory:
- нет определенного предела;
- расширенная статистика по утилизации диска определенными группами процессов;
- необходимость в настраивании приоритетов.
И, как общий вывод, чтобы добиться автоматического резервного копирования в «облако», нужно провести несколько тестов.
Поддержка и внедрение devops инструментов, обращайтесь [email protected]