Компания Oracle расширяет свою деятельность в сфере контейнеров, о чем говорит официальный публичный дебют трех ее новых открытых утилит, призванных улучшить безопасность и производительность контейнеров с приложениями. Это такие Open Source-инструменты, как средство сборки безопасных контейнеров Smith, средство отладки приложений в контейнерах Crashcart и реализация контейнерной среды исполнения Railcar.
Новые контейнерные инструменты Oracle публично представил архитектор облачных разработок Oracle Виш (Ишайя) Абрамс, являющийся хорошо известной фигурой в сообществе облаков OpenStack. До прихода в Oracle в апреле 2015 г. он занимал пост технического руководителя в проекте контроллера вычислений OpenStack Nova, поддерживающего разнообразные технологии виртуализации
Новая контейнерная среда исполнения Railcar является альтернативой существующим средам исполнения для контейнеров, написанным на открытом языке программирования Go, включая runc, используемую в docker.
Как написал Абрамс в блоге, «Go — плохой выбор языка для контейнерной среды исполнения. В принципе это прекрасный язык, но для небольших системных утилит, нуждающихся в жестком контроле над потоками и генерирующих большой объем системных вызовов, есть лучшие опции».
Railcar использует вместо Go свободный язык программирования Rust, первоначально разработанный браузерной компанией Mozilla. По словам Абрамса, программирование на Rust позволяет приложениям экономить память, что обеспечивает преимущества в производительности и безопасности. Контейнерной среда исполнения Railcar также ориентируется на требования спецификации Open Container Initiative (OCI), которая является инициативой по разработке стандарта среды исполнения контейнеров.
Помимо работы над более защищенной средой исполнения для контейнеров, Oracle хочет предоставить разработчикам возможность компоновать более безопасные контейнеры приложений, и на это направлен Open Source-проект Smith. На Github-странице этого проекта разработчики Oracle детализируют ряд ключевых принципов, которые они взяли за основу для процесса сборки контейнеров. Один из них состоит в том, чтобы контейнер содержал только процесс, необходимый для выполнения приложения, и его непосредственные зависимости. Другой ключевой принцип, которого придерживается Oracle, требует, чтобы файлы контейнеров не включали атрибуты пользователя-владельца или специальных полномочий сверх того, что необходимо для исполняемых компонентов.
«Для удобства использования контейнеров в продуктивной среде нам пришлось внести ряд изменений в наш процесс сборки контейнера, — написал Абрамс. — Проанализировав ряд проблем, присущих нашему процессу, мы выработали такой метод сборки и запуска контейнеров, который значительно улучшил их стабильность и безопасность для нашей среды».
Третьим средством, код которого Oracle сделала открытым, является инструмент отладки Crashcart, призванный помогать разработчикам исправлять проблемы и улучшать функционирование контейнеризованных приложений. Абрамс отметил, что для контейнеров приложений зачастую бывает сложно выявлять операционные проблемы.
«Значительную часть отладки можно осуществлять из хост-системы, однако иногда вам необходим доступ к файловой системе в том ракурсе, как ее видит контейнер. Для этого случая и создан Crashcart», — написал Абрамс.
Последние два года Oracle активно работает с контейнерами Docker, включая использование контейнеров для компоновки и развертывания платформы Oracle OpenStack. У компании также имеется собственный сервис Container Cloud Service, предоставляющий предприятиям возможности развертывания и управления контейнерами.