Oracle продвигает конверт с открытым исходным кодом, чтобы закрепиться в облаке
Oracle только недавно объявила о своей поддержке Kubernetes и заключила партнерское соглашение с CoreOS, чтобы внедрить контейнер Linux в Oracle Cloud Infrastructure. Похоже, что технологи Oracle Марк Кэвидж и Т. Дж. Фонтейн имели в виду дело, когда сказали, что не ожидают бесплатного прохода, и в июле Oracle объявила о выпуске трех новых инструментов с открытым исходным кодом для повышения как производительности, так и безопасности контейнеров. Также похоже, что они осознали преимущества открытого исходного кода и смирились с тем, что продление лицензии скоро уйдет в прошлое.
Модно поздно
Хотя Oracle опоздал с признанием облака, а также с контейнерами, одно из преимуществ того, что вы идете последним, заключается в том, что вы можете видеть ошибки всех остальных. Когда вы являетесь пионером, таким как Docker и Kubernetes или даже Prometheus, вам действительно не на что ориентироваться, кроме образа в вашей голове. Но, подождав, у Oracle есть полная карта всех ошибок, допущенных всеми. Кроме того, различные компании делятся большим количеством личного опыта в отношении производственных сред, и сама Oracle также работает с контейнерами Docker более двух лет, в том числе в производственной среде с OpenStack.
Поездка на Oracle Railcar
Первое предложение от Oracle, названное Railcar, нацелено прямо на сердце стека или на «среду выполнения контейнеров», как мы привыкли ее называть, в большинстве случаев это RunC. Архитектор облачной разработки Oracle Виш (Ишайя) Абрамс отмечает, что Go — плохой выбор языка для среды выполнения контейнеров, а Railcar вместо этого написан на языке с открытым исходным кодом под названием Rust. По словам Абрамса, преимущества использования Rust по сравнению с Go заключаются в том, что Rust — это безопасный для памяти язык программирования, который обеспечивает преимущества как в производительности, так и в безопасности.
Под «безопасностью памяти» он подразумевает то, что в отличие от Go, который использует сборку мусора (GC), Rust безопасно позволяет управлять памятью вручную, что эффективно устраняет необходимость в подсчитываемых указателях или сборке мусора. Кроме того, абстракции Rust с нулевыми накладными расходами, очевидно, лучше подходят для развертывания в экономичных контейнероподобных системах по сравнению с большой средой выполнения и двоичными файлами Go.
Еще одно преимущество связано с безопасностью, и Rust и Go используют здесь разные подходы. Go больше опирается на сборку мусора, а Rust больше на встроенное управление памятью. Некоторым в этом отношении Rust может показаться лучше, потому что открытые инварианты лучше, чем полагаться на среду выполнения, которую вы практически не можете отслеживать.
Микроконтейнеры
Oracle также создала то, что она называет «микроконтейнерами», что является не новой единицей продукции, как следует из названия, а скорее другим методом создания контейнера с большей безопасностью и стабильностью. Некоторые выдающиеся особенности заключаются в том, что микроконтейнеры содержат только один исполняемый файл, а его зависимости работают с корневой файловой системой, доступной только для чтения, и не имеют права собственности на файловую систему пользователя или группы. Другими словами, все принадлежит и доступно для чтения одному пользователю. Кроме того, микроконтейнеры не имеют меток времени файловой системы или специальных возможностей. Они довольно общие и могут быть воспроизведены с использованием одного и того же изображения бесчисленное количество раз.
Агент Смит
Oracle Smith звучит как что-то из фильма «Матрица», но это то, что будет дальше в нашем списке инструментов с открытым исходным кодом в поездке положительных героев Oracle. Помимо создания новой среды выполнения, которая должна быть совместима с OCI, Oracle также выпустила инструмент Smith, который позволяет разработчикам создавать более безопасные контейнеры приложений. Smith построен на принципах «микроконтейнеров», упомянутых выше, и позиционируется как «безопасный» конструктор микроконтейнеров, призванный помочь командам эксплуатации работать с образами контейнеров.
Кроме того, Smith может использоваться для создания микроконтейнера из репозиториев yum и (необязательно) файла rpm, а также может брать существующие контейнеры Docker и преобразовывать их в микроконтейнеры. Таким образом, контейнеризация выполняется в инструментах ops, и разработчики могут продолжать использовать любые инструменты, к которым они привыкли. Smith создает образы в стандартном формате OCI, но также может загружать и скачивать образы из репозиториев Docker.
Преимущество позднего начала в том, что вы получаете свежее нестандартное мнение по предмету или свежий взгляд. Абрамс недавно выделил обширный список проблем со сборкой Docker, одна из которых заключалась в том, что процесс сборки больше подходит для команд разработчиков, но никак не облегчает жизнь команде эксплуатации. Говорят, что среди проблем, перечисленных Абрамсом в сборке Docker, Смит решает повышение привилегий, управление уязвимостями, отсутствие пространств имен пользователей, слоев и наложений.
Автокран
С новой средой выполнения и шикарным новым инструментом для команды эксплуатации, чтобы завершить свое реагирование на «реальные» проблемы, с которыми сталкиваются контейнеры в производстве, третий инструмент с открытым исходным кодом называется Crashcart. Вы должны готовиться к худшему, если хотите быть высокоэффективной организацией, и Crashcart предназначен для тех случаев, когда все идет не так. Вместо того, чтобы вручную входить в систему во время такого события и пытаться выяснить, что пошло не так среди сотен микросервисов, более простой способ — позволить Crashcart автоматизировать процесс за вас. Crashcart также позиционируется как средство отладки микроконтейнеров, которое помогает разработчикам устранять проблемы, помещать приложения в контейнеры и подключаться к базе данных. Это также повышает производительность, по словам Абрамса, который заявил, что Crashcart был создан для доступа к файловой системе так, как ее видит контейнер, тем более что часто бывает сложно выявить операционные проблемы в контейнерах приложений.
Crashcart также обещает упростить отладку с помощью хаков, трюков и инструментов для монтирования в контейнеры, подобные тем, которые загружают двоичные файлы для выявления проблем. Oracle также планирует добавить в этот инструмент больше функций и возможностей, таких как возможность устанавливать uid и gid в контейнерах.
Мили, чтобы пройти, прежде чем они спят
В то время как Oracle определенно заявляет о своих намерениях в мире микросервисной архитектуры, придумывая новый контейнерный движок и заявляя, что он лучше, потому что язык, на котором он написан, может не быть музыкой для всех. Особенно тысячи людей, которые внесли свой вклад в среду выполнения контейнера runC на языке Go. Агент Смит, с другой стороны, кажется хорошей идеей на первый взгляд, поскольку микросервисная архитектура начинается с Ops, по словам Боба Уайза, технического директора команды Samsung Cloud Native Computing, и тот факт, что Oracle выпускает контейнерный инструмент на стороне Ops, означает, что они обязательно обращаю внимание.
Откровенно говоря, со стороны Oracle было немного дерзко начинать с того, что все остальные все время поступали неправильно, и у нас есть лучший способ, тем более что изначально они так пренебрежительно относились к облаку и так поздно признали контейнеры. Никто не ждал, наблюдая за тем, собирается ли Oracle прыгнуть в контейнерный поезд, но он определенно прыгнул обеими ногами и уже хочет ехать. Решит ли Railcar все проблемы, о которых он говорит, и станет ли он эффективной заменой RunC? Только время покажет, но с новым двигателем, Crashcart и агентом Смитом, похоже, что Oracle думает об угоне всего поезда.