Как мы строили Jelastic -
облачную платформу (PaaS)
    нового поколения
     Дмитрий Лазаренко
О себе
• Технический директор Российского
  подразделения Jelastic.
• Более 7 лет проектирования и разработки
  высоконагруженных информационных
  систем в области финансов.
О проекте
• Jelastic —новая облачная платформа как
  сервис(PaaS) для Java.
Отличия от других платформ
• Автомасштабирование приложений:
  вертикальное и горизонтальное
• Только стандартный стек технологий
• Отсутствует Vendor Lock-In
• Минимизация действий конечного
  пользователя, OneClick - интерфейс
Отличия от других платформ
• Мы делаем платформу, а не продаем
  хостинг
• Jelastic дает обычным хостерам
  возможности Google и Amazon
История
Проект Hivext, 2009 год
• Облачная платформа для разработки на
  java, php, js приложений
Компоненты системы
Hivext
• Платформа для разработки и сервисная шина
• Широко используется внутри платформы Jelastic
• На ней построено много приложений:
   – Сайт http://jelastic.com
   – Dashboards пользователей и администраторов
   – Сбор ошибок
   – Wiki
   – Блог
Системная архитектура
Системная архитектура крупнее
Используемые технологии
•   Java 6
•   Spring
•   Hibernate
•   Nginx
•   Tomcat 6
•   MySql
•   Memcached
•   Ext-JS
•   Hivext
Контейнеры
Делятся на:
  – Инфраструктурные контейнеры
  – Пользовательские контейнеры
• Каждый элемент окружения - отдельный
  виртуальный контейнер
• На одну физическую машину с 32 GB RAM
  умещается до 500 виртуальных контейнеров
Контейнеры
• Все контейнеры типизированы
• Для каждого типа свои управляющие скрипты
• Взаимодействие ядра и конкретного контейнера
  происходит по ssh
• Существуют пулы шаблонов контейнеров
• Существуют специальные lazy-алгоритмы, создающие
  пулы на каждом физическом сервере
Выбор системы виртуализации
•   KVM
•   XEN
•   LXC
•   OpenVZ
•   Parallels Virtuozzo Containers
Почему Virtuozzo?
• Самые низкие накладные расходы на виртуализацию
• Пользователь не платит за потребление памяти и
  процессора ядра ВМ
• Возможность вертикального масштабирования: Memory
  Overcelling
• Гибкие настройки потребления ресурсов
• Оптимальная утилизация дискового пространства
• Живая миграция
Инсталляция и обновления-прошлое
• Ручное обновление инфраструктурных и пользовательских
  контейнеров в каждом-дата центре
• Не было стандартизации
• Рассинхронизация конфигураций в разных датацентрах
• Админы что-то всегда забывают
• Часто вылезают давно исправленные баги
• Установка занимала несколько дней
• Обновление занимало весь день
Процесс обновления
Установка на голом железе
Вертикальное масштабирование
• Обеспечивается автоматического вертикального
  масштабирования вверх и вниз для Java
  приложений
• Работает в G1 и Serial GC
• Абсолютно прозрачно и выгодно для
  пользователя
Хитрые алгоритмы
• Алгоритм распределения новых контейнеров по
  физическим машинам с учетом комплексного показателя
  загрузки
• Алгоритм равномерного размазывания контейнеров
  одного окружения
• Алгоритм умной живой миграции окружений на
  загруженных машинах
• Обеспечение HA
Возникшие проблемы
•   Большие нагрузки
•   Обработка большого числа статистических данных
•   Утечки памяти в JVM
•   Странное поведение virtuozzo
•   Быстрое восстановление после сбоев оборудования
•   Сложность репликации сессий для обеспечения HA
•   Проксирование произвольного https траффика
Что в итоге получает пользователь
Команда
35 человек:
• 10 разработчиков
• 4 администратора
• 5 маркетологов
• Статьи на Хабре пишет девушка
Направления развития
• Поддержка IaaS платформ
• Расширение стэка технологий
• Private Cloud
Заключение
• Jelastic – отечественная
  разработка, успешно конкурирующая с
  мировыми лидерами PaaS, и переводящая
  хостинг на новый уровень

Как мы строили Jelastic - облачную платформу (PaaS) нового поколения (Дмитрий Лазаренко)

  • 1.
    Как мы строилиJelastic - облачную платформу (PaaS) нового поколения Дмитрий Лазаренко
  • 2.
    О себе • Техническийдиректор Российского подразделения Jelastic. • Более 7 лет проектирования и разработки высоконагруженных информационных систем в области финансов.
  • 3.
    О проекте • Jelastic—новая облачная платформа как сервис(PaaS) для Java.
  • 4.
    Отличия от другихплатформ • Автомасштабирование приложений: вертикальное и горизонтальное • Только стандартный стек технологий • Отсутствует Vendor Lock-In • Минимизация действий конечного пользователя, OneClick - интерфейс
  • 5.
    Отличия от другихплатформ • Мы делаем платформу, а не продаем хостинг • Jelastic дает обычным хостерам возможности Google и Amazon
  • 6.
    История Проект Hivext, 2009год • Облачная платформа для разработки на java, php, js приложений
  • 7.
  • 8.
    Hivext • Платформа дляразработки и сервисная шина • Широко используется внутри платформы Jelastic • На ней построено много приложений: – Сайт http://jelastic.com – Dashboards пользователей и администраторов – Сбор ошибок – Wiki – Блог
  • 9.
  • 10.
  • 11.
    Используемые технологии • Java 6 • Spring • Hibernate • Nginx • Tomcat 6 • MySql • Memcached • Ext-JS • Hivext
  • 12.
    Контейнеры Делятся на: – Инфраструктурные контейнеры – Пользовательские контейнеры • Каждый элемент окружения - отдельный виртуальный контейнер • На одну физическую машину с 32 GB RAM умещается до 500 виртуальных контейнеров
  • 13.
    Контейнеры • Все контейнерытипизированы • Для каждого типа свои управляющие скрипты • Взаимодействие ядра и конкретного контейнера происходит по ssh • Существуют пулы шаблонов контейнеров • Существуют специальные lazy-алгоритмы, создающие пулы на каждом физическом сервере
  • 14.
    Выбор системы виртуализации • KVM • XEN • LXC • OpenVZ • Parallels Virtuozzo Containers
  • 15.
    Почему Virtuozzo? • Самыенизкие накладные расходы на виртуализацию • Пользователь не платит за потребление памяти и процессора ядра ВМ • Возможность вертикального масштабирования: Memory Overcelling • Гибкие настройки потребления ресурсов • Оптимальная утилизация дискового пространства • Живая миграция
  • 16.
    Инсталляция и обновления-прошлое •Ручное обновление инфраструктурных и пользовательских контейнеров в каждом-дата центре • Не было стандартизации • Рассинхронизация конфигураций в разных датацентрах • Админы что-то всегда забывают • Часто вылезают давно исправленные баги • Установка занимала несколько дней • Обновление занимало весь день
  • 17.
  • 18.
  • 19.
    Вертикальное масштабирование • Обеспечиваетсяавтоматического вертикального масштабирования вверх и вниз для Java приложений • Работает в G1 и Serial GC • Абсолютно прозрачно и выгодно для пользователя
  • 20.
    Хитрые алгоритмы • Алгоритмраспределения новых контейнеров по физическим машинам с учетом комплексного показателя загрузки • Алгоритм равномерного размазывания контейнеров одного окружения • Алгоритм умной живой миграции окружений на загруженных машинах • Обеспечение HA
  • 21.
    Возникшие проблемы • Большие нагрузки • Обработка большого числа статистических данных • Утечки памяти в JVM • Странное поведение virtuozzo • Быстрое восстановление после сбоев оборудования • Сложность репликации сессий для обеспечения HA • Проксирование произвольного https траффика
  • 22.
    Что в итогеполучает пользователь
  • 23.
    Команда 35 человек: • 10разработчиков • 4 администратора • 5 маркетологов • Статьи на Хабре пишет девушка
  • 24.
    Направления развития • ПоддержкаIaaS платформ • Расширение стэка технологий • Private Cloud
  • 25.
    Заключение • Jelastic –отечественная разработка, успешно конкурирующая с мировыми лидерами PaaS, и переводящая хостинг на новый уровень