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