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