• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
531
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
6
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 2758.933194 2-8-15-2 Сибирёв Андрей 1734,45 2-8-7 Co caine Clouds A Cl oser Look 2.0
  • 2. Мы делаем инфраструктуру. 2
  • 3. Как и десять лет назад, обычно инфраструктура представляет из себя бардак. Немного истории 3 ©SimpleDesktops.com
  • 4. Как и десять лет назад, обычно инфраструктура представляет из себя бардак. При этом, инфраструктура является основой любого современного бизнеса. Немного истории 3 ©SimpleDesktops.com
  • 5. Как и десять лет назад, обычно инфраструктура представляет из себя бардак. При этом, инфраструктура является основой любого современного бизнеса. Кажется, что-то здесь не так. Немного истории 3 ©SimpleDesktops.com
  • 6. Компании начинают с небольшого количества серверов. В начале был сервер 4 ©SimpleDesktops.com
  • 7. Компании начинают с небольшого количества серверов. Постепенно парк серверов растёт, вместе с ростом пользовательской базы и, следовательно, нагрузки. В начале был сервер 4 ©SimpleDesktops.com
  • 8. Рано или поздно, компания обнаруживает у себя кучу разнородного железа. В начале был сервер 5 ©SimpleDesktops.com
  • 9. Рано или поздно, компания обнаруживает у себя кучу разнородного железа. И если его использование документировано и учтено, то всё хорошо. В начале был сервер 5 ©SimpleDesktops.com
  • 10. Рано или поздно, компания обнаруживает у себя кучу разнородного железа. И если его использование документировано и учтено, то всё хорошо. Но такое встречается редко. В начале был сервер 5 ©SimpleDesktops.com
  • 11. Разнообразие — это великое зло. 6
  • 12. В программах есть ошибки. И на сервере был софт 7 ©SimpleDesktops.com
  • 13. В программах есть ошибки. Ошибки чинят и выпускают новые версии программ, на радость пользователям. И на сервере был софт 7 ©SimpleDesktops.com
  • 14. В программах есть ошибки. Ошибки чинят и выпускают новые версии программ, на радость пользователям. Правда, эти новые версии сначала нужно пользователям доставить. И на сервере был софт 7 ©SimpleDesktops.com
  • 15. Очевидно, чтобы выкатить новую версию программы, нужна интеллектуальная система деплоймента приложений. И на сервере был софт 8 ©SimpleDesktops.com
  • 16. Очевидно, чтобы выкатить новую версию программы, нужна интеллектуальная система деплоймента приложений. Например, пять тысяч строк на Perl и Rsync! И на сервере был софт 8 ©SimpleDesktops.com
  • 17. Очевидно, чтобы выкатить новую версию программы, нужна интеллектуальная система деплоймента приложений. Например, пять тысяч строк на Perl и Rsync! На самом деле, нет. И на сервере был софт 8 ©SimpleDesktops.com
  • 18. Rsync — не инструмент деплоймента. 9
  • 19. Программы, в которых есть ошибки, ломаются в самое неподходящее время. И софт был не очень 10 ©SimpleDesktops.com
  • 20. Программы, в которых есть ошибки, ломаются в самое неподходящее время. После работы пяти тысяч строк на Perl понять где и что именно сломалось невозможно. И софт был не очень 10 ©SimpleDesktops.com
  • 21. Программы, в которых есть ошибки, ломаются в самое неподходящее время. После работы пяти тысяч строк на Perl понять где и что именно сломалось невозможно. Бардак только что стал в два раза больше. И софт был не очень 10 ©SimpleDesktops.com
  • 22. Человечество изобрело мониторинг и метрики, чтобы такого никогда не было. И софт был не очень 11 ©SimpleDesktops.com
  • 23. Человечество изобрело мониторинг и метрики, чтобы такого никогда не было. Только об этом надо было думать в самом начале. И софт был не очень 11 ©SimpleDesktops.com
  • 24. Человечество изобрело мониторинг и метрики, чтобы такого никогда не было. Только об этом надо было думать в самом начале. Потому что невозможно управлять хаосом. И софт был не очень 11 ©SimpleDesktops.com
  • 25. Мониторинг — это контроль. 12
  • 26. Иногда программисты пишут быстрые программы. Утилизация ресурсов 13 ©SimpleDesktops.com
  • 27. Иногда программисты пишут быстрые программы. Звучит, вроде бы, хорошо, но, на самом деле, это не всегда так. Утилизация ресурсов 13 ©SimpleDesktops.com
  • 28. Иногда программисты пишут быстрые программы. Звучит, вроде бы, хорошо, но, на самом деле, это не всегда так. Обогревать датацентры серверами — не самая хорошая экономическая модель. Утилизация ресурсов 13 ©SimpleDesktops.com
  • 29. Ваше приложение попало на главную страницу Хабра. Пики нагрузки 14 ©SimpleDesktops.com
  • 30. Ваше приложение попало на главную страницу Хабра. И тысяча пользователей превратилась в пятьдесят тысяч. Вот это да, стартап окупился за одну ночь! Пики нагрузки 14 ©SimpleDesktops.com
  • 31. Ваше приложение попало на главную страницу Хабра. И тысяча пользователей превратилась в пятьдесят тысяч. Вот это да, стартап окупился за одну ночь! То есть, я хотел сказать «503 Service Temporarily Unavailable». Пики нагрузки 14 ©SimpleDesktops.com
  • 32. Единообразие — это гибкость. 15
  • 33. © Volkswagen AG
  • 34. Модульная архитектура, унифицированные вычислительные ресурсы: слоты, слайсы, юниты. Cloud 17 ©SimpleDesktops.com
  • 35. Модульная архитектура, унифицированные вычислительные ресурсы: слоты, слайсы, юниты. Детерминированная система деплоймента приложений. Cloud 17 ©SimpleDesktops.com
  • 36. Модульная архитектура, унифицированные вычислительные ресурсы: слоты, слайсы, юниты. Детерминированная система деплоймента приложений. Тесты, метрики и мониторинг. Мониторинг, метрики и тесты. Cloud 17 ©SimpleDesktops.com
  • 37. Like an OS 18 ©SimpleDesktops.com
  • 38. Kernel Like an OS 18 ©SimpleDesktops.com
  • 39. Kernel Drivers Like an OS 18 ©SimpleDesktops.com
  • 40. Kernel Drivers Resource Managers Like an OS 18 ©SimpleDesktops.com
  • 41. Kernel Drivers Resource Managers API Like an OS 18 ©SimpleDesktops.com
  • 42. Kernel Drivers Resource Managers API Userland Like an OS 18 ©SimpleDesktops.com
  • 43. Kernel Drivers Resource Managers API Userland Apps Like an OS 18 ©SimpleDesktops.com
  • 44. Аналогичны модулям ядра в Linux. Сервисы 19 ©SimpleDesktops.com
  • 45. Аналогичны модулям ядра в Linux. Logging, Storage, Search & Indexing, URL Fetching, Geolocation, ... Сервисы 19 ©SimpleDesktops.com
  • 46. Аналогичны модулям ядра в Linux. Logging, Storage, Search & Indexing, URL Fetching, Geolocation, ... Теперь все приложения — тоже сервисы. Сервисы 19 ©SimpleDesktops.com
  • 47. Discovery & Arbitration. Для обращения к сервису нужно знать только его имя. Локатор 20 ©SimpleDesktops.com
  • 48. Discovery & Arbitration. Для обращения к сервису нужно знать только его имя. Мы отказались от IDL, все метаданные о сервисе приложение получает в рантайме. Локатор 20 ©SimpleDesktops.com
  • 49. Discovery & Arbitration. Для обращения к сервису нужно знать только его имя. Мы отказались от IDL, все метаданные о сервисе приложение получает в рантайме. HTTP/2.0-like RPC. Непрозрачные бинарные потоки, мультиплексирование, расширяемость, распространённость. Локатор 20 ©SimpleDesktops.com
  • 50. Raft 21 ©SimpleDesktops.com
  • 51. Raft реплицирует конечные автоматы. Любой сервис можно представить в виде такого автомата. Raft 21 ©SimpleDesktops.com
  • 52. Raft реплицирует конечные автоматы. Любой сервис можно представить в виде такого автомата. Configuration Management, Distributed Locking, Resource Control — всё это реализовано как сервис на Raft. Raft 21 ©SimpleDesktops.com
  • 53. Raft реплицирует конечные автоматы. Любой сервис можно представить в виде такого автомата. Configuration Management, Distributed Locking, Resource Control — всё это реализовано как сервис на Raft. Мы научили Raft работать с динамическими топологиями: машины могут входить и выходить из кластера в любой момент. Raft 21 ©SimpleDesktops.com
  • 54. Сервисы — это абстрактные фронтэнды к разнообразным функциям инфраструктуры. Плагины 22 ©SimpleDesktops.com
  • 55. Сервисы — это абстрактные фронтэнды к разнообразным функциям инфраструктуры. Logging Service может быть реализован как через Syslog, так и через Logstash. Плагины 22 ©SimpleDesktops.com
  • 56. Сервисы — это абстрактные фронтэнды к разнообразным функциям инфраструктуры. Logging Service может быть реализован как через Syslog, так и через Logstash. Смена реализации делается через изменение конфига. Код приложений остаётся неизменным. Плагины 22 ©SimpleDesktops.com
  • 57. Система хранения — это фундамент для любой инфраструктурной платформы. Storage Service 23 ©SimpleDesktops.com
  • 58. Система хранения — это фундамент для любой инфраструктурной платформы. Самое главное, такая система должна быть надёжной, включая защиту от котиков и безумных экскаваторщиков. Storage Service 23 ©SimpleDesktops.com
  • 59. Система хранения — это фундамент для любой инфраструктурной платформы. Самое главное, такая система должна быть надёжной, включая защиту от котиков и безумных экскаваторщиков. Мы используем Elliptics. Storage Service 23 ©SimpleDesktops.com
  • 60. Надёжнее, чем молитва. Elliptics 24 ©SimpleDesktops.com
  • 61. Надёжнее, чем молитва. Вторичные индексы, стриминг, кэш, server-side processing и все остальные ключевые слова из других систем хранения данных. Elliptics 24 ©SimpleDesktops.com
  • 62. Надёжнее, чем молитва. Вторичные индексы, стриминг, кэш, server-side processing и все остальные ключевые слова из других систем хранения данных. И, главное, защита от атомной войны! Elliptics 24 ©SimpleDesktops.com
  • 63. Контролирует работу приложений — доставка на ноды, конфигурация, управление жизненным циклом. Node Service 25 ©SimpleDesktops.com
  • 64. Контролирует работу приложений — доставка на ноды, конфигурация, управление жизненным циклом. Собирает и хранит метрики и статистику о работе приложений для балансировщика. Node Service 25 ©SimpleDesktops.com
  • 65. Контролирует работу приложений — доставка на ноды, конфигурация, управление жизненным циклом. Собирает и хранит метрики и статистику о работе приложений для балансировщика. Управляет ресурсами кластера, распределяя инстансы приложений наиболее оптимальным образом по имеющимся машинам. Node Service 25 ©SimpleDesktops.com
  • 66. Контролирует работу приложений — доставка на ноды, конфигурация, управление жизненным циклом. Собирает и хранит метрики и статистику о работе приложений для балансировщика. Управляет ресурсами кластера, распределяя инстансы приложений наиболее оптимальным образом по имеющимся машинам. Поддерживаются процессы или контейнеры. Node Service 25 ©SimpleDesktops.com
  • 67. Управление ресурсами 26 © SimpleDesktops.com ©SimpleDesktops.com
  • 68. Knapsack problem. Как уложить наибольшее количество ценных вещей в рюкзак при условии что он не резиновый, как Москва? Управление ресурсами 26 © SimpleDesktops.com ©SimpleDesktops.com
  • 69. Knapsack problem. Как уложить наибольшее количество ценных вещей в рюкзак при условии что он не резиновый, как Москва? Это NP-полная задача, поэтому идеальным образом за разумное время решить её невозможно. Управление ресурсами 26 © SimpleDesktops.com ©SimpleDesktops.com
  • 70. Knapsack problem. Как уложить наибольшее количество ценных вещей в рюкзак при условии что он не резиновый, как Москва? Это NP-полная задача, поэтому идеальным образом за разумное время решить её невозможно. Сейчас решаем жадным алгоритмом, с оверхедом по ресурсам в ~10%. Можно лучше, но тогда надо программировать. Управление ресурсами 26 © SimpleDesktops.com ©SimpleDesktops.com
  • 71. Контейнеры — это легковесная виртуализация. Нет гипервизора, все контейнеры делят одно ядро. Контейнеры 27 ©SimpleDesktops.com
  • 72. Контейнеры — это легковесная виртуализация. Нет гипервизора, все контейнеры делят одно ядро. Процессы работают в изолированных неймспейсах: pid, uid, ipc, network, filesystem, mounts, ... Контейнеры 27 ©SimpleDesktops.com
  • 73. Контейнеры — это легковесная виртуализация. Нет гипервизора, все контейнеры делят одно ядро. Процессы работают в изолированных неймспейсах: pid, uid, ipc, network, filesystem, mounts, ... Запуск контейнера происходит в сотни раз быстрее, чем запуск виртуальной машины. Контейнеры 27 ©SimpleDesktops.com
  • 74. Стандарт распространения приложений на базе Linux Containers. Docker 28
  • 75. Стандарт распространения приложений на базе Linux Containers. Поддерживается Red Hat, Rackspace, Cloudflare, Ebay, Mozilla, OpenStack, Chef, Puppet, ... Docker 28
  • 76. Стандарт распространения приложений на базе Linux Containers. Поддерживается Red Hat, Rackspace, Cloudflare, Ebay, Mozilla, OpenStack, Chef, Puppet, ... Единый контейнер, который будет работать как на ноутбуке разработчика, так и на кластере из сотен машин. Docker 28
  • 77. Layer 3. Это значит не только HTTP — какие угодно данные в любом формате. Балансировка 29 © SimpleDesktops.com
  • 78. Layer 3. Это значит не только HTTP — какие угодно данные в любом формате. Балансировка в ядре: IPVS, IPv6, динамические веса, мгновенная реакция на изменения в кластере. Балансировка 29 © SimpleDesktops.com
  • 79. Layer 3. Это значит не только HTTP — какие угодно данные в любом формате. Балансировка в ядре: IPVS, IPv6, динамические веса, мгновенная реакция на изменения в кластере. Routing Groups. Расщепление траффика между несколькими интерфейсно-совместимыми приложениями. Балансировка 29 © SimpleDesktops.com
  • 80. 30 Андрей Сибирёв Руководитель службы разработки облачных технологий kobolog@yandex-team.ru @kobolog kobolog github.com/cocaine