SlideShare une entreprise Scribd logo
1  sur  120
Today’s Goal
Go much deeper than “hello world” and
cover key development patterns and
practices that will help you build real world
cloud apps
Cloud Patterns we will Cover
Part 1:

Part 2:

•

•

•
•
•
•
•
•

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
Cloud Patterns we will discuss
Part 1:

Part 2:

•

•

•
•
•
•
•

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
Dev/Ops Workflow
Develop



Deploy

Learn

Operate

Repeatable
 Reliable
 Predictable
 Low Cycle Time
Source Control
•

Use it! 

•

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
Example Source Branch Structure
Master

Code that is live in production

Code in final testing before production
Stagin
g
Where features are being integrated
Developmen
t
Feature Feature
Feature
Branch A Branch B Branch C
Need to make a quick hotfix?
Master

Stagin
g
Developmen
Hotfix
t
145
Feature Feature
Feature
Branch A Branch B Branch C
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
Visual Studio Online
•
•
•
•
•
•
•

TFS and Git support
Elastic Build Service
Continuous Integration
Continuous Delivery
Load Testing Support
Team Room
Collaboration
Agile Project
Management
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
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
Windows Azure Web Site Service
Load Balancer
(1 of n)

Load Balancer
(2 of n)

Developer or
Automation
Script

Reserved Instance
Virtual Machine with
IIS already setup
(1 of n…)
(1 of 2)

Reserved Instance
Virtual Machine with
Server Failure….
IIS already setup
(2 of 2)
(2 of n…)

Deployment
Service
(FTP, WebDeploy,
GIT, TFS, etc)

Reserved Instance
Virtual Machine with
IIS already setup
(2 of 2)
AutoScale – Built-into Windows Azure
•
•
•
•

AutoScale based on real
usage
CPU % thresholds
Queue Depth
Supports schedule times
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)
Windows Azure AD


Active Directory in the Cloud



Integrate with on-premises Active
Directory



Enable single sign-on within your apps



Supports SAML, WS-Fed, and OAuth
2.0



Enterprise Graph REST API
Config wizard automatically launches
Enter Windows Azure AD Credentials
Enter Windows Server AD Credentials
Enable Hashed Password Sync
Almost done
Finished – Sync will start
automatically

No need to install on multiple DC’s. No reboot required!
Enable SSO with Azure AD and
ASP.NET
Enable SSO with Azure AD and
ASP.NET
Enable SSO with Azure AD and
ASP.NET
Data Storage
Range of options for storing data
Different query semantics, durability, scalability and ease-of-use options available in the cloud

Compositional approaches
No “one size fits all” – often using multiple storage systems in a single app provides best approach

Balancing priorities
Investigate and understand the strengths and limitations of different options
Data Storage Options on Windows Azure

Platform as a Service
(managed services)

Infrastructure as a Service
(virtual machines)
Some Data Storage Questions to Ask
Choosing Relational Database on
Windows Azure
Azure SQL Database (PaaS) SQL Server in a Virtual Machine (IaaS)
Pros

•
•
•
•
•

Pros
Database as a Service (no VMs required)
Database-Level SLA (HA built-in)
Updates, patches handled automatically for you
Pay only for what you use (no license required)
Good for handling large numbers of smaller
databases (<=150 GB each)

Cons

•
•
•

Some feature gaps with on-prem SQL Server
(lack of CLR, TDE, Compression support, etc.)
Database size limit of 150GB
Recommended max table size of 10GB

•
•
•
•
•

Feature compatible with on-prem SQL Server
VM-level SLA (SQL Server HA via AlwaysOn in 2+VMs)
You have complete control over how SQL is managed
Can re-use SQL licenses or pay by the hour for one
Good for handling fewer but larger (1TB+) databases

Cons

•
•
•

Updates/patches (OS and SQL) are your responsibility
Creation and management of DBs your responsibility
Disk IOPS limited to ~8000 IOPS (via 16 data drives)

http://blogs.msdn.com/b/windowsazure/archive/2013/02/14/choosing-between-sql-server-in-windows-azure-vm-amp-windows-azure-sql-database.aspx
Understanding the 3-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?
Scale out your data by partitioning it
Vertical Partitioning
Horizontal Partitioning (Sharding)
Hybrid Partitioning
It is a lot easier to choose one of these
partitioning schemes before you go
live….
Data Storage Options on Windows Azure

Platform as a Service
(managed services)

Infrastructure as a Service
(virtual machines)
Blob Storage
Design to survive failures
Given enough time and pressure, everything fails
How will your application behave?
• Gracefully handle failure modes, continue to deliver value
• Or not so gracefully…

Types of failures:
• Transient - Temporary service interruptions, self-healing
• Enduring - Require intervention.
Failure scope
Regions may become
unavailable

Region

Connectivity Issues, acts of nature

Service

Entire Services May Fail
Service dependencies (internal and external)

Machines

Individual Machines May Fail
Connectivity Issues (transient failures), hardware
failures, configuration and code errors
What do the 9’s mean in an SLA?
Making it a little more real…
How to design with this in mind?
•

•
•
•
•

Have good monitoring and telemetry
Handle Transient Faults
Use Distributed Caching
Circuit Breakers
Loose Coupling via the Queue Centric Work
Pattern
Running a Live Site Service
Running without Insight / Telemetry
Buy/Rent a Telemetry Solution
http://www.hanselman.com/blog/PennyPinchingInTheCloudEnablingNewRelicPerformanceMonitoringOnWindowsAzureWebsites.aspx
Logging for Insight
Instrument your code for production logging
• If you didn’t capture it, it didn’t happen

Implement inter-service monitoring and logging
• Capture and log inter-service activity
• Capture both the availability and latency of all inter-service calls

Run-time configurable logging
• Enable activation (capture or delivery) of logging levels without
requiring a redeployment of your application
Logging Insight
Choosing Logging Levels
•

Must be able to isolate issues solely through
telemetry logs

Level

Context

Error

Always on in production. Any errors will
trigger ACTION to resolve (automated or
human).
• Configuration issues
• Application failure (cascading failure or
critical service down)

•

Telemetry is meant to INFORM (I want you to know
something) or ACT (I want you to do something)

•

Too much ACT creates noise – too much work to sift
through to find genuine issues

•

In a cloud app, only things that require intervention
(automatic or manual) should trigger ACT

Warning

Always on in production. Warnings will
INFORM, and may signal potential ACTION
• Timeouts or throttling in external service

Design your telemetry levels (and consumers) with
this in mind

Info

Always on in production. Info messages
INFORM during diagnostics and
troubleshooting

Debug
(Verbose)

On during active debugging and
troubleshooting on a case by case basis

•

•

Machines failing is NOT something that should require
manual intervention in a good cloud application.
Built-in Logging Support in Azure
Web Sites

Storage Analytics

System.Diagnostics -> Table Storage
Logs -> Blob Storage
HTTP/FREB Logs -> File-System or Blob Storage
Metrics -> Table Storage
Windows Events -> File-System

Cloud Services
System.Diagnostics -> Table Storage
HTTP/FREB Logs -> Blob Storage
Performance Counters -> Table Storage
Windows Events -> Table Storage
Custom Directory Monitoring -> Copy files to Blob
Storage
Transient Failures
Temporary service interruptions, typically self-healing
•
•
•

Connection failures to an external service (or suddenly aborted connections)
Busy signals from an external service (sometimes due to “noisy neighbors”)
External service throttling your app due to overly aggressive calls

Can often mitigate with smart retry/back-off logic
•
•
•

Transient Fault Handling Block from P&P can make this easy to express
Storage Library already has built-in support for retry/back-offs
Entity Framework V6 will include built-in support for it with SQL Databases
Patterns & Practices
Transient Fault Handling Application Block

http://nuget.org/packages/EnterpriseLibrary.WindowsAzure.TransientFaultHandling
Entity Framework
Built-in support fault-retry logic coming with EF6

Above code will do connection retries up to 3 times
within 5 seconds (with an exponential back-off
delay)
Be mindful of max delay thresholds

At some point, your request could be blocking the line and cause back pressure.
Often better to fail gracefully at some point, and get out of the queue!
Distributed Caching
Not always practical to hit data source on every
request
•

Throughput and latency impact as traffic grows

Data doesn’t always need to be immediately
consistent even when things are working well
Cached copy of data can help you provide better
customer experience when things aren’t working
well
Windows Azure Cache Service
High throughput, low-latency distributed cache
•
•

In-memory (not written to disk)
Scale-out architecture that distributes across many servers

Key/Value Programming Model
•

•

Get(key) => avg. 1ms latency end-to-end
Put(key) => avg. 1.2ms latency end-to-end

128MB to 150GB of content can be stored in each Cache Service
Web.Config Update
Coding against the cache
Monitoring Usage
Scaling the Cache
2
4
Popular Cache Population Strategies
On Demand / Cache Aside
•

Web/App Tier pulls data from source and caches on cache hit miss

Background Data Push
•

Background services (VMs or worker roles) push data into cache on a
regular schedule, and then the web tier always pull from the cache

Circuit Breaker
•

Switch from live dependency to cached data if dependency goes down
Use distributed caching in any application whose
users share a lot of common data/content or
where the content doesn’t change frequently
Queue Centric Work Pattern
Enable loose coupling between a web-tier and backend
service by asynchronously sending messages via a queue
Scenarios it is useful for:
•
•
•

•

Doing work that is time consuming (high latency)
Doing work that is resource intensive (high CPU)
Doing work that requires an external service that might not always be available
Protecting against sudden load bursts (rate leveling)

Cons:
•

Trade off can be higher end-to-end times for short latency scenarios
Tightly Coupled
Tightly Coupled
Loosely Coupled
Loosely Coupled
Loosely Coupled
Scale Tiers Independently
Create Action in our Web App (before)
Create Action in our Web App (after)
Simple SendMessage Implementation
Why does this bring us?
Resiliency if our database is ever unavailable
•

Our customers can still make FixIt requests even if this happens

Ability to add more backend logic on each FixIt
request
•
•

•

No longer gated by what can be done in lifetime of HTTP request
Examples: workflow routing on who it is assigned to, email/SMS,
etc
Queues can give us resiliency to these additional external
services too
What is our composite SLA now for the
“Create FixIt Request” scenario?
Previously

Now
How could we make it even better?
Have two queues – in two different regions
Chances of both being down at same time very, very small
Web App and Queue Listeners could be smart and fail-over if primary is having a problem

Have the web-app deployed in two different regions
Use Windows Azure Traffic Manager to automatically redirect users if one is having a
problem
Cloud Patterns we Covered
Part 1:

Part 2:

•

•

•
•
•
•
•

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
Summary
Cloud computing offers tremendous opportunities
Reach more users and customers, and in a deeper way
Be more cost effective by elastically scaling up and down
Deliver solutions that weren’t possible or practical before
Leverage a flexible, rich, development platform

Follow these cloud patterns and you’ll be even more
successful with the solutions you build
To Learn More
FailSafe: Building Scalable, Resilient Cloud Services
http://aka.ms/FailsafeCloud
Cloud Service Fundamentals in Windows Azure http://aka.ms/csf
Cloud Architecture Patterns: Using Microsoft Azure
great book by Bill Wilder
Release It!: Design and Deploy Production-Ready Software
Great book by Michael T. Nygard
start now.
http://WindowsAzure.com
Building azure applications ireland

Contenu connexe

Tendances

Virtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowVirtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowAndrew Miller
 
Planning For Catastrophe with IBM WAS and IBM BPM
Planning For Catastrophe with IBM WAS and IBM BPMPlanning For Catastrophe with IBM WAS and IBM BPM
Planning For Catastrophe with IBM WAS and IBM BPMWASdev Community
 
DevCon13 System Administration Basics
DevCon13 System Administration BasicsDevCon13 System Administration Basics
DevCon13 System Administration Basicssysnickm
 
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Andrew Miller
 
Adding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance TestAdding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance TestRodolfo Kohn
 
VMworld 2013: Deep Dive into vSphere Log Management with vCenter Log Insight
VMworld 2013: Deep Dive into vSphere Log Management with vCenter Log InsightVMworld 2013: Deep Dive into vSphere Log Management with vCenter Log Insight
VMworld 2013: Deep Dive into vSphere Log Management with vCenter Log InsightVMworld
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that growGibraltar Software
 
Practical solutions for connections administrators lite
Practical solutions for connections administrators litePractical solutions for connections administrators lite
Practical solutions for connections administrators liteSharon James
 
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13Dominopoint - Italian Lotus User Group
 
Windows 7 Feature Overview It Academic Day 2009
Windows 7 Feature Overview   It Academic Day 2009Windows 7 Feature Overview   It Academic Day 2009
Windows 7 Feature Overview It Academic Day 2009Tobias Koprowski
 
Practical solutions for connections administrators
Practical solutions for connections administratorsPractical solutions for connections administrators
Practical solutions for connections administratorsSharon James
 
Veeam - Fast Secure Cloud base Disaster Recovery with Veeam Cloud Connect
Veeam - Fast Secure Cloud base Disaster Recovery with Veeam Cloud ConnectVeeam - Fast Secure Cloud base Disaster Recovery with Veeam Cloud Connect
Veeam - Fast Secure Cloud base Disaster Recovery with Veeam Cloud ConnectTanawit Chansuchai
 
Virtualising Tier 1 Apps
Virtualising Tier 1 AppsVirtualising Tier 1 Apps
Virtualising Tier 1 AppsIwan Rahabok
 
V mware desktop virtualization health check service
V mware desktop virtualization health check serviceV mware desktop virtualization health check service
V mware desktop virtualization health check servicesolarisyougood
 
Windows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server ManagementWindows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server ManagementSharkrit JOBBO
 
Application Virtualization, University of New Hampshire
Application Virtualization, University of New HampshireApplication Virtualization, University of New Hampshire
Application Virtualization, University of New HampshireTony Austwick
 
Connections install in 45 mins
Connections install in 45 minsConnections install in 45 mins
Connections install in 45 minsSharon James
 
Citrix XenDesktop: Dealing with Failure - SYN408
Citrix XenDesktop: Dealing with Failure - SYN408Citrix XenDesktop: Dealing with Failure - SYN408
Citrix XenDesktop: Dealing with Failure - SYN408Tom Gamull
 

Tendances (20)

Virtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowVirtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - Varrow
 
Planning For Catastrophe with IBM WAS and IBM BPM
Planning For Catastrophe with IBM WAS and IBM BPMPlanning For Catastrophe with IBM WAS and IBM BPM
Planning For Catastrophe with IBM WAS and IBM BPM
 
DevCon13 System Administration Basics
DevCon13 System Administration BasicsDevCon13 System Administration Basics
DevCon13 System Administration Basics
 
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
 
Life in the Fast Lane: Full Speed XPages!, #dd13
Life in the Fast Lane: Full Speed XPages!, #dd13Life in the Fast Lane: Full Speed XPages!, #dd13
Life in the Fast Lane: Full Speed XPages!, #dd13
 
Adding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance TestAdding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance Test
 
VMworld 2013: Deep Dive into vSphere Log Management with vCenter Log Insight
VMworld 2013: Deep Dive into vSphere Log Management with vCenter Log InsightVMworld 2013: Deep Dive into vSphere Log Management with vCenter Log Insight
VMworld 2013: Deep Dive into vSphere Log Management with vCenter Log Insight
 
8 Tools for Troubleshooting Windows 8
8 Tools for Troubleshooting Windows 8 8 Tools for Troubleshooting Windows 8
8 Tools for Troubleshooting Windows 8
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that grow
 
Practical solutions for connections administrators lite
Practical solutions for connections administrators litePractical solutions for connections administrators lite
Practical solutions for connections administrators lite
 
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
 
Windows 7 Feature Overview It Academic Day 2009
Windows 7 Feature Overview   It Academic Day 2009Windows 7 Feature Overview   It Academic Day 2009
Windows 7 Feature Overview It Academic Day 2009
 
Practical solutions for connections administrators
Practical solutions for connections administratorsPractical solutions for connections administrators
Practical solutions for connections administrators
 
Veeam - Fast Secure Cloud base Disaster Recovery with Veeam Cloud Connect
Veeam - Fast Secure Cloud base Disaster Recovery with Veeam Cloud ConnectVeeam - Fast Secure Cloud base Disaster Recovery with Veeam Cloud Connect
Veeam - Fast Secure Cloud base Disaster Recovery with Veeam Cloud Connect
 
Virtualising Tier 1 Apps
Virtualising Tier 1 AppsVirtualising Tier 1 Apps
Virtualising Tier 1 Apps
 
V mware desktop virtualization health check service
V mware desktop virtualization health check serviceV mware desktop virtualization health check service
V mware desktop virtualization health check service
 
Windows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server ManagementWindows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server Management
 
Application Virtualization, University of New Hampshire
Application Virtualization, University of New HampshireApplication Virtualization, University of New Hampshire
Application Virtualization, University of New Hampshire
 
Connections install in 45 mins
Connections install in 45 minsConnections install in 45 mins
Connections install in 45 mins
 
Citrix XenDesktop: Dealing with Failure - SYN408
Citrix XenDesktop: Dealing with Failure - SYN408Citrix XenDesktop: Dealing with Failure - SYN408
Citrix XenDesktop: Dealing with Failure - SYN408
 

En vedette

Evaluation competencies
Evaluation competenciesEvaluation competencies
Evaluation competenciesEdith Torres
 
tramwaysvsbrtseng-161104061524
tramwaysvsbrtseng-161104061524tramwaysvsbrtseng-161104061524
tramwaysvsbrtseng-161104061524Erik Geensen
 
Apple is doing it. Shouldn't you
Apple is doing it. Shouldn't youApple is doing it. Shouldn't you
Apple is doing it. Shouldn't youDan Weir
 
Pemanfaatan barang bekas
Pemanfaatan barang bekasPemanfaatan barang bekas
Pemanfaatan barang bekasAsri Saputra
 
The industrial revolution in photos
The industrial revolution in photosThe industrial revolution in photos
The industrial revolution in photosbeckynesel
 
English 2 a, south african poetry (april 2013)
English 2 a, south african poetry (april 2013)English 2 a, south african poetry (april 2013)
English 2 a, south african poetry (april 2013)University of Johannesburg
 
English 2 a, south african poetry (april 2013)
English 2 a, south african poetry (april 2013)English 2 a, south african poetry (april 2013)
English 2 a, south african poetry (april 2013)University of Johannesburg
 
Permainan matematika tradisional
Permainan matematika tradisionalPermainan matematika tradisional
Permainan matematika tradisionalAsri Saputra
 
It's worth your time: Managing millennials
It's worth your time: Managing millennialsIt's worth your time: Managing millennials
It's worth your time: Managing millennialsDan Weir
 
Permainan matematika tradisional
Permainan matematika tradisionalPermainan matematika tradisional
Permainan matematika tradisionalAsri Saputra
 
VMTurbo Presentation in FRENCH
VMTurbo Presentation in FRENCHVMTurbo Presentation in FRENCH
VMTurbo Presentation in FRENCHMichael Nagar
 
English 2 a, south african poetry (april 2013)
English 2 a, south african poetry (april 2013)English 2 a, south african poetry (april 2013)
English 2 a, south african poetry (april 2013)University of Johannesburg
 
Cellos powerpoint
Cellos powerpointCellos powerpoint
Cellos powerpointcarlipitter
 
VMTurbo Overview July 2015 v7
VMTurbo Overview July 2015 v7VMTurbo Overview July 2015 v7
VMTurbo Overview July 2015 v7Michael Nagar
 

En vedette (20)

Evaluation competencies
Evaluation competenciesEvaluation competencies
Evaluation competencies
 
tramwaysvsbrtseng-161104061524
tramwaysvsbrtseng-161104061524tramwaysvsbrtseng-161104061524
tramwaysvsbrtseng-161104061524
 
Apple is doing it. Shouldn't you
Apple is doing it. Shouldn't youApple is doing it. Shouldn't you
Apple is doing it. Shouldn't you
 
Pemanfaatan barang bekas
Pemanfaatan barang bekasPemanfaatan barang bekas
Pemanfaatan barang bekas
 
No smoking!!
No smoking!!No smoking!!
No smoking!!
 
Replication
ReplicationReplication
Replication
 
Workshop-básico-de-Scrum
Workshop-básico-de-ScrumWorkshop-básico-de-Scrum
Workshop-básico-de-Scrum
 
The industrial revolution in photos
The industrial revolution in photosThe industrial revolution in photos
The industrial revolution in photos
 
Movilidad urbana
Movilidad urbanaMovilidad urbana
Movilidad urbana
 
English 2 a, south african poetry (april 2013)
English 2 a, south african poetry (april 2013)English 2 a, south african poetry (april 2013)
English 2 a, south african poetry (april 2013)
 
Tebogo presentation
Tebogo presentationTebogo presentation
Tebogo presentation
 
English 2 a, south african poetry (april 2013)
English 2 a, south african poetry (april 2013)English 2 a, south african poetry (april 2013)
English 2 a, south african poetry (april 2013)
 
Permainan matematika tradisional
Permainan matematika tradisionalPermainan matematika tradisional
Permainan matematika tradisional
 
It's worth your time: Managing millennials
It's worth your time: Managing millennialsIt's worth your time: Managing millennials
It's worth your time: Managing millennials
 
Guia de-geologia
Guia de-geologiaGuia de-geologia
Guia de-geologia
 
Permainan matematika tradisional
Permainan matematika tradisionalPermainan matematika tradisional
Permainan matematika tradisional
 
VMTurbo Presentation in FRENCH
VMTurbo Presentation in FRENCHVMTurbo Presentation in FRENCH
VMTurbo Presentation in FRENCH
 
English 2 a, south african poetry (april 2013)
English 2 a, south african poetry (april 2013)English 2 a, south african poetry (april 2013)
English 2 a, south african poetry (april 2013)
 
Cellos powerpoint
Cellos powerpointCellos powerpoint
Cellos powerpoint
 
VMTurbo Overview July 2015 v7
VMTurbo Overview July 2015 v7VMTurbo Overview July 2015 v7
VMTurbo Overview July 2015 v7
 

Similaire à Building azure applications ireland

Building Real World Application with Azure
Building Real World Application with AzureBuilding Real World Application with Azure
Building Real World Application with Azuredivyapisces
 
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Amazon Web Services
 
Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...
Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...
Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...Jason Himmelstein
 
Tech Talk on Cloud Computing
Tech Talk on Cloud ComputingTech Talk on Cloud Computing
Tech Talk on Cloud ComputingITviec
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978David Chou
 
Scaling Systems: Architectures that Grow
Scaling Systems: Architectures that GrowScaling Systems: Architectures that Grow
Scaling Systems: Architectures that GrowGibraltar Software
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702Jess Coburn
 
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...Startupfest
 
Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017Amazon Web Services
 
Azure Serverless with Functions, Logic Apps, and Event Grid
Azure Serverless with Functions, Logic Apps, and Event Grid  Azure Serverless with Functions, Logic Apps, and Event Grid
Azure Serverless with Functions, Logic Apps, and Event Grid WinWire Technologies Inc
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
Azure SQL - more or/and less than SQL Server
Azure SQL - more or/and less than SQL ServerAzure SQL - more or/and less than SQL Server
Azure SQL - more or/and less than SQL ServerRafał Hryniewski
 
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...Jason Himmelstein
 
Web Speed And Scalability
Web Speed And ScalabilityWeb Speed And Scalability
Web Speed And ScalabilityJason Ragsdale
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...Amazon Web Services
 
SPSNYC SharePoint Worst Practices
SPSNYC SharePoint Worst PracticesSPSNYC SharePoint Worst Practices
SPSNYC SharePoint Worst PracticesScott Hoag
 
Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017Amazon Web Services
 
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL MeetupMicroservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL MeetupBoaz Ziniman
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithMarkus Eisele
 

Similaire à Building azure applications ireland (20)

Building Real World Application with Azure
Building Real World Application with AzureBuilding Real World Application with Azure
Building Real World Application with Azure
 
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
 
Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...
Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...
Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...
 
Tech Talk on Cloud Computing
Tech Talk on Cloud ComputingTech Talk on Cloud Computing
Tech Talk on Cloud Computing
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
 
Scaling Systems: Architectures that Grow
Scaling Systems: Architectures that GrowScaling Systems: Architectures that Grow
Scaling Systems: Architectures that Grow
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702
 
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
 
Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017
 
Azure Serverless with Functions, Logic Apps, and Event Grid
Azure Serverless with Functions, Logic Apps, and Event Grid  Azure Serverless with Functions, Logic Apps, and Event Grid
Azure Serverless with Functions, Logic Apps, and Event Grid
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Azure SQL - more or/and less than SQL Server
Azure SQL - more or/and less than SQL ServerAzure SQL - more or/and less than SQL Server
Azure SQL - more or/and less than SQL Server
 
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...
 
Azure basics
Azure basicsAzure basics
Azure basics
 
Web Speed And Scalability
Web Speed And ScalabilityWeb Speed And Scalability
Web Speed And Scalability
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
 
SPSNYC SharePoint Worst Practices
SPSNYC SharePoint Worst PracticesSPSNYC SharePoint Worst Practices
SPSNYC SharePoint Worst Practices
 
Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017
 
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL MeetupMicroservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL Meetup
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 

Dernier

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Dernier (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Building azure applications ireland

  • 1.
  • 2. Today’s Goal Go much deeper than “hello world” and cover key development patterns and practices that will help you build real world cloud apps
  • 3. Cloud Patterns we will Cover Part 1: Part 2: • • • • • • • • 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
  • 4.
  • 5. Cloud Patterns we will discuss Part 1: Part 2: • • • • • • • 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.
  • 8.
  • 9.
  • 10. Source Control • Use it!  • 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. Example Source Branch Structure Master Code that is live in production Code in final testing before production Stagin g Where features are being integrated Developmen t Feature Feature Feature Branch A Branch B Branch C
  • 12. Need to make a quick hotfix? Master Stagin g Developmen Hotfix t 145 Feature Feature Feature Branch A Branch B Branch C
  • 13.
  • 14. 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
  • 15. Visual Studio Online • • • • • • • TFS and Git support Elastic Build Service Continuous Integration Continuous Delivery Load Testing Support Team Room Collaboration Agile Project Management
  • 16.
  • 17. 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
  • 18. 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
  • 19. Windows Azure Web Site Service Load Balancer (1 of n) Load Balancer (2 of n) Developer or Automation Script Reserved Instance Virtual Machine with IIS already setup (1 of n…) (1 of 2) Reserved Instance Virtual Machine with Server Failure…. IIS already setup (2 of 2) (2 of n…) Deployment Service (FTP, WebDeploy, GIT, TFS, etc) Reserved Instance Virtual Machine with IIS already setup (2 of 2)
  • 20. AutoScale – Built-into Windows Azure • • • • AutoScale based on real usage CPU % thresholds Queue Depth Supports schedule times
  • 21.
  • 22. 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)
  • 23.
  • 24.
  • 25.
  • 26.
  • 27. Windows Azure AD  Active Directory in the Cloud  Integrate with on-premises Active Directory  Enable single sign-on within your apps  Supports SAML, WS-Fed, and OAuth 2.0  Enterprise Graph REST API
  • 28.
  • 29.
  • 31. Enter Windows Azure AD Credentials
  • 32. Enter Windows Server AD Credentials
  • 35. Finished – Sync will start automatically No need to install on multiple DC’s. No reboot required!
  • 36. Enable SSO with Azure AD and ASP.NET
  • 37. Enable SSO with Azure AD and ASP.NET
  • 38. Enable SSO with Azure AD and ASP.NET
  • 39.
  • 40. Data Storage Range of options for storing data Different query semantics, durability, scalability and ease-of-use options available in the cloud Compositional approaches No “one size fits all” – often using multiple storage systems in a single app provides best approach Balancing priorities Investigate and understand the strengths and limitations of different options
  • 41. Data Storage Options on Windows Azure Platform as a Service (managed services) Infrastructure as a Service (virtual machines)
  • 42. Some Data Storage Questions to Ask
  • 43. Choosing Relational Database on Windows Azure Azure SQL Database (PaaS) SQL Server in a Virtual Machine (IaaS) Pros • • • • • Pros Database as a Service (no VMs required) Database-Level SLA (HA built-in) Updates, patches handled automatically for you Pay only for what you use (no license required) Good for handling large numbers of smaller databases (<=150 GB each) Cons • • • Some feature gaps with on-prem SQL Server (lack of CLR, TDE, Compression support, etc.) Database size limit of 150GB Recommended max table size of 10GB • • • • • Feature compatible with on-prem SQL Server VM-level SLA (SQL Server HA via AlwaysOn in 2+VMs) You have complete control over how SQL is managed Can re-use SQL licenses or pay by the hour for one Good for handling fewer but larger (1TB+) databases Cons • • • Updates/patches (OS and SQL) are your responsibility Creation and management of DBs your responsibility Disk IOPS limited to ~8000 IOPS (via 16 data drives) http://blogs.msdn.com/b/windowsazure/archive/2013/02/14/choosing-between-sql-server-in-windows-azure-vm-amp-windows-azure-sql-database.aspx
  • 44.
  • 45.
  • 46. Understanding the 3-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?
  • 47. Scale out your data by partitioning it
  • 51. It is a lot easier to choose one of these partitioning schemes before you go live….
  • 52.
  • 53. Data Storage Options on Windows Azure Platform as a Service (managed services) Infrastructure as a Service (virtual machines)
  • 55.
  • 56.
  • 57.
  • 58.
  • 59. Design to survive failures Given enough time and pressure, everything fails How will your application behave? • Gracefully handle failure modes, continue to deliver value • Or not so gracefully… Types of failures: • Transient - Temporary service interruptions, self-healing • Enduring - Require intervention.
  • 60. Failure scope Regions may become unavailable Region Connectivity Issues, acts of nature Service Entire Services May Fail Service dependencies (internal and external) Machines Individual Machines May Fail Connectivity Issues (transient failures), hardware failures, configuration and code errors
  • 61. What do the 9’s mean in an SLA?
  • 62. Making it a little more real…
  • 63. How to design with this in mind? • • • • • Have good monitoring and telemetry Handle Transient Faults Use Distributed Caching Circuit Breakers Loose Coupling via the Queue Centric Work Pattern
  • 64.
  • 65. Running a Live Site Service
  • 66. Running without Insight / Telemetry
  • 69. Logging for Insight Instrument your code for production logging • If you didn’t capture it, it didn’t happen Implement inter-service monitoring and logging • Capture and log inter-service activity • Capture both the availability and latency of all inter-service calls Run-time configurable logging • Enable activation (capture or delivery) of logging levels without requiring a redeployment of your application
  • 71. Choosing Logging Levels • Must be able to isolate issues solely through telemetry logs Level Context Error Always on in production. Any errors will trigger ACTION to resolve (automated or human). • Configuration issues • Application failure (cascading failure or critical service down) • Telemetry is meant to INFORM (I want you to know something) or ACT (I want you to do something) • Too much ACT creates noise – too much work to sift through to find genuine issues • In a cloud app, only things that require intervention (automatic or manual) should trigger ACT Warning Always on in production. Warnings will INFORM, and may signal potential ACTION • Timeouts or throttling in external service Design your telemetry levels (and consumers) with this in mind Info Always on in production. Info messages INFORM during diagnostics and troubleshooting Debug (Verbose) On during active debugging and troubleshooting on a case by case basis • • Machines failing is NOT something that should require manual intervention in a good cloud application.
  • 72. Built-in Logging Support in Azure Web Sites Storage Analytics System.Diagnostics -> Table Storage Logs -> Blob Storage HTTP/FREB Logs -> File-System or Blob Storage Metrics -> Table Storage Windows Events -> File-System Cloud Services System.Diagnostics -> Table Storage HTTP/FREB Logs -> Blob Storage Performance Counters -> Table Storage Windows Events -> Table Storage Custom Directory Monitoring -> Copy files to Blob Storage
  • 73.
  • 74.
  • 75. Transient Failures Temporary service interruptions, typically self-healing • • • Connection failures to an external service (or suddenly aborted connections) Busy signals from an external service (sometimes due to “noisy neighbors”) External service throttling your app due to overly aggressive calls Can often mitigate with smart retry/back-off logic • • • Transient Fault Handling Block from P&P can make this easy to express Storage Library already has built-in support for retry/back-offs Entity Framework V6 will include built-in support for it with SQL Databases
  • 76. Patterns & Practices Transient Fault Handling Application Block http://nuget.org/packages/EnterpriseLibrary.WindowsAzure.TransientFaultHandling
  • 77. Entity Framework Built-in support fault-retry logic coming with EF6 Above code will do connection retries up to 3 times within 5 seconds (with an exponential back-off delay)
  • 78.
  • 79. Be mindful of max delay thresholds At some point, your request could be blocking the line and cause back pressure. Often better to fail gracefully at some point, and get out of the queue!
  • 80.
  • 81. Distributed Caching Not always practical to hit data source on every request • Throughput and latency impact as traffic grows Data doesn’t always need to be immediately consistent even when things are working well Cached copy of data can help you provide better customer experience when things aren’t working well
  • 82. Windows Azure Cache Service High throughput, low-latency distributed cache • • In-memory (not written to disk) Scale-out architecture that distributes across many servers Key/Value Programming Model • • Get(key) => avg. 1ms latency end-to-end Put(key) => avg. 1.2ms latency end-to-end 128MB to 150GB of content can be stored in each Cache Service
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 94. 2
  • 95. 4
  • 96. Popular Cache Population Strategies On Demand / Cache Aside • Web/App Tier pulls data from source and caches on cache hit miss Background Data Push • Background services (VMs or worker roles) push data into cache on a regular schedule, and then the web tier always pull from the cache Circuit Breaker • Switch from live dependency to cached data if dependency goes down
  • 97. Use distributed caching in any application whose users share a lot of common data/content or where the content doesn’t change frequently
  • 98.
  • 99. Queue Centric Work Pattern Enable loose coupling between a web-tier and backend service by asynchronously sending messages via a queue Scenarios it is useful for: • • • • Doing work that is time consuming (high latency) Doing work that is resource intensive (high CPU) Doing work that requires an external service that might not always be available Protecting against sudden load bursts (rate leveling) Cons: • Trade off can be higher end-to-end times for short latency scenarios
  • 106.
  • 107.
  • 108.
  • 109. Create Action in our Web App (before)
  • 110. Create Action in our Web App (after)
  • 112.
  • 113. Why does this bring us? Resiliency if our database is ever unavailable • Our customers can still make FixIt requests even if this happens Ability to add more backend logic on each FixIt request • • • No longer gated by what can be done in lifetime of HTTP request Examples: workflow routing on who it is assigned to, email/SMS, etc Queues can give us resiliency to these additional external services too
  • 114. What is our composite SLA now for the “Create FixIt Request” scenario? Previously Now
  • 115. How could we make it even better? Have two queues – in two different regions Chances of both being down at same time very, very small Web App and Queue Listeners could be smart and fail-over if primary is having a problem Have the web-app deployed in two different regions Use Windows Azure Traffic Manager to automatically redirect users if one is having a problem
  • 116. Cloud Patterns we Covered Part 1: Part 2: • • • • • • • 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
  • 117. Summary Cloud computing offers tremendous opportunities Reach more users and customers, and in a deeper way Be more cost effective by elastically scaling up and down Deliver solutions that weren’t possible or practical before Leverage a flexible, rich, development platform Follow these cloud patterns and you’ll be even more successful with the solutions you build
  • 118. To Learn More FailSafe: Building Scalable, Resilient Cloud Services http://aka.ms/FailsafeCloud Cloud Service Fundamentals in Windows Azure http://aka.ms/csf Cloud Architecture Patterns: Using Microsoft Azure great book by Bill Wilder Release It!: Design and Deploy Production-Ready Software Great book by Michael T. Nygard