24 лютого 2011 р.

Welcome to Azure! Welcome, че!

Ага:) Собственно именно так меня и бросает в ежидневном выборе технологий про которую хотелось бы почитать. На этот раз мне на глаза попалась такая штука как Ажур. Правда я опять лукавлю - с Ажуром я столкнулся довольно давно, когда ещё были бесплатные аккаунты:)

Тогда он помнится мне не особо понравился потому как был медленным и добиться вменяемой работы от него было достаточно тяжело:) Теперь в связи с ещё одним проектом мне пришлось опять залезть в облака. Собственно удивляться нечему - на ближайшие 3 года мейнстрим в сторону которого будут развиваться все технологии - мобилити + облака. Ведь представте насколько это удобно иметь в мобильном телефоне неограниченные вычислительные мощности облаков!

Итак, я буду потихоньку рассказывать о том что такое облачные вычисления, и ажур в целом.

Почему облака?
С каждым разом нам требуются все большие вычислительные мощности. Тут собственно варианта два: или мы разучились писать, или у нас выросли стандарты. Кстати, которые постоянно растут. Теперь чтобы начать стартап, или запустить сайт который будет более менее что-то делать, а не только постить картинки с котятками - требуется огромная инфарструктура - это и компьютеры, и программное обеспечение , и админ с бубном который вокруг этого всего пляшет. Если мы начинаем стартап с огромным капиталом - для нас это не проблема. Если же у нас таких денег нет - ставить крест на стартапе? Нет, ведь теперь есть облака!

Типов облак достаточно много, это:
IaaS - инфраструктура как сервис - вам предоставляется вычислительная мощность от одного компьютера - до целой веб фермы, а то и связки веб ферм.

SaaS - программное обеспечение как сервис - тут легко, есть програмное обеспечение которое вы можете использовать, при чем все происходит обычно через браузер, а вычислительные операции происходят на серверах провайдера услуги. Яркий пример - docs.google.com

PaaS - платформа, как сервис, - это уже огромный шаг вперед по сравнению со всем остальным - тут нам предоставляется не только инфраструктура, но и ПО. Представте что Ваш сайт использует базу данный MS SQL - Вам прийдется выложить крупную сумму за то, чтобы хотя бы купить SQL Server. Платформа же предоставляет Вам набор инструментов который Вы можете пользоваться - от исполнимой среды - до хрнаилищь данных.

С недавнего момента появились даже такие штуки, как

DaaS - desktop as a service, а так же GaaS - games as a service - последнего мне очень не хватало когда у меня был слабый компьютер - представте себе , что мощности необходимые для нормальной работы игры - не на вашем компьютере, а на серверах провайдера! Ведь теперь даже на самом слабом компьютере можна докачать эльфа до 80! уровня:)

Почему все больше компаний клюют на это?
Для того чтобы запустить свое решение Вам больше не нужно строить свои датацентры, нанимать целую орду одминов, и платить за суппорт этой всей радости. Вы платите только за то что Вы используете.
Представте ситуацию, Вы купили сервер. На нем висит Ваш сайт, который продает футболки к чемпионату мира. Понятное дело, что чем ближе чемпионат - тем заказов будеть больше, а следовательно количество посетителей возрастет. В какой то определенный момент Ваш сайт начнет очень жутко тормозить от наплыва клиентов, для того чтобы сайт работал как прежде Вы будете вынуждены купить новый сервер. Чемпионат закончился, количество посетителей упало, теперь Ваш новый сервер тихонько гудит под столом, и собирает пыль. А деньги вы уже потратили.

Естественно облачные вычисления не лишенны минусов, с первого раза натыкаешся на такое:
1. Это пока дорого. Тоесть не стоит хостить свой блог на клаудах:)
2. У Вас нету физического контакта с Вашим датацентром. Тоесть если сервер глючит - в сердцах пнуть его ногой не получится:)
3. У нас в стране ( Украина ) пока нету Ажура.

Ну что , погнали смотреть что такое Ажур?:)
Облачные вычисление на самом деле - это не так страшно как кажется. Относитесь к этому как к просто большой куче серверов. Которых Вы не видите:)
Когда раньше я тестирова Ажур, то был глубоко обижен на его даш борд - все было достаточно уныло и мне не нравилось. Каково же было мое удивление когда я сегодня зашел на даш борд и увидел возможость выбора сильверлайт версии портала.

Портал стал намного чище и понятнее. Так же очень новой для меня стала кнопка Connect. В момент написания поста, я не біл особо уверен что она значит, но как только я узнаю про ее значение , обязательно напишу в отдельном посте.

3 основные части Ажура:
а. Windows Azure
b. SQL Azure.
c. Windows Azure platform AppFabric

Сегодня я немного напишу о том что такое Windows Azure.
Windows Azure - это операционная система для работа на компьютерах в датацентрах Azure. Собственно вся фишка в том , что мы можем расширять количество компьютеров на которых хостяться наши приложения.

Что можно хостить на Windows Azure?
А что можна запускать на оыбчной операционной системе?:) Ворд, Интернет Експлорер, Контер Страйк - программы которые мы используем каждый день. Вот именно их мы на Ажуре запускать не будем! Я не буду утверждать на 100 процентов, что такого сделать нельзя, но это дорого:)

Приложения которые будут хоститься на ОС Windows Azure скорее всего будут серверные приложения: веб сайт, веб сервис, ВЦФ сервис

Как хостяться аппликации на обычном компьютере? Ага, представте что вы играли в супер марио, и тут он игра вылетела - что сделает аппликация - подчистить все следы аппликации, а некоторые приложения даже перезапустит. Это прекрасно для одного компьютера. А теперь представте что у вас есть тысячи шкафов с серверами. Ваша аппликация в ажуре может хостится на 8 сервере в шкафе 563, и на 9 сервере в 717 шкафу. Тут нам на помощь( ну и на помощь Ажуру:) ) приходят виртуальные машины. Именно с помощью них, ваша апплакиция отделена от других приложений с которыми она делит один сервер.

Windows Azure использует Windows Server 2008 + IIS 7.0. На этом этапе хорошо бы вспомнить про такую штуку как Роли. Каждая виртуальная машина может иметь одну из ролей: Web или Worker.

Web role - это просто аппликация которая может получать запросы через HTTP/HTTPS. Идеальные выбор для всяческих веб сайтов, веб служб, и иже с ними:)

Worker role - это аппликация к которой мы не можем обратиться напрямую. Идеальный выбор для запуска запланированных процессов - например очистки базы данных, и т.д.

Тоесть если вы увеличиваете количество ролей для любой их своих аппликаций - это значит что ваша аппликация будет захощщена сразу на нескольких виртуальных машинах! Тоесть , если у вас есть сайт, по продаже футболок, и количество веб ролей для него вы выставите равнным 2 - это будет значит что Ваш сайт будет крутиться сразу на двух машинах! Но, внимание - аккуратней с такими вещами, потому как платить придется в два раза больше! Помните - вы платите за то что используете!

Но как? Два сайта = два аддреса!
А вот и нет! Все запросы к вашим веб ролям будут проходить через так называемый Network Load Balancer. Эта девайсина знает айпишки Ваших сайтов, и в зависимости от нагрузки Ваших серверов - перенаправляет запрос на одну из веб ролей.

Фабрика
Понятно, что вся эта инфраструктура никогда не запуститься, если не будет централизированного управления всем этим добром:) Вот тут и приходит фабрика! Помните фильм - Матрица? Все люди были подключенные к системе, которая показывала им мультики? Вот где то так и Фабрика управляет всеми виртуальными машинами, а следовательно и всеми веб и воркер ролями.

Тоесть Фабрика - это такой себе Бог всех машин в датацентрах Ажура - он знает что где происходит, кто когда выключился, и принимает соответствующие решения.

Единственное что не делает фабрика - эмуляция запоминающих устройств, или в терминологии Azure - Storage Services.
Достаточно тяжело представить программу которая бы чего нибудь не записывала. Даже самый элементраный репорт, или лог файл. Потому вопрос хранения данных очень остро стоит для всех облачных сервисов. В Ажуре у нас есть аж три типа хранилищь данных которые мы можем хранить и использовать в своих целях!

Blobs - Binary Large Object - блобы это просто бинарыне файлы. Блобы лежат в контейнерах как файлы в папках. Контейнеры могут быть двух типов: публичные и приватные. Очевидно, что чтобы считать данные из публичного контейнера - нам нинадо знать ничего, и любой человек в интернете может иметь доступ к этим файлам. Для того чтобы считать данные с приватного контейнера нам необходимо знать ключ аусентикации.

Queues. Если бы не воркер роли, я думаю этого типа хранения данных просто бы не существовало. Этот типа ханения данных может хранить только строчки, при чем все роли которые будут следить за этим источником данных - будут оповещенны о произошедших изменениях - и смогут или внести изменения в сообщения, или же просто удалить сообщение из очереди.

Tables. Это не реляционные таблички как может показаться с первого раза. Я бы даже сказал что это реперзентация NoSQL базы данных от Microsoft. В данном типе хранилища мы можем хранить что угодно - от строчек, до комплексных классов.

О чем нужно думать в первую очередь?
Могущество неограниченных возможностей может затуманить:) Да , мы действительно не знаем какая пропускная способность в датацентрах Ажура, но мы можем быть уверенны что нам точно хватит:) Главно помнить - что платить тоже нам.

Помните эту фразу которую я повторил уже огромное количество раз:

Мы платим за то что используем!

Этот слоган может быть как и прекрасным моментом для экономии , так и очень болючим ударом по кошельку:
Если у вас был сайт с одной воркер ролью, и вы случайно или специально поставили 10 ролей - помните - цена вырастет в 10 раз!!!

Когда вы запускаете аппликацию для клауда, Вам необходимо подумать не только о том как ее спроектировать, для того чтобы она испольщовала как можно меньшее количество ресурсов, но и такие вещи как расписание использование ресурсов. Например:
1. У вас есть магазин футболок.
2. Вы заметили что после 6 вечера количество посетителей на Ваш сайт возрастает в 10ки раз.

Это значит что никто не хочет покупать Ваши футболки в рабочее время, но после работы все приходят домой и садяться за компьютер именно с этой мыслью! Неужели из за этого вам необходимо подымать второй а то и третий экземпляр веб роли вашего сайта? Ведь тогда цена вырастет в 2-3 раза. Исчите компромисс - запускайте дополнительные экземпляры только после 6 вечера, и тушите их в 2 ночи. Этим вы заставите цену рости только в течении 8 часов, все остальное время будет работать только 1 экземпляр.

И еще небольшой пост из книжки "Azure in Action", почему использование Azure поможет вам сэкономить деньги:
  1. I don't need to buy any infrastructure to run my application (Мне не нужна инфраструктура для запуска моих приложений)
  2. I don't need to manage the infrastructure to run my application ( я не управляю инфраструктурой для запуска моих приложений)
  3. My application runs on the same infrastructure that Microsoft uses to host their services, not some box under a desk (Мои приложения крутяться на той же инфраструктуре, на которой Microsoft держит свои сервисы, а не на каком нибудь компьютере под столом)
  4. I can scale my application out on-demand to use whatever resources it needs to meet the demands of my application ( Я могу маштабировать по желанию ресурсы инфраструктуры которые необходимы для моей аппликации)
  5. I only pay for the resources that I use when I use it ( Я плачу только за то что использую)
  6. I am provided a framework that allows me to develop scalable software that runs within the Windows ( У меня есть инструменты для разработки расширяемого ПО которое запускается на Windows)
  7. Azure Platform so my applications can run at Internet Scale
  8. I can focus on what I am good at, i.e. developing software ( Я могу сфокусироваться на том в чем я хорош - например разработке(
  9. I can watch Football and drink milkshakes without being disturbed because some idiot pulled out the server power cable so they could do the vacuuming (я могу смотреть футбол и пить коктейли, и меня не потревожат что какой - то идиот вытащил кабель питания чтобы пропылесосить)
  10. Save lots of money ( Сохраняет мноооого денег:))
На сегодня все, дальше будет интересней!:)

4 коментарі:

  1. Нарешті нормальна стаття про Ажур, хоч щось тепер зрозумів. Дякую.

    ВідповістиВидалити
  2. теорія це добре, але якщо перейти до практики...то Ви не зможете зареєструватись для використання Ажур...України в списку країн для реєстрація нема (Росії також)...

    ВідповістиВидалити
  3. України і Росії в списку нема......
    Бояться наших "умільців".
    Літра пива і умілий шорох кнопок під руками українського хакєра Васі Чайникова і Only my application runs on the same infrastructure that Microsoft used moment ago to host their services, Microsoft Services is no more here!

    ВідповістиВидалити