Как мы строили Jelastic - облачную платформу (PaaS) нового поколения Дмитрий Лазаренко
О себе Технический директор Российского подразделения Jelastic. Более 7 лет проектирования и разработки высоконагруженных информационных систем в области финансов.
О проекте Jelastic новая облачная платформа как сервис(PaaS) для Java.
Отличия от других платформ Автомасштабирование приложений: вертикальное и горизонтальное Только стандартный стек технологий Отсутствует Vendor Lock-In Минимизация действий конечного пользователя, OneClick - интерфейс
Отличия от других платформ Мы делаем платформу, а не продаем хостинг Jelastic дает обычным хостерам возможности Google и Amazon
История Проект Hivext, 2009 год Облачная платформа для разработки на java, php, js приложений
Компоненты системы
Hivext Платформа для разработки и сервисная шина Широко используется внутри платформы Jelastic На ней построено много приложений: – Сайт – 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, и переводящая хостинг на новый уровень