29. Windows Azure Platform Computo: Capacidad de computo virtualizada basada en Windows Server Almacenamiento: almacenamiento persistente, escalable y disponible Gestión: automática, model-drivenmanagement de servicios Database:procesamiento relacional para datos estructurados y desestructurados Service Bus: Bus de aplicaciones de proposito general Access Control: control de acceso Rules-driven, claims-based AppFabric
31. Service Service Service Model Your Service DNS LB Web Portal (API) DNS config LB Implementación de Servicios Fabric Controller
32. Your Service Service Service DNS Service Service Service Service Service LB Service Web Portal (API) LB Model Escalamiento de Servicios Fabric Controller
33. Your Service Service DNS Service Service Service LB Web Portal (API) ! LB Model Monitoreo y recuperación Fabric Controller
34.
35. Worker Roles hace el trabajo pesado y administra la data en las tablas y Blobs
43. Azure Data Storage Blobs, Tables, Queues Diseñado para la nube 3 replicas Consistencia garantizada Acceso directo desde Internet vía REST API Soporta el cliente .NET Clientlibrary No requiere implementar lógica LA cuenta de Storage da una única URL, ejemplo: https://<youraccount>.blob.core.windows.net
44. Tablas Entidades y propiedades (filas & columnas) Ámbito de las tablas por cuenta Diseñadas para «billions» Escalamiento usando particiones Partitionkey & rowkey Operaciones realizadas en las particiones Consultas eficaces No hay limite en el numero de particiones Usa ADO.NET Data Services
47. Todas las entidades en la tabla con el mismo valor de partitionkey se guardan en la misma partición (local para el storage y acceso eficiente)
48.
49. Blobs Blobs son almacenados en contenedores 1 o mas contenedores por cuenta El alcance es a nivel de contenedores …/Container/blobname $root es un nombre especial para el contenedor raiz Blobs Dos tipos, Page and Block Page es aleatorio R/W, Block tiene estructura semántica Metadata, se accesa independiente Par nombre/Valor (8kb total) Acceso privado o publico al contenedor
50. Windows Azure Blob Storage IMG001.JPG pictures IMG002.JPG sally movies MOV1.AVI REST API para operaciones Blob. Blob URL: http://<Account>.blob.core.windows.net/<Container>/<BlobName> e.g. http://sally.blob.core.windows.net/pictures/img001.jpg Blob Container Account
51. Colas Simple cola de envió asíncrono Creación y eliminación de colas Mensajes: Consultados al menos una vez Tamaño máximo 8kb operaciones: Enqueue Dequeue RemoveMessage
52. Windows Azure Queues Message Queue Account 128x128, http://… Thumbnail Jobs 256x256, http://… Account http://… Indexing Jobs http://…
53. Demo Uso de QUEUEs para comunicar Web Role con Worker Role
54. SQL Azure Business Intelligence Reporting Data Sync Database Servicios iniciales Database – capacidades Core SQL Server Servicios futros Data Sync – Permitir el syncframework Capacidades adicionales de SQL Server como: Business Intelligence y Reporting
62. Simple, flexible, y pago por uso.SQL Server Report Server (on-premises) T-SQL (TDS) T-SQL (TDS) SQL Azure Database - AD Federation (LiveId /AppFabric AC)
63. Modelo de aprovisionamiento de Servicio Cada account tiene cero o mas servers Un portal común para aprovisionamiento de Azure completo Herramientas de facturación Cada server tiene una o mas bases de datos Contienen metdata sobre la base de datos y u uso Unidad de autentificación Unidad de Geo-localizacion Nombre de DNS generado Cada databasetiene objetos estándares de SQL Unidad de conssitencia Unidad de multi arrendamiento Contiene usuarios, tablas, vistas, índices, etc. Unidad de facturación mas granular Account Server Database
64. AppFabric Estendiendo .NET a la nube con servicios escalables a nivel internet ServiceBus AccessControl Service Bus: Bus de servicios de propósito genealr Access Control: Control de acceods con Rules-driven y claims-based
65. Recursos - Contacto Windows Azure Platform http://www.microsoft.com/windowsazure/ Windows Azure Tools for Microsoft Visual Studio 1.1 http://www.microsoft.com/downloads/details.aspx?FamilyID=5664019e-6860-4c33-9843-4eb40b297ab6&displaylang=en What is Windows Azure? http://channel9.msdn.com/posts/dunnry/What-is-Windows-Azure/ Windows Azure Storage Overview http://channel9.msdn.com/posts/dunnry/Windows-Azure-Storage-Overview/ Juan Pablo Garcia Gonzalez: jpgarcia69@hotmail.coml
Slide objectives: Explain what the cloud is in relationship to on-premises servers and hosted severs. Speaking Points: To put the cloud in perspective, let’s first think about the available options for deploying and running your application today. Today, there are a few established approaches for deploying and running applications.ServerOn one side you have on-premises servers or a self-hosted model. With on-premises servers, you bring your own machines, connectivity, software, and in some cases software licenses.You have complete control of the environment, the software stack, the hardware, etc.However, you also have complete responsibility. Your organization must have the skills and expertise to operate and manage the environment and software. You must take on the responsibility of patching the environment, replacing hardware, etc.These days, very few people want to be in this business. However, on-premises servers are not going away anytime soon. In some cases organizations have to maintain solutions running in an on-premises environment due to regulatory, data, or privacy requirements.Hosted ServersAn established alternative to the on-premises model is with a hosted environment.With hosted servers, you are effectively renting capacity – including machines, connectivity, and in some cases software.With this model, you have less control then when you’re managing your own servers. For instance, you can’t walk up to a machine, and plug in an external drive to load data. Or easily make hardware or software adjustments to optimize for performance. However, you also have fewer responsibilities when it comes to operating, updating, patching, and managing the environment. What is generally much more attractive about a hosted model is the cost model.The upfront capital costs can be much lower then building out your own infrastructure. However, one of the downsides is that you generally pay for the fixed capacity on a monthly basis – even if your application is idle. CloudWhat we are starting to see in the industry is the emergency of the cloud as a platform for building and running applications. So what is the cloud and how does it relate to these established options for running your apps?A cloud platform is designed as a shared, multi-tenant infrastructure.Cloud platforms utilize virtualization to: share hardware resources, provide isolation of applications or tenants, and also to provide a more dynamic infrastructure.Ability to scale out your application over multiple server instances.Because it is a shared infrastructure, there is even less control compared to a hosted environment. As this is an emerging space, there is a wide range of different types of cloud solutions. Some of the solutions focus purely on providing virtualized infrastructure. Servers you can remote into. However, many cloud platforms are starting to focus on raising the level of abstraction – so you can focus on building and deploying applications rather than remoting into machines and maintaining or patching servers. Old:Level of abstraction varies greatly today with the solutions in the marketWithin the cloud, there are things that are delivered as an infrastructureServices – services provided by the infrastructure and services you would consume programmaticallyFinally, one of the primary reasons why organizations ranging from startups, independent software vendors, and large enterprises are starting to investigate the cloud is the pricing model. With a cloud platform, you can expect a pay as you go pricing model – where you pay for what you use. [build arrow] I believe it’s important to understand that the cloud is part of a continuum. It is one ofpotential approaches that you can begin to use to deploy and run your applications. However, it’s important to understand that the cloud is not the silver bullet. It is not the perfect solution for every application. Notes:We view cloud as scale out, automated service management, high availability and multi-tenantBut cloud has other considerations: location, infrastructure, business model, ownership and management
In this next section, we’ll dig a little deeper on storage.Recall there are 3 types of storage.Recall the design point is for the cloud, there are 3 replicas of data, and we implement guaranteed consistency. In the future there will be some transaction support and this is why we use guaranteed consistency.Access is via a storage account – you can have multiple storage accounts per project.Although the API is REST, there is a supported .net storage client in the SDK that you can use within your project. This makes working with storage much easier.
Tables are simply collections of Entities.Entites must have a PartitionKey and RowKey – can also contain up to 256 other properties.Entities within a table need not be the same shape! E.g.:Entity 1: PartitionKey, RowKey, firstnameEntity 2: PartitionKey, RowKey, firstname, lastnameEntity 3: PartitionKey, Rowkey, orderId, orderData, zipCodePartitions are used to spread data across multiple servers. This happens automatically based on the partition key you provide. Table “heat” is also monitored and data may be moved to different storage endpoints based upon usage.Queries should be targeted at a partition, since there are no indexes to speed up performance. Indexes may be added at a later date.Its important to convey that whilst you could copy tables in from a local data source (e.g. sql) it would not perform well in the cloud, data access needs to be re-thought at this level. Those wanting a more traditional SQL like experience should investigate SDS.
BlobsBlobs are stored in containers. There are 0 or more blobs per container and 0 or more containers per account. (since you can have 0 containers, but then you would not have any blobs either)Typically url in the cloud is http://accountname.blob.core.windows.net/container/blobpathBlob paths can contain the / character, so you can give the illusion of multiple folders, but there is only 1 level of containers.Blob capacity at CTP is 50gb.There is an 8k dictionary that can be associated with blobs for metadata.Blobs can be private or public:Private requires a key to read and writePublic requires a key to write, but NO KEY to read.Use blobs where you would use the file system in the past.
Queues are simple:Messages are placed in queues. Max size is 8k (and it’s a string)Message can be read from the queue, at which point it is hidden.Once whatever read the message from the queue is finished processing the message, it should then remove the message from the queue. If not the message is returned to the queue after a specific user defined time limit. This can be used to handle code failures etc.
Slide objectives: Define and enumerate the Windows Azure Platform Appfabric (aka .NET Services.)Speaking points: Much in the same way that SQL Services is about extending SQL Server to the cloud, we are also extending key .NET capabilities to the cloud as services.We call these .NET Services. Some of you maybe familiar with previous codenames such as BizTalk Services.These services are really key components you would need for building distributed, connected applications. When we talk about connecting to your existing on-premises applications and enabling the composition of hybrid (Cloud + on-premises) applications – that is where .NET Services really comes in.There are currently two .NET Services: the Service Bus & the Access Control ServiceService Bus:The Service Bus is designed to provide a general purpose application bus, available on the internet at internet scale. You can really thin of the Service Bus as being similar to an Enterprise Service Bus that many enterprise organizations have today. However, we believe that when providing a Service Bus as a programmable service on the internet, there are a wider range of scenarios for many more types of organizations.Fundamentally, the .NET Service Bus is about connecting applications across network and application boundaries and making key message exchange patterns such as publish and subscribe messaging very simple.Access Control:The Access Control service is designed to provide rules-driven, claims-based access control for applications. Essentially, this allows you to define authorization rules for your applications using the claims-based approach that we are adopting within many Microsoft products and technologies and that is becoming adopted in the industry.Notes: Windows Azure has the .NET Framework built into it so thatyou can use those services within your application.But just like your application must be designed to scale out, the services that we have built into Windows over time in .NET also need to be designed and built in a way that can scale out naturally. We want to create services for you, and that's the purpose of .NET services, creating a pool of resources available to you to take advantage of and do things within your application very simply. So we're including a built-in, scale-out implementation of a service bus. The service bus lets you connect your on-premises systems securely into the cloud, into the Azure environment, while allowing your data and your information to traverse firewalls, solving a problem that is a bane of many application developments.