secr презентация дружинина

32
1 © Luxoft Training 2013 Mikhail Druzhinin, SECR, 2013 Использование платформы Cloudify PaaS для ускорения разработки приложений

Upload: luxofttraining

Post on 01-Nov-2014

254 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Secr презентация дружинина

1 © L

uxof

t Tra

inin

g 20

13

Mikhail Druzhinin, SECR, 2013

Использование платформы Cloudify PaaS для ускорения

разработки приложений

Page 2: Secr презентация дружинина

2 © L

uxof

t Tra

inin

g 20

13

Информация о спикере

Дружинин Михаил

Architect, Head of Cloud CoE

Контакты: E-mail: [email protected]

Page 3: Secr презентация дружинина

3 © L

uxof

t Tra

inin

g 20

13

О чём пойдёт речь?

Жизнь разработчика

Что такое PaaS?

Какие проблемы решает PaaS?

Архитектура Cloudify PaaS

Как начать?

Архитектурные особенности приложения под PaaS

Плюсы и минусы

Page 4: Secr презентация дружинина

4 © L

uxof

t Tra

inin

g 20

13

Жизнь разработчика

Сделал приложение (war)

Собрал приложение

Запустил у себя – всё отлично

Запустил в тестовом окружении – отдал в тестирование

Page 5: Secr презентация дружинина

5 © L

uxof

t Tra

inin

g 20

13

Что такое PaaS?

Platform-as-a-Service

Предоставление вычислительных средств и «программного стека» как сервиса Сервера приложений / среды

выполнения (middleware)

Специализированные вычисления

База данных и системы хранения

Page 6: Secr презентация дружинина

6 © L

uxof

t Tra

inin

g 20

13

Чем PaaS не является?

PaaS это не «облако» в традиционном его понимании Оно предоставляет уже готовые

среды выполнения

PaaS это не application Оно не несёт в себе логики

приложения

Page 7: Secr презентация дружинина

7 © L

uxof

t Tra

inin

g 20

13

Плюсы PaaS

Скорость: разработчики получают необходимые ресурсы по запросу

Стоимость: не тратим деньги на менеджмент software и hardware

Масштабируемость

Page 8: Secr презентация дружинина

8 © L

uxof

t Tra

inin

g 20

13

Чего стоит ожидать от PaaS

Поддержка различных языков, фреймворков и сред выполнения

Поддержка различных инфраструктур для развёртывания

Расширяемость

Автомасштабируемость

No vendor lock-in

Page 9: Secr презентация дружинина

9 © L

uxof

t Tra

inin

g 20

13

Какие проблемы решает PaaS?

Автоматизированное развёртывание

Мониторинг параметров системы

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

Обеспечение восстановления после сбоев

Одинаковое развёртывание тестовых и боевых окружений

Page 10: Secr презентация дружинина

10 © L

uxof

t Tra

inin

g 20

13

Какие PaaS бывают?

Public / BlackBox

Private

Page 11: Secr презентация дружинина

11 © L

uxof

t Tra

inin

g 20

13

Cloudify PaaS

Архитектура Cloudify

Как оно работает

С чего начать?

Рецепты развёртывания

Интеграция с chef

Page 12: Secr презентация дружинина

12 © L

uxof

t Tra

inin

g 20

13

Архитектура Cloudify PaaS

Рецепты развёртывания

Управляющий сервер

«Драйверы» облачных приложений

Page 13: Secr презентация дружинина

13 © L

uxof

t Tra

inin

g 20

13

Архитектура Cloudify PaaS

Page 14: Secr презентация дружинина

14 © L

uxof

t Tra

inin

g 20

13

Как оно работает

Загрузка рецептов

Запуск управляющей машины

Создание виртуальных машин

Установка приложения

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

Page 15: Secr презентация дружинина

15 © L

uxof

t Tra

inin

g 20

13

Как оно работает - запуск

Page 16: Secr презентация дружинина

16 © L

uxof

t Tra

inin

g 20

13

Как оно работает - запуск

Page 17: Secr презентация дружинина

17 © L

uxof

t Tra

inin

g 20

13

Как оно работает - мониторинг

Page 18: Secr презентация дружинина

18 © L

uxof

t Tra

inin

g 20

13

Как начать?

Запуск «облака» >bootstrap-localcloud

Инсталяция приложения >install-application petclinic

Page 19: Secr презентация дружинина

19 © L

uxof

t Tra

inin

g 20

13

Как начать на Amazon WS?

Запуск «облака» >bootstrap-cloud ec2

Инсталяция приложения >install-application petclinic

Page 20: Secr презентация дружинина

20 © L

uxof

t Tra

inin

g 20

13

Рецепты развёртывания

Структура рецепта приложения

Структура рецепта сервиса

Page 21: Secr презентация дружинина

21 © L

uxof

t Tra

inin

g 20

13

Рецепты развёртывания

Page 22: Secr презентация дружинина

22 © L

uxof

t Tra

inin

g 20

13

Рецепты развёртывания - приложение

application {  name="petclinic"  service {     name = "mysql"   }   service {     name = "tomcat"     dependsOn = ["mysql"]   } 

Page 23: Secr презентация дружинина

23 © L

uxof

t Tra

inin

g 20

13

Рецепты развёртывания - сервис

service {  name "mysql"  icon "mysql.jpg"  type "DATABASE"

  lifecycle{     install "mysql_install.groovy"     start "mysql_start.groovy"     ...  }

}

Page 24: Secr презентация дружинина

24 © L

uxof

t Tra

inin

g 20

13

Рецепты развёртывания - масштабирование

scalingRule {   serviceStatistics {     metric "Requests per second"     movingTimeRangeInSeconds 20   } 

  highThreshold {     value 100     instancesIncrease 1   } 

}

Page 25: Secr презентация дружинина

25 © L

uxof

t Tra

inin

g 20

13

Рецепты развёртывания - мониторинг

monitors { def mBean = "Catalina:type=ThreadPool,name= http bio‐ ‐${currHttpPort}"

def metrics = [ "Current Http Threads Busy": [$mBean, "currentThreadsBusy"],

"Current Http Threads Count": [$mBean, "currentThreadsCount"], ]

return getJmxMetrics("127.0.0.1",currJmxPort,metrics)}

Page 26: Secr презентация дружинина

26 © L

uxof

t Tra

inin

g 20

13

Рецепты развёртывания – динамическая конфигурация

serviceContext.attributes .thisInstance["port"] = config.port

dbServiceInstances = serviceContext .attributes[“db”].instances

Page 27: Secr презентация дружинина

27 © L

uxof

t Tra

inin

g 20

13

Рецепты развёртывания – динамическая конфигурация

customCommands ([ "addNode" : "apacheLB_addNode.groovy", "removeNode" : "apacheLB_removeNode", "load" : "apacheLB load.groovy"‐])

Page 28: Secr презентация дружинина

28 © L

uxof

t Tra

inin

g 20

13

Интеграция с Chef

Page 29: Secr презентация дружинина

29 © L

uxof

t Tra

inin

g 20

13

Архитектурные особенности приложения

Автоматическое обнаружение сервисов

Любой узел может упасть

Page 30: Secr презентация дружинина

30 © L

uxof

t Tra

inin

g 20

13

Плюсы

Очень быстрое развёртывание

Мониторинг и автомасштабирование из коробки

Не требует изменения приложения

Легкая доработка рецептов и лёгкое создание сложных сценариев развёртывания

Возможность работы с различными IaaS / BYON

Page 31: Secr презентация дружинина

31 © L

uxof

t Tra

inin

g 20

13

И минусы

Мало «родных» рецептов (решается интеграцией с chef)

Требует отдельную VM для управления

Придётся самому позаботится о месте хранения артефактов для развёртывания

Page 32: Secr презентация дружинина

32 © L

uxof

t Tra

inin

g 20

13 ?

Благодарю за внимание!

Вопросы?