Wisconsin .NET Users Group<br />Sept 2009<br />
Who Are We?<br />Joseph Paradi<br />Innovation Lead, Accenture<br />joseph.a.paradi@accenture.com<br />Wade Wegner<br />Ar...
Cloud-Addressable Challenges<br />Facing Today’s Enterprise<br />1<br />1<br />5<br />Infrastructure costs are fixed and o...
And in a non-Cloud view, there are inefficiencies in addressing those issues<br />Allocated IT-capacities<br />Load Foreca...
However, in a Cloud View<br />Load Forecast<br />Allocated IT capacities<br />No “under-supply“<br />IT CAPACITY<br />Redu...
It has happened before<br />
5 key differences between legacy and cloud computing<br />Scale<br />Automated Service Management<br />High Availability<b...
Introducing the Windows Azure platform<br />Web and Clouds<br />Developer Experience<br />Third party Cloud<br />Web appli...
Introducing Windows AzureDelivering the Reality of Cloud Computing<br />Windows Azure delivers Cloud computing for the ent...
Comprehensive SLAs<br />Dependable performance<br />Years of Microsoft Experience<br />Faster time to market<br />Speedier...
NEXT UP:<br />Windows Azure Architecture<br />
From Managing Resources to Providing Abstraction<br />BUSINESSES<br />CONSUMERS<br />INTERNET<br />
Defining Windows Azure Architecture<br />Fabric<br />Fabric controller<br />Compute<br />Storage<br />The Fabric Controlle...
Windows Azure<br />The Fabric Controller automates load balancing and computes resource scaling<br />Security and Control ...
Fabric Controller<br />Interacts with a “Fabric Agent” on each machine<br />Monitors every VM, application and instance<br...
Compute in Windows Azure<br />GOAL:<br />SCALABILITY<br />Two instance types: Web Role & Worker Role<br />Windows Azure ap...
Defining the Web and Worker Roles<br />WEB ROLE<br />WORKER ROLE<br />Interacts with end-user<br />or web services<br />Ha...
Storage in Windows Azure<br />GOAL:<br />SCALABLE, DURABLE STORAGE<br />Tables: simply structured data, accessed using ADO...
Blobs, Tables and Queues<br />BLOBS: <br />Provide a simple interface for storing named files along with file metadata<br ...
Services Management in Windows Azure<br />GOAL:<br />AUTOMATED APPLICATION MANAGEMENT AND CONTROL<br />Fabric<br />The Fab...
Developing Applications for Windows Azure<br />FAMILIAR DEVELOPER EXPERIENCE<br />DESIGNED FOR INTEROPERABILITY<br />PROVE...
Windows Azure Skill Transfer<br />
Providing Security with Windows Azure<br />PHYSICAL:<br /><ul><li>Microsoft data centers with modern and current security ...
Redundant power supplies from separate providers, battery and diesel backup generators, climate control, and fire preventi...
Users can choose single location or geo-distributed data centers
Storage data is replicated multiple times
Fabric is designed to be backed up and restored from checkpoints</li></ul>COMPLIANCE & CERTIFICATION:<br /><ul><li>Microso...
Industry certification is a core part of          the Windows Azure roadmap
Customers are ultimately responsible for the security and compliance of their services or applications–Windows Azure is a ...
HTTPS
Optimized for Cloud access with no admin access to guests or applications
Applications and users not allowed to update the underlying environment</li></li></ul><li>Building Solutions with the <br ...
NEXT UP:<br />SQL Azure Architecture<br />
Benefits of SQL Azure database<br />SQL Azure Database delivers the value of hosted relational database with the different...
Familiar relational model (DDL, DML, Indexes…)
Transactions
Ecosystem of familiar development and management tools
Low-friction provisioning
Upcoming SlideShare
Loading in...5
×

Wisconsin .NET UG - Windows Azure

2,084

Published on

Presentation given to the Wisconsin .NET Users Group on Windows Azure and SQL Azure.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,084
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
69
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Wisconsin .NET UG - Windows Azure

  1. 1. Wisconsin .NET Users Group<br />Sept 2009<br />
  2. 2. Who Are We?<br />Joseph Paradi<br />Innovation Lead, Accenture<br />joseph.a.paradi@accenture.com<br />Wade Wegner<br />Architect Evangelist, Microsoft<br />wade.wegner@microsoft.com<br />http://blog.wadewegner.com/<br />
  3. 3. Cloud-Addressable Challenges<br />Facing Today’s Enterprise<br />1<br />1<br />5<br />Infrastructure costs are fixed and ongoing, and distract from the mission of reducing business process friction<br />Leveraging past investments to provide future value<br />Many data centers at limit—real estate, capacity, cooling and power<br />Matching capacity to demand<br />Maintaining security while increasing access and transparency—within and outside the organization<br />2<br />6<br />Security, access, and transparency across the value chain: suppliers, partners, etc.<br />3<br />7<br />Lack of a common platform<br />4<br />
  4. 4. And in a non-Cloud view, there are inefficiencies in addressing those issues<br />Allocated IT-capacities<br />Load Forecast<br />“Under-supply“ of capacities<br />“Waste“ of capacities<br />Fixed cost of IT-capacities<br />IT CAPACITY<br />Barrier for<br />innovations<br />ActualLoad<br />TIME<br />
  5. 5. However, in a Cloud View<br />Load Forecast<br />Allocated IT capacities<br />No “under-supply“<br />IT CAPACITY<br />Reduction of “over-supply“<br />Possible reduction of IT-capacities in case of reduced load<br />Reduction of initial investments<br />ActualLoad<br />Time<br />
  6. 6. It has happened before<br />
  7. 7. 5 key differences between legacy and cloud computing<br />Scale<br />Automated Service Management<br />High Availability<br />Multi-Tenancy<br />Considerations<br />Off Premises<br />On Premises<br />Location<br />Homogeneous<br />Heterogeneous<br />Infrastructure<br />CapEx<br />OpEx<br />Business model<br />Own<br />Lease/Rent<br />Ownership<br />Self<br />Third Party<br />Management<br />
  8. 8. Introducing the Windows Azure platform<br />Web and Clouds<br />Developer Experience<br />Third party Cloud<br />Web applications<br />Use existing skills and tools.<br />Compute<br />Storage<br />Management<br />Management<br />Relational data<br />Connectivity<br />Access control<br />On-premises<br />LOB Applications<br />Composite applications<br />
  9. 9. Introducing Windows AzureDelivering the Reality of Cloud Computing<br />Windows Azure delivers Cloud computing for the enterprise<br />“It’s the transformation of our software, it’s <br />the transformation of our strategy and our offerings across the board to fundamentally embrace services.”<br />–Ray Ozzie<br /> Chief Software Architect<br /> Microsoft<br />
  10. 10. Comprehensive SLAs<br />Dependable performance<br />Years of Microsoft Experience<br />Faster time to market<br />Speedier development<br />Simpler deployment<br />Efficiency<br />Manage resources withless cost and effort<br />Focus<br />Concentrate on delivering solutions, not infrastructure<br />Trust<br />Rely on a solid development platform<br />Agility<br />Respond rapidly to changing needs<br />Rapid monetization <br />Scalability without complexity <br />Fewer operational hurdles<br />On-demand computing<br />Elimination of idle IT capacity<br />Lower TCO <br />Why Windows Azure<br />
  11. 11. NEXT UP:<br />Windows Azure Architecture<br />
  12. 12. From Managing Resources to Providing Abstraction<br />BUSINESSES<br />CONSUMERS<br />INTERNET<br />
  13. 13. Defining Windows Azure Architecture<br />Fabric<br />Fabric controller<br />Compute<br />Storage<br />The Fabric Controller communicates with every server within the Fabric. It manages Windows Azure, monitors every application, decides where new applications should run – optimizing hardware utilization.<br />
  14. 14. Windows Azure<br />The Fabric Controller automates load balancing and computes resource scaling<br />Security and Control Features include storage encryption, access authentication, and over-the-wire encryption using HTTPS. Industry certification is part of the Windows Azure roadmap.<br />Computation provides application scalability. Developers can build a combination of web and worker roles. Those roles can be replicated as needed to scale the applications and computational processing power.<br />Storage Services allow customers to scale to store large amounts of data – in any format – for any length of time, only paying for what they use or store.<br />Geographically distributed, state-of-the-art data centers host your applications and data, internet-accessible from everywhere you choose to allow.<br />
  15. 15. Fabric Controller<br />Interacts with a “Fabric Agent” on each machine<br />Monitors every VM, application and instance<br />Performs load balancing, check pointing and recovery<br />
  16. 16. Compute in Windows Azure<br />GOAL:<br />SCALABILITY<br />Two instance types: Web Role & Worker Role<br />Windows Azure applications are built with <br />web role instances, worker role instances, <br />or a combination of both.<br />Scale out by replicating worker instances as needed.<br />Allow applications to scale <br />user and compute processing independently.<br />Each instance runs on its own VM (virtual machine), replicated as needed<br />
  17. 17. Defining the Web and Worker Roles<br />WEB ROLE<br />WORKER ROLE<br />Interacts with end-user<br />or web services<br />Handles incoming<br />HTTP/HTTPS requests<br />Develop with Microsoft and<br />non-Microsoft tools:<br />ASP.NET, WCF, other .NET tools<br />Java, PHP, etc.<br />Does not accept<br />incoming requests<br />Initiates their own requests<br />for data or tasks from <br />the queue<br />Similar to a &quot;batch job&quot;<br />or Windows service<br />
  18. 18. Storage in Windows Azure<br />GOAL:<br />SCALABLE, DURABLE STORAGE<br />Tables: simply structured data, accessed using ADO.NET Data Services<br />Queues: serially accessed messages or requests, allowing web-roles and worker-roles to interact<br />Blobs: large, unstructured data (audio, video, etc)<br />Windows Azure storage is an application managed by the Fabric Controller<br />Windows Azure applications can use native storage or SQL Azure<br />Application state is kept in storage services, so worker roles can replicate as needed<br />
  19. 19. Blobs, Tables and Queues<br />BLOBS: <br />Provide a simple interface for storing named files along with file metadata<br />QUEUES: <br />Provide reliable storage and delivery of messages for <br />an application<br />TABLES: <br />Provide structured storage. A Table is a set of entities which contain a set of properties<br />
  20. 20. Services Management in Windows Azure<br />GOAL:<br />AUTOMATED APPLICATION MANAGEMENT AND CONTROL<br />Fabric<br />The Fabric Controller automates service management<br />
  21. 21. Developing Applications for Windows Azure<br />FAMILIAR DEVELOPER EXPERIENCE<br />DESIGNED FOR INTEROPERABILITY<br />PROVEN MICROSOFT TECHNOLOGIES<br />Development: Visual Studio integration, offline Cloud simulation<br />Maintenance: Local debugging, APIs for logging<br />Management: APIs for configuration management<br />SOAP and REST protocols <br />XML file formats<br />Commitment to support Java, PHP, Python and other popular programming languages<br />Visual Studio, ASP.NET, SQL Azure integration<br />Windows Azure integration<br />
  22. 22. Windows Azure Skill Transfer<br />
  23. 23. Providing Security with Windows Azure<br />PHYSICAL:<br /><ul><li>Microsoft data centers with modern and current security processes
  24. 24. Redundant power supplies from separate providers, battery and diesel backup generators, climate control, and fire prevention and suppression</li></ul>CONTINUITY: <br /><ul><li>Multiple data centers in different geographies
  25. 25. Users can choose single location or geo-distributed data centers
  26. 26. Storage data is replicated multiple times
  27. 27. Fabric is designed to be backed up and restored from checkpoints</li></ul>COMPLIANCE & CERTIFICATION:<br /><ul><li>Microsoft is committed to complying with all local laws
  28. 28. Industry certification is a core part of the Windows Azure roadmap
  29. 29. Customers are ultimately responsible for the security and compliance of their services or applications–Windows Azure is a platform</li></ul>LOGICAL:<br /><ul><li>Storage encryption and authentication
  30. 30. HTTPS
  31. 31. Optimized for Cloud access with no admin access to guests or applications
  32. 32. Applications and users not allowed to update the underlying environment</li></li></ul><li>Building Solutions with the <br />Windows Azure Platform<br />SQL Azure: Scalable, relational, Cloud-enabled database services<br />.NET Services: Framework for access control and communication between Cloud-aware applications<br />
  33. 33. NEXT UP:<br />SQL Azure Architecture<br />
  34. 34. Benefits of SQL Azure database<br />SQL Azure Database delivers the value of hosted relational database with the differentiated benefits of a managed database as a utility<br />Hosted RDBMS<br />Managed RDBMS<br /><ul><li>SQL query processor
  35. 35. Familiar relational model (DDL, DML, Indexes…)
  36. 36. Transactions
  37. 37. Ecosystem of familiar development and management tools
  38. 38. Low-friction provisioning
  39. 39. High scale
  40. 40. Multi-tenant
  41. 41. Self-management
  42. 42. Automatic HA and DR</li></li></ul><li>SQL Azure Database Product Architecture overview<br />SQL Azure Database combines the bestof simple storage and hosted RDBMS<br />BrowserApplication<br />Application<br />Application<br />ODBC, OLEDB, ADO.Net PHP, Ruby, …<br /><ul><li>Flexible access to data in the cloud
  43. 43. Create client applications that access data in the cloud via TDS – just like on-premise SQL Server
  44. 44. Create cloud-based Web applications in Azure that use standard SQLClient libraries with ADO.NET
  45. 45. Create cloud-based REST data interfaces in Azure with ADO.NET Data Services and the Entity Framework
  46. 46. Low friction data storage provisioning
  47. 47. Web interface for simple, database provisioning
  48. 48. Scale seamlessly as needed
  49. 49. Self-managing data center
  50. 50. Automated maintenance
  51. 51. Built in high-availability and data recoverability</li></ul>REST Client<br />SQL Client*<br />Cloud<br />REST (Astoria)<br />ADO.Net +EF<br />HTTP+REST<br />HTTP<br />TDS<br />Windows Azure<br />Web App<br />SQL Client*<br />Data Center<br />TDS + TSQL Model<br />SQL Azure<br />* Client access enabled using TDS for ODBC, ADO.Net, OLEDB, PHP-SQL, Ruby, …<br />
  52. 52. Data Platform Design<br />Account<br /><ul><li>Goal: A storage platform built for extreme scale and low cost
  53. 53. Architecture:
  54. 54. An Azure account provides access to SQL Azure
  55. 55. Each account can have one or more logical server
  56. 56. Implemented as multiple physical servers within a given geo-location
  57. 57. Each logical server can contain one or more logical database
  58. 58. Implemented as replicated partitioned data across multiple physical databases
  59. 59. Azure wide
  60. 60. Billing instrument</li></ul>Has one or more<br />Server<br /><ul><li>Database metadata
  61. 61. Unit of authorization
  62. 62. Unit of geo-location</li></ul>Has one or more<br />Database<br /><ul><li>Unit of consistency
  63. 63. Contains Users, Tables, Views, etc…</li></li></ul><li>Logical User Databases<br /><ul><li>Uses shared infrastructure at SQL database and below
  64. 64. Each user database is replicated to one or more servers (configurable based on SLA)
  65. 65. Client requests are routed to current “primary server” for read and write operations (based on SQL session)
  66. 66. Security, lockdown and isolation enforced in SQL tier
  67. 67. Highly scalable and state-of-the-art HA technology
  68. 68. Automatic failure detection; client request re-routed to new primary on failure
  69. 69. High SLA guarantee using logical replication (hot standby replicas)
  70. 70. Automatic management, self-healing and load balancing across shared resource pool
  71. 71. SQL Azure Database provides provisioning, metering and billing infrastructure</li></ul>Machine 5<br />Machine 6<br />Machine 4<br />SQL Instance<br />SQL Instance<br />SQL Instance<br />SQL DB<br />SQL DB<br />SQL DB<br />UserDB1<br />UserDB2<br />UserDB3<br />UserDB4<br />UserDB1<br />UserDB2<br />UserDB3<br />UserDB4<br />UserDB1<br />UserDB2<br />UserDB3<br />UserDB4<br />SQL Azure Database Provisioning (databases, accounts, roles, …, Metering, and Billing<br />Scalability and Availability: Fabric, Failover, Replication, and Load balancing<br />DBA role will change to focus on policy/logical management<br />Scalability and Availability: Fabric, Failover, Replication, and Load balancing<br />
  72. 72. Security and Connection Models<br />Security<br /><ul><li>Uses regular SQL security model
  73. 73. Authenticate logins, map to users and roles
  74. 74. Authorize users and roles to SQL objects
  75. 75. Supports standard SQL logins
  76. 76. Logins are username + password strings
  77. 77. Service enforces use of SSL to secure credentials
  78. 78. Future support for AD Federation, WLID, etc as alternate authentication protocols</li></ul>Connections<br /><ul><li>Connect using common client libraries
  79. 79. ADO.NET, OLE DB, ODBC, etc.
  80. 80. Clients connect to a database directly
  81. 81. Cannot hop across DBs
  82. 82. Large surface of SQL supported within the database boundary
  83. 83. Future work will relax many of these constraints</li></li></ul><li>Provisioning Model<br /><ul><li>Account and server provisioning
  84. 84. Portal and API based access
  85. 85. Ex: enumerate my servers, show server usage metrics, etc
  86. 86. Each account has one or more servers
  87. 87. Ex: srv123.data.database.windows.net
  88. 88. Each server has a virtual master database
  89. 89. Has subset of SQL Server master DB interface
  90. 90. Each server has one or more SQL logins
  91. 91. System creates sysadmin login on “server creation”
  92. 92. Databases created using “CREATE DATABASE”
  93. 93. Can be called by sysadmin or anyone with create DB permission</li></ul>*<br />*<br />
  94. 94. Compatibility with SQL Server<br /><ul><li>SQL Server has many patterns for accomplishing tasks
  95. 95. SQL Azure supports a subset of SQL Server patterns
  96. 96. Focus on logical and policy based administration
  97. 97. Patterns work in both SQL Azure & SQL Server
  98. 98. Enables migration of on-premise application to/from SQL Azure
  99. 99. SQL Azure Database is a multi-tenant service
  100. 100. Throttling and load balancing policies
  101. 101. Examples: limit on DB size, duration of transaction, …</li></ul>V1 Goal: Address the needs of 95% or more web and departmental applications<br />In Scope for v1<br />Out of Scope for v1<br /><ul><li>CLR
  102. 102. Service Broker
  103. 103. Distributed Transactions
  104. 104. Distributed Query
  105. 105. Spatial
  106. 106. All server level DDL
  107. 107. All physical DDL and physical catalog views
  108. 108. Create/Alter/Drop on Database/Index/View
  109. 109. Stored Procedures (Transact-SQL)
  110. 110. Triggers
  111. 111. Constraints
  112. 112. Table variables, session temp tables (#t)
  113. 113. + lots of others</li></li></ul><li>SQL Azure Database Customer Scenarios<br />Departmental Applications<br />Web Applications<br />Departmental workgroup applications with low concurrency and cyclical usage patterns<br />Small customers or start ups with Web applications of all scale that have simple RDBMS needs<br />Data Hubs<br />ISV/SaaS Offerings<br />Secure data hubs that consolidate multiple data sources and enable access from multiple locations and devices<br />Traditional ISVs extending offering or selling software hosted in the cloud (including SaaS ISVs)<br />
  114. 114. SQL Data Services Roadmap<br />Internal Adoption<br />Invitation SQL Azure CTP <br />Commercial Availability<br />Invitation Azure CTP <br />MIX 2009<br />WWPC 2009<br />TechEd 2009<br />PDC<br />2009<br />Mar 09<br />May 09<br />Jul 09<br />Nov 09<br />Sep 09<br />Apr 09<br />Jun 09<br />Aug 09<br />Oct 09<br />
  115. 115. Key Takeaways<br /><ul><li>SQL Azure Database is real and in production with Microsoft enterprise services
  116. 116. We are accelerating delivery of relational database service – PDC ‘09
  117. 117. Ecosystem of tools; existing skills and knowledge
  118. 118. Majority of web and workgroup apps work as-is
  119. 119. Support for open source client libraries
  120. 120. Integration between on/off-premises: Extending SQL data platform to the cloud
  121. 121. Relational database is key capability of the Windows Azure Platform
  122. 122. Zero-friction integration with Windows Azure
  123. 123. Enables compelling scenarios on the Azure platform
  124. 124. SQL Azure design and architecture supports a wide range of scenarios
  125. 125. SQL Azure Database platform investments deliver proven value on top of SQL engine
  126. 126. From very cheap and highly-consolidated to still inexpensive and highly-isolated</li></li></ul><li>Software + Services Architecture<br />“When you combine the ever-growing power of devices and the increasing ubiquity of the Web, you come up with a sum that is greater than its parts.” <br />—RAY OZZIE<br />THREE CORE PRINCIPLES:<br />Experiences should span beyond a single device<br />Infrastructure and solutions should extend from the server to the Cloud<br />Tightly coupled systems should give way to federations of cooperating systems and loosely coupled compositions <br />
  127. 127. NEXT UP:<br />Pricing<br />
  128. 128. Consumption<br />Subscription<br />Volume licensing<br />“Value for a commitment”<br />“Coordinated purchasing”<br />“Pay as you go and grow”<br />Planned for post PDC<br />Select offers at PDC<br />Available at PDC launch<br /><ul><li>Discounts for commitment
  129. 129. Plans for paymentpredictability
  130. 130. Unified purchasing through EA
  131. 131. Introduction to volumediscount
  132. 132. Low barrier to entry and flexibility
  133. 133. Optimized for Cloudelasticity </li></ul>Windows Azure Purchasing Models<br />
  134. 134. Windows Azure Pricing Meters<br />COMPUTE<br />STORAGE<br />BANDWIDTH<br />Virtual Machine instances<br />Load balancers, routers, etc.<br />Relational DB instances<br />Automated service management <br /><ul><li>Fabric controller operations (deploy/upgrade/delete/scale)
  135. 135. Load balancer programming</li></ul>Blob Storage<br />Table Storage<br />Multiple replicas<br />Ingress/Egress (to/from internet only)<br />PRICE<br />$0.12 / hour<br />PRICE<br />$0.15 / GB stored / month<br />Storage transactions: $0.01 / 10k<br />PRICE<br />Bandwidth: $0.10 IN; $0.15 OUT; / GB<br />
  136. 136. Windows Azure Platform Service Guarantee<br />Storage servicewill be available/ reachable (connectivity)<br />Your storage requests willbe processed successfully<br />.NET Service Bus endpoint willhave external connectivity<br />Message operation requests willbe processed successfully<br />Serviceavailability<br />Storage availability<br />Database availability<br />Role instance monitoring and restart<br />Compute connectivity<br />Your service is connected and reachable via web<br />Internet facing roles will have external connectivity<br />Database is connected to the internet gateway <br />Availability monitoring every 5-minute interval<br />All runningroles will be continuously monitored<br />If role is unhealthy, we will detect and initiate corrective state<br />Automated Systems Management<br />&gt;99.9%<br />&gt;99.95%<br />&gt;99.9%<br />&gt;99.9%<br />
  137. 137. Windows Azure Platform Roadmap<br />Rich Service Templates<br />Multiple Geo Locations<br />Multiple Languages<br />Full Trust<br />Active Directory and Web ID<br />Relational & Virtualized Database <br />Auto DB Management<br />Simple Service Templates<br />One Geo<br />ASP.NET<br />Medium Trust<br />Automated service management<br />Service Bus, Access Control<br />Admin Mode/VM Deployment<br />Geo Replication<br />Systems Center Integration<br />Enterprise ID Federation<br />Distributed Queries & CLR<br />Analytics & reporting<br />Data Synch (DataHub)<br />CTP<br />Future<br />Commercial release<br />
  138. 138. Technology<br />innovation<br />Partner<br />ecosystem<br />Power<br />of choice<br />Developer<br />Why Microsoft<br />“IDC sees the launch of Windows Azure and Windows Azure platform as a first step in a long evolutionary path that customers will take moving them from today’s self-hosted IT to consuming a hybrid of both internally and externally hosted services, and if so desired, could eventually support a fully outsourced model.”<br />—IDC Insight, Microsoft Unveils Cloud Services Strategy and the Windows Azure platform: <br /> Managing Customer Expectations and Competitive Pressures as Solution Evolves Is Key, Nov 2008, Doc #215034<br />
  139. 139. NEXT STEPS<br />Sign up for Windows Azure and SQL Azure:<br />http://www.windowsazure.com<br /> http://msdn.microsoft.com/en-us/sqlserver/dataservices/<br />Take a look at:<br />Windows Azure & SQL Azure access<br />Developer tools <br />White papers<br />Sample applications<br />
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×