2. REASONS FOR CLOUD POPULARITY
Pay as you go Cost reduction Ready for automation
Scalability and elasticity
Device and location Buzzword
independent
2
3. CLOUD HYPE
Something brand new?
Really so cool?
What to choose?
Costs
Scalability, High Availability
Security
Performance
3
4. COSTS
VPS Cloud
Constant costs Pay as you use
4
12. MIGRATE OR NOT?
Investigate CC – do you need cloud?
or
Hire CC expert
12
13. HOW TO MIGRATE
Decision Current
to migrate Environment Current
Current
Cloud
Environment Environment
Cloud
Environment
13
14. CLOUD ENABLING IN $N STEPS
• Run environment in cloud and configure
• Automate that process
• Security verification
• Development process optimization (CI, CD)
• Performance tests and optimization
• Monitoring
14
Для начала, посмотрим, почему облака такие популярные:Pay as you go. Оплата по факту использования ресурсов: вы платите только за использованные ресурсыВ следствие чего, в некоторых случаях, происходит уменьшение затрат: железо не простаивает.Также это может быть дешевле для стартапов, у которых нет своей инфраструктуры – им не нужно покупать/арендовать дорогое железо, платить за его установку и настройку.Также облака предоставляют инструменты для автоматизации: это в первую очередь API и CLI tools-ы.Эти инструменты помогают очень гибко (в том числе и автоматически) как увеличить так и уменьшить доступные ресурсы. Вы можете переместить легко свое приложение в любой из доступных регионов провайдера.Например, чтобы уменьшить время отклика для клиентов из определённого региона мира.Ну и наконец, облако – это модно. Этот термин сейчас у всех на слуху, поэтому многие клиенты хотят, чтобы их приложение использовало облачные вычисления.
А теперь давайте размажем по стенке все эти преимущества и посмотрим на облачные вычисления глазами скептика.На самом деле Cloud Computing не является чем-то совершенно новым и назвать это революцией в IT было бы не корректно. Ещё в 1960-е Джон Маккарти озвучил идею о том, что вычислительные мощности будут использоваться как общественная утилита. Т.е. сама идея не нова, но с развитием виртуализации и постоянным увеличением скорости передачи данных в интернет и его распространения эта идея реализовалась в виде облачных вычислений. CC скорее новый подход к использованию пула ресурсов, организации работы с ним.
Одно из преимуществ облака – это оплата только тех ресурсов, которые были использованы. При использовании VPS или затраты всегда постоянны, и не важно, используете ли вы на 100% ресурсы, предоставляемые провайдером или нет. Но это на прямую не означает, что облако всегда дёшево. Использование облачных вычислений может обойтись дороже, чем VPS. Например, если ваше приложение хостится на VPS и нагрузка на него постоянна, тогда при таком же использовании облачного хостинга скорее всего VPS по цене выиграет. Но, если нагрузка не постоянна и трудно прогнозируема, то при использовании облака вы будете в выиграше за счёт умного использования ресурсов: вам не придётся оплачивать простой оборудования и т.д.С другой стороны, если приложение уже работает, то не всегда рационально его мигрировать, т.к. при этом могут возникнуть ощутимые затраты.
облака могут быть развернуты тремя способами:Private cloud (Приватное облако): инфраструктура и сервисы используются в пределах одной организации, возможно и её клиентами.Публичное облако (Public Cloud): использовать сервисы и инфраструктуру может каждый (частные лица, компании). Предоставляет эти сервисы Cloud Provider.Гибридное облако (Hybrid Cloud): Это смесь из двух предыдущих моделей. Например, организация имеет своё облако, но кратковременно использует публичное облако в пики нагрузок.Выбирать нужно исходя из ваших потребностей. Например, если это крупная организация в которой есть несколько распределённых территориально дата-центров, то имеет смысл использовать эти ресурсы как приватное облако. Но, чтобы запустить приватное облако нужно много усилий, времени и денежных средств. В публичном же облаке нельзя забывать о безопасности.
Согласно определению NIST, Облачные вычисления могут иметь три модели предоставления сервиса:Software as a service (Saas): SaaS приложения работают на сервере SaaS-провайдера, а пользователи получают к ним доступ через интернет-браузер. Пользователь не покупает SaaS-приложение, а арендует его - платит за его использование.- Platform as a service (PaaS): в этой модели предоставляется платформа, ориентированная на определённый стек технологий: языков программирования, библиотек и т.д. В основном используется для разработки приложений.Infrastructure as a service (IaaS): это предоставление инфраструктуры (виртуальные хосты, сеть, системы хранения данных) в аренду и средств управления ими. Пользователь может выбирать OS, размещать любые приложения, настраивать сеть без необходимости непосредственно иметь дело с железом. Эта диаграмма изображена в виде пирамиды не зря: IaaSболее гибкий сервис, на его основе могут строиться PaaSи IaaS.Какую же из них выбрать? – Это зависит от вашего приложения и от того, насколько вы хотите контролировать инфраструктуру. SaaS: отпадает, т.к. нам нужно чтобы работало наше приложение.PaaS: часто очень привлекательно по цене, но накладывает ограничения на само приложение. Т.е. чтобы приложение мигрировать в PaaSCloud его нужно «заточить» под эту платформу.IaaS: самый гибкий вариант, который позволяет построить любую инфраструктуру.
Существует большое множество облачных провайдеров, каждый из которых предлагает целый набор сервисов. Как в этом разобраться и решить, что нужно именно вам? Это очень сложно на данном этапе, т.к. нет нормального сравнительного анализа даже топовых провайдеров. А исходя из их рекламных проспектов толком что-то для себя решить трудно. Поэтому приходится проверять несколько провайдеров на практике (благо многие предоставляют бесплатный период использования). Это связано с тем, что облачные технологии относительно новое направление в IT и поэтому для решения конкретной задачи иногда приходится быть первопроходцем.
Быстрая эластичность. Вычислительные возможности могут легко масштабироваться, в том числе и автоматически, как в большую сторону, так и в меньшую.Например, у вас есть сайт посвящённый спортивному событию. Точно предугадать, сколько одновременных посетителей на нём будет практически не возможно. Поэтому важно иметь возможность в течении нескольких минут увеличить мощность кластера, чтобы не потерять посетителей, также как и уменьшить её, когда пик нагрузки закончился, дабы не тратить ресурсы в пустую.Однако, важно понимать, что облако не сделает всю работу за вас. Если вы хотите использовать эластичность облака, то и приложение должно быть масштабируемым.
Построить высоко доступную систему в облаке проще, чем где бы то ни было. Но! Нужна ли она вам? В этом вся суть…
Не взирая на все преимущества облака, всегда остаётся возможность серьёзных проблем у провайдера. Так же не нужно забывать о форс-мажорных ситуациях (наводнение, землетрясение, атомная бомба и тд). Поэтому возможна ситуация, кода целая availability zone (т.е. целый датацентр провайдера) не будет функционировать некоторое время, при этом и ваше приложение не будет доступно, либо данные могут быть утеряны. Такие ситуации неоднократно происходили с различными провайдерами. Это значит, что само по себе размещение приложения в облаке не даёт Disaster recovery. Есть два варианта:Использовать готовый сервис провайдера (если такой есть) для бекапов, DR и т.д. Но за это естественно придётся платитьЛибо продумать DR и настроить автоматическое поднятие вашей инфраструктуры и деплоя вашего приложения в другом регионе.
Железный сервер производительнее, но без виртуализации трудно использовать его без простоя. Так что если вам нужна большая производительность, но вы не хотите использовать harware-кластеры, то облако то, что нужно.
Чтобы принять окончательное решение нужно исследовать облачные технологии, собрать информацию по провайдерам. Если есть деньги, то можно нанять эксперта по облачным технологиям.
Если вы все-таки решили мигрировать в облако, то не нужно спешить. Как говорится, не зная броду, не лезь в воду.Лучше, не трогая текущее окружение, попробовать запустить приложение в облаке. У такого подхода масса преимуществ. Вы на раннем этапе можете понять, что облако вам не подходит (или конкретный провайдер), при этом затраты по использованию облака будут мизерными, т.к. вам не нужно думать о нагрузках, задержках ответа и т.д.