3. 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
4. This is not new…
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 “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
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
16. ™
Service
Workflow Database Analytics Identity Contacts
Bus
Access Reporting Devices
Control
Compute Storage Manage
17. 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)
18. 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
19. 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
20. 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.)
21. Azure & .NET Framework
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 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
24. 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
25. 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
26. 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
27. 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
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