Prog Academy
RU UA
DevOps та хмари

Що таке контейнер?

Контейнер — ізольоване середовище, у якому застосунок запускається разом зі своїми залежностями, але використовує ядро операційної системи хоста. Усередині контейнера програма «бачить» лише власні файли та процеси.

Контейнери дають передбачуваність: набір бібліотек зафіксований усередині образу, тому застосунок поводиться однаково всюди. Один сервер при цьому може тримати десятки контейнерів, які не заважають одне одному.

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

Контейнер і віртуальна машина

Віртуальна машина емулює цілий компʼютер і містить власну операційну систему — звідси гігабайти образу й запуск за хвилини. Контейнер використовує ядро хоста й містить лише застосунок із залежностями: десятки мегабайтів і запуск за секунди. ВМ ізолює сильніше, контейнер — легший і швидший.

Повʼязані терміни

Docker

Docker — інструмент, який пакує застосунок разом з усім оточенням — кодом, залежностями, налаштуваннями — у контейнер. Такий контейнер запускається однаково на компʼютері розробника, на тестовому стенді та на сервері.

Kubernetes

Kubernetes — система оркестрації контейнерів: вона сама запускає потрібну кількість контейнерів на групі серверів, перезапускає ті, що впали, розподіляє навантаження й викочує оновлення без зупинки сервісу.

DevOps

DevOps — підхід до розробки, у якому створення програми та її експлуатація обʼєднані в один процес: та сама команда відповідає і за код, і за те, як він збирається, розгортається та працює на серверах. Мета — випускати зміни часто, швидко й безпечно.

Microservices

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

Cloud Computing

Хмарні технології — оренда обчислювальних ресурсів у провайдера замість купівлі власних серверів. Компанія бере потрібні потужності, бази та сервіси на вимогу й платить лише за фактичне споживання.