1. Building Real World Application
with Azure
Deepti Vij
Engineering Lead @ People10
Deepti.vij@people10.com
Saumava Chanda
Senior Engineer @people10
Saumava.chanda@people10.com
2. Cloud computing enables you to…
• Reach more users and customers in a richer way
• Deliver solutions not possible of practical before
• Be more cost effective by paying for only what you use
• Leverage a flexible, rich development platform
3. Cloud development patterns
• Automate Everything
• Source Control
• Continuous Integration & Delivery
• Web Dev Best Practices
• Enterprise Identity Integration
• Data Storage Options
• Data Partitioning Strategies
• Unstructured Blob Storage
• Designing to Survive Failures
• Monitoring & Telemetry
• Transient Fault Handling
• Distributed Caching
• Queue Centric Work Pattern
6. Source Control
• Treat automation scripts as source code and version
it together with your application code
• Parameterize automation scripts –> never check-in
secrets
• Structure your source branches to enable DevOps
workflow
11. Continuous Integration & Delivery
• Each check-in to Development, Staging and Master branches
should kick off automated build + check-in tests
• Use your automation scripts so that successful checkins to
Development and Staging automatically deploy to
environments in the cloud for more in-depth testing
• Deploying Master to Production can be automated, but more
commonly requires an explicit human to sign-off before live
production updated
13. Windows Azure Web Sites
• Build with ASP.NET, Node.js, PHP or Python
• Deploy in seconds with FTP, WebDeploy, Git, TFS
• Easily scale up as demand grows
14. Load Balancer
(1 of n)
Load Balancer
(2 of n)
Windows Azure Website Service
Deployment
Service
(FTP, WebDeploy,
GIT, TFS etc)
Reserved instance
virtual machine
with IIS already
setup(1 of n)
Reserved instance
virtual machine
with IIS already
setup(3 of n)
Web Application
Developer or
Automation script
Reserved instance
virtual machine
with IIS already
setup(2 of n)
15. Load Balancer
(1 of n)
Load Balancer
(2 of n)
Windows Azure Website Service
Deployment
Service
(FTP, WebDeploy,
GIT, TFS etc)
Reserved instance
virtual machine
with IIS already
setup(1 of 2)
Reserved instance
virtual machine
with IIS already
setup(2 of 2)
Server Failure
Web Application
16. Web development best practices
• Scale-out your web tier using stateless web servers behind
smart load balancers
• Dynamically scale your web tier based on actual usage load
• Avoid using session state (use cache provider if you must)
• Use CDN to edge cache static file assets (images, scripts)
22. Platform as a Service (PaaS) versus
Infrastructure as a Service (IaaS)
23. Azure SQL Database (PaaS) SQL Server in a Virtual Machine (IaaS)
Pros
•You don’t have to create or manage VMs,
update or patch OS or SQL; Azure does that for
you.
•Built-in High Availability, with a database-level
SLA.
•Low total cost of ownership (TCO) because you
pay only for what you use (no license required).
•Good for handling large numbers of smaller
databases (<=500 GB each).
•Easy to dynamically create new databases to
enable scale-out.
Pros
•Feature-compatible with on-premises SQL
Server.
•Can implement SQL Server High Availability via
AlwaysOn in 2+ VMs, with VM-level SLA.
•You have complete control over how SQL is
managed.
•Can re-use SQL licenses you already own, or pay
by the hour for one.
•Good for handling fewer but larger (1 TB+)
databases.
Cons
•Some feature gaps compared to on-premises
SQL Server (lack of CLR
integration, TDE, compression support, SQL
Server Reporting Services, etc.)
•Database size limit of 500GB.
Cons
•Updates/patches (OS and SQL) are your
responsibility
•Creation and management of DBs are your
responsibility
•Disk IOPS (input/output operations per second)
limited to about 8000 (via 16 data drives).
Choosing Relational Database on
Windows Azure
24. Choosing a data storage option
Asking the right questions??
• Data semantic
• Query support
• Functional projection
• Ease of scalability
• Instrumentation and Manageability
• Operations
• API Support
• Transactional integrity and data consistency
• Business continuity
• Cost
26. Understanding the three Vs of data
storage
– Volume
How much data will you ultimately store?
– Velocity
What is the rate at which your data will grow? What will the usage
pattern look like?
– Variety
What type of data will you store? Relational, images, key-value pairs,
social graphs?
32. Blob Storage
The Azure Storage Blob service provides a way to store files in the
cloud. The Blob service has a number of advantages over storing files
in a local network file system:
• It's highly scalable. A single Storage account can store hundreds of
terabytes, and you can have multiple Storage accounts.
• It's durable. Every file you store in the Blob service is automatically
backed up.
• It provides high availability. The SLA for Storage promises 99.9% or
99.99% uptime, depending on which geo-redundancy option you
choose.
• It's a platform-as-a-service (PaaS) feature of Azure, which means
you just store and retrieve files, paying only for the actual amount
of storage you use, and Azure automatically takes care of setting up
and managing all of the VMs and disk drives required for the
service.
33. Blob Storage Cont..
• You can access the Blob service by using a REST API or by
using a programming language API. SDKs are available for
.NET, Java, Ruby, and others.
• When you store a file in the Blob service, you can easily
make it publicly available over the Internet.
• You can secure files in the Blob service so they can
accessed only by authorized users, or you can provide
temporary access tokens that makes them available to
someone only for a limited period of time.