67
Вертикальное и горизонтальное масштабирование Java приложений v2.5 Capabilities & benefits 2014

Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Embed Size (px)

Citation preview

Page 1: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Вертикальное и

горизонтальное

масштабирование

Java приложенийv2.5

Capabilities & benefits2014

Page 2: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

План доклада

1. Вступление.2. Jelastic PaaS features.3. Platform benefits & nuances.4. API. Пример проекта управляющего

горизонтальным масштабированием по API.

5. IDE integration.6. How much ?

Page 3: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

PaaS

• Глобальная автоматизация• Простота управления

приложениями• Масштабирование приложения

в зависимости от нагрузки• Целостность и безопасность

данных приложения

PaaS значительно снижает затраты времени и денег на обслуживание

Page 4: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Jelastic– платформа облачного хостинга следующего поколения,

позволяющая запускать и масштабировать

приложения без необходимости

модифицировать их исходный код

Page 5: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Разработчики любят создавать приложения и ненавидят обслуживатьсервера

10:15 Установка ОС11:20 Конфигурирование системы

12:05 Перерыв на кофе13:05 Настройка безопасности

14:15 Конфигурация web сервера15:40 Конфигурация базы данных16:20 Пару бутербродов

16:50 Конфигурация брандмауэра17:20 Разворачивание приложения17:45 Звонок жене и извинения о позднем возращении

домой18:00 Определение зависимостей библиотек20:30 Обновление пакетов22:15 Исправление неисправных зависимостей

23:50 Пару банок Red Bull1:30 Запуск!!!

~ 16 часов ~ 2 дня

Одна история из жизни разработчика

Пример из жизни

2:05 ночи Окончание рабочего дня

Page 6: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

10:15 Выбрать тип и размер сервера 10:17 Выбрать доменное имя10:20 Загрузить приложение10:25 Запустить!!!

~ 10 минут

Та же история с использованием Jelastic

• Легко• Быстро• Удобно• Экономия времени и денег

10 минут vs 2 дня = $$$$$$ ---> Profit !!!!

Page 7: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

2. Platform Features

7

Page 8: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

no vendor-Lock-in

zero code change PaaS

20+ Independent companies

provide Jelastic Public Cloud

8

Page 9: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Настройка окружения

9

Page 10: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Готовые app-сервера на любой вкус

10

Page 11: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

SQL

11

Page 12: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

NoSQL

12

Page 13: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Доступ к конфигурационным файлам из панели, по FTP, SFTP, SSH, API

13

Page 14: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Deploy

- Deploy Your Projects via GIT/SVN with Maven

- deploy via Archive / URL supports .WAR, .ZIP or .EAR formats.

14

Page 15: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Public IP

15

Page 16: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Multiple Domain Names on Tomcat Server

16

Page 17: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Резервирование ресурсов (reserved cloudlets) иустановка лимитов по выделению ресурсов

(scaling limits)

17

Page 18: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Load Alerts

18

Page 19: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

трансфер окружений, collaboration

19

Page 20: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

HA-Cluster

20

Page 21: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

SSH access

Page 22: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

SSH access

Page 23: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

SSH access

Page 24: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

3. Platform benefits & nuances

24

Page 25: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Проблемы вертикального масштабирования в облаке

• Гипервизор резервирует память, хотя приложение может ее и не использовать

• Деление процессорного времени (KVM, XEN)

• Быстрый рост потребления ресурсов одним из приложений

• Достижение предела вертикального масштабирования–performance упирается в возможности железа

25

Page 26: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Automatic Horizontal Scaling

26

Page 27: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Особенности вертикального масштабирования в Java

• Физическое потребление памяти JVM может только увеличиваться

• Освободившаяся после работы GC память не отдается обратно в операционную систему

• Разные GC по разному работают с большим объемом памяти

• Большие паузы на больших объемах Heap

• Возможны утечки памяти

27

Page 28: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Вертикальное масштабирование в Jelastic

• Результат 6 месяцев исследований

• Обеспечивается автоматическое вертикальноtмасштабирование вверх и вниз для Java приложений

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

28

Page 29: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Горизонтальное масштабирование

Рост производительности приложения при добавлении ещё одного узла.

• Дает возможность обойти пределы вертикального масштабирования

• Увеличивает скорость работы программы за счет распределения по разным физическим машинам

29

Page 30: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Упрощение масштабирования приложений в Jelastic

• Быстрое и гибкое создание кластера произвольного размера

• Адаптивное горизонтальное и вертикальное масштабирование, поддержка HA для GlassFish, Tomcat, Jetty

• Удобные средства мониторинга

30

Page 31: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Горизонтальное масштабирование вручную

31

Page 32: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Auto Horizontal Scaling

32

Page 33: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Multi-nodes in environment, node aliases

33

Page 34: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Что дает Jelastic для горизонтального масштабирования

• Хитрые алгоритмы:

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

– Алгоритм распределения новых контейнеров по физическим машинам с учетом комплексного показателя загрузки

• Обеспечение отсутствия SPoF на слое приложения

34

Page 35: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

HA, DB replication

• mysql master-master -http://docs.jelastic.com/multi-master-mysql-replication

• Mysql master-slave – via marketplace

• mongoDB master-slave – via marketplace

Page 36: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

HA, DB replication

Page 37: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Межпроцессорная координация

Проблема:

Координация процессов в разных JVM

Решение:

– Hazelcast - http://docs.jelastic.com/hazelcast-cluster

– Jgroups - http://docs.jelastic.com/jgroups-cluster

37

Page 38: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Java Garbage Collection in Jelastic Cloud

38

Page 39: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Java Garbage Collection in Jelastic Cloud

• ParNew for all servers with resource limits below 8GB

• G1 for servers with resource limits above 8GB (64 cloudlets and

more)

To tune the settings of Jelastic GC agent, navigate to the server > variables.conf file for Tomcat, TomEE or Jetty application server.

39

Page 40: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Tune the GC settings

• Change the Period of Checks

• Enable Debug Mode

40

Page 41: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Репликация http-сессий в Jelastic

41

Page 42: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Marketplace

42

Page 43: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Путь прохождения http запросов в зависимости от топологии окружения

1. Only 1 application server instance

2. Balancer (as an entry point) and application server(s)

43

Page 44: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Путь прохождения http запросов в зависимости от топологии окружения

3. Only 1 application server instance with Public IP

4. Balancer (as an entry point) with Public IP and application server(s)

44

Page 45: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

3. API

45

Page 46: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

appid mandatory

46

Page 47: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

appid ??????!!!

- авторизуемся с дефлотным appid1dd8d191d38fff45e62564fcf67fdcd6 (api документацияглавная страница)

- получаем идентификатор ссесии

- получаем список своих окружений

47

Page 48: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Возможности API

• Создаем и конфигурируем окружения по API

• Add | Build | Edit Projects удаляем проекты

• Start | stop | sleep Environments

• Read | remove logs• Считываем статистику по нагрузке

• Read | edit | del - files - операции с файлам внутри контейнеров

• ResetNodePassword

• Вплоть до создания собственного SaaS поверх Jelastic• и многое другое

48

Page 49: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Примеры работы с API.http://docs.jelastic.com/api/

49

Page 50: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Jelastic API in Action

http://docs.jelastic.com/ru/api-overview

50

Page 51: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

5. IDE integration.

• IDEA Plugin User Manual – http://docs.jelastic.com/idea-plugin

• Eclipse Plugin User Manual -http://docs.jelastic.com/eclipse-plugin-user-manual

• NetBeans IDE Plugin User Manual -http://docs.jelastic.com/netbeans-plugin-guide

Page 52: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Jelastic Netbeans Plugin

Page 53: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API
Page 54: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API
Page 55: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Управление из IDE

• Start | Stop Env

• Deploy from IDE

• Restart nodes

• View logs

• Add | Destroy context

Page 56: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API
Page 57: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Pricing

6. How much ?

Page 58: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Cost details

58

Page 59: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

1 cloudlet = 128 MB RAM & 200 MHz CPU

59

Page 60: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

1 cloudlet = 128 MB RAM & 200 MHz CPU

60

Page 61: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Скидки для стартапов

Партнерская программа для учебных центров, ВУЗ, курсов

61

Page 62: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Marketing part-1

Page 63: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Marketing part-2

Page 64: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Marketing part-3

Page 65: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Что еще нового появилось в Jelastic v 2.5.

- marketplace upgrade

- multinodes for all except maven.- кнопка settings окружения- кнопка api-docs в дашборде- алиасы для окружений и контейнеров.- ssh upgrade - mc, nano, vim

-обновление стека приложений

Page 66: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Cartridges

Page 67: Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benefits. Jelastic API

Владимир Илюшенко

[email protected]

380 (44) 359 05 28

www.neohost.net

NEOHOST LLC