1. Cloud Computing: Windows Azure2de Junio de 2011, 18:00-21:00 Dr. Diego Lz. de Ipiña Glz. de Artazadipina@deusto.eshttp://paginaspersonales.deusto.es/dipinahttp://www.slideshare.net/dipinahttp://www.morelab.deusto.es
2. Agenda Windows Azure Introducción Windows Azure Computing Windows AzureStore SQL Azure Ejemplos
3. Microsoft Windows Azure Windows Azurey SQL Azurepermiten construir, alojar y escalar aplicaciones en los centros de datos de Microsfot. Como toda solución para Cloud Computing sólo pagas por los recursos que usas Es un sistema operativo en la nube Centros de datos distribuidos por el planeta
4. Microsoft’s Windows AzurePlatform Windows Azure es un servicio utilizado para ejecutar aplicaciones y guardar datos en máquinas de Microsoft accesibles vía Internet Proporciona tres componentes: El servicio Compute ejecuta aplicaciones con web role y worker role El servicio Storage permite guarda datos como blobs, tables y queues El Windows AzureFabricproporciona una API para gestionar y monitorizar aplicaciones que usan la plataforma Azure Más información en: http://www.microsoft.com/windowsazure
10. Windows Azure por Dentro Application Marketplace Information Marketplace Personal Data Repository Application Services Workflow Hosting Distributed Cache Services Hosting Frameworks Claims-Based Identity Federated Identities Secure Token Service Declarative Policies Security Composite Applications On-Premise Bridging Service Bus Connectivity Transact-SQL Data Synchronization Relational Database ADO.NET, ODBC, PHP Data Compute C / C++ Win32 VHD Unstructured Data Blobs Message Queues Distributed Filesystem Content Distribution Storage
11. Windows Azure por Dentro Application Services “Dublin” “Velocity” Frameworks “Geneva” Security Access Control Project “Sydney” Connectivity Service Bus SQL Azure Data Sync Data Compute Table Storage Blob Storage Queue Drive Content Delivery Network Storage
12. Windows Azure Cloud Fabric Multiple virtual instances Easy provision of applications Detect failures Spin up new instances to replace the failed ones How many instances and what role they will play Load balances and DNS Elasticity of the service… scaling up/down number of instance
13. Windows Azure Compute Development, service hosting, & management environment .NET, Java PHP, Python, Ruby, native code (C/C++, Win32, etc.) ASP.NET providers, FastCGI, memcached, MySQL, Tomcat Full-trust – supports standard languages and APIs Secure certificate store Management API’s, and logging and diagnostics systems Multiple roles – Web, Worker, Virtual Machine (VHD) Multiple VM sizes 1.6 GHz CPU x64, 1.75GB RAM, 100Mbps network, 250GB volatile storage Small (1X), Medium (2X), Large (4X), X-Large (8X) In-place rolling upgrades, organized by upgrade domains Walk each upgrade domain one at a time
15. Windows Azure Storage Rich data abstractions – tables, blobs, queues, drives, CDN Capacity (100TB), throughput (100MB/sec), transactions (1K req/sec) High accessibility Supports geo-location Language & platform agnostic REST APIs URL: http://<account>.<store>.core.windows.net Client libraries for .NET, Java, PHP, etc. High durability – data is replicated 3 times within a cluster, and (Feb 2010) across datacenters High scalability – data is automatically partitioned and load balanced across servers
16. Almacenamiento Blobs – Large Data Store Queues – Background work processing Tables – Very Fast / Scalable Storage Drives – NTFS Formatted Page Blobs SQL Azure – Relational SQL in the Cloud
17. Windows Azure Roles Web Role for web application programming in ASP.NET or PHP single HTTP endpoint and a single HTTPS endpoint for externalclients Worker Role for performing work on behalf of the web role may be written in .NET, Ruby, Java to improve scalability by increasing parallelism and asynchronicity used for background work internal endpoints for HTTP, TCP may receive work from Windows Azure Storage Queues
18. Interacción con el Resto de Azure Web and Worker Roles can make outbound HTTP/S or .NET Framework class library socket connections to Internet accessible resources can access Windows Azure Storage services via REST APIs or the Windows Azure Storage Client Library
19. Windows Azure Data Storage – Tables provides scalable, available, and durable structured (or semi-structured) storage in the form of tables. contain entities, and the entities contain properties. are scalable to billions of entities and terabytes of data, and may be partitioned across thousands of servers. support ACID transactions over single entities and rich queries over the entire table. Simple and familiar .NET and REST programming interfaces are provided via ADO.NET Data Services. http://go.microsoft.com/fwlink/?LinkId=153401
20. Windows Azure Data Storage – Tables: Conceptos Table – contains a set of entities. Entity (Row) – Entities are the basic data items stored in a table. Property (Column) – This represents a single value in an entity. PartitionKey– The first key property of every table. The system uses this key to automatically distribute the table’s entities over many storage nodes. RowKey– A second key property for the table. This is the unique ID of the entity within the partition it belongs to. Timestamp – Every entity has a version maintained by the system. Partition – A set of entities in a table with the same partition key value. Sort Order – There is a single index provided for the CTP, where all entities in a table are sorted by PartitionKey and then RowKey
21. Table Storage Concepts Entities Tables Accounts Email =… Name = … Users Email =… Name = … moviesonline Genre =… Title = … Movies Genre =… Title = …
22. Queue Storage Concepts Messages Queues Accounts 128 x 128 http://... thumbnailjobs 256 x 256 http://... sally http://... traverselinks http://...
23. Blob Storage Concepts Blocks or Pages Blob Container Account PIC01.JPG images PIC02.JPG sally Block or Page 1 movies MOV1.AVI Block or Page 2 Block or Page 3
24. SQL Azure Highly available, scalable, and consistent distributed relational database; geo-replication and geo-location of data Relational database, provided as a service Highly symmetrical development and tooling experience (use TDS protocol and T-SQL) Highly scaled out, on commodity hardware Built on the SQL Server technology foundation Editions: Web (1GB), Business (10GB)
25. SQL Azure vs. Windows AzureTables SQL AzureTables: Fully structured Strongly typed Relational (RDMS) Highly scalable Windows Azure Tables: Semi-structured Loosely typed Non-Relational (Not RDMS) Massively scalable
26. Probando Windows Azure Free trial en: http://www.microsoft.com/windowsazure/free-trial/ El proceso de logeo requiere introducir número de tarjeta de crédito Se requiere un login de Windows Live válido
27. Windows AzureDevFabric Local Developer Simulation of AppFabric Simulated “Cloud Experience” for Development Routes cloud requests to local machine Simulates data storage with local SQL server database Azure SQL simulated with local SQL Server database Compute Storage Management Management Relational data Connectivity Access control
28. Herramientas para Desarrollo Leverage Existing Skills in .NET, SQL Server, WCF Use Familiar tools – Visual Studio, SSMS RESTful HTTP cloud services, supports PHP, Python Cloud apps can be developed locally / offline SDK Cloud Simulator – Dev Fabric, Dev Storage Descargarse Windows AzureSDK http://www.microsoft.com/downloads/en/details.aspx?familyid=7a1089b6-4050-4307-86c4-9dadaa5ed018
29. Windows Azure SDK Se descarga de: http://www.microsoft.com/windowsazure/sdk/ Dos opciones: All-In-Oneinstallation Se integra con Visual Studio Standalone Windows Azure SDK Mejor porque no requiere Windows Visual Studio Existen SDKs para otros lenguajes como Java, PHP o Ruby
30. Características del SDK C# and VB Visual Studio project templates Windows Azure Cloud Service solution with multiple roles. Tools to manage and configure roles Local Development Fabric Local Development Storage services Local Cloud Service debugging support Cloud Service package and deployment builder
31. Tutorial de Cómo Usar Windows Azure Documentación en: http://msdn.microsoft.com/en-us/WAZPlatformTrainingCourse_IntroToWindowsAzureLabVS2010 Explores the basic elements of a Windows Azure service by creating a simple GuestBook application that demonstrates many features of the Windows Azure platform, including web and worker roles, blob storage, table storage, and queues Windows Azure Management Portal https://windows.azure.com/ Cloud Samples: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2853c3dc-0586-49c7-9b7f-83d3083252c8&displaylang=en
32. Comparativa AWS, GAE y Azure AWS es IaaS pero cada vez con más características de PaaS GAE y Azure son PaaS que permiten la creación de aplicaciones (GAE sólo web) en la infraestructura Cloud de Google y Microsoft, respectivamente AWS te permite usar tus herramientas favoritas, aunque recomienda su uso de servicios escalables de almacenamiento, bases de datos o mensajes a través de interfaces REST GAE es muy sencillo pero exige el uso de las APIs exclusivas provistas por Google, aunque están basadas en estándares de facto de la industria Azure no limita el uso de .NET para las aplicaciones desplegadas aunque lo promociona Comparativa detallada en: http://blog.kitetail.com/wp-content/uploads/2010/03/Comparison-CloudOffering.pdf
33. Patrones de Diseño en Cloud Computing Fuente: http://architects.dzone.com/news/cloud-computing-patterns Usar la nube para el escalado Usar en cada momento sólo los recursos necesarios Dos mecanismos: Passivelistenermodel Active workermodel Compartir la nube entre varios usuarios
34. Patrones de Diseño en Cloud Computing Usar la nube para batchprocessing Usar la nube para almacenamiento Usar la nube para comunicación
35. Ventajas de Cloud Computing Ahorros de costes en IT empresariales Ordenadores de bajo coste para los usuarios Costes más bajos en infraestructura IT Costes de software más bajos Mejora del rendimiento global Elasticidad para conseguir una escalabilidad superior Menos problemas en mantenimiento Actualizaciones inmediatas de software Capacidad de almacenamiento ilimitada Incremento de la seguridad de los datos (safety)
36. Desventajas de Cloud Computing Requiere una conexión a Internet continua y rápida Puede ofrecer bastante latencia Características disponibles todavía limitadas Falta de confianza Los datos guardados pueden ser accedidos por otros Nuestros datos ya no están en la empresa Problemas legales (LODP): Safe Harbor Dependencia tecnológica en otras compañías ajenas Si la nube pierde los datos, ¡estás perdido!
37. Conclusiones Cloud Computing nos ofrece un nuevo paradigma para alojar nuestros sistemas de información, aplicaciones y datos en la nube de Internet Son muchas las ventajas potenciales de este enfoque Ahorro de costes, pago por uso Escalabilidad exponencial PERO también muchos los riesgos para su implantación global inmediata Falta de control sobre nuestros datos y sistemas Relativa baja madurez de los productos que hacen posible Cloud Computing Ahora están surgiendo las herramientas y plataformas, pero tenemos que trabajar en patrones de diseño para asegurarnos buenas prácticas en Cloud Computing El futuro inmediato de los sistemas de información empresarial combinará los enfoques tradicionales, donde los sistemas y datos se ejecutan en infraestructura propia, con un paulatino e incremental despliegue de datos y aplicaciones a la nube.
38. Referencias Windows AzurePlatform http://www.microsoft.com/windowsazure/ Windows Azure SDK http://www.microsoft.com/windowsazure/getstarted/#wa Windows AzureIntroduction http://www.slideshare.net/lynnlangit/windows-azure-introduction-3337040 http://www.slideshare.net/lynnlangit/windows-azure-platform-2626957 IntroducingtheAzurePlatform http://davidchappellopinari.blogspot.com/2008/10/introducing-azure-services-platform.html
39. Cloud Computing: Microsoft Windows Azure2de Junio de 2011, 18:00-21:00 Dr. Diego Lz. de Ipiña Glz. de Artazadipina@deusto.eshttp://paginaspersonales.deusto.es/dipinahttp://www.slideshare.net/dipinahttp://www.morelab.deusto.es