И снова здравствуйте, новый день - новый пост🙂 Вчера был разговор про аппаратную виртуализацию а сегодня как и обещал, пройдемся по контейнеризации.
🟢Контейнеризация (или виртуализация на уровне операционной системы) подразумевает что мы вместо того чтобы эмулировать устройства и обеспечивать работу целой отдельной ОС мы создаем специальные изолированные окружения используя возможности ядра основной ОС (namespace + cgroups в Linux) и запускаем в них наш код.
На выходе мы получаем обычный процесс операционной системы. Никаких гипервизоров и виртуальных устройств. Оверхэд минимальный, работает очень быстро🙂
В 2013 Docker как компания предложила миру софт который скрыл под собой всю сложность взаимодействия с ядром ОС и выставил наружу упрощенный API (Dockerfile + Docker CLI), предложив удобное кроссплатформенное решение (да, там есть ньюансы но кое как оно работает) + предложила вспомогательные инструменты (swarm, compose) и пользователь сделал свой выбор.
Учитывая что Docker появился относительно недавно, может возникнуть вопрос: а как люди раньше то жили без него? А жили довольно неплохо, в 2000х и по сей день актуальны технологии: OpenVZ, LXC (Linux Containers), Solaris Containers. Но именно docker произвел революцию, максимально всё упростив.
Теперь когда у нас есть контейнеризация мы можем запускать на серверах тысячи разнообразных контейнеров, управлять ими быстро и удобно, масштабироваться по кнопке. И тут у сообщества возникает потребность в софте который:
- предложил бы высокоуровневое API для того чтобы управлять зоопарком контейнеров.
- Не имел вендор лока на Docker а мог работать c контейнерами собранными любой утилитой
И вот мы плавно подошли к Kubernetes и его аналогам. В следующем посте разберемся как обстоят дела в зоопарке оркестраторов😊
Спасибо что читали, всем хороших выходных❤️
Post #183
1.62K
- 🔥 22
- 👍 4
- ❤ 2
- 🕊 1