Microsoft Cloud Services Architecture

                                    David Chou
                                Architect, Microsoft
Courtesy – wordle.net
Which is better?




1 gallon of fuel -> ¼ ton of „freight‟; 20 miles   1 gallon of fuel -> 1 ton of freight; 436 miles
Can goes anywhere there is a road                  Can mostly go from A to B
Ready to go anytime                                Leaves 2x day at 9.12am and 11.14pm



    High                       Control                                                  Low

    Low                                            Economy of Scale                     High
This is not new…




                Build vs. Buy

 High       Control                        Low

 Low                    Economy of Scale   High
This is new…




        On premises vs. in the cloud

 High        Control                       Low

 Low                    Economy of Scale   High
On premises vs. in the cloud



        Application runs   Application runs         Application runs
         on-premises         at a hoster              using cloud
                                                        services

          Buy my own         Co-location             “cloud fabric”
         hardware, and            or                    (elastic,
        manage my own         Managed                 infini-scale)
          data center          servers


 High          Control                                                 Low

 Low                                          Economy of Scale         High
On premises vs. in the cloud

                   “Packaged”         Hosted         “Software as a
 Buy




                   Application      “Packaged”          Service”

                 An application    An application        A hosted
                 that I buy “off   that I buy “off   application that
Build vs. Buy




                 the shelf” and    the shelf” and      I buy from a
                   run myself      run at a hoster        vendor


                  “Home Built”       Hosted              Cloud
                   Application     “Home Built”         Platform

                 An application    An application    An application
                 that I develop    that I develop    that I develop
 Build




                 and run myself    myself, but run   myself, but run
                                     at a hoster      in the cloud


                On premises                                        Cloud
All acceptable options
                                              (trade off)
                   “Packaged”                    Hosted              “Software as a
 Buy




                   Application                 “Packaged”               Service”

                              Maximum
                   An application
                 that I buy “off the
                                               An application
                                             that I buy “off the
                                                                        A hosted
                                                                    application that
Build vs. Buy




                               Control
                   shelf” and run             shelf” and then         I buy from a
                        myself                 run at a hoster
                                                                         vendor


                  “Home Built”                  Hosted              Cloud Platform
                   Application                “Home Built”
                                                             Maximum application
                                                                   An
                 An application                         Economy of Scale
                                              An application
                                              that I develop
                                                                   that I develop
                 that I develop                                     myself, but run
 Build




                 and run myself              myself, but run at      in the cloud
                                                 a hoster



                On premises            On premises vs. Cloud                      Cloud
A Sample Enterprise

                 “Packaged”                  Hosted         “Software as a
 Buy




                 Application               “Packaged”          Service”
                       ERP
Build vs. Buy




                  Issue Tracking

                      Email



                “Home Built”                Hosted          Cloud Platform
                 Application              “Home Built”
                   HR System

                Molecule Research
 Build




                   Clinical Trial



                On premises         On premises vs. Cloud            Cloud
A Sample Enterprise

                “Packaged”                 Hosted         “Software as a
 Buy




                Application              “Packaged”          Service”
                                            ERP
Build vs. Buy




                                                            Issue Tracking

                  HR System                                     Email



                “Home Built”              Hosted          Cloud Platform
                 Application            “Home Built”


                                                          Molecule Research
 Build




                 Clinical Trial



                On premises       On premises vs. Cloud                 Cloud
More than “build vs. buy” and hosting location
        Data Consistency
           Share & Reuse
        Security & Privacy
          Customizability
 High            Control                            Cloud

 On-Premises                 Economy of Scale        High

                             Ease of Provisioning
                             Global Reach
                             Partitioning & Redundancy
                             Data Availability
Consistency vs. Availability (ACID vs. BASE)


ACID                           BASE
    – Atomicity                    – Basically Available
    – Consistency                  – Soft state
    – Isolation                    – Eventually consistent
    – Durability


• Focus on “commit”            • Availability first; best effort
• Conservative (pessimistic)   • Aggressive (optimistic)
CAP (Consistency, Availability, Partition) Theorem

At most two of these properties for any shared-data system


              A   Consistency + Availability
      C
                  • High data integrity
          P       • Single site, cluster database, LDAP, xFS file system, etc.
                  • 2-phase commit, data replication, etc.

                  Consistency + Partition
      C       A
                  • Distributed database, distributed locking, etc.
          P       • Pessimistic locking, minority partition unavailable, etc.


                  Availability + Partition
      C       A   • High scalability
          P       • Distributed cache, DNS, etc.
                  • Optimistic locking, expiration/leases, etc.
                                       “Towards Robust Distributed Systems”, Dr. Eric A. Brewer, UC Berkeley
Spectrum of Choices




   Extend existing         Deploy Complete          Compose New Application
On-Premise Application   Application in the Cloud     from Cloud Services
™
™




Service
          Workflow     Database    Analytics   Identity   Contacts
 Bus
Access                 Reporting               Devices
Control


Compute   Storage    Manage
Cloud services operating system that provides on-demand compute and storage
capabilities to host, scale, and manage applications

Compute Services
Scalable and reliable Web applications 64-bit hosting service in the cloud
    .NET 3.5 SP1, managed code, ASP.NET, IIS 7, SOAP/REST/XML, PHP, Ruby, Python
    Security supported by flexible Code Access Security policies
    Small runtime API supports logging and local scratch storage

Storage Services
Simple data storage for cloud-based applications
   Blobs, tables, and queues; local and remote REST-based access to data
   Authenticated access and triple replication

Management Services
Manage the applications, not infrastructure
   Advanced tracing & logging – monitor compute, storage, and bandwidth
   Dynamically upgrade applications without downtime
   Resource usage and performance insights; monitoring & metering

Development Tools
Model and execute business logic and service interactions
   Complete offline environment, including compute and storage services
   Visual Studio add-in enables local debugging (Eclipse soon)
Highly scalable and Internet-facing distributed database services in the cloud for
storing structured and unstructured data, and processing relational queries

Service Bus
Exchange messages between loosely coupled, composite applications
    Connectivity to on-premises applications; secure, federated firewall-friendly messaging;
     simple, connected pub-sub eventing; extension of WCF
    Federated namespace – shared, hierarchical, Internet-accessible URL
    Service registry – publish service endpoints, lightweight, hierarchical, RSS-based discovery
    Relay and connectivity – NAT traversal, pull-mode message delivery, Web service
     intermediary, WS-*/SOAP, REST

Access Control Service
Rules-driven application access control to users across organizations
    Security Token Service (STS) – User name/password, Windows CardSpace, X.509 certificate,
     3rd-party STS-issued SAML token, WS-Security, WS-Federation
    Each .NET Services solution has a private, isolated STS; backing identity infrastructure for all
     services published within that solution’s Service Bus namespace
    Claims-based rules-driven authorization – configured via claim mappings

Workflow Service
Model and execute business logic and service interactions
   Reliable and scalable cloud runtime environment for user-defined declarative workflows
   Extends Windows Workflow Foundation (.NET 3.5) to the cloud
   Activities optimized for sending, receiving, and manipulating HTTP and Service Bus messages
   Deploy, manage and track running workflow instances using tools and APIs
Highly scalable and Internet-facing distributed database services in the cloud for
storing structured and unstructured data, and processing relational queries

SQL Data Services
Internet-facing database built on SQL Server relational database
    Data storage – blobs, flexible, structured, birth to archival, multiple consistency levels
    Data Processing – filters, aggregates, user-defined logic, online-offline indexing
    Data Delivery – network proximity aware, locate closest static-content copies, spanning trees
     for live-content, failure resiliency

Scalable, Flexible, Reliable, and Secure
High-availability database, scale as needed and without limits
   Data partitions limited to single node on cluster – efficient replication and load balancing
   Geo-replication and transactional consistency of data across multiple copies
   Geo-location configuration helps protect against latency and improve response time
   HTTPS/SSL support; built on SQL Server security infrastructure

Developer Agility
Standards-based interface and familiar language support
    Access runtimes through standards-based interfaces and Web services – SOAP and REST
    Perform CRUD operations with authorities, containers, and entities
    Relational queries via text-based queries, LINQ, typed data in XML wire format
    Simple filtering, retrieval of complete entities, full-text search, paging queries
    Flexible data model, no schema required
A set of building blocks for handling user data and application resources, and
extensible components to build rich social applications and consumer experiences

Live Framework
Extensible components to build rich consumer services
    Mesh Services – build applications that span across the web, devices, apps, and services
      o    User – Mesh management and sharing resources across multiple users
      o    Device – facilities for managing the collection of heterogeneous devices; relationship, status, security
      o    Synchronization – data and metadata synchronization framework across applications, devices, and cloud
      o    Application – facilities for managing the configuration, deployment, and versioning of applications
    Identity Services – manage identities with associated services; delegated authentication
    Directory Services – manage relationships between identities, data, devices, and apps
    User-Data Storage Services – manage user-centric information; extensible data types
    Communication and Presence Services – transport infrastructure for transient and persistent
     state management between applications and devices
    Search Services – facilities for building search capailities for web sites and applications
    Geospatial Services – geocoding/reverse geocoding, routing, search, mapping data

Development Platform
Uniform way for programming Live Services from any platform, language, application or device
    Exposes RESTful programming model for live resources
    Protocol based – open standards usage: HTTP, XML, ATOM, RSS
    Resource Model: unified model across Live
    Symmetric client/cloud programming model
    CRUD/Query, triggers and SPROC based interaction model
    Libraries: Rich client libraries (.NET, Silverlight, JavaSript etc.)
Azure & .NET Framework
     Build, test, debug, and deploy using a single familiar toolset

Client                 Server                      Services
Desktop &              On-premises
Mobile Experiences     & Hosted Servers
Design Considerations


data              process             security             management
read-only         stateless           claims-based         leverage automation
                                      authentication
public / share-   idempotent                               plan for average load
able                                  identity
                  isolation                                aware of application
                                      federation
reference data                                             lifecycles
                  loosely-coupled
                                      end user idntities
primary key                                                rolling changes to live
                  asynchronous
access                                                     services
                  IPC
Not all data is                                            handle dynamic data
                  fault-tolerant
equal                                                      schema and
                  (expect failures)
                                                           configuration
                                                           changes
Potential Scenarios
Parallel and distributed processing
   – Image processing and rendering
   – Media content transcoding and publishing)
   – Finding extra-terrestrials
Voting systems
Share-able reference data
   – Search indexes
   – Catalogs
   – Maps, profiles, blogs, files, documents, etc.
Composite services, mashups
Agent architectures
Multi-enterprise business applications (MEBA)
   – Inter-organizational (B2B) business processes
   – Extend enterprise SOA to other enterprises
Scenario – NBC Olympics

1.3 billion page views
50 million unique visitors
70 million videos watched
27 minutes of viewing per session
600 million minutes of video delivery
5,000 unique clips viewed per day
   during the final week
35 million mobile views
130,000 peak streams
3.4 petabytes of video delivered
Scenario – NBC Olympics
NBC (New York and Beijing)
Microsoft (Redmond)
DeltaTre (Italy)
Schematic (New York, Atlanta, Costa Rica)
Limelight Networks
Level3
Digital Rapids
Anystream
Signiant
DoubleClick
Omniture
Keynote
Sliq
Scenario – NBC Olympics



       Live Event   International           30 Rock      DMZs      Limelight
        (Beijing)     Broadcast           (New York)     (New      & Level3
                        Center                          Jersey,
                       (Beijing)                       Burbank)       CDN        Video
                    Video Production Workflow                     Distribution   Player
Scenario – Next-Generation B2B Collaboration


Characteristics
• Near-time collaboration between many partners
• Many-to-many relationships
• Physically distributed locations
• Complex workflows managing processes that span
  organizations
• Shared data
• Network effect – whole > sum of its parts
• Agile implementation
Emerging Patterns


•   De-perimeterization
•   Democratization of industries
•   Dynamic business models
•   Relationship networking core competencies
•   Shifting process centers of gravity
•   Plug-and-play IT architectures
•   Model-driven development, DSL
Thank you!

                                                                                                                                           david.chou@microsoft.com
                                                                                                                                             blogs.msdn.com/dachou




© 2008 Microsoft Corporation. All rights reserved.
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.

Microsoft cloud-services-architecture-1226619291360503-8

  • 1.
    Microsoft Cloud ServicesArchitecture David Chou Architect, Microsoft
  • 2.
  • 3.
    Which is better? 1gallon of fuel -> ¼ ton of „freight‟; 20 miles 1 gallon of fuel -> 1 ton of freight; 436 miles Can goes anywhere there is a road Can mostly go from A to B Ready to go anytime Leaves 2x day at 9.12am and 11.14pm High Control Low Low Economy of Scale High
  • 4.
    This is notnew… Build vs. Buy High Control Low Low Economy of Scale High
  • 5.
    This is new… On premises vs. in the cloud High Control Low Low Economy of Scale High
  • 6.
    On premises vs.in the cloud Application runs Application runs Application runs on-premises at a hoster using cloud services Buy my own Co-location “cloud fabric” hardware, and or (elastic, manage my own Managed infini-scale) data center servers High Control Low Low Economy of Scale High
  • 7.
    On premises vs.in the cloud “Packaged” Hosted “Software as a Buy Application “Packaged” Service” An application An application A hosted that I buy “off that I buy “off application that Build vs. Buy the shelf” and the shelf” and I buy from a run myself run at a hoster vendor “Home Built” Hosted Cloud Application “Home Built” Platform An application An application An application that I develop that I develop that I develop Build and run myself myself, but run myself, but run at a hoster in the cloud On premises Cloud
  • 8.
    All acceptable options (trade off) “Packaged” Hosted “Software as a Buy Application “Packaged” Service” Maximum An application that I buy “off the An application that I buy “off the A hosted application that Build vs. Buy Control shelf” and run shelf” and then I buy from a myself run at a hoster vendor “Home Built” Hosted Cloud Platform Application “Home Built” Maximum application An An application Economy of Scale An application that I develop that I develop that I develop myself, but run Build and run myself myself, but run at in the cloud a hoster On premises On premises vs. Cloud Cloud
  • 9.
    A Sample Enterprise “Packaged” Hosted “Software as a Buy Application “Packaged” Service” ERP Build vs. Buy Issue Tracking Email “Home Built” Hosted Cloud Platform Application “Home Built” HR System Molecule Research Build Clinical Trial On premises On premises vs. Cloud Cloud
  • 10.
    A Sample Enterprise “Packaged” Hosted “Software as a Buy Application “Packaged” Service” ERP Build vs. Buy Issue Tracking HR System Email “Home Built” Hosted Cloud Platform Application “Home Built” Molecule Research Build Clinical Trial On premises On premises vs. Cloud Cloud
  • 11.
    More than “buildvs. buy” and hosting location Data Consistency Share & Reuse Security & Privacy Customizability High Control Cloud On-Premises Economy of Scale High Ease of Provisioning Global Reach Partitioning & Redundancy Data Availability
  • 12.
    Consistency vs. Availability(ACID vs. BASE) ACID BASE – Atomicity – Basically Available – Consistency – Soft state – Isolation – Eventually consistent – Durability • Focus on “commit” • Availability first; best effort • Conservative (pessimistic) • Aggressive (optimistic)
  • 13.
    CAP (Consistency, Availability,Partition) Theorem At most two of these properties for any shared-data system A Consistency + Availability C • High data integrity P • Single site, cluster database, LDAP, xFS file system, etc. • 2-phase commit, data replication, etc. Consistency + Partition C A • Distributed database, distributed locking, etc. P • Pessimistic locking, minority partition unavailable, etc. Availability + Partition C A • High scalability P • Distributed cache, DNS, etc. • Optimistic locking, expiration/leases, etc. “Towards Robust Distributed Systems”, Dr. Eric A. Brewer, UC Berkeley
  • 14.
    Spectrum of Choices Extend existing Deploy Complete Compose New Application On-Premise Application Application in the Cloud from Cloud Services
  • 15.
  • 16.
    ™ Service Workflow Database Analytics Identity Contacts Bus Access Reporting Devices Control Compute Storage Manage
  • 17.
    Cloud services operatingsystem that provides on-demand compute and storage capabilities to host, scale, and manage applications Compute Services Scalable and reliable Web applications 64-bit hosting service in the cloud  .NET 3.5 SP1, managed code, ASP.NET, IIS 7, SOAP/REST/XML, PHP, Ruby, Python  Security supported by flexible Code Access Security policies  Small runtime API supports logging and local scratch storage Storage Services Simple data storage for cloud-based applications  Blobs, tables, and queues; local and remote REST-based access to data  Authenticated access and triple replication Management Services Manage the applications, not infrastructure  Advanced tracing & logging – monitor compute, storage, and bandwidth  Dynamically upgrade applications without downtime  Resource usage and performance insights; monitoring & metering Development Tools Model and execute business logic and service interactions  Complete offline environment, including compute and storage services  Visual Studio add-in enables local debugging (Eclipse soon)
  • 18.
    Highly scalable andInternet-facing distributed database services in the cloud for storing structured and unstructured data, and processing relational queries Service Bus Exchange messages between loosely coupled, composite applications  Connectivity to on-premises applications; secure, federated firewall-friendly messaging; simple, connected pub-sub eventing; extension of WCF  Federated namespace – shared, hierarchical, Internet-accessible URL  Service registry – publish service endpoints, lightweight, hierarchical, RSS-based discovery  Relay and connectivity – NAT traversal, pull-mode message delivery, Web service intermediary, WS-*/SOAP, REST Access Control Service Rules-driven application access control to users across organizations  Security Token Service (STS) – User name/password, Windows CardSpace, X.509 certificate, 3rd-party STS-issued SAML token, WS-Security, WS-Federation  Each .NET Services solution has a private, isolated STS; backing identity infrastructure for all services published within that solution’s Service Bus namespace  Claims-based rules-driven authorization – configured via claim mappings Workflow Service Model and execute business logic and service interactions  Reliable and scalable cloud runtime environment for user-defined declarative workflows  Extends Windows Workflow Foundation (.NET 3.5) to the cloud  Activities optimized for sending, receiving, and manipulating HTTP and Service Bus messages  Deploy, manage and track running workflow instances using tools and APIs
  • 19.
    Highly scalable andInternet-facing distributed database services in the cloud for storing structured and unstructured data, and processing relational queries SQL Data Services Internet-facing database built on SQL Server relational database  Data storage – blobs, flexible, structured, birth to archival, multiple consistency levels  Data Processing – filters, aggregates, user-defined logic, online-offline indexing  Data Delivery – network proximity aware, locate closest static-content copies, spanning trees for live-content, failure resiliency Scalable, Flexible, Reliable, and Secure High-availability database, scale as needed and without limits  Data partitions limited to single node on cluster – efficient replication and load balancing  Geo-replication and transactional consistency of data across multiple copies  Geo-location configuration helps protect against latency and improve response time  HTTPS/SSL support; built on SQL Server security infrastructure Developer Agility Standards-based interface and familiar language support  Access runtimes through standards-based interfaces and Web services – SOAP and REST  Perform CRUD operations with authorities, containers, and entities  Relational queries via text-based queries, LINQ, typed data in XML wire format  Simple filtering, retrieval of complete entities, full-text search, paging queries  Flexible data model, no schema required
  • 20.
    A set ofbuilding blocks for handling user data and application resources, and extensible components to build rich social applications and consumer experiences Live Framework Extensible components to build rich consumer services  Mesh Services – build applications that span across the web, devices, apps, and services o User – Mesh management and sharing resources across multiple users o Device – facilities for managing the collection of heterogeneous devices; relationship, status, security o Synchronization – data and metadata synchronization framework across applications, devices, and cloud o Application – facilities for managing the configuration, deployment, and versioning of applications  Identity Services – manage identities with associated services; delegated authentication  Directory Services – manage relationships between identities, data, devices, and apps  User-Data Storage Services – manage user-centric information; extensible data types  Communication and Presence Services – transport infrastructure for transient and persistent state management between applications and devices  Search Services – facilities for building search capailities for web sites and applications  Geospatial Services – geocoding/reverse geocoding, routing, search, mapping data Development Platform Uniform way for programming Live Services from any platform, language, application or device  Exposes RESTful programming model for live resources  Protocol based – open standards usage: HTTP, XML, ATOM, RSS  Resource Model: unified model across Live  Symmetric client/cloud programming model  CRUD/Query, triggers and SPROC based interaction model  Libraries: Rich client libraries (.NET, Silverlight, JavaSript etc.)
  • 21.
    Azure & .NETFramework Build, test, debug, and deploy using a single familiar toolset Client Server Services Desktop & On-premises Mobile Experiences & Hosted Servers
  • 22.
    Design Considerations data process security management read-only stateless claims-based leverage automation authentication public / share- idempotent plan for average load able identity isolation aware of application federation reference data lifecycles loosely-coupled end user idntities primary key rolling changes to live asynchronous access services IPC Not all data is handle dynamic data fault-tolerant equal schema and (expect failures) configuration changes
  • 23.
    Potential Scenarios Parallel anddistributed processing – Image processing and rendering – Media content transcoding and publishing) – Finding extra-terrestrials Voting systems Share-able reference data – Search indexes – Catalogs – Maps, profiles, blogs, files, documents, etc. Composite services, mashups Agent architectures Multi-enterprise business applications (MEBA) – Inter-organizational (B2B) business processes – Extend enterprise SOA to other enterprises
  • 24.
    Scenario – NBCOlympics 1.3 billion page views 50 million unique visitors 70 million videos watched 27 minutes of viewing per session 600 million minutes of video delivery 5,000 unique clips viewed per day during the final week 35 million mobile views 130,000 peak streams 3.4 petabytes of video delivered
  • 25.
    Scenario – NBCOlympics NBC (New York and Beijing) Microsoft (Redmond) DeltaTre (Italy) Schematic (New York, Atlanta, Costa Rica) Limelight Networks Level3 Digital Rapids Anystream Signiant DoubleClick Omniture Keynote Sliq
  • 26.
    Scenario – NBCOlympics Live Event International 30 Rock DMZs Limelight (Beijing) Broadcast (New York) (New & Level3 Center Jersey, (Beijing) Burbank) CDN Video Video Production Workflow Distribution Player
  • 27.
    Scenario – Next-GenerationB2B Collaboration Characteristics • Near-time collaboration between many partners • Many-to-many relationships • Physically distributed locations • Complex workflows managing processes that span organizations • Shared data • Network effect – whole > sum of its parts • Agile implementation
  • 28.
    Emerging Patterns • De-perimeterization • Democratization of industries • Dynamic business models • Relationship networking core competencies • Shifting process centers of gravity • Plug-and-play IT architectures • Model-driven development, DSL
  • 29.
    Thank you! david.chou@microsoft.com blogs.msdn.com/dachou © 2008 Microsoft Corporation. All rights reserved. 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.