The success of application deployment on cloud depends a lot on the architecture style which in turn depends on your business needs. This presentation talks about the commonly used Architecture and business use cases.
2. 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
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
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
7. 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
8. 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
9. 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