Types of Cloud Architecture

Types of Cloud Architecture2018-09-18T10:26:22+00:00

Cloud Computing

To provide computing services such as servers, storage, databases, networking, software, and analysis through the Internet (“the cloud”).
The company that provides these computing services is called a cloud provider, and the cloud provider typically charges cloud computing services based on usage, similar to how households are charged for water or electricity.

With cloud computing, you can use online services to send mail, edit documents, watch movies, watch TV, listen to music, play games, and store photos and other files. The evolution of cloud computing means creating new apps and services, regardless of business size. From small to very large projects such as data storage, backup and multiple website and blog hosts, audio and video streaming, on-demand software creation, It is flexible enough to run.

Reviewing the Cloud Structure

This is an analysis for understanding cloud computing.

IaaS, PaaS, SaaS

Public Cloud, Private Cloud, Hybrid Cloud

Architecture style that is mainly used according to purpose of use

Types of cloud deployment

The cloud is changing the way you design your application. Instead of a single application, disassembled applications are being designed into small distributed services. These services can be communicated through APIs or using asynchronous messages or events, and applications can scale horizontally to add new instances as needed.
The Architecture Guide describes a structured approach to designing Azure-based applications that provide scalability, resiliency, and high availability.


The traditional architecture used in enterprise applications divides the application into logical and physical layers.


Simple Web Applications
Migrate on-premises applications to Azure with minimal refactoring
Integrated development of on-premises and cloud applications

Benefits (Windows / Linux)

Portability between cloud and on-premises or cloud platform
Most developers can easily learn
A natural evolution in the generic application model
Openness to heterogeneous environments (Windows / Linux)

Best practices

Load change handling with auto scaling
Hierarchical separation using asynchronous messaging
Semi-static data caching
Configuring the database tier for high availability
Place WAF between front end and Internet
Place each layer on a subnet, use subnets as security boundaries, etc

Recommended N-tier architecture running in VM

Learn more >

Running Windows VMs for N-Tier Applications

Learn more >

Running Windows VMs for N-Tier Applications

Learn more >

Web queue builder

The Web front-end that handles client requests and the workforce that performs resource-intensive, long-running workflow, or batch Operations are key components.


Applications with relatively simple emails
Long-running workflows, applications with some batch jobs
If you want to use managed services instead of IaaS


Benefits Relatively simple architecture
Easy deployment and management
Clear separation of concerns
Front end separated from the Operator through asynchronous messages
Independently adjust front and worker size

Best practice

Expose well-designed APIs to clients
Automatically resize to handle load changes
Host static content using CDN
Use multiple storage persistence (Polyglot), where appropriate
Optimize performance by dividing data to increase scalability and reduce contention

Web Queue Worker in Azure App Service

Learn more >

Improving Web Application Scalability

Learn more >

Default Web App App

Learn more >

Micro Service

Micro-services are resilient, highly scalable, can be deployed independently,
It’s a widely used architectural style for building cloud applications that can evolve quickly.


Large release applications requiring high release development speed
Composite applications that require high scalability
Applications with rich domains or many subdomains
Organization of small development teams


Independent deployment

Bug fixes and features Increased efficiency of release management and reduced risk

Independent development

Continuous innovation and faster release cycles

Centralized small scale

Focus on one service.

Bug Isolation

No impact to other applications
in the event of one service outage.
Reference Restorable Azure Application

Mixed Technology Stack

Appropriate Technology Options Available

Subdivided Expansion

Independent Service Expansions Available

Best practice

Service modeling centered on business domains
Code or data schema not shared
Use the best storage for each service and data type
API should do domain modeling, not internal implementation of service
Avoid combining between services
Offloading cross-referencing issues such as authentication, SSL termination, etc. to the gateway

Micro-services using the Azure Container Service/p>

Learn more >

Micro-services using the Azure Service Fabric

Learn more >

Command and Query Responsibility Segregation (CQRS)

It is an architectural style that distinguishes read Operations from write Operations.


Collaboration domains where multiple users access the same data
In particular, if the read and write workloads are asymmetric
It is not a system-wide top-level architecture
Applies only to those subsystems that have distinct values


Independent expansion

Extend read and write workloads independently

Data Schema Optimization

Read: Using a query-optimized schema
Write: Use update-optimized schema Continuous
Innovation and faster release possible


Easily verify that only valid domain entities can write to data

Problem classification

Separating read and write makes it easier to maintain a more flexible model

A simple query

Read When the query is stored by querying the materialized view, the application avoids complex joins

Best practice

Use event sourcing patterns to avoid conflicts of updates
Use view patterns materialized in the read model for schema optimization in queries

Task logic: Separate command and query

Learn more >

CQRS of micro-services

Learn more >

Event-based architecture – using the publish-subscribe (pub-sub) model

It is an architectural style that distinguishes read Operations from write Operations.


When multiple subsystems need to handle the same event
Real time processing of minimum time delay
Complex event handling such as pattern matching or aggregation over a period of time
High volume and high data development speed (eg IoT)


Separating Suppliers and Consumers
Easy to add new consumer because there is no point-to-point integration
Answering as soon as an event arrives
Extend and deploy to a high level
Independent check of event stream in subsystem

Best practice

Event-based architecture is the core of the IoT solution
Record event data in cold storage for archival or batch analysis
Handle special types of non-remote analysis messages received by the device, such as alerts and alerts
Machine learning

IoT Architecture

Learn more >

Figure 1 IoT solution architecture

Learn more >

Big Data

Designed to perform collection, processing and analysis of data that is too large or too complex for the underlying database system.


Storage and processing of volumes that are too large for an existing database
Unstructured data conversion for analysis and reporting
Collect, process, and analyze unrestricted data streams in real time or in short latency
Used for Machine Learning and Cognitive Service


Technology Choice – Make the most of your existing technology or technology investments by properly combining Azure managed services and Apache technology in HDInsight clusters.
Performance through parallel processing – High-performance solution that can scale to large data
Flexible expansion
Efficient interOperability with existing solutions

Best practice

Take advantage of parallelism
Data analysis
Apply schema-on-read semantics
Data processing in the right place
Balancing utilization and time costs
Data collection orchestration
Initial scrub of important data

Big Data Architecture Components

Data source

Application Data Store
Static file supplied by the application
Real-time data source

Data Storage

Data Lake: High-Capacity Distributed File Storage Support Services
Blob container
Azure Data Lake Storage

Batch Processing

Azure Data Lake Analytics: Running U-SQL Tasks
HDInsight Hadoop: Hive, Pig, Map / Reduce work
HDInsight Spark: Running Java, Scala, Python

Real-time message collection

Stable delivery and decryption support for other message queues
Azure Event Hub
Azure IoT hub Kafka

Stream processing

SQL query-based stream processing service
Open source streaming technology such as Storm, Spark Streaming is available
Azure Stream Analytics

Analysis data store

Azure SQL Data Warehouse: Management services for large-scale, cloud-based data warehousing
HDInsight: Interactive Hive, Hbase, Spark SQL support, data processing for analysis

Analysis and Reporting

Jupyter and other analysis support: Python, R technology, etc.
Microsoft R Server, Spark, etc. available
Azure Analysis Services: Includes a modeling layer, including multi-dimensional OLAP cubes and tabular data models
Power BI: Modeling and visualization of self-service BI



Workflow automation

  • Azure Data Factory
  • Apache Oozie
  • Sqoop

High Performance Computing

A large workload that requires a large number of cores, such as hundreds or thousands of numbering. Image rendering, fluid dynamics, financial risk modeling, oil exploration, drug design and stress analysis engineering


Computationally intensive tasks such as simulation and high-speed processing
Computational Operations distributed to a large number of computer CPUs
Calculation work that takes too long on one computer
Small computational tasks that run hundreds or thousands of times


“Parallel” processing achieves high performance
Leverage hundreds or thousands of computer cores to quickly handle large problems
Access dedicated, high-performance hardware through a dedicated high-speed InfiniBand network
You can subscribe to as many virtual machines (VMs) as you need to perform tasks and quit

Best practice

Azure Batch
Management services for running large HPC (high performance computing) applications
Use Azure Batch to configure VM pools, upload applications and data files

HPC Pack deployed on Azure
Completely create HPC clusters within Azure
Head node provides management and job scheduling services for clusters

HPC clusters burst into Azure
HPC Pack On-Premise Running, Using Azure VM for Burst Capacity
The cluster head node is an on-
On-premise and Azure V-Net connections to ExpressRoute or VPN Gateway

AApply Azure Batch

Learn more >

HPC Pack deployed on Azure

Learn more >

HPC clusters burst into Azure

Learn more >