Define Cloud Computing Oleksii Tregubov Cloud Computing Consultant Здравствуйте, меня зовут %presenter_name%. Я представляю Consulting Team проекта EPAM Cloud Infrastructure. Сегодня поговорим об облачных вычислениях в общем, так сказать с высоты птичьего полёта.
What is cloud? Кто-либо из вас может сказать что такое облако? 1) - это предоставляемые по сети сервисы… (железо, с дополнительным слоем виртуализации, точно не известно где оно находится и бла-бла…) - ок, тогда ноутбук, подключённый к сети wi-fi, с установленным серверным приложением, находящийся в соседней комнате – это тоже облако? 2) Это амазон. Хороший пример, спасибо. Я хотел бы дать четкое определение, что такое облачные вычисления, какими характеристиками должно обладать облако. Цель этой презентации дать четкое стандартизированное понятие об облачных вычислениях.
Standard Definition The National Institute of Standards and Technology Существует Национальный институт стандартов и технологий в США, в котором было разработано определение облачных вычислений: Cloud Computing — это модель обеспечения повсеместного и удобного сетевого доступа по требованию к общему пулу конфигурируемых вычислительных ресурсов. Этими ресурсами может быть что угодно: VMs, CPU, RAM, HDD, Networking, Software Services. Получить их можно без особых усилий и обращений к провайдеру.
Essential Characteristics On-demand self-service Broad network access Resource pooling Облачные вычисления характеризуются 5-ю основными свойствами: - On-demand self-service (Сервис самообслуживания по мере надобности): пользователь облака может в любой момент получить необходимые ресурсы, без необходимости делать запрос к поставщику. - Broad network access (Свободный сетевой доступ): ресурсы доступны по сети и могут управляться стандартными средствами, например через веб-браузер. - Resource pooling (Пул ресурсов): ресурсы организованы в пул так, что их можно быстро выделять и переназначать. - Rapid elasticity (Быстрое масштабирование): количество потребляемых ресурсов может быть увеличено или уменьшено быстро, иногда автоматически. Measured service (Измеримый сервис): использование ресурсов точно измеряется и прозрачно как для провайдера так и для пользователя. Более подробно мы рассмотрим каждую из этих характеристик позже. Rapid elasticity Measured service
Service models SaaS PaaS IaaS End users Developers System architects Согласно определению NIST, Облачные вычисления могут иметь три модели предоставления сервиса: Software as a service (Saas): SaaS приложения работают на сервере SaaS-провайдера, а пользователи получают к ним доступ через интернет-браузер. Пользователь не покупает SaaS-приложение, а арендует его - платит за его использование. - Platform as a service (PaaS): в этой модели предоставляется платформа, ориентированная на определённый стек технологий: языков программирования, библиотек и т.д. В основном используется для разработки приложений. Infrastructure as a service (IaaS): это предоставление инфраструктуры (виртуальные хосты, сеть, системы хранения данных) в аренду и средств управления ими. Пользователь может выбирать OS, размещать любые приложения, настраивать сеть без необходимости непосредственно иметь дело с железом. Эта диаграмма изображена в виде пирамиды не зря: IaaS более гибкий сервис, на его основе могут строиться PaaS и IaaS. System architects
Deployment models Hybrid cloud Public Cloud Private Cloud Так же, NIST говорит, что облака могут быть развернуты тремя способами: Private cloud (Приватное облако): инфраструктура и сервисы используются в пределах одной организации, возможно и её клиентами. Публичное облако (Public Cloud): использовать сервисы и инфраструктуру может каждый (частные лица, компании). Предоставляет эти сервисы Cloud Provider. Гибридное облако (Hybrid Cloud): Это смесь из двух предыдущих моделей. Например, организация имеет своё облако, но кратковременно использует публичное облако в пики нагрузок. О Service models и о Deployment models будет рассказано в следующих презентациях. А пока рассмотрим 5 характеристик облачных вычислений подробнее, как я и обещал.
On-demand self-service Give me VM now [ API request ] Cloud [ result ] Engineer Сервис самообслуживания по мере возникновения необходимости (On-demand self-service). Потребитель может самостоятельно обеспечивать себя вычислительными возможностями (средствами и ресурсами), такими как виртуальные хосты и сетевые хранилища, по мере необходимости запрашивая их у сервис-провайдера в одностороннем ручном или автоматическом режиме, без необходимости взаимодействия с персоналом сервис-провайдера.
On-Demand: AWS EC2 Как пример, можно привести сервисы Amazon. У вас есть веб-интерфейс, через который можно запустить виртуальную машину.
On-demand: AWS EC2 $ ec2-start-instances i-b3a850c8 INSTANCE i-b3a850c8 stopped pending $ ec2-describe-instances i-b3a850c8 RESERVATION r-0a7cf16e 852587906425 defaultINSTANCE i-b3a850c8 ami-82fa58eb ec2-107-22-37-50.compute-1.amazonaws.com ip-10-122-235-23.ec2.internal running amkeys 0 t1.micro 2012-09-03T14:13:56+0000 us-east-1a aki-825ea7eb monitoring-disabled 107.22.37.50 10.122.235.23 ebs paravirtual xen XNsFe1343912068109 sg-da0169b3 default false BLOCKDEVICE /dev/sda1 vol-f8d0c899 2012-09-03T14:14:21.000Z true TAG instance i-b3a850c8 Name ubuntu-test-1TAG instance i-b3a850c8 Role webserver Либо же, используя CLI-команды. Выполняете ec2-start-instances и сразу же получаете результат: stopped pending – т.е. виртуальная машина стартует. ec2-describe-instances – даёт информацию по этой виртуалке.
Broad network access Свободный сетевой доступ (Broad network access). Запрашиваемые сервисы доступны по сети через стандартные механизмы, с использованием любого устройства, на котором есть браузер. Вы можете зайти в интернет-кафе, библиотеку – любое место, где есть доступ к сети Интернет – и получить доступ к облачным ресурсам. Например, для Amazon-а есть приложение под IPhone и Android, через которое вы можете управлять облачными сервисами находясь где угодно.
Resource pooling Пул ресурсов. Вычислительные ресурсы провайдера организованы в виде пула. В любой момент времени пользователь облака может получить практически неограниченное количество виртуальных машин, дискового пространства и т.д. Например, вам нужно получить 100 виртуальных машин, перед которыми стоит балансировщик – пожалуйста, очень легко, без обращений к провайдеру, используя только лишь браузер можно получить такую конфигурацию.
Rapid elasticity Быстрая эластичность. Вычислительные возможности могут легко масштабироваться, в том числе и автоматически, как в большую сторону, так и в меньшую. Например, у вас есть сайт посвящённый спортивному событию. Точно предугадать, сколько одновременных посетителей на нём будет практически не возможно. Поэтому важно иметь возможность в течении нескольких минут увеличить мощность кластера, чтобы не потерять посетителей, также как и уменьшить её, когда пик нагрузки закончился, дабы не тратить ресурсы в пустую.
Measured service Последняя характеристика – это Измеряемый сервис. Использование любого сервиса, любых ресурсов в облаке, может быть точно измерено. Т.е. вы платите только за использованные ресурсы. Например, вы подняли две виртуальные машины с балансировщиком и через 2 часа выключили их. Тогда вы получите счёт только за эти два часа, использованный трафик и ещё что-то (это уже зависит от конкретного провайдера). На слайде вы можете видеть скрин-шот биллинга Amazon: каждая услуга считается отдельно. Например, использование микро-инстансов (это такая виртуальная машина) – оплата идёт 2 цента в час за каждый инстанс. Т.е. чётко видно сколько и за что конкретно платит пользователь облака.
Service Models Software as a Service (SaaS) Platform as a Service (PaaS) Infrastructure as a Service (IaaS) IaaS – когда предприятие обходится без собственного датацентра; PaaS – без системных администраторов; SaaS – без программистов. Software as a Service (SaaS). доступ к программному обеспечению, разработанному в соответствии с моделью ПО как услуга, предоставляется удалённо по сетевым каналам и как правило через веб-интерфейс, кроме того, могут использоваться тонкие клиенты и терминальный доступ; программное обеспечение развёртывается в центре обработки данных в виде единого программного ядра, с которым работают все заказчики; Platform as a Service (PaaS). Потребитель управляет операционных систем, систем управления базами данных, связующему программному обеспечению, средствам разработки и тестирования, размещённым у облачного провайдера. провайдером же определяется набор доступных для потребителей видов платформ и набор управляемых параметров платформ. Infrastructure as a Service (IaaS). The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).
SaaS PaaS IaaS Service Models End-user Utilization Software Development To visualize and leave a better vision of what Service Models are, we can take another look at envisioning. This is a popular model in form of triangle, that sits on lowest Infrastructure layer and tops with Software level. Each level is related to: IaaS – System Architecture. Intended to design and scale a system on lowest possible level. PaaS – Software Development. Complete your application development with no headache about where it’s hosted or how that happens. Focus on development and quality assurance. SaaS- End User Utilization. Just use application, that sits on CC Hosting. End-user does not need to know about complexity of application, hosting points and other. All that matters is utilization. Firs step is to understand type of each system on examples. System Architecture
Example vendors To give you a better clue on each of these layers, I’ll try to show you some examples. You all now these companies, they are world leaders and famous for what they do best. If we look at IaaS layer here, we’ll find names like rackspace, VMWare, Amazon… They all provide you with an infrastructure, that you scale, setup and build the way you want to create an app above. They do not give you any programming integration, like code execution modules. PaaS like WinAzure, Google App engine, Salesforce give you a developing platform and you really care about infrastructure, shape of instances and other info of that level a bit less you focus on coding using valuable tools, provided by you. SaaS are Google Docs, IBM and they give you a simple place to store any kind of your data. You also do not have any access to the instances or storage, this level of resources.
iaas Infrastructure. Automation. Infrastructure level gives you control of your environment, your hardware. You can setup any low-level scalability, like automatic increase of number of instances at given criteria, control amount of storage available for you or other actions, related to infrastructure like a usual datacenter of yours. IaaS includes Virtual Machines, servers, storage, load balancers, networking…
paas When talking about Platform customers are able to focus on development of application for some purpose, or think about database architecture for application, use best practices for code optimization. All of this without giving a clue about where it’s hosted, how many servers are clusters for DB, what is the shape of each App instance and other low level details. PaaS is the best choice for Developing Web Application and delivering it using cloud capabilities.
saas Software. A ready-to-use application is delivered to use it for storing emails, controlling content of documents, managing list of documents, storing different types of data and grouping them. Even selling games or providing customer support online. All this is for end-user with any internet-capable device. Selling software or service is what it is.
Benefits Global Infrastructure Savings Smart Resource Provisioning Now let’s look at company benefits if any Cloud Model is implemented and used. By enabling and using all available resources, we are cutting on costs and focusing on profit from such action. Smart resource provisioning is achieved by utilizing hardware only when it is needed and by leasing it from Cloud Provider. Better delivery time is valuable for consumers of your company’s product. If we are talking about development in cloud – transparent workflow can come in handy. This is basically it for today. Please Better Delivery Time Transparent Workflow
Reasons for cloud platform popularity Ready for automation Cost reduction Pay as you go Device and location independent Buzzword Scalability and elasticity Итак, рассмотрим преимущества, которые даёт использование облачных вычислений: Pay as you go. Оплата по факту использования ресурсов: вы платите только за использованные ресурсы В следствие чего, в некоторых случаях, происходит уменьшение затрат: железо не простаивает. Также это может быть дешевле для стартапов, у которых нет своей инфраструктуры – им не нужно покупать/арендовать дорогое железо, платить за его установку и настройку. Также облака предоставляют инструменты для автоматизации: это в первую очередь API и CLI tools-ы. Эти инструменты помогают очень гибко (в том числе и автоматически) как увеличить так и уменьшить доступные ресурсы. Вы можете переместить легко свое приложение в любой из доступных регионов провайдера. Например, чтобы уменьшить время отклика для клиентов из определённого региона мира. Ну и наконец, облако – это модно. Этот термин сейчас у всех на слуху, поэтому многие клиенты хотят, чтобы их приложение использовало облачные вычисления.