architecture patterns for building cloud-native applications
DESCRIPTION
HELLO my name is. Architecture Patterns for Building Cloud-Native Applications. NYC Code Camp 7 15-September-2012 (10:45 – noon). Bill Wilder. Boston Azure User Group http ://www.bostonazure.org @bostonazure. Bill Wilder http://blog.codingoutloud.com @codingoutloud. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/1.jpg)
Architecture Patterns for Building Cloud-Native Applications
NYC Code Camp 715-September-2012
(10:45 – noon)
Boston Azure User Grouphttp://www.bostonazure.org@bostonazure
Bill Wilderhttp://blog.codingoutloud.com@codingoutloud
HELLO
my name is
Bill Wilder
![Page 3: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/3.jpg)
NYCC7 is brought to you by…… a handful of organizers
… a cadre of speakers, and … a bunch of really great $pon$or$
Be sure to thank them for making NYC Code Camp 7 possible!
![Page 4: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/4.jpg)
MARQUEE SPONSOR
![Page 5: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/5.jpg)
PLATINUM SPONSOR
![Page 6: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/6.jpg)
PLATINUM SPONSOR
![Page 7: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/7.jpg)
PLATINUM SPONSOR
![Page 8: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/8.jpg)
GOLD SPONSORS
![Page 9: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/9.jpg)
SILVER SPONSORS
![Page 10: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/10.jpg)
Who is Bill Wilder?
www.devpartners.com
www.bostonazure.org
www.cloudarchitecturepatterns.com
![Page 11: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/11.jpg)
I will ass-u-me…
1. You know what “the cloud” is2. You have an inkling about Amazon Web Services and
Windows Azure cloud platforms3. You understand that such cloud platforms include
compute services [like hosted virtual machines (VMs), in both IaaS and PaaS modes], SQL and NoSQL database services, file storage services, messaging, DNS, management, etc.
4. You are interested in understanding cloud-native applications
![Page 12: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/12.jpg)
Roadmap for rest of talk… …
1. Give context and definition for cloud-native2. Cover three specific patterns for building
cloud-native applications3. Mention several other patterns
• Q&A during talk is okay (time permitting)• Q&A at end with any remaining time• Also feel free to join me for lunch to talk cloud
?
![Page 13: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/13.jpg)
Cloud Platform Characteristics• Scaling – or “resource allocation” – is horizontal
– and ∞ (“illusion of infinite resources”)
• Resources are easily added or released– self-service portal or API; cloud scaling is automatable
• Pay only for currently allocated resources– costs are operational, granular, controllable, and transparent
• Optimized for cost-efficiency– cloud services are MT, hardware is commodity– MTTR over MTTF
• Rich, robust functionality is simply accessible– like an iceberg
![Page 14: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/14.jpg)
![Page 15: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/15.jpg)
Cloud-Native Application Characteristics• Application architecture is aligned with the cloud
platform architecture– uses the platform in the most natural way– lets the platform do the heavy lifting
• Are loosely coupled – for scalability, reliability, and flexibility
• Scale horizontally, automatically, bidirectionally– maintaining UX and cost-optimizing– scale operationally along with capacity
• Handle busy signals and node failures– without unnecessary UX degradation
• Use geo-distribution services– minimize network latency
![Page 16: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/16.jpg)
Know the rules
“If I had asked people what they wanted, they would have said faster horses.”
- Henry Ford
![Page 17: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/17.jpg)
Know the rules
“If I had asked IT departments what they wanted, they would have said IaaS.”
- Henry Cloud
![Page 18: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/18.jpg)
Use the right tool for the job…
Better on water thanon land…. sorta “unreliable”when used on land.
![Page 19: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/19.jpg)
Modern Application Challenges
1. Scaling compute2. Scaling data3. Scaling geographically4. Handling failure… and all while maintaining User Experience (UX)• Example patterns we will review:
a. Horizontal Scalingb. Queue-Centric Workflowc. Database Shardingd. Other patterns briefly as time permits
![Page 20: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/20.jpg)
Pre-Cloud vs. Cloud-Native
Old-School vs.
Cloud-Native
Control Efficiency
Stable/Static Hardware Dynamic/∞ Resources
Fixed/CapEx Variable/OpEx
Vertical Scaling Horizontal Resourcing
Minimize MTBF Minimize MTTR
Data Storage = RDBMS Scenario-specific Storage
Manage Infrastructure Managed Infrastructure
arch
itect
ural
con
cern
s
![Page 21: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/21.jpg)
Horizontal Scaling Compute Pattern
pattern 1 of 3
![Page 22: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/22.jpg)
What’s the difference between performance
and scale??
![Page 23: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/23.jpg)
Common Terminology:Scaling Up/Down Vertical ScalingScaling Out/In Horizontal “Scaling” But really is Horizontal Resource Allocation
• Architectural Decision– Big decision… hard to change
Scale Up (and Scale Down??)vs. Horizontal Resourcing
![Page 24: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/24.jpg)
Vertical Scaling (“Scaling Up”)
.
Resources that can be “Scaled Up”• Memory: speed, amount • CPU: speed, number of CPUs• Disk: speed, size, multiple controllers• Bandwidth: higher capacity pipe• … and it sure is EASY
Downsides of Scaling Up• Hard Upper Limit• HIGH END HARDWARE HIGH END CO$T• Lower value than “commodity hardware”• May have no other choice (architectural)
![Page 25: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/25.jpg)
Scaling Horizontally: Adding Boxesautonomous nodes
for scalability(stateless web servers, shared
nothing DBs, your custom code in
QCW)
![Page 26: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/26.jpg)
Load Balancer(Cloud Service)
Managed VMs(Cloud Service)
Example: Web Tier www.pageofphotos.com
![Page 27: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/27.jpg)
1. Auto-Scale • Bidirectional
2. Nodes can fail• Auto-Scale is only one cause• Handle shutdown signals• Stateless (“like a taxi”)
vs. Sticky Sessions• Stateless nodes
vs. Stateless apps• N+1 rule
vs. occasional downtime (UX)
Horizontal Scaling Considerations
![Page 28: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/28.jpg)
How many users does your cloud-native
application need before it needs to be able to
horizontally scale??
![Page 29: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/29.jpg)
Queue-Centric Workflow Pattern
(QCW for short)
pattern 2 of 3
![Page 30: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/30.jpg)
Extend www.pageofphotos.com example into next Tier
• QCW enables applications where the UI and back-end services are Loosely Coupled
• (Compare to CQRS at the end)
![Page 31: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/31.jpg)
QCW Example: User Uploads Photo www.pageofphotos.com
Web Server
Compute ServiceReliable Queue
Reliable Storage
![Page 32: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/32.jpg)
QCW
WE NEED:• Compute (VM) resources to run our code
• Reliable Queue to communicate
• Durable/Persistent Storage
![Page 33: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/33.jpg)
Where does Windows Azure fit?
![Page 34: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/34.jpg)
QCW [on Windows Azure]
WE NEED:• Compute (VM) resources to run our code
Web Roles (IIS) and Worker Roles (w/o IIS)• Reliable Queue to communicate
Azure Storage Queues• Durable/Persistent Storage
Azure Storage Blobs & Tables; WASD
![Page 35: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/35.jpg)
QCW on Azure: User Uploads a Photo
WebRole(IIS)
WorkerRoleAzure Queue
Azure Blob
UX implications: user does not wait for thumbnail(architecture!)
ww
w.p
ageo
fpho
tos.
com
push pull
![Page 36: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/36.jpg)
QCW enables Responsive UX
• Response to interactive users is as fast as a work request can be persisted
• Time consuming work done asynchronously• Comparable total resource consumption, arguably
better subjective UX• UX challenge – how to express Async to users?
– Communicate Progress– Display Final results– Long Polling/Web Sockets (e.g., SignalR or Node.io)
![Page 37: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/37.jpg)
QCW enables Scalable App
• Decoupled front/back provides insulation– Blocking is Bane of Scalability– Order processing partner doing maintenance– Twitter down– Email server unreachable– Internet connectivity interruption
• Loosely coupled, concern-independent scaling– (see next slide)– Get Scale Units right
![Page 38: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/38.jpg)
General Case: Many Roles, Many Queues
WebRole(IIS)
WorkerRole
WebRole(IIS)
WebRole
(Public)
WorkerRoleWorker
RoleWorker
Role Type 1
WorkerRoleWorker
RoleWorkerRoleWorker
Role Type 2
Queue Type 1
Queue Type 2
Queue Type 1
Queue Type 2
Queue Type 3
• Scaling best when Investment α Benefit• Optimize for CO$T EFFICIENCY
• Logical vs. Physical Architecture
WorkerRole
Type 2
WorkerRole
Type 2
WorkerRole
Type 2
WebRole
(Admin)
![Page 39: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/39.jpg)
Reliable Queue & 2-step Delete
(IIS)WebRole
WorkerRole
var url = “http://pageofphotos.blob.core.windows.net/up/<guid>.png”;queue.AddMessage( new CloudQueueMessage( url ) );
var invisibilityWindow = TimeSpan.FromSeconds( 10 );CloudQueueMessage msg = queue.GetMessage( invisibilityWindow );
(… do some processing then …)queue.DeleteMessage( msg );
Queue
![Page 40: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/40.jpg)
QCW requires Idempotent
• Perform idempotent operation more than once, end result same as if we did it once
• Example with Thumbnailing (easy case)• App-specific concerns dictate approaches
– Compensating action, Last write wins, etc.• PARTNERSHIP: division of responsibility
between cloud platform & app– Far cry from database transaction
![Page 41: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/41.jpg)
QCW expects Poison Messages
• A Poison Message cannot be processed– Error condition for non-transient reason– Use dequeue count property
• Be proactive– Falling off the queue may kill your system
• Determine a Max Retry policy per queue– Delete, put on “bad” queue, alert human, …
![Page 42: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/42.jpg)
QCW requires “Plan for Failure”
• VM restarts will happen– Hardware failure, O/S patching, crash (bug)
• Bake in handling of restarts into our apps– Restarts are routine: system “just keeps working”– Idempotent support needed important– Event Sourcing (commonly seen with CQRS) may
help• Not an exception case! Expect it!• Consider N+1 Rule
![Page 43: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/43.jpg)
Typical Site Any 1 Role Inst Overall System
Operating System Upgrade
Application Code Update
Scale Up, Down, or In
Hardware Failure
Software Failure (Bug)
Security Patch
What’s Up? Reliability as EMERGENT PROPERTY
![Page 44: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/44.jpg)
Aside: Is QCW same as CQRS?
• Short answer: “no”• CQRS
– Command Query Responsibility Segregation• Commands change state• Queries ask for current state• Any operation is one or the other• Sometimes includes Event Sourcing• Sometimes modeled using Domain Driven
Design (DDD)
![Page 45: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/45.jpg)
What about the DATA?
• You: Azure Web Roles and Azure Worker Roles– Taking user input, dispatching work, doing work– Follow a decoupled queue-in-the-middle pattern– Stateless compute nodes
• Cloud: “Hard Part”: persistent, scalable data– Azure Queue & Blob Services– Three copies of each byte– Blobs are geo-replicated– Busy Signal Pattern
![Page 46: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/46.jpg)
Database Sharding Pattern
pattern 3 of 3
![Page 47: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/47.jpg)
Foursquare is a Social Network
![Page 48: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/48.jpg)
Foursquare #Fail
• October 4, 2010 – trouble begins…• After 17 hours of downtime over two days…
“Oct. 5 10:28 p.m.: Running on pizza and Red Bull. Another long night.”
WHAT WENT WRONG?
![Page 49: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/49.jpg)
What is Sharding?
• Problem: one database can’t handle all the data– Too big, not performant, needs geo distribution, …
• Solution: split data across multiple databases– One Logical Database, multiple Physical Databases
• Each Physical Database Node is a Shard• Most scalable is Shared Nothing design
– May require some denormalization (duplication)
![Page 50: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/50.jpg)
All shard have same schema
SHARDS
![Page 51: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/51.jpg)
Sharding is Difficult
• What defines a shard? (Where to put stuff?)– Example – use country of origin: customer_us,
customer_fr, customer_cn, customer_ie, …– Use same approach to find records
• What happens if a shard gets too big?– Rebalancing shards can get complex– Foursquare case study is interesting
• Query / join / transact across shards• Cache coherence, connection pool management
![Page 52: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/52.jpg)
Where does Windows Azure fit?
![Page 53: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/53.jpg)
Windows Azure SQL Database (WASD)is SQL Server Except…
Common
SQL ServerSpecific(for now)
WASDSpecific
“Just change the connection
string…”
• Full Text Search• Native Encryption• Many more…
Limitations• 150 GB size limit• Busy Signal Pattern• Colocation PatternNew Capabilities• Managed Service• Highly Available• Rental model• Federations
http://msdn.microsoft.com/en-us/library/ff394115.aspxAdditional information on Differences:
![Page 54: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/54.jpg)
Windows Azure SQL Databse Federations for Sharding
• Single “master” database– “Query Fanout” makes partitions transparent– Instead of customer_us, customer_fr, etc… we are back to
customer database• Handles redistributing shards• Handles cache coherence• Simplifies connection pooling• No MERGE, only SPLIT currently
• http://blogs.msdn.com/b/cbiyikoglu/archive/2011/01/18/sql-azure-federations-robust-connectivity-model-for-federated-data.aspx
![Page 55: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/55.jpg)
Foursquare #Fail
Foursquare was implementing database sharding in the application layer. WASD Federations makes this unnecessary.
WHAT WENT WRONG?
![Page 56: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/56.jpg)
My database instance is limited to 150 GB.
∞ ∞ ∞Does that mean the
cloud doesn’t really offer the illusion of infinite
resources??
![Page 57: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/57.jpg)
Pre-Cloud vs. Cloud-Native
Lessons: being
Cloud-Native
1:15,000 Efficiency
Auto-Scaling via API Dynamic/∞ Resources
Pay-As-You-Go Variable/OpEx
Stateless, Autonomous Horizontal Resourcing
N+1, Idempotent Minimize MTTR
SQL, NoSQL, Blob Scenario-specific Storage
VM, Storage, LB, DR Managed Infrastructure
![Page 58: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/58.jpg)
Know the rules
“Know the rules well, so you can break them effectively.”
- Dalai Lama XIV
![Page 59: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/59.jpg)
Cloud Architecture Patterns bookPrimer Chapters
1. Scalability2. Eventual Consistency3. Multitenancy and Commodity Hardware4. Network Latency
![Page 60: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/60.jpg)
Cloud Architecture Patterns book Pattern Chapters
1. Horizontally Scaling Compute Pattern2. Queue-Centric Workflow Pattern3. Auto-Scaling Pattern4. MapReduce Pattern5. Database Sharding Pattern6. Busy Signal Pattern7. Node Failure Pattern8. Colocate Pattern9. Valet Key Pattern10. CDN Pattern11. Multisite Deployment Pattern
![Page 61: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/61.jpg)
Questions?Comments?
More information?
?
![Page 62: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/62.jpg)
BostonAzure.org
• Boston Azure cloud user group• Focused on Microsoft’s PaaS cloud platform
• Monthly, 6:00-8:30 PM in Boston area– Food; wifi; free; great topics; growing community
• Follow on Twitter: @bostonazure • More info or to join our Meetup.com group:
http://www.bostonazure.org
![Page 63: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/63.jpg)
Contact MeLooking for …• consulting help with Windows Azure Platform? • someone to bounce Azure or cloud questions off?• a speaker for your user group or company technology event?
Just Ask!
Bill Wilder@codingoutloudhttp://blog.codingoutloud.comcommunity inquiries: [email protected] inquiries: www.devpartners.com
![Page 64: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/64.jpg)
![Page 65: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/65.jpg)
DONE
![Page 66: Architecture Patterns for Building Cloud-Native Applications](https://reader035.vdocument.in/reader035/viewer/2022062815/56816968550346895de12ec5/html5/thumbnails/66.jpg)