Today, the large public Clouds - Azure and AWS - deploy at high-speed a diversity of services and features. Between Azure Functions, Lambda, Event Grid, Simple Workflow Service or Logic Apps, what to choose? Shall I go on Microservices? Event-Driven? Lambda Architecture? Deploy on Serverless? Containers? Modern Compute? Let's put a bit of order in all that. Enter the Modern Architecture, the foundation of all the new wave of Cloud services and not only. Session focused on application and infrastructure architecture, live examples based on Cloud, perspectives and roadmap of the corresponding services at Microsoft.
3. 3 Azure Saturday 2018
Agenda
• Context and Challenges
• Definition and Perspectives
• Application Architecture Patterns
• Deployment Patterns
• Build and Compose
• Transformation
• Conclusion
4. 4
Meet the Team
Azure MVP & Advisor
AZUG FR Community
Marius Zaharia
Technical Manager Cloud, Cellenza
@lecampusazure
5. Diversification of services and models
Today, more and more
companies are planning to be or
are already in the cloud
The large Public Clouds - Azure
and AWS - deploy at high-speed
a diversity of services and
features
It becomes more and more
difficult to find a service or make
a clear choice
« For my internet facing web solution: Azure App
Service ? App Service for Containers ? Azure
Functions ? Or rather automated VMs? VM Scale
Sets ? A Kubernetes cluster with AKS ? »
6. Acceleration of architectural evolutions
towards new forms and patterns
Companies must be ready to apply these
new patterns in their implementations
Architectural Evolutions
« I have in-house machine clusters and Enterprise
Services Buses: what about the needs of our business
units to implement microservice APIs? »
7. Modern cloud services already used in
some companies, but without specific
recommendations
Cloud service developers or users do not
know the impact of these services in the
security context
Risks of Cloud Architecture Choices
« Azure Functions seems a very good solution for
my scenario. But is the service secure enough to
prevent access to users’ confidential data?»
credits : whitesource.com
8. with heavy architectural models come
heavy development and implementation
processes
low tooling and automation level
qualifications of the teams and their
work habits
Inadequate processes, tools and qualifications
« A new marketing campaign will have to be launched in one month -
infrastructure, development, deployment from scratch. Our teams
usually deliver under 6 months. How to answer? »
Credits: pxhere.com
10. Modern
Architecture
Cloud
Agile /
DevOps
Modern Architecture
Modern Architecture: This set of
concepts and models that make
applications:
• Faster to implement,
• More flexible and elastic,
• More economically efficient
It is based on two fundamental
pillars:
1. The Cloud
2. DevOps and Agile practices
11. Traditional / on-premises Modern / Cloud
Monolithic, centralized Decomposed, decentralized
Design for predictable scalability Design for elastic scale
Relational database Persistence polyglot
Strong consistency Possible consistency
Serial and synchronized processing Parallel and asynchronous processing
Design to avoid failures Design in case of failure
Large occasional updates Small frequent updates
Manual management Automated management
Approach comparizon
12. Modern Application
Architecture
• Microservices
• Event-Driven
• CQRS
• Modern Orchestration
• Lambda Architecture
• …
Modern Deployment
Architecture
• Serverless
• Containers
• Modern Compute
• Managed Containers
• …
Modern Architecture – 2 perspectives
New application patterns, or
models revisited in the context of
Cloud and DevOps
Innovative deployment models
made possible by the advent
of the Cloud
14. 14
Microservices
A software architecture model from which a
complex set of services is broken down into
several independent and loosely coupled
processes, often specialized in a single task.
Advantages Disadvantages
Agility Service limits
Reduced code, reduced
team Data Integrity
Mix of technologies Network congestion and latency
Elasticity Complexity
Scalability CI / CD / Automation
Data isolation Surveillance & monitoring
16. 16
CQRS
Command and Query Responsibility Segregation (CQRS) is
an architectural model that essentially separates read
operations from write operations.
Advantages Disadvantages
Independent scaling Complexity
Optimized data schemas Messaging
Security Eventual consistency
Separation of concerns
Simpler queries
17. 17
Other patterns
• Orchestration / modern workflow
• A process model consisting of sequential or parallel tasks that are based on connectors
(prebuilt)
• Lambda architecture
• A data-processing architecture designed to handle amounts of data by taking advantage
of batch and stream methods.
• Big Data
• Data architecture designed to handle the ingestion, processing, and analysis of large or
complex data for traditional database systems.
• Big Compute
• Architecture describing large-scale workloads that require a large number of CPUs / cores,
often hundreds or thousands, for mass computing
19. 19
Modern Compute
• “Compute” originally refers to the classic IaaS model (based on virtual
machines)
• These are still unmanaged resources at the base
• In exchange :
• Model enriched by additional features like :
automatic patching, change management, backup etc.
• These features fulfill a part of the platform’s managing
effort, while keeping the control
• Automated implementation of the individual operations
• Grouping of machines and scaling them together
20. 20
« Enhanced » PaaS
• PaaS (Platform-as-a-Service) is designed as a more modern pattern
than the IaaS from which it is derived
• We still reason in terms of instances, but they are managed at the OS
level and/or middleware level
• In addition, PaaS evolves and is enriched by many configurations and
services, such as:
• Identity / authentication / authorization, backup
• Domain management, push notifications for mobile
• Automatic deployment, multi-slots
• Advanced monitoring and troubleshooting,
performance testing
21. 21
Serverless
Serverless Computing is a deployment and execution model in which
the service provider dynamically manages (and bills) the allocation of
machine resources for each execution.
Serverless is NOT just Function-as-a-Service
Advantages Disadvantages
Transparent scaling Performance
Operations Limitation of resources
Productivity Eventual consistency
Cost Monitoring and troubleshooting
22. 22
Containers
Containerization refers to a feature of the operating system in
which the kernel allows the existence of multiple isolated user
space instances, named containers.
Programs running in a container can only see the contents of the
container and the devices assigned to the container.
23. 23
Containers – derived patterns
• Managed Containers
• Orchestrator managed by the service provider
• Serverless Containers
• Serverless model but using containers for deployment
24. Classic vs modern deploymentpatterns
Bare Metal
IaaS
PaaS
Modern
Compute
Containers
Serverless
Managed
Containers
Serverless
Containers
Modern models:
• Serverless, Containers,
• Modern Compute,
• ("Enhanced") PaaS
Composite models:
• Managed Containers
• Serverless Containers
Future models:?
?
?
?
?
26. Modern Patterns in Azure Services
Azure
Functions
Event Grid Logic Apps
Kubernetes
Service (AKS)
Container
Instances
(ACI)
Service
Fabric Cosmos
DB
Durable
Functions
Stream
Analytics
Event-Driven
Microservices
Modern
Orchestration
Lambda
Architecture
NoSQL
The applicability of the
patterns is multiple; which
complicates the classification
and associations of the
models.
• We will use choice and
decision matrices
……
…….
27. 27
Modern Services in Azure
•Virtual Machines is an IaaS service that allows you to
deploy and manage virtual machines within a virtual
network (VNET).
•Virtual Machines Scale Sets (VMSS) is an IaaS service
that allows you to deploy one or more (thousands) of
virtual machines in an elastic scaling mode.
For very powerful
features around:
patch
management,
change tracking,
elastic scaling and
automation
Modern
Compute
•Azure Batch is a managed service that allows you to run
high-performance computing (HPC) and parallel
computing applications on a large scale.
28. 28
Modern Services in Azure
•App Service is a managed (PaaS) service for hosting
web applications (Web Apps), mobile applications or
RESTful APIs
"Enhanced" PaaS
For high added value
features
For combining PaaS with
the versatility of
containers
•Web App for Containers is a managed (PaaS) service
for web application hosting (Web Apps) based on
container deployment model.
Containers
"Enhanced" PaaS
CQRS
29. 29
Modern Services in Azure
•Azure Functions is a “Function-as-a-Service” managed
service. This service is hosted by App Service but is based
on a Serverless model via a special App Service Plan called
Consumption
Event-Driven
Serverless
For using triggers and
bindings, combined with
code
•Azure Functions for Linux is a “Function-as-a-Service”
managed service, to which deployment model relies on
Docker containers on Linux
Event-Driven
Serverless
Containers
For using triggers and
bindings, combined with
containers
Microservices
Microservices
30. 30
Modern Services in Azure
For high added value
features
Event-Driven
Modern
Orchestration
Serverless
For lightweight but very
powerful workflows
•Logic Apps is a managed service for implementing and
hosting automated business processes.
•Logic Apps is based a lot on predefined connectors or
on standardized graphical actions.
•Durable Functions is a managed serverless service for
implementing and hosting business processes or
custom actions that are implemented through code.
Event-Driven
Modern
Orchestration
Serverless
31. 31
Modern Services in Azure
•Azure Event Grid is a events type service by linking
producers (Azure services, but also custom apps) with
consumers (Azure services or your code) Event-Driven
Serverless
For the intensive use of
the event-driven model
•Stream Analytics is a service based on an event engine
capable of processing, filtering, directing events streams in
real time
Event-Driven
For fast and powerful
processing of real time
events
Archi. Lambda
32. 32
Modern Services in Azure
•Azure Kubernetes Service (AKS) allows creating, configuring,
and managing a cluster of preconfigured virtual machines for
running container-based applications in an orchestrated mode.
•Azure Container Instances allows to create, configure and
manage individual containers directly. The hosting OS is
managed behind. The provisioning cluster is completely
transparent.
Managed
Containers
Microservices
Serverless
Containers
Microservices
For the fine
granularity of services
For the simplicity and
speed to create a
container
33. 33
Modern Services in Azure
•Service Fabric is a application orchestrator service that
can run on many platforms and allows running
microservices (stateless or stateful) as executables, or
containers on a highly scalable cluster of machines.
•Service Fabric Mesh is an Azure serverless offer based
on the Service Fabric engine and fully managed by
Azure. For a very powerful and
scalable platform
Managed
Containers
Microservices
•Cosmos DB is a fully managed non-relational database
(NoSQL) that allows global distribution, high availability
and controllable consistency in a very granular way. "Enhanced" PaaS
NoSQL
For its wealth of features
and the premium level of
service
Serverless*
35. 35
Choice Matrix – Compute Services
Criteria
Virtual
Machines App Service Service Fabric Azure Functions
Azure Kubernetes
Service
Container
Instances Azure Batch
Application
composition
Agnostic Applications Services, guest
executables,
containers
Functions Containers Containers Scheduled jobs
Density Agnostic Multiple apps
per instance via
app plans
Multiple
services per VM
No dedicated
instances
Multiple
containers per VM
No dedicated
instances
Multiple apps
per VM
Minimum number
of nodes
1 1 5 No dedicated
nodes
3 No dedicated
nodes
1
State management Stateless or
Stateful
Stateless Stateless or
stateful
Stateless Stateless or
Stateful
Stateless Stateless
OS Windows,
Linux
Windows, Linux Windows, Linux Not applicable Windows
(preview), Linux
Windows,
Linux
Windows, Linux
Can be deployed to
dedicated VNet?
Supported Supported Supported Supported Not Supported Not supported Supported
Hybrid
connectivity
Supported Supported Supported Supported Supported Not supported Supported
43. 44
Transformation Steps
Lift & Shift
Migration of the
VMs in the actual
state
Optimization
Actions on
configurations and
levers to optimize
consumption,
simplify complexity,
...
Modernization
Deep change in
application
architecture to
apply native cloud
concepts
47. Conclusion
• The Modern Architecture represents the Best (services)
of the Cloud
But: must understand well the Cloud and do the right
choices
• If coming from legacy, the optimal transformation process
is fundamental
It’s not only technique, but also organization