Microsoft TechDayshttp://www.techdays.ru Марат Бакиров Эксперт по разработке ПО Microsoft, Екатеринбург http://blogs.msdn.com/mbakirov.

Презентация:



Advertisements
Похожие презентации
Microsoft TechDays Константин Трещев MCITP: Enterprise Administrator
Advertisements

Microsoft TechDays Марат Бакиров Эксперт по разработке ПО Microsoft
Microsoft TechDays Павел Маслов MVP, Directory Services.
Microsoft TechDayshttp:// Коршиков Андрей Фёдорович ведущий инженер-программист ЗАО «НИПИ «ИнжГео» MCT, MCITP, MCPD.
Microsoft TechDays Людмила Шайкина Quarta Consulting
Microsoft TechDays Леонид Шапиро MCT ЦКО «Специалист»
Ромуальд Здебский Microsoft.
Microsoft TechDays Виталий Дильмухаметов
Microsoft TechDays Евгений Марченков Эксперт по технологиям разработки ПО Microsoft.
Microsoft TechDays Никоноров Евгений разработчик EPAM Systems.
Microsoft TechDays Золотовицкий Аркадий Директор по производству «Интеллектуальные системы»
Microsoft TechDays Богомолов Алексей MCP
Microsoft TechDays Ксения Хмелёва Специалист по технологиям Microsoft.
Microsoft TechDays Тучков Вячеслав
Microsoft TechDays Черкас Дмитрий Специалист по технологиям Microsoft.
Microsoft TechDays Евгений Марченков Эксперт по технологиям разработки ПО Microsoft.
Microsoft TechDays Николай Миляев консультант Microsoft.
Microsoft TechDays Алексей Богомолов MCP, MCTS
Microsoft TechDays Заграничнов Александр Microsoft.
Microsoft TechDays Панов Никита Технический инженер Microsoft.
Транксрипт:

Microsoft TechDayshttp:// Марат Бакиров Эксперт по разработке ПО Microsoft, Екатеринбург

Microsoft TechDayshttp:// Зачем нужны облачные технологии? Что такое Windows Azure и Azure Services Platform? Архитектура и API для приложения Windows Azure Как начать разработку?

Microsoft TechDayshttp:// Зачем нужны облачные технологии? Что такое Windows Azure и Azure Services Platform? Архитектура и API для приложения Windows Azure Как начать разработку?

Microsoft TechDayshttp:// АбстракцияСеть Динамические библиотеки Статические библиотеки Идея Идея повторного использования кода Процедуры (подпрограммы) DLL/СборкиRPCобъектыКомпоненты DCOM/.net REMOTING Сервисы

Microsoft TechDayshttp://

Если я Стартап, можно создать новой приложение на Windows Azure They can fail fast or scale fast Два парня, гараж, ноутбук и кредитка Если я ISV - Можно взять готовое приложение и превратить его в S+S приложение Windows Azure Windows Azure это фактически ASP.NET сайт – значит можно использовать готовый код. Предприятие (конечный клиент) может вывести один из сервисов в Azure Экономим время

Microsoft TechDayshttp:// Мальчик Коля в январе задумал веб сайт и держит его на своем компьютере или на маленьком хостинге В феврале приходит 1000 посетителей, и в марте еще через месяц будет Коля весь март переписывает сайт, чтобы он был масштабируемым, и в мае готов к приему Апрель – все еще переписывает веб сайт В мае уже не ходят, они все у Пети, Коля начинает все сначала, при этом должен $10000 за сервера Мальчик Петя в январе задумал веб сайт и сразу написал его на Azure В феврале приходит 1000 посетителей, и в марте еще через месяц будет Умный мальчик Петя платит немного больше за масштабиремость, и в марте сайт работает на В апреле у нас миллион посетителей В мае Петя продает 10 яхт и покупает скромный 100 метровый домик на рублевке

Microsoft TechDayshttp:// Зачем нужны облачные технологии? Что такое Windows Azure и Azure Services Platform? Архитектура и API для приложения Windows Azure Как начать разработку?

Microsoft TechDayshttp://

Настольная ОС выполняет настольные приложения Обеспечивает работу с памятью, диском, устройствами Windows Azure выполняет приложения в «облаке» Предоставляет сервисы для сервисов Предоставляет всю инфраструктуру

Microsoft TechDayshttp:// Azure Services Platform

Microsoft TechDayshttp:// Windows Azure Applications.NET Services Live Services SQL Services Applications Others Windows Mobile Windows Vista/XP Windows Server

Microsoft TechDayshttp:// Services Windows Azure Live Services Applications SQL Services Others Windows Mobile Windows Vista/XP Windows Server Fabric Storage Config Compute Application

Microsoft TechDayshttp://

Microsoft TechDayshttp:// Hello World!

Microsoft TechDayshttp:// Обычное ASP.NET приложение Visual Studio 2008 SP1 Запуск (отладка) локально (F5) Конфигурационный файл (роли, экземпляры) Azure Services Portal Загрузка в облако

Microsoft TechDayshttp:// Зачем нужны облачные технологии? Что такое Windows Azure и Azure Services Platform? Архитектура и API для приложения Windows Azure Как начать разработку?

Microsoft TechDayshttp://

Обычное приложение Программа (EXE) Конфигурация приложения Манифест DLL Сборка Windows forms Сервис Windows Локальное хранилище Windows Azure Service package Service configuration Service definition Service role Web role Worker role Интернет-хранилище.

Microsoft TechDayshttp:// Вычисления Хранилище данных Хранилище данных SDK

Microsoft TechDayshttp:// Developer Tools Developer Tools А что такое Windows Azure? Вычисление.NET 3.5 sp1 / IIS7 Server 2008 – 64bit Medium Trust* Web Role Web Sites (ASP.NET) Web Services (WCF) Worker Role Stateless Servers Http(s) Вычисление.NET 3.5 sp1 / IIS7 Server 2008 – 64bit Medium Trust* Web Role Web Sites (ASP.NET) Web Services (WCF) Worker Role Stateless Servers Http(s) Storage

Microsoft TechDayshttp:// Developer Tools Developer Tools Windows Azure Compute Хранилище даных Durable, scalable, available Blobs Tables Queues REST interfaces – Можно использовать независимо в клиентском приложении Хранилище даных Durable, scalable, available Blobs Tables Queues REST interfaces – Можно использовать независимо в клиентском приложении

Microsoft TechDayshttp:// Compute Storage Developer SDK Windows Azure SDK – Локальное облако – Локальное хранилище – Инструменты командной строки – Small Managed API Logging, working storage Microsoft Visual Studio 2008 add-in, express Developer SDK Windows Azure SDK – Локальное облако – Локальное хранилище – Инструменты командной строки – Small Managed API Logging, working storage Microsoft Visual Studio 2008 add-in, express

Microsoft TechDayshttp:// Windows Azure Datacenter Ваш Azure проект LBLB LBLB Internet Web Site (ASPX, ASMX, WCF) Web Site (ASPX, ASMX, WCF) Web Site (ASPX, ASMX, WCF) Web Site (ASPX, ASMX, WCF) Web Site (ASPX, WCF) Web Site (ASPX, WCF) Worker Service LBLB LBLB Storage Tables Blobs Queue

Microsoft TechDayshttp:// Настройки для каждой роли Точки входа Например, HTTP/порт 80 Определение локальных хранилищ

Microsoft TechDayshttp:// RoleManager Logging (Протоколирование) WriteToLog Доступ к конфигурации GetConfigurationSetting Локальное хранилище (per instance) GetLocalResource RoleManager.GetConfigurationSetting("mysetting"); ILocalResource ilr = RoleManager.GetLocalResource("a"); string rootpath = ilr.RootPath;

Microsoft TechDayshttp:// … Fabric Compute Storage Application Blobs QueuesTables HTTP

Microsoft TechDayshttp:// Создается уникальное имя Предоставляется 256 битный ключ Базовая система безопасности Ключ используется чтобы создать подпись Подпись используется для всех сообщений Account Blob Table Queue

Microsoft TechDayshttp:// Создание хранилища.

Microsoft TechDayshttp:// Blob Container Account sally pictures IMG001.JP G IMG002.JP G movies MOV1.AVI

Microsoft TechDayshttp:// Account Account содержит контейнеры Контейнер Контейнер содержит записи БЛОБ Политика на уровне контейнера Public READ or Private Метаданные Metadata is pairs 8KB на контейнер Можно получить список Blob Containe r Account sally pictures IMG001.JP G IMG002.JP G movies MOV1.AVI

Microsoft TechDayshttp:// URL / Например: Account – sally Container – music BlobName – rock/rush/xanadu.mp3 URL: Blob Containe r Account sally pictures IMG001.JP G IMG002.JP G movies MOV1.AVI

Microsoft TechDayshttp:// Можно работать с БЛОБАМИ поблочно (чтобы не грузить сразу 50 гигабайт) Есть примеры работы с хранилищем – CloudDrive на PowerShell

Microsoft TechDayshttp:// 37 //Get Container BlobStorage storage = BlobStorage.Create(StorageAccountInfo.GetDefaultBlobStorage AccountFromConfiguration()); BlobContainer container = storage.GetBlobContainer("guestbookpics"); container.CreateContainer(null, ContainerAccessControl.Public);

Microsoft TechDayshttp:// 38 //Create Blob string uniqueBlobName = string.Format("image_{0}.jpg",Guid.NewGuid().ToString()); BlobProperties prop = new BlobProperties(uniqueBlobName); prop.ContentType = FileUpload1.PostedFile.ContentType; BlobContents blob = new BlobContents(FileUpload1.FileContent); container.CreateBlob(prop, blob, true); prop = container.GetBlobProperties(uniqueBlobName); // Uri

Microsoft TechDayshttp:// Структурированное хранилище Очень масштабируемые таблицы Миллиарды записей и терабайты данных Автоматически распределяет нагрузку Высокодоступный сервис Надежный Минимум три копии данных Стандартные интерфейсы ADO.NET Data Services –.NET 3.5 SP1 LINQ и.NET REST доступ – доступ на любом языке

Microsoft TechDayshttp:// EntityTableAccount Users Name=…hash =… PhotoIndex Tag=…id=… Tag=…,id=…

Microsoft TechDayshttp:// Partition Key Document Name Row Key Version Property 3 Modification Time …..Property N Description Examples DocV1.08/2/2007…..Committed version Examples DocV2.0.19/28/2007Alices working version FAQ DocV1.05/2/2007Committed version FAQ DocV1.0.17/6/2007Alices working version FAQ DocV1.0.28/1/2007Sallys working version Partition 1 Partition 2 Table Partition – это все элементы с одинаковым partition key Мы можем управлять партиционированием на уровне приложения

Microsoft TechDayshttp:// 42 public class GuestBookEntry : TableStorageEntity { public GuestBookEntry() { PartitionKey = DateTime.UtcNow.ToString("MMddyyyy"); // Row key allows sorting, so we make sure the rows come back in time order. RowKey = string.Format("{0:10}_{1}", DateTime.MaxValue.Ticks - DateTime.Now.Ticks, Guid.NewGuid()); } public string Message { get; set; } public string GuestName { get; set; } public string PhotoUrl { get; set; }

Microsoft TechDayshttp:// 43 public class GuestBookDataContext : TableStorageDataServiceContext { public GuestBookDataContext(StorageAccountInfo info) : base(info) { } public IQueryable GuestBookEntry { get { return this.CreateQuery ("GuestBookEntry"); }

Microsoft TechDayshttp:// 44 private GuestBookDataContext _context; StorageAccountInfo info = StorageAccountInfo.GetDefaultTableStorageAccountFromConfigu ration(); TableStorage.CreateTablesFromModel(typeof(GuestBookDataCont ext), info); _context = new GuestBookDataContext(info); _context.RetryPolicy = RetryPolicies.RetryN(3, TimeSpan.FromSeconds(1)); var results = from g in _context.GuestBookEntry where g.PartitionKey == DateTime.UtcNow.ToString("MMddyyyy") select g; var r = results.ToArray ();

Microsoft TechDayshttp:// Windows Azure Datacenter Your Service LBLB LBLB Internet Web Site (ASPX, ASMX, WCF) Web Site (ASPX, ASMX, WCF) Web Site (ASPX, ASMX, WCF) Web Site (ASPX, ASMX, WCF) Web Site (ASPX, WCF) Web Site (ASPX, WCF) Worker Service LBLB LBLB Storage Tables Blobs Queue

Microsoft TechDayshttp:// Account может создать много очередей Имя очереди определяется accountом Очередь содержит сообщения Нет лимита размера Есть лимит времени – 1 неделя Сообщения Размер

Microsoft TechDayshttp:// Queues Create/Clear/Delete Посмотреть длину очереди Сообщения Enqueue (QueueName, Message) Dequeue (QueueName, Invisibility Time T) Выдает сообщение MessageID Сообщение становится невидимым на некоторе время T Delete(QueueName, MessageID)

Microsoft TechDayshttp:// C1C1 C1C1 C2C2 C2C Producers Consumers P2P2 P2P2 P1P1 P1P Dequeue(Q, 30 sec) msg 2 1. Dequeue(Q, 30 sec) msg

Microsoft TechDayshttp:// C1C1 C 1 C2C2 C2C Producers Consumers P2P2 P2P2 P1P1 P1P Dequeue(Q, 30 sec) msg 2 3. C2 использовал msg 2 4. Delete(Q, msg 2) 7. Dequeue(Q, 30 sec) msg 1 1. Dequeue(Q, 30 sec) msg 1 5. C 1 crashed msg1 visible 30 seconds after Dequeue Что получаем: Каждое сообщение вызывается ровно раз 3 3

Microsoft TechDayshttp:// Essential Storage for the Cloud Durable, Scalable, Highly Available, Security, Performance Efficient Familiar and Easy to Use Programming Interfaces REST Accessible, LINQ and ADO.NET Rich Data Abstractions Service communication: queues, locks, … Large user data items: blobs, blocks, … Service state: tables, caches, …

Microsoft TechDayshttp:// Account Container Blobs Table Entities Queue Messages

Microsoft TechDayshttp:// Windows Azure Guest Book

Microsoft TechDayshttp:// Зачем нужны облачные технологии? Что такое Windows Azure и Azure Services Platform? Архитектура и API для приложения Windows Azure Как начать разработку?

Microsoft TechDayshttp:// Есть три типа кодов 1.Windows Azure 2..NET & SQL Services invitation code 3.Live Framework & Services invitation code Как получить код? Go to Отправить запрос

Microsoft TechDayshttp:// November CTP SDKs & Visual Studio Tools SQL Services SDK Live Framework SDK Visual Studio Tools for Live Framework Java & Ruby SDKs for.NET Services December CTP SDK.NET Services SDK January CTP Windows Azure SDK Visual Studio Tools for Windows Azure

Microsoft TechDayshttp:// November CTP SDKs & Visual Studio Tools SQL Services SDK Live Framework SDK Visual Studio Tools for Live Framework Java & Ruby SDKs for.NET Services December CTP SDK.NET Services SDK January CTP Windows Azure SDK Visual Studio Tools for Windows Azure

Microsoft TechDayshttp:// Новый релиз Live Framework Новый релиз Azure SDK + tools Native код Full Trust PHP+Fast CGI

Microsoft TechDayshttp:// Azure training kit MSDN devcenter HOWDOI videos Презентации с платформы

Microsoft TechDayshttp:// © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.