3. Why the Cloud?
Rapidly setup environments to drive business priorities
Scale to meet peak demands
Increase daily activities, efficiency and reduced cost.
4. Introduction to Cloud Computing
Cloud Computing - A Game Changing Technology
Infinite shared resources & services
Infrastructure is not a limiting factor
No need to equip for peak-load requirements
Elasticity on demand
Anytime, anywhere
Efficient scalability and high availability
Suitable pricing models
Pay for what you use
5. Cloud Computing
Evolution of Computing - The Next (Current) Big Thing
Virtualization and Abstraction
Details are abstracted from consumers
Reduces complexity
Not necessarily the Internet, can be on premises
Private cloud
Automation, Monitoring, Deployment
Reduce cost, shift risk, shorten time-to-market, focus on
business functionality
5
6. Less Worries
Focus on functionality
Let others take care of:
Resource management
Security
Environments (staging, production)
High availability, scalability, load balancing
Fault tolerance
OS - installation, licensing, updates, patches
Network
Maintenance
6
7. Why the Cloud?
On Premises
Youscale,makeresilientandmanage
Infrastructure
(as a Service)
Managedbyvendor
Youscale,make
resilient&manage
Platform
(as a Service)
Scale,resilienceand
managementbyvendor
Youmanage
Software
(as a Service)
Applications
Scale,resilienceand
managementbyvendor
9. Introduction to Cloud Architecture
Cloud Computing - A Game Changing Technology
Infinite shared resources & services
Infrastructure is not a limiting factor
No need to equip for peak-load requirements
Elasticity on demand
Anytime, anywhere
Efficient scalability and high availability
Suitable pricing models
Pay for what you use
Less worries about the foundation – Better application quality!!!
9
10. Cloud Application Architecture
High Scale, High Availability, High Maintainability – to
the Extreme!
The Cloud technology enables cloud scale applications with much less effort
Answers many of the non-functional requirements and the cross-cutting concerns out of
the box!
Enables elastic, theoretically endless scale
Surfaces more concerns:
More geographic options
Promotes “design for failure” (be prepared for VM shutdown)
Promotes Agility (continued integrations/deployments)
10
11. Architect for High Availability
Remove any single-point-of-failure throughout your application
Make sure you have redundant services
Distribute services and data across geographies
Extreme monitoring & automatic responses
Elastic scaling
Self healing mechanisms (Azure Fabric Controller, AWS Elastic Beanstalk)
Long latency is a failure!
Make sure your services respond quickly even on load
Spawn more instances, buy better QoS resources (I/O, CPUs, Memory, Network)
Load balance to reduce the pressure
Have a storage only based failover web site for web applications
11
12. Load Balancing Servers
A single system can exceed its resource limit
CPU, Memory, IO, Network Connections
Use the best VM size to best fit the load among these resources
Scaling Out: LB Over VM Instances
Distribute the load across machines taking into account machine health
state
Configuring the Load Balancer:
Automatically with Azure App Fabric and Amazon Elastic Beanstalk
Manually with Amazon Elastic Load Balancing (ELB)
and Azure Endpoint LB
12
13. Multi-Tenancy
One Application to Rule Them All!
The cloud provides many benefits
You develop and deploy to the cloud
Staging/Production cloud environments
Cloud management & monitoring
You’d like to share those effort for all
of your customers
A Multi-tenant application is one application that serves many
isolated application instances
Beware of privacy
13
18. Fortune 500 using Azure
>80% >300k
Active websites
More than
1,000,000
SQL Databases in Azure
>30TRILLION
storage objects >500MILLION
AAD users
>13 BILLION
authentication/wk
>3
MILLION
requests/sec
>1.65MILLION
Developers registered
with Visual Studio Online
Microsoft Azure (Mid 2015)
19. Microsoft Azure Services
Data
&Storage
Web
&Mobile
Compute
SQL Database
App
Service
Virtual
Machines
Media&CDN
Media
Services
CDN
Developer
Services
DocumentDB Redis Cache
Cloud Services Batch Service Fabric
Networking
Virtual
Network ExpressRoute
Traffic
Manager
StorSimpleSearchStorage
Identity
&Access
Azure Active
Directory
Multi-Factor
Authent
API
Management
Notification
Hubs
Mobile
Engagement
Visual Studio
Online
Application
Insights
Management
Scheduler Automation
Operational
Insights Key Vault
Analytics
&IoT
HDInsight
Machine
Learning
Stream
Analytics Data Factory Event Hubs
Hybrid
Integration
BizTalk
Services Service Bus Backup Site Recovery
Web App Mobile App API App Logic App
Blobs Tables Queues Files
Marketplace
…
Data Lake
Data
Warehouse
RemoteApp DNS
Application
Gateway
20. Azure Compute Instance Options
Most Memory
Fastest CPUs
SSD Storage
Faster CPUs
Highest Value Largest Scale-up
Highest Value >50,000s of IOPS
21. Azure Storage Page Blobs, 3 copies
High durability
VHD disks, 1 TB per disk (64 TB total)
500 IOPs per disk
Virtual Machine Standard Storage
24. ARM – Resource Group
Container for multiple resources
Resources exist in one and only one resource group
Resource groups can span regions
Resource groups can span services
24
25. PaaS Services
There are many PaaS services such as:
Application & Web site deployment to an existing VM Image
Authentication, Identity & Access Control
Application Services
Web, Mobile, Logic
Cloud Containers
Docker, Service Fabric
Databases (SQL & No SQL)
Content Delivery Network (CDN)
Messaging, Queues & Service Bus
Distributed Cache
Business Workflows
Video (Media) Transcoding &
Streaming
Business Analytics, BI & Reporting
HPC & Big Data
IoT event streaming
27. Cloud Storage - Azure BLOB Storage
BLOB – Binary Large OBject
Storage for any type of entity such as binary files and text
documents
Distributed File Service (DFS)
Scalability and High availability
BLOB file is distributed between multiple server and replicated at
least 3 times
Get Started with Storage Account
Get Started with Blob Storage
30. Cloud Storage - SQL Azure
SQL Server in the cloud
No administrative overheads
Shared or Reserved (Dedicated) Hardware
High Availability
pay-as-you-grow pricing
Familiar Development Model
Create your first Azure SQL database
31. Cloud Storage - Table Storage
Not RDBMS
No relationships between entities
NoSql
Entity can have up to 255 properties - Up to 1MB per entity
Mandatory Properties for every entity
PartitionKey & RowKey (only indexed properties)
Uniquely identifies an entity
Same RowKey can be used in different PartitionKey
Defines the sort order
Timestamp - Optimistic Concurrency
Strongly consistent
Get Started with Table Storage
33. Cloud Storage - DocumentDB
A fully managed, highly scalable, queryable, schema-free document database,
delivered as a service, for modern applications
Query against Schema-Free JSON
Multi-Document transactions
Tunable, High Performance
Designed for cloud first
Get started with the
DocumentDB .NET SDK
36. What is a Microservice?
Is (logic + state) that is independently versioned, deployed, and scaled
Has a unique name that can be resolved
e.g. fabric:/myapplication/myservice
Interacts with other microservices over well defined interfaces and
protocols like REST
Remains always logically consistent in the presence of failures
Hosted inside a “container” (code + config)
Can be written in any language and framework
node.js, Java VMs, any EXE
Developed by a small engineering team
36
37. Types of microservices
Stateless microservice
Has either no state or it can be retrieved from an external store
There can be N instances
e.g. web frontends, protocol gateways, Azure Cloud Services etc.
Stateful microservice
Maintain hard, authoritative state
N consistent copies achieved through replication and local persistence
e.g. database, documents, workflow, user profile, shopping cart etc.
37
39. Queues Storage
3-Tier service pattern
Front End
(Stateless
Web)
Stateless
Middle-tier
Compute
Cache
• Scale with partitioned
storage
• Increase reliability with
queues
• Reduce read latency with
caches
• Manage your own
transactions for state
consistency
• Many moving parts each
managed differently
Load Balancer
40. Stateful
Middle-tier
Compute
Stateful services: Simplify design, reduce latency
Front End
(Stateless
Web)
data stores used for analytics and disaster recovery
• Application state lives in
the compute tier
• Low Latency reads and
writes
• Partitions are first class for
scale-out
• Built in transactions
• Fewer moving parts
Load Balancer
41. Stateful Microservices are Reliable and Consistent
Each service is backed by replica set to make its internal
state reliable
All replicas are logically consistent – meaning all replicas see
the same linearized order of read and write operations to
initial state
Read-Write quorums are supported and are dynamically
adjusted
Replica set is dynamically reconfigured to account for
replica arrivals and departures
41
42. Microservices placement and failover
Node 103
P
S
S
Node 104
S
S
Node 102
P
S
S
S
Node 105
P
S
S
S
Node 101
S
S
P
Node 100
S
P
S
S
P
S
S
S
43. Get Started
Learn more about the Reliable Actors APIs
Learn more about the Reliable Services APIs
Get Started:
Reliable Actors: The canonical HelloWorld walk-through
scenario
Reliable Services: Getting Started with Microsoft Azure
Service Fabric Reliable Services
45. Azure App Service: One Integrated Offering
API Apps
Easily build and consume
APIs in the cloud
Web Apps
Web apps that scale
with your business
Mobile Apps
Build Mobile apps
for any device
Logic Apps
Automate business process
across SaaS and on-premises
46. Azure App Service
A new offering, consolidating and replacing existing services:
Azure Web Sites, Azure BizTalk Services, Azure Web API Authoring, Azure
Mobile Services
Create web and mobile experiences that share data access and
business logic
Automate business processes with logic apps
Build custom APIs or consume connectors from Marketplace
One common billing model for all of your App Services
Use a common Gateway to authenticate
47. Logic App – Easy Automation and Integration
No code designer for rapid creation
Dozens of pre-built templates to get started
Out of box support for popular SaaS and on-premises apps
Use with custom API apps of your own
Biztalk APIs for expert integration scenarios
Example:
Create a tweet when a file is saved to Dropbox
Introduction Video
Tutorial
48.
49. API App – Create, Consume and Host API
Dozens of built-in APIs for popular SaaS
An ecosystem of APIs for any need
Create and publish custom, reusable APIs
Visual Studio tooling with one click publish and remote debugging
Automatic client SDK generation for many languages
Tutorial
Intro
Video
51. Azure Web Apps
Rich monitoring and
alerting
Traffic manager
Custom CNAMEs
VNET and VPN
Backup and restore
Many VM size and instance
options
In production A/B testing
Auto load-balance
Share capacity across Web and
Mobile
Staging slots
Validate changes in your staging
environment before publishing to
production
More DevOps features
Support for BitBucket and Visual
Studio Online; seamless integration
with GitHub
Web Jobs
Notas do Editor
For example, provisioning 1 TB for Amazon EBS storage provide better performance since EBC is shared with others and taking the maximum will remove the I/O pressure of other clients.
Use S3 or Azure storage because they are High Available by default.
failover web site for web application you can use routing services like route 53 to route a web request to a storage instead of a running service if the service is offline.
24 regions as of Oct. 2015 (more than AWS and Google combined)
Bryon
Because these are backed by Azure storage. We end up doing triplicate copies of everything. So every write that is made to the storage is triplicate copied onto the machines before we come back and say its done. This gives you that high durability that Azure storage promises.
1TB per disk and we allow for up to 64 disk. Striped.
500 IOPS – 32,000 IOPS total
This is for standard spinning disk. You may have also heard that we are now offering perimium storage which is based on SSD disks. Premium storage bumps up the maximum IOPS quite a bit and we’ll be talking about that in a few minutes.
Bryon Surace
So when you’re creating and deploying your application, you want to consider High Availability.
SQL is the example but it works on Linux as well
Bryon Surace
Client Affinity – isn’t a full layer7 swtich
Corey
Slide Objectives
Understand the hierarchy of Blob storage
Speaker Notes
The Blob service provides storage for entities, such as binary files and text files.
The REST API for the Blob service exposes two resources:
Containers
Blobs.
A container is a set of blobs; every blob must belong to a container.
The Blob service defines two types of blobs:
Block blobs, which are optimized for streaming.
Page blobs, which are optimized for random read/write operations and which provide the ability to write to a range of bytes in a blob.
Blobs can be read by calling the Get Blob operation. A client may read the entire blob, or an arbitrary range of bytes.
Block blobs less than or equal to 64 MB in size can be uploaded by calling the Put Blob operation.
Block blobs larger than 64 MB must be uploaded as a set of blocks, each of which must be less than or equal to 4 MB in size.
Page blobs are created and initialized with a maximum size with a call to Put Blob.
To write content to a page blob, you call the Put Page operation. The maximum size currently supported for a page blob is 1 TB.
Notes
http://msdn.microsoft.com/en-us/library/dd573356.aspx
Using the REST API for the Blob service, developers can create a hierarchical namespace similar to a file system. Blob names may encode a hierarchy by using a configurable path separator. For example, the blob names MyGroup/MyBlob1 and MyGroup/MyBlob2 imply a virtual level of organization for blobs. The enumeration operation for blobs supports traversing the virtual hierarchy in a manner similar to that of a file system, so that you can return a set of blobs that are organized beneath a group. For example, you can enumerate all blobs organized under MyGroup/.
Put Blob - Creates a new blob or replaces an existing blob within a container.
Get Blob - Reads or downloads a blob from the system, including its metadata and properties.
Delete Blob - Deletes a blob
Copy Blob - Copies a source blob to a destination blob within the same storage account.
SnapShot Blob - The Snapshot Blob operation creates a read-only snapshot of a blob.
Lease Blob - Establishes an exclusive one-minute write lock on a blob. To write to a locked blob, a client must provide a lease ID.
Using the REST API for the Blob service, developers can create a hierarchical namespace similar to a file system.
Blob names may encode a hierarchy by using a configurable path separator. For example, the blob names MyGroup/MyBlob1 and MyGroup/MyBlob2 imply a virtual level of organization for blobs.
The enumeration operation for blobs supports traversing the virtual hierarchy in a manner similar to that of a file system, so that you can return a set of blobs that are organized beneath a group.
For example, you can enumerate all blobs organized under MyGroup/.
Notes
The Blob service provides storage for entities, such as binary files and text files. The REST API for the Blob service exposes two resources: containers and blobs. A container is a set of blobs; every blob must belong to a container. The Blob service defines two types of blobs:
Block blobs, which are optimized for streaming. This type of blob is the only blob type available with versions prior to 2009-09-19.
Page blobs, which are optimized for random read/write operations and which provide the ability to write to a range of bytes in a blob. Page blobs are available only with version 2009-09-19.
Containers and blobs support user-defined metadata in the form of name-value pairs specified as headers on a request operation.
Using the REST API for the Blob service, developers can create a hierarchical namespace similar to a file system. Blob names may encode a hierarchy by using a configurable path separator. For example, the blob names MyGroup/MyBlob1 and MyGroup/MyBlob2 imply a virtual level of organization for blobs. The enumeration operation for blobs supports traversing the virtual hierarchy in a manner similar to that of a file system, so that you can return a set of blobs that are organized beneath a group. For example, you can enumerate all blobs organized under MyGroup/.
A block blob may be created in one of two ways. Block blobs less than or equal to 64 MB in size can be uploaded by calling the Put Blob operation. Block blobs larger than 64 MB must be uploaded as a set of blocks, each of which must be less than or equal to 4 MB in size. A set of successfully uploaded blocks can be assembled in a specified order into a single contiguous blob by calling Put Block List. The maximum size currently supported for a block blob is 200 GB.
Page blobs are created and initialized with a maximum size with a call to Put Blob. To write content to a page blob, you call the Put Page operation. The maximum size currently supported for a page blob is 1 TB.
Blobs support conditional update operations that may be useful for concurrency control and efficient uploading.
Blobs can be read by calling the Get Blob operation. A client may read the entire blob, or an arbitrary range of bytes.
For the Blob service API reference, see Blob Service API.