понеділок, 7 грудня 2015 р.

Docker та екосистема контейнерів

Деякі цитати з електронної книги "Новий стек", що є першою книгою серії "Docker та екосистема контейнерів". Фактично, ця книга є добіркою популярних статей про Linux-контейнери та Docker -- технологію роботи з ними. Оригінал книги можна завантажити за наступним посиланням: The New Stack: The Docker and Container Ecosystem eBook Series.

Хмарні технології запропонували нове сприйняття обчислювальної інфраструктури як гнучкого та здатного до адаптації ресурсу, що відповідає потребам бізнесу в 21 столітті. Інформаційні технології, базовані на хмарах, вимагають фундаментальної зміни сприйняття інфраструктурних компонентів, які раніше були громіздкими, дорогими, спеціалізованими, які потрібно було створювати "вручну", та було дуже складно змінювати.
Docker починав подібно до хмар, створюючи враження зручнішої технології для формування пакунків (packaging) та розміщення (deployment) застосувань. Насправді, контейнери торують шлях до ще більших змін в усвідомленні ніж хмари.
В той час як хмарні технології змінили спосіб, в який ми керуємо "машинами", вони не змінили базові об'єкти керування. З іншого боку, контейнери докорінно руйнують нашу прив'язаність до традиційних серверів та операційних систем. Вони переносять наголос на застосування та компоненти застосувань. Можна сказати, що контейнери у поєднанні з моделлю програм у вигляді мікросервісів формують об'єктно-орієнтоване, компонентне бачення архітектури застосування.

Контейнери мають довгу історію. Docker -- це лише нова ітерація, яка спрощує і робить зручнішим розробку, розміщення та керування застосуваннями. Контейнери -- це процеси, частини системи, які внаслідок мутацій обирають різні форми.
Технологи Docker часто визначають Docker як спосіб доставки, побудови, запуску та розміщення застосувань. Він часто є платформою для розподілених застосувань. Його застосування можливе там, де використовується Linux, тобто майже всюди; він також може працювати під Windows. Docker не пов'язаний з будь-якою операційною системою.

Контейнери цілком реалістично можна вважати етапом на розвитку технології, продиктованим сучасним ринком. Безсерверні архітектури які здобувають прихильність як спосіб абстрагуватися від складності розподілених систем. Можливим наступним етапом буде використання юні-ядер, які завойовують симпатії внаслідок ще більшої легкості ніж контейнери.

Різні компанії пропонують свої шляхи використання контейнерів. Зокрема, платформа Amazon Web Services інтегрується з контейнерами за допомогою сервісу EC2 Container Srevice. До подібних підходів належать IBM Containers on Bluemix, CoreOS Enterprise Registry, JFrog's Artifactory, Google Container Registry, Quay.io та безперечно Docker Trusted Registry.

Docker та контейнери забезпечують переносиміть, швидкість ефективне конфігурування та концентрацію напрацювань подібно до Git-концентратору (GitHub).
Переносимість забезпечується особливостями пакування контейнерів, завдяки яким контейнер, який виконується в публічній чи приватній хмарі, або безпосередньо на апаратній платформі (bare metal), є повністю аналогічним до того контейнера, яким його створив розробник на своєму лептопі.
За швидкістю Docker-контейнери, які здатні завантажуватися за секунду, значно переважають віртуальні машини, яким для завантаження потрібні десятки секунд або навіть хвилини.

Створена в червні 2015 року організація Open Container Initiative (OCI) надає відкриту специфікацію і вимоги щодо середовища їх використання.

Минулої осені CoreOS оголосило свою специфікацію rkt для своєї системи використання контейнерів Rocket. Минулої весни компанія повідомила про свій власний проект з відкритим кодом App Container (appc), базований на технології rkt.
CoreOS має фінансування від Google Ventures. Технологія CoreOS глибоко інтегрується з Kubernetes, платформою з відкритим кодом для керування контейнерами від Google. У свою чергу Google сфокусувалася на роботі нещодавно оголошеної фундації  Cloud Native Computing Foundation, яка концентрується на керуванні контейнерами.

Безсумнівно, Docker змагається і з CoreOS, і з Google. При цьому всі три системи також кооперуються, що відтворює нюанси цього світу розробки застосувань та керування масштабними системами, в якому немає єдиного універсального рішення.

В гібридному хмарному середовищі контейнери можуть виконуватися в Docker, керуватися Kubernetes або Mesos, покладатися на Consul або etcd для віднайдення сервісів, тощо; але ще більш важливо те, що в кожній хмарі можуть використовуватися різні конфігурації інструментарію та інфраструктурних компонентів. Це означає, що системні дані можуть знаходитися на ресурсах власника, в той час як тимчасові дані зберігаються в хмарі Amazon Web Services, або доступні через Open Stack для негайної обробки.

Стек застосувань, запропонований компанією Rally, базується на апаратних засобах та драйверах. Інфраструктура віртуального апаратного забезпечення створюється гіпервізором, який забезпечує систему з розподілу реальних апаратних ресурсів.Зверху гіпервізора знаходяться операційні системи на кшталт CentOS. Поверх останніх розташовано середовище Docker. На найвищому рівні знаходяться застосування.

Додаткові джерела


  • Linux Containers and the Future Cloud. By Rami Rosen
  • Docker
  • Open Container Initiative
  • Немає коментарів:

    Дописати коментар