Как мы строили Jelastic - облачную платформу (PaaS) нового...

Post on 16-Jun-2015

1,030 views 2 download

transcript

Как мы строили 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, и переводящая хостинг на новый уровень