SlideShare a Scribd company logo
1 of 32
Download to read offline
Влияние развития облачных
             вычислений на разработку
            программного обеспечения


                                                                                   Александр Климов, @alex_klimov
                                                                                     Игорь Сухарев, @igorsukharev




All registered trademarks or trademarks are property of their respective owners.                                1
Интернет и облачные вычисления



“Because the Internet is primarily a
software artifact, there seems to be no
end to its possibilities”


                                  Vint Cerf


                                              2
Шум вокруг облачных вычислений




                                 3
Технологические тренды, формирующие
экосистему облачных платформ

• Широкополосный интернет


• Распределенные вычисления


• Виртуализация


• Прогресс hardware-технологий и центров обработки данных


• Мобильные технологии




                                                            4
Почему облачные вычисления?

• Скорость разработки


• Снижение затрат на проектирование и поддержку собственной
  технологической инфраструктуры для разработки ПО


• Географически распределенные системы




                                                              5
Городские легенды

• Облачные вычисления способны решить все проблемы


• Облачные вычисления снижают TCO


• Облачные вычисления создают нехватку рабочих мест


• Облачные вычисления и виртуализация - это одно и то же


• Облачные вычисления делают данные “прозрачно глобализированными”




                                                                     6
Эволюция разработки ПО в облаке


• Инструментарий (development environment)

• Платформа

• Бизнес/Доставка




                                             7
Облако: инструментарий/спектральный анализ

• Системы управления версиями (github, Bitbucket, bazaar, SourceForge,
Google code, etc.)

• Управление проектами (BaseCamp, Trello, asana, etc. )

• IDE (Cloud9, Exo Cloud, etc.)

• Интеграция различных провайдеров облачных инструментов
разработки в гетерогенные гибридные облачные системы/системы для
организации жизненного цикла ПО (например, Cloud9+github)

• Мультиплатформенность и мобильность рабочего места (миграция
тяжелых систем и клиентов для разработки в облако и мобильный доступ
к ним)



                                                                         8
Облако: инструментарий/субкультура




                                     9
Облако: платформа для разработчика/
основные характеристики


• Вычисления (compute)

• Сеть (networking)

• Системы хранения данных (storage)




                                      10
Облако: платформа для разработчика/
качественные характеристики


• Отказоустойчивость (designed for failure)

• Масштабируемость (scalability)

• Эластичность




                                              11
Облако: платформа для разработчика/
архитектура

• Миграция legacy систем в облако


• Профилирование архитектуры приложения под облако


• Характерные, доминирущие дизайн паттерны: компонентизация,
  separation of concerns, loosely-connected компоненты


• Декомпозиция облачного приложения в терминах сервисов провайдера
  облачных услугах (compute, service, load-balancing, dns, db и тд)


• Облачные API - “клей” между различными компонентами архитектуры


• Кластеризация архитектуры по зонам доступности провайдера
  облачных услуг
                                                                      12
Облако: платформа для разработчика/
революция или эволюция?

• Растущее доминирование нового вида разработчиков - “Born To Be
  WildOn The Web”


• Фокус на agile методологиях разработки ПО


• Тенденции упрощения среды (runtime, настройка окружения разработки
  и тд) компенсируются возрастающей сложностью распределенной
  архитектуры облачного приложения


• Фундаментальные архитектурные принципы - SOA, REST, MVC, Multi-
  tenancy


 Облачные архитектуры - эволюционная модель развития
 распределенных систем в Интернете/Интранете, базирующаяся на
 известных принципах проектирования и дизайна ИТ систем
                                                                       13
Облако: платформа для разработчика/
архитектура/паттерны

• Oxymoron - design for failure для отказоустойчивости


• Кластеризация с использованием зон доступности (availability zones)


• Автоматизация цикла разработки и деплоймента


• Кэширование везде, где это возможно


• Безопасность - интегральная часть проектирования каждой части
  архитектуры


• Глобальная распределеность


• Перманентная оптимизация финансовых затрат на облако
                                                                        14
Облако: платформа для разработчика/
открытые облака/мотивация

    Причины для миграции на открытые облака

                      Гибкость

      Отсутствие vendor lock-in

   Экономические предпосылки

     Открытые стандарты и API

               Портируемость

               Другие причины

                                  0   15   30       45      60

                                                (данные Zenoss, “The State Of
                                                  Open Source Cloud” , 2012)
                                                                                15
Облако: бизнес-платформа


• Магазины приложений (Apple App Store, Google Play, Windows Store,
Amazon AppStore etc.)

• SaaS (facebook, force.com, Google Apps Marketplace, etc.)

• CDN (AWS CloudFront, Akamai SOLA, etc.)




                                                                      16
Варианты использования облачных вычислений

“No size fits all”
                                 Unknown




                                           17
Облако: IaaS/аттрибуты


• Вычисления (different capacity, load balancing)

• Хранилище

• БД

• Сеть (VPN, dedicated con with premise)




                                                   18
Облако: IaaS/анализ

Преимущества:

• Полный контроль

• Близка к традиционным разработке и деплойменту

• Минимальный vendor lock-in*


Недостатки:

• Минимум функциональности “из коробки”

• Временные затраты и администрирование


                                                   19
Облако: IaaS/платформы


• Публичные (AWS/EC2, Rackspace Cloud, Google Compute Engine,
Windows Azure Virtual Machines, Joyent, SoftLayer, IBM SCP etc.)

• Частные (openstack, nebula, Eucalyptus)




                                                                   20
Облако: IaaS/платформа для разработчика/
открытые облака

    OpenStack    CloudStack    Eucalyptus         Other




                  22 %



                9 %           51 %



                      18 %



                                (данные Zenoss, “The State Of
                                  Open Source Cloud” , 2012)
                                                                21
Облако: PaaS/аттрибуты


• Языки программирования

• БД

• Веб сервер/сервер приложений




                                 22
Облако: PaaS/языки программирования

                         Языки программирования, % (данные Engine Yard, Май 2012)

60


45


30


15


0
     Javascript   Java     Ruby     PHP       C#       C++     Python     Perl



                                                                                 23
Облако: PaaS/анализ

Преимущества:

• Горизонтальная масштабируемость почти из коробки

• Отказоустойчивость для экземляров приложений

• Экономия времени разработки


Недостатки:

• Меньшая степень контроля

• Наличие vendor lock-in


                                                     24
Облако: PaaS/платформы


• Публичные (AWS/Elastic Beanstalk, heroku, Google App Engine, Windows
Azure Compute, Engine Yard, AppFrog, CloudBees, Jelastic, etc.)

• Частные (CloudFoundry, RedHat OpenShift, etc.)




                                                                         25
Облако: SaaS/аттрибуты

• Максимальная абстракция от программного стека


• Multi-tenancy важный параметр архитектуры


• Высокая скорость выпуска новых версий ПО, которая происходит
  прозрачно для пользователя


• Композиция сервисов - легкость и удобство интеграции с другими
  сервисами (например, для разработки так называемых mashups)




                                                                   26
Облако: SaaS/сценарии

• Распространение ПО

• Обработка платежей

• HR системы

• Социально-ориентированные системы

• Collaboration системы и и инструменты project management

• ERP

• CRM

• Игры

                                                             27
Облако: SaaS/анализ
Преимущества:

• Скорость появления новых функциональных возможностей и
прозрачность (для пользователя) их введения

• Приём платежей/Защита от мошеннических операций

• Защита от пиковых нагрузок (“the slashdot effect” или “black Friday
effect”)


Недостатки:

• Меньшая степень контроля

• Зависимость от политики и правил поставщика SaaS

• Дата выпуска ПО в магазине может варьироваться                       28
Облако: SaaS/платформы

• Force.com


• Facebook


• Google Apps




                         29
Облако: выводы
“There is no silver bullet”
    Frederick Brooks, "The Mythical Man-Month"




                                                 30
Облачные вычисления, нужно помнить


• SLA/Поддержка

• Географическое размещение данных (e.g. USA Patriot Act)

• Vendor lock-in

• Downtime (unexpected outages)

• Безопасность




                                                            31
Paradigm shift?




                  32

More Related Content

What's hot

Частные «облака» на уровне системного слоя
Частные «облака» на уровне системного слояЧастные «облака» на уровне системного слоя
Частные «облака» на уровне системного слояКРОК
 
Mirantis OpenStack. Обзор
Mirantis OpenStack. ОбзорMirantis OpenStack. Обзор
Mirantis OpenStack. ОбзорMirantis IT Russia
 
Решения Cisco для систем управления данными и аналитики
Решения Cisco для систем управления данными и аналитикиРешения Cisco для систем управления данными и аналитики
Решения Cisco для систем управления данными и аналитикиCisco Russia
 
Семейство продуктов Enterprise Cloud Suite
Семейство продуктов Enterprise Cloud SuiteСемейство продуктов Enterprise Cloud Suite
Семейство продуктов Enterprise Cloud SuiteCisco Russia
 
Облачная стратегия Cisco
Облачная стратегия CiscoОблачная стратегия Cisco
Облачная стратегия CiscoCisco Russia
 
Инфраструктурные решения в облаке
Инфраструктурные решения в облакеИнфраструктурные решения в облаке
Инфраструктурные решения в облакеActiveCloud
 
Cisco Cloud Center - управление приложениями в облаках при помощи политик
Cisco Cloud Center - управление приложениями в облаках при помощи политик Cisco Cloud Center - управление приложениями в облаках при помощи политик
Cisco Cloud Center - управление приложениями в облаках при помощи политик Cisco Russia
 
Презентация Cisco Tetration Analytics в России
Презентация Cisco Tetration Analytics в России Презентация Cisco Tetration Analytics в России
Презентация Cisco Tetration Analytics в России Cisco Russia
 
ITR - Виртуализация VMware
ITR - Виртуализация VMwareITR - Виртуализация VMware
ITR - Виртуализация VMwareSergey Polazhenko
 
VMware - коротко о продуктах, технологиях и сложностях перевода
VMware - коротко о продуктах, технологиях и сложностях переводаVMware - коротко о продуктах, технологиях и сложностях перевода
VMware - коротко о продуктах, технологиях и сложностях переводаMUK
 
VMware vCloud Director Overview in Russian
VMware vCloud Director Overview in RussianVMware vCloud Director Overview in Russian
VMware vCloud Director Overview in Russianareconster
 
Servionica: опыт публичного облака на базе OpenStack
Servionica: опыт публичного облака на базе OpenStackServionica: опыт публичного облака на базе OpenStack
Servionica: опыт публичного облака на базе OpenStackMirantis IT Russia
 
Hosted Private Infrastructure. Новая модель ИТ-инфраструктуры
Hosted Private Infrastructure. Новая модель ИТ-инфраструктурыHosted Private Infrastructure. Новая модель ИТ-инфраструктуры
Hosted Private Infrastructure. Новая модель ИТ-инфраструктурыDe Novo
 
HPI: Расширенные возможности и модели использования
HPI: Расширенные возможности и модели использованияHPI: Расширенные возможности и модели использования
HPI: Расширенные возможности и модели использованияDe Novo
 
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложений
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложенийVMware vSAN как платформа для высоконагруженных критичных для бизнеса приложений
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложенийDe Novo
 
01.Основные концепции
01.Основные концепции01.Основные концепции
01.Основные концепцииAlexander Babich
 
Среда разработки. Путь от ПК к докеру
Среда разработки. Путь от ПК к докеруСреда разработки. Путь от ПК к докеру
Среда разработки. Путь от ПК к докеруDmitry Morozov
 
ЦОД нового поколения: автоматизация, упрощение, аналитика и безопасность
ЦОД нового поколения: автоматизация, упрощение, аналитика и безопасностьЦОД нового поколения: автоматизация, упрощение, аналитика и безопасность
ЦОД нового поколения: автоматизация, упрощение, аналитика и безопасностьCisco Russia
 
Cоздаем облачную среду на базе open-sourсe решения OpenStack
Cоздаем облачную среду на базе open-sourсe решения OpenStackCоздаем облачную среду на базе open-sourсe решения OpenStack
Cоздаем облачную среду на базе open-sourсe решения OpenStackSkillFactory
 
Виртуализация и терминальный доступ
Виртуализация и терминальный доступВиртуализация и терминальный доступ
Виртуализация и терминальный доступКРОК
 

What's hot (20)

Частные «облака» на уровне системного слоя
Частные «облака» на уровне системного слояЧастные «облака» на уровне системного слоя
Частные «облака» на уровне системного слоя
 
Mirantis OpenStack. Обзор
Mirantis OpenStack. ОбзорMirantis OpenStack. Обзор
Mirantis OpenStack. Обзор
 
Решения Cisco для систем управления данными и аналитики
Решения Cisco для систем управления данными и аналитикиРешения Cisco для систем управления данными и аналитики
Решения Cisco для систем управления данными и аналитики
 
Семейство продуктов Enterprise Cloud Suite
Семейство продуктов Enterprise Cloud SuiteСемейство продуктов Enterprise Cloud Suite
Семейство продуктов Enterprise Cloud Suite
 
Облачная стратегия Cisco
Облачная стратегия CiscoОблачная стратегия Cisco
Облачная стратегия Cisco
 
Инфраструктурные решения в облаке
Инфраструктурные решения в облакеИнфраструктурные решения в облаке
Инфраструктурные решения в облаке
 
Cisco Cloud Center - управление приложениями в облаках при помощи политик
Cisco Cloud Center - управление приложениями в облаках при помощи политик Cisco Cloud Center - управление приложениями в облаках при помощи политик
Cisco Cloud Center - управление приложениями в облаках при помощи политик
 
Презентация Cisco Tetration Analytics в России
Презентация Cisco Tetration Analytics в России Презентация Cisco Tetration Analytics в России
Презентация Cisco Tetration Analytics в России
 
ITR - Виртуализация VMware
ITR - Виртуализация VMwareITR - Виртуализация VMware
ITR - Виртуализация VMware
 
VMware - коротко о продуктах, технологиях и сложностях перевода
VMware - коротко о продуктах, технологиях и сложностях переводаVMware - коротко о продуктах, технологиях и сложностях перевода
VMware - коротко о продуктах, технологиях и сложностях перевода
 
VMware vCloud Director Overview in Russian
VMware vCloud Director Overview in RussianVMware vCloud Director Overview in Russian
VMware vCloud Director Overview in Russian
 
Servionica: опыт публичного облака на базе OpenStack
Servionica: опыт публичного облака на базе OpenStackServionica: опыт публичного облака на базе OpenStack
Servionica: опыт публичного облака на базе OpenStack
 
Hosted Private Infrastructure. Новая модель ИТ-инфраструктуры
Hosted Private Infrastructure. Новая модель ИТ-инфраструктурыHosted Private Infrastructure. Новая модель ИТ-инфраструктуры
Hosted Private Infrastructure. Новая модель ИТ-инфраструктуры
 
HPI: Расширенные возможности и модели использования
HPI: Расширенные возможности и модели использованияHPI: Расширенные возможности и модели использования
HPI: Расширенные возможности и модели использования
 
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложений
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложенийVMware vSAN как платформа для высоконагруженных критичных для бизнеса приложений
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложений
 
01.Основные концепции
01.Основные концепции01.Основные концепции
01.Основные концепции
 
Среда разработки. Путь от ПК к докеру
Среда разработки. Путь от ПК к докеруСреда разработки. Путь от ПК к докеру
Среда разработки. Путь от ПК к докеру
 
ЦОД нового поколения: автоматизация, упрощение, аналитика и безопасность
ЦОД нового поколения: автоматизация, упрощение, аналитика и безопасностьЦОД нового поколения: автоматизация, упрощение, аналитика и безопасность
ЦОД нового поколения: автоматизация, упрощение, аналитика и безопасность
 
Cоздаем облачную среду на базе open-sourсe решения OpenStack
Cоздаем облачную среду на базе open-sourсe решения OpenStackCоздаем облачную среду на базе open-sourсe решения OpenStack
Cоздаем облачную среду на базе open-sourсe решения OpenStack
 
Виртуализация и терминальный доступ
Виртуализация и терминальный доступВиртуализация и терминальный доступ
Виртуализация и терминальный доступ
 

Similar to The impact of the cloud on development by Alexander Klimov, Igor Sukharev

Облачные тренды 2015
Облачные тренды 2015Облачные тренды 2015
Облачные тренды 2015Michael Kozloff
 
Онлайн миграция контейнеров. Взгляд изнутри
Онлайн миграция контейнеров. Взгляд изнутриОнлайн миграция контейнеров. Взгляд изнутри
Онлайн миграция контейнеров. Взгляд изнутриJelastic Multi-Cloud PaaS
 
Практики разработки программного обеспечения в крупных компаниях на примере IBM
Практики разработки программного обеспечения в крупных компаниях на примере IBMПрактики разработки программного обеспечения в крупных компаниях на примере IBM
Практики разработки программного обеспечения в крупных компаниях на примере IBMAlexander Klimov
 
облако для корпоративных ландшафтов практические аспекты выбора
облако для корпоративных ландшафтов   практические аспекты выбораоблако для корпоративных ландшафтов   практические аспекты выбора
облако для корпоративных ландшафтов практические аспекты выбораPlenipotentiary_Iryna
 
Что такое облачные вычисления и почему о них так много говорят
Что такое облачные вычисления и почему о них так много говорятЧто такое облачные вычисления и почему о них так много говорят
Что такое облачные вычисления и почему о них так много говорятКРОК
 
Cloud. Business-model-innovation
Cloud. Business-model-innovationCloud. Business-model-innovation
Cloud. Business-model-innovationRuslanKorotaev
 
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнесаФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнесаЭкосистемные Проекты Фрии
 
Облако рядом: от теории к кейсам
Облако рядом: от теории к кейсамОблако рядом: от теории к кейсам
Облако рядом: от теории к кейсамYuri Trukhin
 
Облако рядом. От теории к кейсам.
Облако рядом. От теории к кейсам.Облако рядом. От теории к кейсам.
Облако рядом. От теории к кейсам.Diana Dymolazova
 
BitByte Обзор платформы InfoboxCloud
BitByte Обзор платформы InfoboxCloudBitByte Обзор платформы InfoboxCloud
BitByte Обзор платформы InfoboxCloudYuri Trukhin
 
Как использовать расходы на ИТ за счет использования облачных сервисов
Как использовать расходы на ИТ за счет использования облачных сервисовКак использовать расходы на ИТ за счет использования облачных сервисов
Как использовать расходы на ИТ за счет использования облачных сервисовCisco Russia
 
Частное облако/IaaS для корпоративных ландшафтов: прикладные аспекты выбора
Частное облако/IaaS для корпоративных ландшафтов: прикладные аспекты выбораЧастное облако/IaaS для корпоративных ландшафтов: прикладные аспекты выбора
Частное облако/IaaS для корпоративных ландшафтов: прикладные аспекты выбораMichael Kozloff
 
Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»Cisco Russia
 
Микросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesМикросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesDenis Izmaylov
 
Предоставление баз данных в виде сервиса (DBaaS)
Предоставление баз данных в виде сервиса (DBaaS)Предоставление баз данных в виде сервиса (DBaaS)
Предоставление баз данных в виде сервиса (DBaaS)Andrey Akulov
 
Основные тренды облачного рынка
Основные тренды облачного рынкаОсновные тренды облачного рынка
Основные тренды облачного рынкаКРОК
 
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин ЮрийSolit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрийsolit
 

Similar to The impact of the cloud on development by Alexander Klimov, Igor Sukharev (20)

Облачные тренды 2015
Облачные тренды 2015Облачные тренды 2015
Облачные тренды 2015
 
Онлайн миграция контейнеров. Взгляд изнутри
Онлайн миграция контейнеров. Взгляд изнутриОнлайн миграция контейнеров. Взгляд изнутри
Онлайн миграция контейнеров. Взгляд изнутри
 
Практики разработки программного обеспечения в крупных компаниях на примере IBM
Практики разработки программного обеспечения в крупных компаниях на примере IBMПрактики разработки программного обеспечения в крупных компаниях на примере IBM
Практики разработки программного обеспечения в крупных компаниях на примере IBM
 
облако для корпоративных ландшафтов практические аспекты выбора
облако для корпоративных ландшафтов   практические аспекты выбораоблако для корпоративных ландшафтов   практические аспекты выбора
облако для корпоративных ландшафтов практические аспекты выбора
 
Что такое облачные вычисления и почему о них так много говорят
Что такое облачные вычисления и почему о них так много говорятЧто такое облачные вычисления и почему о них так много говорят
Что такое облачные вычисления и почему о них так много говорят
 
PMIufa 2011-03-24
PMIufa 2011-03-24PMIufa 2011-03-24
PMIufa 2011-03-24
 
Cloud. Business-model-innovation
Cloud. Business-model-innovationCloud. Business-model-innovation
Cloud. Business-model-innovation
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнесаФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
 
Облако рядом: от теории к кейсам
Облако рядом: от теории к кейсамОблако рядом: от теории к кейсам
Облако рядом: от теории к кейсам
 
Облако рядом. От теории к кейсам.
Облако рядом. От теории к кейсам.Облако рядом. От теории к кейсам.
Облако рядом. От теории к кейсам.
 
BitByte Обзор платформы InfoboxCloud
BitByte Обзор платформы InfoboxCloudBitByte Обзор платформы InfoboxCloud
BitByte Обзор платформы InfoboxCloud
 
Как использовать расходы на ИТ за счет использования облачных сервисов
Как использовать расходы на ИТ за счет использования облачных сервисовКак использовать расходы на ИТ за счет использования облачных сервисов
Как использовать расходы на ИТ за счет использования облачных сервисов
 
Частное облако/IaaS для корпоративных ландшафтов: прикладные аспекты выбора
Частное облако/IaaS для корпоративных ландшафтов: прикладные аспекты выбораЧастное облако/IaaS для корпоративных ландшафтов: прикладные аспекты выбора
Частное облако/IaaS для корпоративных ландшафтов: прикладные аспекты выбора
 
Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»
 
Микросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesМикросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и Kubernetes
 
Предоставление баз данных в виде сервиса (DBaaS)
Предоставление баз данных в виде сервиса (DBaaS)Предоставление баз данных в виде сервиса (DBaaS)
Предоставление баз данных в виде сервиса (DBaaS)
 
Основные тренды облачного рынка
Основные тренды облачного рынкаОсновные тренды облачного рынка
Основные тренды облачного рынка
 
About paas
About paasAbout paas
About paas
 
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин ЮрийSolit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
 

The impact of the cloud on development by Alexander Klimov, Igor Sukharev

  • 1. Влияние развития облачных вычислений на разработку программного обеспечения Александр Климов, @alex_klimov Игорь Сухарев, @igorsukharev All registered trademarks or trademarks are property of their respective owners. 1
  • 2. Интернет и облачные вычисления “Because the Internet is primarily a software artifact, there seems to be no end to its possibilities” Vint Cerf 2
  • 3. Шум вокруг облачных вычислений 3
  • 4. Технологические тренды, формирующие экосистему облачных платформ • Широкополосный интернет • Распределенные вычисления • Виртуализация • Прогресс hardware-технологий и центров обработки данных • Мобильные технологии 4
  • 5. Почему облачные вычисления? • Скорость разработки • Снижение затрат на проектирование и поддержку собственной технологической инфраструктуры для разработки ПО • Географически распределенные системы 5
  • 6. Городские легенды • Облачные вычисления способны решить все проблемы • Облачные вычисления снижают TCO • Облачные вычисления создают нехватку рабочих мест • Облачные вычисления и виртуализация - это одно и то же • Облачные вычисления делают данные “прозрачно глобализированными” 6
  • 7. Эволюция разработки ПО в облаке • Инструментарий (development environment) • Платформа • Бизнес/Доставка 7
  • 8. Облако: инструментарий/спектральный анализ • Системы управления версиями (github, Bitbucket, bazaar, SourceForge, Google code, etc.) • Управление проектами (BaseCamp, Trello, asana, etc. ) • IDE (Cloud9, Exo Cloud, etc.) • Интеграция различных провайдеров облачных инструментов разработки в гетерогенные гибридные облачные системы/системы для организации жизненного цикла ПО (например, Cloud9+github) • Мультиплатформенность и мобильность рабочего места (миграция тяжелых систем и клиентов для разработки в облако и мобильный доступ к ним) 8
  • 10. Облако: платформа для разработчика/ основные характеристики • Вычисления (compute) • Сеть (networking) • Системы хранения данных (storage) 10
  • 11. Облако: платформа для разработчика/ качественные характеристики • Отказоустойчивость (designed for failure) • Масштабируемость (scalability) • Эластичность 11
  • 12. Облако: платформа для разработчика/ архитектура • Миграция legacy систем в облако • Профилирование архитектуры приложения под облако • Характерные, доминирущие дизайн паттерны: компонентизация, separation of concerns, loosely-connected компоненты • Декомпозиция облачного приложения в терминах сервисов провайдера облачных услугах (compute, service, load-balancing, dns, db и тд) • Облачные API - “клей” между различными компонентами архитектуры • Кластеризация архитектуры по зонам доступности провайдера облачных услуг 12
  • 13. Облако: платформа для разработчика/ революция или эволюция? • Растущее доминирование нового вида разработчиков - “Born To Be WildOn The Web” • Фокус на agile методологиях разработки ПО • Тенденции упрощения среды (runtime, настройка окружения разработки и тд) компенсируются возрастающей сложностью распределенной архитектуры облачного приложения • Фундаментальные архитектурные принципы - SOA, REST, MVC, Multi- tenancy Облачные архитектуры - эволюционная модель развития распределенных систем в Интернете/Интранете, базирующаяся на известных принципах проектирования и дизайна ИТ систем 13
  • 14. Облако: платформа для разработчика/ архитектура/паттерны • Oxymoron - design for failure для отказоустойчивости • Кластеризация с использованием зон доступности (availability zones) • Автоматизация цикла разработки и деплоймента • Кэширование везде, где это возможно • Безопасность - интегральная часть проектирования каждой части архитектуры • Глобальная распределеность • Перманентная оптимизация финансовых затрат на облако 14
  • 15. Облако: платформа для разработчика/ открытые облака/мотивация Причины для миграции на открытые облака Гибкость Отсутствие vendor lock-in Экономические предпосылки Открытые стандарты и API Портируемость Другие причины 0 15 30 45 60 (данные Zenoss, “The State Of Open Source Cloud” , 2012) 15
  • 16. Облако: бизнес-платформа • Магазины приложений (Apple App Store, Google Play, Windows Store, Amazon AppStore etc.) • SaaS (facebook, force.com, Google Apps Marketplace, etc.) • CDN (AWS CloudFront, Akamai SOLA, etc.) 16
  • 17. Варианты использования облачных вычислений “No size fits all” Unknown 17
  • 18. Облако: IaaS/аттрибуты • Вычисления (different capacity, load balancing) • Хранилище • БД • Сеть (VPN, dedicated con with premise) 18
  • 19. Облако: IaaS/анализ Преимущества: • Полный контроль • Близка к традиционным разработке и деплойменту • Минимальный vendor lock-in* Недостатки: • Минимум функциональности “из коробки” • Временные затраты и администрирование 19
  • 20. Облако: IaaS/платформы • Публичные (AWS/EC2, Rackspace Cloud, Google Compute Engine, Windows Azure Virtual Machines, Joyent, SoftLayer, IBM SCP etc.) • Частные (openstack, nebula, Eucalyptus) 20
  • 21. Облако: IaaS/платформа для разработчика/ открытые облака OpenStack CloudStack Eucalyptus Other 22 % 9 % 51 % 18 % (данные Zenoss, “The State Of Open Source Cloud” , 2012) 21
  • 22. Облако: PaaS/аттрибуты • Языки программирования • БД • Веб сервер/сервер приложений 22
  • 23. Облако: PaaS/языки программирования Языки программирования, % (данные Engine Yard, Май 2012) 60 45 30 15 0 Javascript Java Ruby PHP C# C++ Python Perl 23
  • 24. Облако: PaaS/анализ Преимущества: • Горизонтальная масштабируемость почти из коробки • Отказоустойчивость для экземляров приложений • Экономия времени разработки Недостатки: • Меньшая степень контроля • Наличие vendor lock-in 24
  • 25. Облако: PaaS/платформы • Публичные (AWS/Elastic Beanstalk, heroku, Google App Engine, Windows Azure Compute, Engine Yard, AppFrog, CloudBees, Jelastic, etc.) • Частные (CloudFoundry, RedHat OpenShift, etc.) 25
  • 26. Облако: SaaS/аттрибуты • Максимальная абстракция от программного стека • Multi-tenancy важный параметр архитектуры • Высокая скорость выпуска новых версий ПО, которая происходит прозрачно для пользователя • Композиция сервисов - легкость и удобство интеграции с другими сервисами (например, для разработки так называемых mashups) 26
  • 27. Облако: SaaS/сценарии • Распространение ПО • Обработка платежей • HR системы • Социально-ориентированные системы • Collaboration системы и и инструменты project management • ERP • CRM • Игры 27
  • 28. Облако: SaaS/анализ Преимущества: • Скорость появления новых функциональных возможностей и прозрачность (для пользователя) их введения • Приём платежей/Защита от мошеннических операций • Защита от пиковых нагрузок (“the slashdot effect” или “black Friday effect”) Недостатки: • Меньшая степень контроля • Зависимость от политики и правил поставщика SaaS • Дата выпуска ПО в магазине может варьироваться 28
  • 30. Облако: выводы “There is no silver bullet” Frederick Brooks, "The Mythical Man-Month" 30
  • 31. Облачные вычисления, нужно помнить • SLA/Поддержка • Географическое размещение данных (e.g. USA Patriot Act) • Vendor lock-in • Downtime (unexpected outages) • Безопасность 31