CloudApplication
Architecture styles
Presented by
Nilay Shrivastava
Introduction
Success of any cloud application depend on the way it has deployed.
According to MicrosoftCloud application reference there are at
least 7 application architectures
1. N-tier architecture
2. Web-Queue-Worker architecture
3. Microservices
4. CQRS architecture
5. Event Driven architecture
6. Big data architecture
7. Big compute architecture
N-Tier
When to use
• Simple web application
• Migrating an on-premise
application to cloud with
minimum refactoring
• Hybrid Application i.e. unified
development of on-premises and
cloud applications
Benefits
Challenges
• Portability between cloud and
on-premises, and between
cloud platforms
• Less learning curves for most
developers
• Open to heterogeneous
environment
• Monolithic design prevents
independent deployment of
features
• Managing an IaaS application
is more work than an
application that uses only
managed services
• Difficult to manage network
security
Dividing applications in to logical layers and physical tiers
WebQueueWorkerArchitecture
When to use
Benefits
Challenges
• Applications with relatively
simple domain
• Applications with long running
workflows or batch applications
• When you want to use managed
services, rather than IaaS
• Relatively simple architecture
that is easy to understand
• Easy to deploy and manage
• The front end is decoupled from
the worker using asynchronous
messaging
• The front end and the worker
can be scaled independently
• Without careful design, the
front end and the worker can
become large, monolithic
components that are difficult to
maintain
• Hidden dependencies between
front end and the worker
Consists of a web front end that serves clients requests and a worker that performs resource intensive tasks
MicroservicesArchitecture
When to use
Benefits
Challenges
• Large applications that require
high release velocity
• Complex applications that need
to be highly scalable
• Applications rich domains or
many subdomains
• Organization with small
development teams
• Independent deployments
• Independent development
• Small focused team
• Fault isolation
• Mixed technology stacks
• Granular Scaling
• Complexity
• Lack of governance
• Network congestion and latency
• Data integrity
• Versioning
Small autonomous services implementing a dedicated business capability
CQRS architecture style
When to use Benefits
Challenges
• Use CQRS for collaborative
domains where many users access
the same data, especially when the
read and write workload are
asymmetrical
• CQRS is not a top level architecture
that applies to an entire system.
Apply CQRS only to those
subsystems where there is a clear
value in separating reads and writes
• Independent scaling
• Optimized data schemas
• Security
• Separations of concerns
• Simple Queries
• Complexity
• Messaging
• EventualConsistency
Separates read and write operations
Event driven architecture style
When to use
Benefits
Challenges
• Multiple subsystems must
process the same events
• Real time processing with
minimum time lag
• Complex event processing such
as pattern matching or
aggregation over time windows
• High volume and high velocity of
data, such as IoT
• Producers and consumers are
decoupled
• No point to point integrations,
it’s easy to add new consumers
to the system
• Consumers can respond to the
event immediately as they
arrive
• Highly scalable and distributed
• Guaranteed delivery
• Processing events in order and
exactly once
Event producers that generate a stream of events, and event consumers that listen for the events
Big data architecture style
When to use
Benefits
Challenges
• Batch processing of big data
sources at rest
• Real time processing of big
data in motion
• Interactive exploration of big
data
• Predictive analytics and
machine learning
• Performance through
parallelism
• Elastic Scale
• Interoperability with existing
solutions
• Technology choices
• Complexity
• Security
• Technology maturity
• Skillset
Ingestion processing and analysis of data that is too large or complex for traditional database
Big compute architecture style
When to use
Benefits
Challenges
• Simulation and number
crunching
• Long running computations
• Smaller computations that
must be run 100s or 1000s of
times
• High performance
• Solve large problems faster
• On-demand computing
• Managing theVM
infrastructure
• Managing volume of number
crunching
• Provisioning thousands of
cores in a timely manner
Large-scale workloads that require a large number of cores, often numbering in hundreds or thousands
Nilay Shrivastava
shrivastava.nilay@gmail.com
+91 93532 65476
ThankYou

Cloud Application architecture styles

  • 1.
  • 2.
    Introduction Success of anycloud application depend on the way it has deployed. According to MicrosoftCloud application reference there are at least 7 application architectures 1. N-tier architecture 2. Web-Queue-Worker architecture 3. Microservices 4. CQRS architecture 5. Event Driven architecture 6. Big data architecture 7. Big compute architecture
  • 3.
    N-Tier When to use •Simple web application • Migrating an on-premise application to cloud with minimum refactoring • Hybrid Application i.e. unified development of on-premises and cloud applications Benefits Challenges • Portability between cloud and on-premises, and between cloud platforms • Less learning curves for most developers • Open to heterogeneous environment • Monolithic design prevents independent deployment of features • Managing an IaaS application is more work than an application that uses only managed services • Difficult to manage network security Dividing applications in to logical layers and physical tiers
  • 4.
    WebQueueWorkerArchitecture When to use Benefits Challenges •Applications with relatively simple domain • Applications with long running workflows or batch applications • When you want to use managed services, rather than IaaS • Relatively simple architecture that is easy to understand • Easy to deploy and manage • The front end is decoupled from the worker using asynchronous messaging • The front end and the worker can be scaled independently • Without careful design, the front end and the worker can become large, monolithic components that are difficult to maintain • Hidden dependencies between front end and the worker Consists of a web front end that serves clients requests and a worker that performs resource intensive tasks
  • 5.
    MicroservicesArchitecture When to use Benefits Challenges •Large applications that require high release velocity • Complex applications that need to be highly scalable • Applications rich domains or many subdomains • Organization with small development teams • Independent deployments • Independent development • Small focused team • Fault isolation • Mixed technology stacks • Granular Scaling • Complexity • Lack of governance • Network congestion and latency • Data integrity • Versioning Small autonomous services implementing a dedicated business capability
  • 6.
    CQRS architecture style Whento use Benefits Challenges • Use CQRS for collaborative domains where many users access the same data, especially when the read and write workload are asymmetrical • CQRS is not a top level architecture that applies to an entire system. Apply CQRS only to those subsystems where there is a clear value in separating reads and writes • Independent scaling • Optimized data schemas • Security • Separations of concerns • Simple Queries • Complexity • Messaging • EventualConsistency Separates read and write operations
  • 7.
    Event driven architecturestyle When to use Benefits Challenges • Multiple subsystems must process the same events • Real time processing with minimum time lag • Complex event processing such as pattern matching or aggregation over time windows • High volume and high velocity of data, such as IoT • Producers and consumers are decoupled • No point to point integrations, it’s easy to add new consumers to the system • Consumers can respond to the event immediately as they arrive • Highly scalable and distributed • Guaranteed delivery • Processing events in order and exactly once Event producers that generate a stream of events, and event consumers that listen for the events
  • 8.
    Big data architecturestyle When to use Benefits Challenges • Batch processing of big data sources at rest • Real time processing of big data in motion • Interactive exploration of big data • Predictive analytics and machine learning • Performance through parallelism • Elastic Scale • Interoperability with existing solutions • Technology choices • Complexity • Security • Technology maturity • Skillset Ingestion processing and analysis of data that is too large or complex for traditional database
  • 9.
    Big compute architecturestyle When to use Benefits Challenges • Simulation and number crunching • Long running computations • Smaller computations that must be run 100s or 1000s of times • High performance • Solve large problems faster • On-demand computing • Managing theVM infrastructure • Managing volume of number crunching • Provisioning thousands of cores in a timely manner Large-scale workloads that require a large number of cores, often numbering in hundreds or thousands
  • 10.