Containers, containers,
containers….
WHOAMI: Yevhen Malyi
○ Тогда
○ СумДУ: Физтех
○ Телесвіт(Воля): Системный Администратор
○ ГУПСЗН: Системный Администратор
○ PortaOne Inc.: инженер тех.поддержки
○ Сейчас
○ MindK Inc.: Системный Администратор
Что будет в докладе
○ Проблемы грузоперевозок
○ Что такое контейнер
○ Докер
○ Его роль для контейнеров
○ Его роль для инфраструктуры
○ Его роль в отношениях Dev’a и OPS’a
○ Контейнеры сегодня
○ Приложение
○ Виртуалка
○ Жир - кто как борется с ним
Чего не будет в докладе
○ Скучных примеров кода
Чего не будет в докладе
○ Скучных примеров кода
○ Интересных примеров кода
Чего не будет в докладе
○ Скучных примеров кода
○ Интересных примеров кода
○ Примеров кода
Что будет в докладе
○ Проблемы грузоперевозок
○ Что такое контейнер
○ Докер
○ Его роль для контейнеров
○ Его роль для инфраструктуры
○ Его роль в отношениях Dev’a и OPS’a
○ Контейнеры сегодня
○ Приложение
○ Виртуалка
○ Жир - кто как борется с ним
Проблема
Deploy приложений сложнее,
чем могло бы быть
Проблема
https://localhost
Проблема
https://production.ua
Проблема
https://production.ua
Проблема
Проблема
Проблема
Проблема
Решение
Решение
○ Ручная погрузка судна
обходится в $5.86 за
тонну (до 60х)
○ Используя контейнеры -
$0.16
Что будет в докладе
○ Проблемы грузоперевозок
○ Что такое контейнер
○ Докер
○ Его роль для контейнеров
○ Его роль для инфраструктуры
○ Его роль в отношениях Dev’a и OPS’a
○ Контейнеры сегодня
○ Приложение
○ Виртуалка
○ Жир - кто как борется с ним
Что ты, container?
Что ты, container?
Что ты, container?
Что ты, container?
Что ты, container?
○ Контейнер - более 10ти лет.
○ Chroot (1982)
○ UNIX: Solaris zones (2004), BSD jails (2000)
○ Windows: iCore Virtual Accounts (2008), Parallels Containers (2000)
○ Linux: Virtuozzo: OpenVZ (2005), Linux V-Server (2001), LXC (2008)
Что ты, container?
○ cgroups - учёт и ограничение потребляемых ресурсов
● CPU, memory, block I/O, network, etc.
○ Namespace isolation - изоляция процессов
• Mount namespace
• PID namespace
• Network namespace
• UTS (Allows changing hostname, domainname)
• IPC Namespace
• User namespace
Что ты, container?
Что будет в докладе
○ Проблемы грузоперевозок
○ Что такое контейнер
○ Докер
○ Его роль для контейнеров
○ Его роль для инфраструктуры
○ Его роль в отношениях Dev’a и OPS’a
○ Контейнеры сегодня
○ Приложение
○ Виртуалка
○ Жир - кто как борется с ним
Кто ты, Docker?
Docker != container
Кто ты, Docker?
https://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer/
Кто ты, Docker?
○ Попытка захватить мир
Кто ты, Docker?
○ Попытка захватить мир
○ Новый пакетный менеджер для Linux
Кто ты, Docker?
○ Попытка захватить мир
○ Новый пакетный менеджер для Linux
○ Технология упаковки и доставки приложения
Кто ты, Docker?
○ Попытка захватить мир
○ Новый пакетный менеджер для Linux
○ Технология упаковки и доставки приложения
“упаковать, отправить и запустить любое приложение в виде легкого
портативного самодостаточного контейнера LXC, который может
работать практически в любом месте” (Джеймс Боттомли,
технический директор Parallels)
Что будет в докладе
○ Проблемы грузоперевозок
○ Что такое контейнер
○ Докер
○ Его роль для контейнеров
○ Его роль для инфраструктуры
○ Его роль в отношениях Dev’a и OPS’a
○ Контейнеры сегодня
○ Приложение
○ Виртуалка
○ Жир - кто как борется с ним
Контейнеры сегодня
○ Контейнер это приложение
Контейнеры сегодня
○ Контейнер это приложение
○ Контейнер это виртуалка
Контейнер это приложение
Концепция докера:
Один контейнер = один процес
Что будет в докладе
○ Проблемы грузоперевозок
○ Что такое контейнер
○ Докер
○ Его роль для контейнеров
○ Его роль для инфраструктуры
○ Его роль в отношениях Dev’a и OPS’a
○ Контейнеры сегодня
○ Приложение
○ Виртуалка
○ Жир - кто как борется с ним
Контейнер это приложение
Монолит и микросервисы
Контейнер это приложение
Монолит и микросервисы
Что будет в докладе
○ Проблемы грузоперевозок
○ Что такое контейнер
○ Докер
○ Его роль для контейнеров
○ Его роль для инфраструктуры
○ Его роль в отношениях Dev’a и OPS’a
○ Контейнеры сегодня
○ Приложение
○ Виртуалка
○ Жир - кто как борется с ним
Dev_OPS: Dev problems
Dev_OPS: Ops problems
Dev_OPS: Oops problems
Dev_OPS: Docker в помощь
Помните?
Dev_OPS: Docker в помощь
DEV OPS
Dev_OPS: Docker в помощь
DEV OPS
Просто котик и просто песик
Что будет в докладе
○ Проблемы грузоперевозок
○ Что такое контейнер
○ Докер
○ Его роль для контейнеров
○ Его роль для инфраструктуры
○ Его роль в отношениях Dev’a и OPS’a
○ Контейнеры сегодня
○ Приложение
○ Виртуалка
○ Жир - кто как борется с ним
Container это виртуалка
VM ~ container
Это всё
Всех устраивает жир?
Что будет в докладе
○ Проблемы грузоперевозок
○ Что такое контейнер
○ Докер
○ Его роль для контейнеров
○ Его роль для инфраструктуры
○ Его роль в отношениях Dev’a и OPS’a
○ Контейнеры сегодня
○ Приложение
○ Виртуалка
○ Жир - кто как борется с ним
Paravirt
Proxy kernels
Unikernels
Вот теперь всё
Questions?
Coming soon
Tech battle #8: ?
Follow us and
stay tuned about future events
facebook.com/mindklab
instagram.com/mindklab
twitter.com/mindklab
linkedin.com/company/mindk

More Related Content

PPTX
Введение в Docker
PDF
Docker контейнерная революция
ODP
Введение в Docker
PDF
Docker for JS people
PPTX
Что такое Docker
ODP
My talk on Docker, Youcon 2015
PPTX
PDF
obzor-tiekhnologhii-kontieinierov
Введение в Docker
Docker контейнерная революция
Введение в Docker
Docker for JS people
Что такое Docker
My talk on Docker, Youcon 2015
obzor-tiekhnologhii-kontieinierov

Similar to Containers, containers, containers... (20)

PDF
Михаил Боднарчук "Docker для PHP разработчиков"
PDF
OpenStack и Docker: вместе и по отдельности
PPT
Docker - быстро, просто, наглядно
PDF
OpenStack и Docker: вместе и по отдельности
PDF
[ISC] Docker + Swarm
PDF
Окружение разработчика - от виртуализации к контейнеризации
PDF
My talk on Docker from Moscow Django Meetup #25
PDF
Docker - счастье для хомячка или ника?
PDF
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
PDF
DevCon School. Azure Microservices and Containers
PPTX
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
PDF
Docker. Основы
ODP
Docker : что это, зачем, и как им пользоваться
PDF
Депрокрастинируем Docker: контейнеры здесь и сейчас
PDF
Используем контейнеры, или Не дай заказчику повалить продакшн
PPTX
Docker и оркетсрация контейнеров в облаке Azure
PPTX
Docker в виртуальной среде VMware
PPTX
Docker. Зачем он нам?
PDF
Grossum - Docker
Михаил Боднарчук "Docker для PHP разработчиков"
OpenStack и Docker: вместе и по отдельности
Docker - быстро, просто, наглядно
OpenStack и Docker: вместе и по отдельности
[ISC] Docker + Swarm
Окружение разработчика - от виртуализации к контейнеризации
My talk on Docker from Moscow Django Meetup #25
Docker - счастье для хомячка или ника?
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
DevCon School. Azure Microservices and Containers
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
Docker. Основы
Docker : что это, зачем, и как им пользоваться
Депрокрастинируем Docker: контейнеры здесь и сейчас
Используем контейнеры, или Не дай заказчику повалить продакшн
Docker и оркетсрация контейнеров в облаке Azure
Docker в виртуальной среде VMware
Docker. Зачем он нам?
Grossum - Docker
Ad

More from UP2IT (18)

PDF
Microservices. Mastering Chaos
PPTX
Сочетание классической и гибкой методологий управления проектами
PPTX
Go для веба глазами PHP-разработчика
PPTX
Дизайнер в эпоху цифровых перемен
PPTX
Продуктовий дизайн і UX / UI дизайн процеси при розробці цифрових продуктів
PPTX
Модели OPEN SOURCE компаний и можно ли выжить без OPEN CORE и ENTERPRISE EDITION
PPTX
VR/AR в бизнесе
PPTX
Native DB transactions
PDF
Hell 2 Heaven or Choosing Cloud Provider
PPTX
Automation pyramid within CI process
PPTX
Kotlin для розробки Android
PPTX
React. Learn once, write anywhere
PPTX
Сложности и специфика построения систем раздачи адалт видео контента
PPTX
H2H Communication in IT
PPTX
Как я не стал барабанщиком или Как менеджер создает ценность
PPTX
Epic Sales Fails Compilation
PDF
Design Thinking
PPTX
Как настроенные процессы повышают прибыльность и снижают стресс
Microservices. Mastering Chaos
Сочетание классической и гибкой методологий управления проектами
Go для веба глазами PHP-разработчика
Дизайнер в эпоху цифровых перемен
Продуктовий дизайн і UX / UI дизайн процеси при розробці цифрових продуктів
Модели OPEN SOURCE компаний и можно ли выжить без OPEN CORE и ENTERPRISE EDITION
VR/AR в бизнесе
Native DB transactions
Hell 2 Heaven or Choosing Cloud Provider
Automation pyramid within CI process
Kotlin для розробки Android
React. Learn once, write anywhere
Сложности и специфика построения систем раздачи адалт видео контента
H2H Communication in IT
Как я не стал барабанщиком или Как менеджер создает ценность
Epic Sales Fails Compilation
Design Thinking
Как настроенные процессы повышают прибыльность и снижают стресс
Ad

Containers, containers, containers...

Editor's Notes

  • #5: Чего не будет в этом докладе: -в нем не будет скучных примеров кода
  • #6: Чего не будет в этом докладе: -в нем не будет скучных примеров кода -интересных примеров кода
  • #7: Чего не будет в этом докладе: -в нем не будет скучных примеров кода -интересных примеров кода -в докладе вообще не будет примеров кода Опустить ниже. Поиграть с размером шрифта
  • #9: А начать хотелось бы с проблемы. Проблемы деплоя приложения - это сложно,- это печаль и боль. Кто то уже проходил через это, у кого то это впереди, но деплой приложения на продакшн.
  • #10: Как часто бывает, что локально мы разрабатываем приложение. Долго разрабатываем. Все работает отлично на локальном.
  • #11: А когда заливаем код на продакшен - наступает час пик. Не обязательно на продакшене, на компьютере коллеги,
  • #12: Первые мысли - ВАТ? Что произошло? Почему у Васи все норм? Почему я? Самое грустное в этой истории - если это конечный пользователь не ваш коллега, а клиент.
  • #13: Давайте рассмотрим предысторию, причины того, почему так происходит. В верхней части находится набор разных стеков приложений. Ну какие стеки Внизу где это может потребоваться запустить. Вы можете разрабатывать на своем ноутбуке,и совсем не хотите бегать и рассказывать коллегам как все настраивать.
  • #14: Это можно показать в матрице (матрица сна).Чтобы спать спокойно, Опсу нужно знать как правильно доставить/настроить приложение на каждый отдельно взятый сервер. Предусмотреть все нюансы и подводные камни. Как это лучше, а главное правильно, сделать, пока не понятно.
  • #15: Вернемся в прошлый век. Около сотни лет назад человечество столкнулось с похожей проблемой - доставка груза. Есть разные виды грузов, разных габаритов - машина, кофе, фортепьяно. И находится они могут на разных складах, доставляться разными методами - паровозом, грузовиком, краном.
  • #16: И такая же матрица. И тут нужно понимать - что как доставить груз это проблема одного человека. Заказчику все равно, как он будет доставлен, главное чтобы в целости и сохранности, без изъянов. Тогда на помощь пришли контейнеры.
  • #17: Это был прорыв на новый, более качественный уровень грузоперевозок. Контейнер позволяет ставить рядом несовместимое. Помните загадку про “перевезти волка,зайца и капусту на другой берег”? Ответ - перевозите их в контейнерах. Возникает вопрос, почему бы по аналогии не осуществлять доставку ПО?
  • #18: Это был прорыв на новый, более качественный уровень грузоперевозок. Контейнер позволяет ставить рядом несовместимое. Помните загадку про “перевезти волка,зайца и капусту на другой берег”? Ответ - перевозите их в контейнерах. Возникает вопрос, почему бы по аналогии не осуществлять доставку ПО?
  • #20: Так что же такое контейнеры. Когда произносят это слово, многие представляют это контейнер для доставки груза. Кстати, у меня именно такой был первый дачный домик. У наших соседей тоже. У соседей соседей тоже.
  • #21: Ну а если вы домохозяйка - то скорее всего вы представляете такой контейнер. На самом деле в таких контейнерах удобно носить обеды на работу.
  • #22: Ну а если у вас есть дети, то скорее всего - такой контейнер. На если вы домохозяйка, с дачей и детьми, то в скорее всего все три контейнера. Так сказать - стек контейнеров.
  • #23: Но сегодня мы собрались поговорить об АйТишных контейнерах. О software контейнерах. В интернете можно найти разные определения контейнеров - как дата тайп, как тип теории, гуи контейнер. И только одна статья о контейнерах как виде виртуализации. Именно о таких и будем говорить. Если определение на слайде вам не понятно - не расстраивайтесь, мне тоже. Но разобраться хотелось
  • #24: Если обратиться к истории контейнеров, то контейнер не новость. В той же статье на википедии, если ссылка на то что первая имплементация контейнеров - chroot (1982). Но главными революционерами были Vituozzo, в 2001году. Позже они выдали в опенсоурс свой продукт ОпенВЗ.
  • #25: Контейнеры основываются на двух примитивах/китах - неймспесы (пространство имен) и цгрупс (контрольные групы) Цгрупс позволяет - ядерная подсистема которая позволяет объединять процессы в группы и прикреплять к этим группам определенные контроллеры, которые позволяют администратору определять кто как будет употреблять системные ресурсы - цпу, память, сетвую пропускную способность и т.д. фича линукса для ограничения, контроля и изолирования ресурсов без необходимости запуска виртуальной машины. То есть вы даете приложению столько ресурсов сколько хотите дать. Как простой пример - вы можете возможное ограничть количество памяти контейнеру. Вторая тоже объединяла процессы в группы и позволяет делать так чтобы группы процессов по одним идентификаторам видеть разные группы разные объекты. дает возможность полностью изолировать приложения от операционной системы, включая дерево процессов, сеть, файловую систему, пользователей и т.д По сути изоляция+ограничение это и есть контейнер. Но такой способ не являлся простым и тривиальным в использовании. А хочеться что бы было все попроще. И это желание аля проблемма было не единичным. Этому городу нужен герой!
  • #26: И оно появилось. Докер, который добавил к технологии контейнерной виртуализации возможность запаковать приложение и запустить его в контейнере. Дальше-больше. Сегодня контейнер называют способ запаковать приложение со всеми его зависимостями и запустить в отдельном окружении. То есть сегодня контейнером называют докер.
  • #28: Но на самом деле докер это не контейнер. Докер, сначала был оберткой над LXC.
  • #29: Но однажды произошел произошел редизайн внутри ядра линукс, где что-то изменили, что-то улучшили. Докер отказался, так сказать, от посредника и стал использовать напрямую технологии ядра. На самом деле они разработали абстракцию которая позволила им использовать различные исполняемые среды.
  • #30: Так кто же ты такое докер? Какое можно дать определение докеру? Это попытка захватить мир. Если вы не слышали о докере, вы давно не выходили на улицу, не платили за интернет. Он везде, он повсюду.
  • #31: Вам нужно запустить офис? Браузер? Вам нужно установить только докер, а он сделает все за вас. Вам больше не нужно ставить кучу разных пакетов, только докер, только хардкор.
  • #32: докер - упаковка и доставка приложения на базе контейнерных технологий. Еще слышал такие объяснения - как “докер это как вагрант”, “докер это хрень”. и “докер это тулза для админов, чтобы они могли выпендриваться”.
  • #33: Но пожалуй главное определение докера - упаковка и доставка приложения на базе контейнерных технологий.
  • #35: Можно подытожить: сегодня, контейнер это приложение. А кто смотрел Трансформеры? Да наверное все смотрели. Помните сцену с матрицей лидерства, там где парнишка вроде как умер. И тут появляются все прайды - и такие ему: матрицу лидерства нельзя найти, её можно только заслужить. Это всегда было, есть и будет твоим предназначением. И потом он оживает сам и оживляет Оптимуса. Крутая сцена. Это я к чему.
  • #36: Всегда были,есть и будут люди которые считают что контейнер/докер это виртуалка. Поэтому сегодня, контейнеры нужно рассматривать как 2 направления: - это приложение Это виртуалка
  • #37: Начнем с первого варианта - контейнер это приложение. Опять же, вспоминая ранее сказанное, именно докер принес такую философию, что один контейнер = один процес. У меня жена работает БА и это как бы её не должно касаться, но пару лет фанатеет от контейнеров. Особенно от этого концепта. Поэтому, наверное, как вы поняли, у нас в холодильнике всегда есть контейнер с картошечкой, контейнер с салатиком и т.д. Один конейнер - один процес, один сервис. А что если этих “одних сервисов” у нас много?
  • #39: А это значит, что нам нужно смотреть в сторону микросервисной инфраструктуры. И на самом деле так и было, как только докер вошел в массы, сразу за ним в массы вошла и микросервисая инфраструктура. Да, в самом начале было много холиваров - что есть хорошо, что есть плохо. Поклонники радовались, говорили “микросервисы - это круто”. остальные говорили - что да, это круто, но у нас получилось ещё хуже чем было.
  • #40: Но на фоне парадигмы контейнер=приложение это выглядит как "Отказоустойчивость", "распределенность", "масштабируемость"
  • #42: С появлением докера изменилось Все знают, что разработчики любят писать код и не любят разбираться в администрировании серверов.
  • #43: Все знают - у меня локально все работает. Разбирайся что не так. После этой фразы прям жалеешь, что не ходил на бокс...
  • #44: Но как не крути, если такое происходит - это реальный факап, реальный УПС.
  • #46: Получается, что теперь разработчик может сделать приложение, запаковать его. И отдать админу. Админ его дальше доставляет по назначению. Оно начинает работать. все довольны. Профит. Можно идти пить пиво.
  • #47: Но на самом деле не все довольны. Остается настраивать такие вещи мониторинг, бэкапы, апдейты,настройка сети и т.д. Это не просто. Но вокруг докера начали появляться другие проэкты, которые помогают в тонкой конфигурации. В принципе докер признает эти проблемы, пытаются решить их поддерживая смежные проекты.
  • #48: Это наглядные пример, того что может быть если у вас с женой один ноутбук. На самом деле не просто - это Снежана Игоревна и Смайлик. Снежану мы взяли из приюта. Она была дворянских кровей,а спустя год мы узнали, что она породистая. А после Смайлика в гостях постоянно находим бублики спрятанные в разных местах - подушка, пододеяльник.
  • #50: Контейнеры и Вмки - одинаковы в Очень часто когда сравнивают вм и контейнер приводят аналогию с домом и общежитием. Дом, эта такая классная цх этажная штука где живет семья из трех человек. У каждого есть свой туалет, балкон. гараж и т.д. Вокруг дома 4г города, куча цветников, барбекю и качельки. Общежитие - это один этаж на 20 человек.все они между собой делят туалет, кухню, душ. Общая система винтеляции.ну в общем все общее. Контейнер - это общее железо, общее ядро.Дальше свой набор библиотек. Виртуалка - пожирнее. Железо, ядро, виртуальное железо, виртуальное ядро.а дальше набор библиотек То есть у вируталки по сравнению с контейнером есть хороший такой жирок. Благодаря этому жиру виртуалка долго встает, виртуалок может меньше поместиться на площадке. Грубо говоря там где могут жить 100 контейнеров, около 10 вм может поместиться.
  • #51: Это в принципе все
  • #52: Если вспомнить что контейнрам чуток больше 10лет. То Виртуальный машины это, так сказать, старший брать.намного старше. Возникает вопрос, неужели зная о жире больше чем 10 лет, никто не пытался его сбросить? А вот и да - пытались.на самом деле таких технологий не много, но они есть.
  • #54: Сейчас хоть и осень, но с жиром можно и нужно бороться. Вариантов несколько. Паравиртуализация. Существует давно. Она объясняет гостевому ядру, что она работает в гипервизоре, не нужно загружать стандартные драйвера. Если нужно сделать специальный вызов к хипервизор и он его обработает быстрее по сравнению если обращаться к виртуальному железу.
  • #55: Прокси ядра - разработчики изменили ядро, так что часть функций это ядро выполняет внутри себя,а часть функций отдает ядру запущенному на хосте. Проанализировали уязвимости в ядрах линукс, как оказалось большое их количество находится в слоях отвечающих за коммуникацию с системными библиотеками А код который отвечает за дисковый планировщик, сетевой стек, драйвера файловых систем - в них уязвимостей практически нет.
  • #56: Юникернелс пошла ещё дальше. Если мы отказались от гостевого железа, почему бы не отказаться от гостевого ядра? Технология которая приблизилась к контейнерам. Её библиотеку нужно собирать под конкретное приложение.
  • #57: Artem D.