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

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

Upload: ontico

Post on 16-Jun-2015

1.046 views

Category:

Documents


2 download

TRANSCRIPT

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

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

нового поколенияДмитрий Лазаренко

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

О себе• Технический директор Российского

подразделения Jelastic. • Более 7 лет проектирования и разработки

высоконагруженных информационных систем в области финансов.

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

О проекте• Jelastic —новая облачная платформа как

сервис(PaaS) для Java.

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

Отличия от других платформ• Автомасштабирование приложений:

вертикальное и горизонтальное• Только стандартный стек технологий• Отсутствует Vendor Lock-In• Минимизация действий конечного

пользователя, OneClick - интерфейс

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

Отличия от других платформ• Мы делаем платформу, а не продаем

хостинг• Jelastic дает обычным хостерам

возможности Google и Amazon

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

ИсторияПроект Hivext, 2009 год• Облачная платформа для разработки на

java, php, js приложений

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

Компоненты системы

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

Hivext• Платформа для разработки и сервисная шина• Широко используется внутри платформы Jelastic• На ней построено много приложений:

– Сайт http://jelastic.com– Dashboards пользователей и администраторов– Сбор ошибок– Wiki– Блог

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

Системная архитектура

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

Системная архитектура крупнее

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

Используемые технологии• Java 6• Spring• Hibernate• Nginx• Tomcat 6• MySql• Memcached• Ext-JS• Hivext

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

КонтейнерыДелятся на:– Инфраструктурные контейнеры– Пользовательские контейнеры

• Каждый элемент окружения - отдельный виртуальный контейнер

• На одну физическую машину с 32 GB RAM умещается до 500 виртуальных контейнеров

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

Контейнеры• Все контейнеры типизированы• Для каждого типа свои управляющие скрипты• Взаимодействие ядра и конкретного контейнера

происходит по ssh• Существуют пулы шаблонов контейнеров• Существуют специальные lazy-алгоритмы, создающие

пулы на каждом физическом сервере

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

Выбор системы виртуализации• KVM• XEN• LXC• OpenVZ• Parallels Virtuozzo Containers

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

Почему Virtuozzo?• Самые низкие накладные расходы на виртуализацию• Пользователь не платит за потребление памяти и

процессора ядра ВМ• Возможность вертикального масштабирования: Memory

Overcelling• Гибкие настройки потребления ресурсов• Оптимальная утилизация дискового пространства• Живая миграция

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

Инсталляция и обновления-прошлое• Ручное обновление инфраструктурных и пользовательских

контейнеров в каждом-дата центре• Не было стандартизации• Рассинхронизация конфигураций в разных датацентрах• Админы что-то всегда забывают• Часто вылезают давно исправленные баги• Установка занимала несколько дней • Обновление занимало весь день

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

Процесс обновления

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

Установка на голом железе

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

Вертикальное масштабирование• Обеспечивается автоматического вертикального

масштабирования вверх и вниз для Java приложений

• Работает в G1 и Serial GC• Абсолютно прозрачно и выгодно для

пользователя

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

Хитрые алгоритмы• Алгоритм распределения новых контейнеров по

физическим машинам с учетом комплексного показателя загрузки

• Алгоритм равномерного размазывания контейнеров одного окружения

• Алгоритм умной живой миграции окружений на загруженных машинах

• Обеспечение HA

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

Возникшие проблемы• Большие нагрузки• Обработка большого числа статистических данных• Утечки памяти в JVM• Странное поведение virtuozzo• Быстрое восстановление после сбоев оборудования• Сложность репликации сессий для обеспечения HA• Проксирование произвольного https траффика

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

Что в итоге получает пользователь

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

Команда35 человек:• 10 разработчиков• 4 администратора• 5 маркетологов• Статьи на Хабре пишет девушка

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

Направления развития• Поддержка IaaS платформ• Расширение стэка технологий• Private Cloud

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

Заключение• Jelastic – отечественная разработка,

успешно конкурирующая с мировыми лидерами PaaS, и переводящая хостинг на новый уровень