Чек-лист:
Что важно учесть при использовании контейнерной виртуализации
В 2018 году мы стали свидетелями стремительного роста популярности контейнерной виртуализации. В нюансах этого инструмента помогает разобраться директор по развитию сервисов «Крок Облачные сервисы» Сергей Зинкевич.
Содержание |
Предыстория
Эксперты отрасли полагают, что у контейнерной виртуализации большое будущее.
Сегодня каждый второй облачный проект реализуется с использованием контейнеров. Мы видим, что в нашем облаке заказчики с помощью инженеров компании или самостоятельно активно разворачивают контейнеры.
Сергей Зинкевич, директор по развитию сервисов «Крок Облачные сервисы»
|
Возникновение контейнерной виртуализации обусловлено несколькими причинами: Изменение бизнес-требований Скорость изменений становится критически важной в конкурентной войне на онлайн-рынке. Кто быстрее «докатывает» новый продукт до пользователя, тот и на коне. Если сервис чуть уступает в скорости и качестве, клиент очень быстро уходит навсегда. Эволюция ИТ-инфраструктуры Исторически это выглядит как замена «монолитного приложения», внутри которого очень много взаимосвязей, на микросервисы, малозависимые друг от друга. Это позволяет строить систему, где при замене одного компонента не возникает риска сбить работу тысячу других.
Старожилы утверждают, что микросервисный подход был рабочим и 15 лет назад, но массовость он стал набирать только 5 лет назад, а в настоящий тренд превратился в 2016-м. Сейчас не редкость, когда одно приложение использует до 150 микросервисов, – поясняет Сергей Зинкевич. – Однако микросервисы где-то применимы, а где-то — нет. По-прежнему многие продукты представляют собой монолитное приложение и по-прежнему переход на микросервисную архитектуру большинству компаний дается непросто. Это влечет довольно большие изменения, и зачастую выгоднее пригласить внешних консультантов. |
Увеличение степени абстракции
Из задачи более рационально использовать вычислительные ресурсы серверов родилась технология их виртуализации. Мы стали предоставлять для вычислений виртуальную машину. Слой, который лежит между операционной системой виртуальной машины и физическим сервером, и есть гипервизор – инструмент виртуализации. Следующий уровень абстракции наступает, когда внутри этой ОС мы запускаем приложение. Для повышения безопасности вычислений принято, что одно приложение занимает одну операционную систему, но это кажется нерациональным. Так появились контейнеры – некое легковесное окружение, которое эмулирует среду со всем необходимым для запуска приложения. Приложению «кажется», что оно запущено внутри своей ОС, – рассказывает Сергей Зинкевич. |
Преимущества контейнеров
Есть несколько ключевых преимуществ использования технологии: Скорость Уменьшается время time to market, быстрее происходит выкатка релизов.
Раньше было абсолютно приемлемым выкатывать релизы, улучшающие работу приложения, раз в месяц. Сейчас каждую ночь происходит обновление 5–10 приложений в смартфонах. Для пользователя эти обновления, цель которых – оптимизация системы, совершенно незаметны, – приводит пример Сергей Зинкевич. |
Безопасность При использовании контейнерной виртуализации уровень безопасности возрастает. Этому способствует: При обновлении приложений затрагиваются не все компоненты системы, а только те, в которые вносятся изменения. Сокращение количества ручных операций. Микросервисная архитектура и использование контейнеров позволяют перейти к максимальной автоматизации процессов тестирования и доставки новых релизов. Как только разработчик выкладывает новый микрорелиз, по нему сразу проходятся автотесты, юнит-тесты, после чего он автоматически доставляется до продуктива. Система становится более устойчивой: если «падает» какой-то фрагмент, то приложение в целом продолжает работать. Экономия ресурсов
Один из наших внутренних сервисов мы развернули в контейнерной среде — объем потребляемых вычислительных ресурсов тут же сократился в 3,5 раза, – рассказывает Сергей Зинкевич. – Мы получили классный бенефит при абсолютно той же производительности приложения. |
Отсутствие кадровой проблемы Рынок контейнерной виртуализации практически монополизирован. Подавляющее большинство пользователей предпочитает формат Docker, у решения для оркестрации Kubernetes, по данным исследования, проведенного StackRox в 2020 г., — 86% рынка. Это удобно работодателям: можно смело нанимать специалистов из других компаний и время на их адаптацию будет значительно меньше, так как все используют одни и те же технологии. Устранение конфликта между разработкой и эксплуатацией Проблема часто возникала при работе на «монолитах». Разработчики готовили обновления в собственном софтверном окружении. Однако служба эксплуатации иногда даже не могла запустить тест обновлений, так как на их компьютерах не хватало каких-то элементов этого окружения. Сейчас с помощью контейнеров разработчики все упаковывают в формат, где уже есть все необходимое окружение, и на тесте приложение запускается именно так, как написал разработчик.
Для наглядности можно сравнить контейнерную виртуализацию с Sony Playstation, – приводит пример Сергей Зинкевич. – Если в 2005 году вы покупали игру для PC на диске, она могла не пойти, потому что на вашем устройстве чего-то не хватало: видеокарты, или памяти, или еще чего-то другого. На Sony Playstation такого быть не могло — игра запускалась так, как задумано разработчиком. |
Тренды
В России в области контейнерной виртуализации применяются достаточно передовые и интересные инструменты. Быстрому проникновению технологии в страну способствовали высокий уровень цифровизации бизнеса и наличие сильных специалистов.
Как инженеры мы обучились применению контейнерной виртуализации в конце 2018 года. В мае 2020 года мы запустили Kubernetes как сервис в «Облаке Крок». Однако еще до официального запуска услуга пользовалась большой популярностью: ранние последователи с энтузиазмом подключились к бета-версии, и вместе с ними мы дорабатывали инструменты, – вспоминает Сергей Зинкевич. – Через два месяца после запуска Kubernetes как сервис, услуга вошла в топ-5 наших предложений для клиентов по доле новых контрактов. |
Наметившиеся тренды в дальнейшем распространении технологии контейнерной виртуализации: Рост количества заказчиков Компании, которые работают с веб-ресурсами будут использовать микросервисы, а значит, будут обращаться к инструментам для контейнеризации и оркестрации.
Появление большого количества сущностей требует подключения оркестратора. Подобно тому, как в большом городе нужны правила дорожного движения и регулировщики, в микросервисной архитектуре требуются правила, описывающие условия, при которых контейнеры должны автоматически создаваться, пересоздаваться, масштабироваться. Это ответ на возрастающее число пользователей в онлайне, – отмечает Сергей Зинкевич. – Бизнес заинтересован, чтобы на определенном трафике автоматически создавались необходимые контейнеры, отвечающие за какую-то функцию, например, за работу в личном кабинете пользователя. |
Упрощение работы
Сегодня даже начинающий инженер может запустить кластер контейнеров из консоли. Нашим партнерам не требуется разворачивать парк виртуальных машин: у нас это все уже автоматизировано, – подчеркивает Сергей Зинкевич. |
Растущая популярность в сегменте крупного бизнеса Это важный маркер широкого распространения контейнерной виртуализации. Все больше компаний объединяют большие enterprise-решения и работу с контейнерами. Это один из важных сигналов, что технология с нами надолго.