Платформа «Боцман»: Навигация от виртуализации к Kubernetes
В статье рассказывается о двух различных подходах к управлению ресурсами компьютера: виртуализации и контейнеризации.
Содержание |
Артем Кижменев, продукт-менеджер SMART technologies SOFT.
Виртуализация
Виртуализация зародилась в качестве средства для расширения размеров оперативной памяти компьютеров в 60-х годах прошлого века. Первым публичным релизом принято считать результат работы IBM под названием CP/CMS (Control Program/Console Monitor System) в 1968 году. Это была первая система, использовавшая виртуальную машину для запуска нескольких операционных систем на одном физическом компьютере. Технология была сложной и дорогой, поэтому она не получила широкого распространения. В 1980-х годах компания VMware начала разработку и поддержку собственного решения для виртуализации, которое позволило запускать несколько операционных систем на одном компьютере.
Разработки VMware совершили настоящую революцию, сделавшую виртуализацию доступной для широкой аудитории. Переход к виртуализации привел к значительному увеличению общего использования ресурсов наряду с соответствующим сокращением времени окупаемости повторяющихся работ, необходимых для предоставления услуг. Мультиарендность, администрирование на основе API и появление общедоступных облаков еще больше увеличили эти преимущества. Самый значительный прорыв заключался в том, что технология обеспечила использование ресурсов размером с одно ядро физического компьютера, доступных по требованию, за считанные минуты.
Контейнеризация
Но зачем виртуализировать всю машину, если нужна лишь ее крошечная часть? Решением этой задачи стал контейнерный подход. Контейнеризация — метод, с помощью которого программный код упаковывается в единый исполняемый файл-контейнер вместе с библиотеками и зависимостями, чтобы обеспечить его корректный запуск. Контейнеризация появилась позже, в начале 2000-х годов. Она была основана на идее создания изолированных контейнеров внутри одной операционной системы. Это позволило разработчикам быстро развертывать приложения без необходимости настройки всей инфраструктуры, а пользователям получать более удобные сервисы.
По функциональным особенностям и назначению, контейнеры схожи с виртуальными машинами. Виртуальная машина представляет собой операционную систему, которая развернута внутри другой операционной системы. Виртуальная машина имеет свое ядро и обособленные ресурсы. Контейнеры — это модули, в каждом из которых запускается одно приложение. Они занимают меньше памяти, используют небольшое количество ресурсов и почти не зависят от операционной системы.
Так что же контейнер предоставляет такого, чего нет в виртуальной машине?
- Простое развертывание: приложение упаковано с зависимостями в один объект, доступно в общем репозитории и готово к развертыванию с помощью одной команды и практически не зависит от среды исполнения
- Быстрая доступность: облегченная среда позволяет быстро доставлять контейнеры для использования и запускать их на порядок быстрее виртуальных машин
- Упрощение подхода: контейнеры упрощают использование микросервисного и макросервсиного подходов в проектировании информационных систем
- Гибкость: контейнеры предоставляют возможность гибкого использования вычислительных ресурсов и подходов к масштабированию нагрузок
- Экономия ресурсов: контейнеры чаще имеют меньшее ресурсопотребление, в сравнении с классическими виртуальными машинами
Контейнеры имеют стандартизованный формат и подход к конфигурации и запуску приложений, что позволяет запускать приложения в различных средах, таких как частные и публичные облака, «голое железо», узкоспециализированные сервисы для работы с контейнерами. Также, это решает проблему зависимости от одного поставщика вычислительных ресурсов.
С приходом контейнерных технологий и бумом их развития, пришли и новые задачи: оркестрация большого количества сервисов и компонентов, отслеживание зависимостей между компонентами, требования по высоким нагрузкам к современным информационным системам, обновление контейнеров, их централизованная перезагрузка или вывод из рабочих нагрузок, распределение трафика между сервисами и группами пользователей, обеспечение информационной безопасности.
Эти задачи решает Kubernetes.
Kubernetes позволяет командам составлять сервисы из множества контейнеров, обеспечивая интеллектуальное и активное управление кластерами, выстраивать стандарты требований к контейнерам, заставлять эти контейнеры следовать правилам при развертывании и обеспечивать самовосстановление в случае сбоев, чтобы гарантировать правильную и бесконфликтную работу.
Kubernetes способен закрыть практически любой вопрос команд разработки и эксплуатации, но требует значительной квалификации кадров. «Боцман» решает эту проблему, предоставляя простые, но гибкие инструменты для разработчиков, повышая общую результативность.
Платформа «Боцман»
Платформа «Боцман» — результат развития экспертизы команды разработки и администрирования по управлению и эксплуатации инфраструктурными решениями. Сотрудники SMART technologies SOFT одними из первых на российском рынке начинали использование контейнеризации в production-средах, проектировании и эксплуатации сложных информационных систем.
«Боцман» предоставляет ряд преимуществ, которые делают его удобным для разработчиков и администраторов. Вот некоторые из них:
1. Безопасность: kubernetes — глобальный продукт и развивается без оглядки на законодательство отдельных стран и требований локальных регуляторов. Беря все самое лучше в техническом вопросе информационной безопасности, «Боцман» расширяет возможности для соответствия требованиям и законам Российской Федерации.
2. Техническая поддержка: kubernetes — это открытый продукт, развиваемый организациями и сообществом, но он лишен предметной технической поддержки заказчика. «Боцман» предоставляет прямую и глубокую техническую поддержку продукта, с возможностью его изменений под нужды заказчика.
3. Разработка: «Боцман» унифицирует шаблоны и конфигурации, предоставляет встроенный набор приложений, что существенно экономит время инженеров, задействованных в рамках DevOps-процессов компании на работу с kubernetes. Позволяет разработчикам получать все необходимые ресурсы для работы и сокращает время адаптации специалистов.
4. Совместимость: «Боцман» работает на различном аппаратно-программном исполнении. Команда разработки регулярно проводит тестирование на оборудовании, включенном в реестр российской промышленной и радиоэлектронной продукции, операционных системах, включенных в реестр отечественного ПО и российских облачных провайдерах.
5. Time to market: встроенные в «Боцман» средства позволяют существенно сократить время выпуска изменений на production-среды и повысить качество выпускаемого ПО, снизив количество ошибок и время их обнаружения.
6. Российская разработка: «Боцман» включен в реестр отечественного программного обеспечения.
7. Обучение: возможна организация обучения по работе с «Боцманом» для сотрудников заказчика.
8. Физическое расположение: SMART technologies SOFT и репозитории для обслуживания и обновления входящих в состав «Боцмана» компонентов находятся на территории РФ.