Cloud Computing y la nueva plataforma Windows Azure


Published on

Intorduccion a la nueva plataforma Windows Azure, implementacion de Microosft para Cloud Computing. Target developes y arquitectos de software

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • 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 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.
  • Cloud Computing y la nueva plataforma Windows Azure

    1. 1. Cloud Computing y la nueva plataforma Windows Azure<br />Juan Pablo Garcia Gonzalez<br />jpgarcia69@hotmail.coml<br /><br />
    2. 2. Agenda<br />Cloud Computing<br />Windows Azure<br />Desarrollo con VS2010 y Windows Azure<br />
    3. 3. Continuidad de la Plataforma<br />On-Premises<br />Servers<br />Hosted Servers<br />Cloud Platform<br /><ul><li>Arriendo de maquinas, conectividad, software
    4. 4. Menor control
    5. 5. Menos responsabilidades
    6. 6. Menores costos de capital
    7. 7. Mayor flexibilidad
    8. 8. Pagos fijos, incluso si no lo usa
    9. 9. Infraestructura compartida, multi arrendatario
    10. 10. Dinámica y virtualizada
    11. 11. Escalable y disponible
    12. 12. Abstraído de la arquitectura
    13. 13. Para escenarios exigentes
    14. 14. Pago por uso
    15. 15. Tiene su propias maquinas, conectividad, software, etc…
    16. 16. Control Total
    17. 17. Responsabilidad completa
    18. 18. Capacidad Estática
    19. 19. Costos de capital inicial para la infraestructura</li></li></ul><li>¿Qué es Cloud Computing?<br />Cloud Computing consiste en utilizar un centro de datos a distancia para la gestión escalable, confiable, acceso On-Demand a aplicaciones y datos<br />Escalable se entiende por<br /><ul><li>Posiblemente millones de usuarios simultáneos para la aplicación
    20. 20. Uso de paralelismo masivo en las aplicaciones
    21. 21. Fiable, elástico y bajo demanda
    22. 22. 5 “nueves” disponibles en este momento</li></ul>Aplicaciones clásicas en la nube<br /><ul><li>Búsqueda Web, social media, Almacenamiento “cloud”, e-mail</li></ul>Aplicaciones de segunda generación en la nube<br /><ul><li>Aplicaciones de análisis de datos de gran escala y colaboración científica</li></li></ul><li>Terminología Cloud<br />Inter relacionadas<br />
    23. 23. Objetivos de Azure<br />Una platforma se servicios flexible a escala Internet<br /><ul><li>Escenarios simples son fáciles, los complejos son posibles
    24. 24. Servicios alojados en los Datacenter de Microsoft
    25. 25. Diseñado para una alta disponibilidad y escalabilidad</li></ul>Basado en estándares de Internet<br /><ul><li>Soporte de múltiples protocolos como HTTP, REST, SOAP, AtomPub
    26. 26. Importante inversión en abrir los servicios de Azure a la comunidad</li></ul>Fácil adopción<br /><ul><li>Herramientas y lenguajes conocidos, frameworks .NET y Visual Studio
    27. 27. Posibilidad de construir soluciones para sus instalaciones, la nube o hibrida
    28. 28. Integrable con las inversiones existentes, como AD y aplicaciones locales</li></li></ul><li>Plataforma Windows Azure<br />
    29. 29. Windows Azure Platform<br />Computo: Capacidad de computo virtualizada basada en Windows Server<br />Almacenamiento: almacenamiento persistente, escalable y disponible<br />Gestión: automática, model-drivenmanagement de servicios<br />Database:procesamiento relacional para datos estructurados y desestructurados<br />Service Bus: Bus de aplicaciones de proposito general<br />Access Control: control de acceso Rules-driven, claims-based<br />AppFabric<br />
    30. 30. Windows Azure<br />Your<br />Service<br />DNS<br />LB<br />Web Portal<br />(API)<br />LB<br />Fabric<br />Controller<br />
    31. 31. Service<br />Service<br />Service<br />Model<br />Your<br />Service<br />DNS<br />LB<br />Web Portal<br />(API)<br />DNS<br />config<br />LB<br />Implementación de Servicios<br />Fabric<br />Controller<br />
    32. 32. Your<br />Service<br />Service<br />Service<br />DNS<br />Service<br />Service<br />Service<br />Service<br />Service<br />LB<br />Service<br />Web Portal<br />(API)<br />LB<br />Model<br />Escalamiento de Servicios<br />Fabric<br />Controller<br />
    33. 33. Your<br />Service<br />Service<br />DNS<br />Service<br />Service<br />Service<br />LB<br />Web Portal<br />(API)<br />!<br />LB<br />Model<br />Monitoreo y recuperación <br />Fabric<br />Controller<br />
    34. 34. La arquitectura de una aplicación Azure<br />Roles son en su mayoría procesamiento sin estado en el core<br /><ul><li>Web Roles proveen acceso Web a los usuarios de las aplicaciones. Web roles crean tareas para los worker Roles
    35. 35. Worker Roles hace el trabajo pesado y administra la data en las tablas y Blobs
    36. 36. Comunicación utilizando queues
    37. 37. El numero de instancias del role es dinámico y varia con la carga</li></li></ul><li>Web Role<br />Granja de servidoresWeb que manejan las peticiones de Internet<br />Web Core alojado en IIS7<br /><ul><li>Hosts ASP.NET
    38. 38. Configuración de II7 basada en XML
    39. 39. Integratedmanaged pipeline
    40. 40. Soporta SSL
    41. 41. Políticas de seguridad de acceso al código administrado de Windows Azure</li></li></ul><li>Worker Role<br /><ul><li>No recibe conexiones de entrada desde la red
    42. 42. Puede leer los requerimientos desde lasqueue en el Storage</li></li></ul><li>Demo<br />Creación de proyectos Web Role y Worker Role con VS2010<br />
    43. 43. Azure Data Storage<br />Blobs, Tables, Queues<br />Diseñado para la nube<br />3 replicas<br />Consistencia garantizada<br />Acceso directo desde Internet vía REST API <br />Soporta el cliente .NET Clientlibrary<br />No requiere implementar lógica<br />LA cuenta de Storage da una única URL, ejemplo:<br />https://<youraccount><br />
    44. 44. Tablas<br />Entidades y propiedades (filas & columnas)<br />Ámbito de las tablas por cuenta<br />Diseñadas para «billions»<br />Escalamiento usando particiones<br />Partitionkey & rowkey<br />Operaciones realizadas en las particiones<br />Consultas eficaces<br />No hay limite en el numero de particiones<br />Usa ADO.NET Data Services<br />
    45. 45. Windows Azure Table Storage<br />Entity<br />Table<br />Account<br />Name=…hash=…<br />Users<br />Name=…hash=…<br />Account<br />Tag=…id=…<br />PhotoIndex<br />Tag=…,id=…<br />
    46. 46. Particiones y Partition Key<br />Todas las tablas tienen un partitionkey<br /><ul><li>Es la primera propiedad (columna) de tu tabla
    47. 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. 48. Azure balanceara la carga de las particiones automáticamente</li></li></ul><li>Demo<br />Uso del TableStore de Azure<br />
    49. 49. Blobs<br />Blobs son almacenados en contenedores<br />1 o mas contenedores por cuenta<br />El alcance es a nivel de contenedores<br />…/Container/blobname<br />$root es un nombre especial para el contenedor raiz<br />Blobs<br />Dos tipos, Page and Block<br />Page es aleatorio R/W, Block tiene estructura semántica <br />Metadata, se accesa independiente <br />Par nombre/Valor (8kb total)<br />Acceso privado o publico al contenedor <br />
    50. 50. Windows Azure Blob Storage<br />IMG001.JPG<br />pictures<br />IMG002.JPG<br />sally<br />movies<br />MOV1.AVI<br />REST API para operaciones Blob. Blob URL: <br />http://<Account><Container>/<BlobName><br />e.g.<br />Blob<br />Container<br />Account<br />
    51. 51. Colas<br />Simple cola de envió asíncrono <br />Creación y eliminación de colas<br />Mensajes:<br />Consultados al menos una vez<br />Tamaño máximo 8kb<br />operaciones:<br />Enqueue<br />Dequeue<br />RemoveMessage<br />
    52. 52. Windows Azure Queues<br />Message<br />Queue<br />Account<br />128x128, http://…<br />Thumbnail Jobs<br />256x256, http://…<br />Account<br />http://…<br />Indexing Jobs<br />http://…<br />
    53. 53. Demo<br />Uso de QUEUEs para comunicar Web Role con Worker Role<br />
    54. 54. SQL Azure<br />Business Intelligence<br />Reporting<br />Data Sync<br />Database<br />Servicios iniciales <br />Database – capacidades Core SQL Server<br />Servicios futros<br />Data Sync – Permitir el syncframework<br />Capacidades adicionales de SQL Server como: Business Intelligence y Reporting<br />
    55. 55. SQL Azure Database<br />Base de datos relacional altamente escalable como servicio<br />Servicios de base de datos relacional<br /><ul><li>SQL Server technologyfoundation
    56. 56. Alta simetría
    57. 57. Alta escalabilidad
    58. 58. Alta seguridad</li></ul>Base de datos “as a Service” – mas allá del hosting<br />Browser<br />Database<br />SOAP/REST<br />HTTP/S<br />ADO.NET/REST - EDM<br />HTTP/S<br />MS<br />Datacenter<br />Windows Azure <br />Compute<br />App Code<br />(ASP.NET)<br />Propuesta de Valor al cliente<br /><ul><li>Auto aprovisionamiento y capacidad bajo demanda
    59. 59. Sinetria con la plataforma de base de datos en sis instalaciones
    60. 60. Alta disponibilidad inmediata y tolerancia a fallas
    61. 61. Mantención automatizada de la infraestructura (DB)
    62. 62. Simple, flexible, y pago por uso.</li></ul>SQL Server Report Server<br />(on-premises)<br />T-SQL (TDS)<br />T-SQL (TDS)<br />SQL Azure<br />Database<br />- AD Federation (LiveId /AppFabric AC)<br />
    63. 63. Modelo de aprovisionamiento de Servicio<br />Cada account tiene cero o mas servers<br />Un portal común para aprovisionamiento de Azure completo<br />Herramientas de facturación <br />Cada server tiene una o mas bases de datos <br />Contienen metdata sobre la base de datos y u uso<br />Unidad de autentificación<br />Unidad de Geo-localizacion<br />Nombre de DNS generado<br />Cada databasetiene objetos estándares de SQL<br />Unidad de conssitencia<br />Unidad de multi arrendamiento<br />Contiene usuarios, tablas, vistas, índices, etc.<br />Unidad de facturación mas granular<br /> Account<br /> Server<br /> Database<br />
    64. 64. AppFabric<br />Estendiendo .NET a la nube con servicios escalables a nivel internet<br />ServiceBus<br />AccessControl<br />Service Bus: Bus de servicios de propósito genealr<br />Access Control: Control de acceods con Rules-driven y claims-based<br />
    65. 65. Recursos - Contacto<br />Windows Azure Platform<br /> <br />Windows Azure Tools for Microsoft Visual Studio 1.1<br /><br />What is Windows Azure?<br /> <br />Windows Azure Storage Overview<br /> <br />Juan Pablo Garcia Gonzalez: jpgarcia69@hotmail.coml<br />
    66. 66. Muchas gracias<br />