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

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

Nov 01, 2014

Download

Documents

LuxoftTraining

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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 ?

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

Вопросы?