Компания CoreOS продвигается вперед в своих планах потеснить технологию виртуализации контейнеров Docker и распространить собственное видение контейнерной виртуализации. CoreOS начала функционировать с 2013 г. как проект кластеризованной ОС с фокусом на оптимизированное предоставление контейнеров Docker, но обнаружила недостатки в модели Docker и теперь намерена их исправить, предложив собственную технологию Rocket.
Ключевой частью платформы CoreOS является система etcd, предоставляющая возможность создания совместно используемой конфигурации и координации процессов, поддерживаемую согласованным распределенным хранилищем типа «ключ-значение». Свободная разработка etcd, которой руководит CoreOS, используется и в проекте Google Kubernetes, а также в облачной платформе Cloud Foundry компании Pivotal и системе управления кластерами Apache Mesos.
28 января CoreOS представила версию etcd 2.0, обозначив ее как первый крупный стабильный релиз соответствующей технологии. Ближайшей предшественницей etcd 2.0 была версия 0.4.6. Как пояснил директор CoreOS по технологии Брэндон Филипс, решение присвоить новому релизу номер 2.0 связано с тем, что API приложений, использовавших код etcd, назывался etcd v2 API.
«Мы решили, что лучше назвать наш первый стабильный релиз версией 2.0, чтобы синхронизировать нумерацию версий API и etcd. Релиз etcd 2.0, на который ушло полтора года труда при огромной помощи более 150 разработчиков сообщества etcd, знаменует собой кульминацию работы в направлении более стабильного и практически полезного проекта», — рассказал Филипс представителям портала eWeek.
Хотя работой над etcd руководят разработчики CoreOS, Филипс пояснил, что etcd разрабатывается как самостоятельный свободный проект со своим собственным сообществом. Он отметил, что etcd имеет сборки как для Microsoft Windows, так и для Mac OS X и может использоваться на других Linux-системах, например Debian или Fedora.
В версию etcd 2.0 вошли усовершенствования, призванные предупреждать случайные ошибки в конфигурации. По словам Филипса, во внутренний протокол добавлены важные функции безопасности — уникальные ID, идентифицирующие компоненты кластера и сами кластеры.
Наличие уникальных ID уменьшает риск нарушений в работе кластера, которые могут возникать при клонировании виртуальных машин или из-за ошибочного восстановления ранее удаленных компонентов кластера из устаревших резервных копий.
«Еще мы добавили ряд удобных средств командной строки и API для управления переконфигурированием кластера после машинных сбоев и безопасным архивированием и восстановлением данных из etcd, — сообщил Филипс. — Мы внесли огромное число улучшений, чтобы операции этого сорта стали проще и безопаснее».
Работа над Rocket
CoreOS впервые представила разработки Rocket в декабре 2013 г. вместе с взаимосвязанной спецификацией App Container под техническим наименованием appc. Целью работы над Rocket и appc является создание стандартного модуля для контейнера в том же смысле, в каком Amazon Machine Image (AMI) служит базовым блоком для развертывания публичного облака Amazon Elastic Cloud Compute (EC2).
Разработка быстро прогрессирует, и каждые несколько недель выходят новые релизы appc и Rocker. Последним обновлением Rocket была версия 0.2.0, выпущенная 23 января. В Rocket 0.2.0 включена функция автоматической проверки сигнатур.
«Мы хотим продвигать идею, заключающуюся в том, что по умолчанию контейнеры не должны запускаться в работу, если автор не подписал код и пользователь не уверен в авторе кода, — пояснил Филипс. — CoreOS ориентирована на безопасность внутренних систем предприятий, и составной частью системы безопасности являются цифровая подпись кода и проверка сигнатур».
Docker
Координаторы свободного проекта Docker, который еще используется CoreOS в ее продуктивных сборках, 28 января сообщили о ряде мер по усилению открытости процесса разработок. Хотя участники Docker стараются улучшить свой рабочий процесс, у CoreOS все же имеется ряд сомнений. «Наша главная забота состоит в том, чтобы контейнер был стандартным компоновочным блоком, и именно поэтому мы ввели спецификацию App Container (appc), — сказал Филипс. — Docker идет по пути перерастания в платформу, что само по себе хорошо, но не то, для чего предназначается контейнер».
Хотя сегодня CoreOS напрямую с Docker не конкурирует, есть возможности разрядить напряженность. «Мы бы с удовольствием сотрудничали с Docker в определении спецификации appc, чтобы сделать ее отраслевой, поскольку мы создаем независимый компоновочный блок инфраструктуры», — сказал Филипс.