SlideShare a Scribd company logo
Design
Designing
Microservices
Microservices and cloud native apps
The rise of cloud apps and Microservices
Why Microservices
Faster Time to Market = address customer needs
more rapidly w/ a more pliable product construction
& composition model
Lower Deployment Costs = change production live
with ultimate granularity
More Revenue Opportunities = can monetize all
aspects of the solution (services, data, rules) based on
more composability options
Business Drivers
Faster Time to Market = more flexible development
cycles (timing, tooling, deployment models)
Faster & More Precise Change Management =
Leverages advanced DevOps tactics for “live”
updates/rollbacks in production
Maximum Capacity = Infinite scale w/ code +
Azure services
Technical Drivers
What is a Microservice
App 1
1
2 4
3
App 1 App 2
Monolithic
application approach
Microservices
application approach
• Does one thing well (functionality driven)
• Is developed by a small cross-functional team
• Can be built with task-appropriate
languages/frameworks
• Communicates over well-defined
interfaces/protocols (lightweight)
• Has a unique logical name (URI) that can be
resolved
• Is independent code and configuration (&
optionally state)
• Deploys independently
• Scales independently
• Gets upgraded independently
Microservice applications are composed of small, independently versioned, and scalable customer-
focused services that communicate with each other over standard protocols with well-defined interfaces.
What is different – distributed state
The microservices approach has a graph of interconnected microservices where state is typically scoped
to the microservice and various technologies are used. Each microservice manages and stores its own
state.
Business value of Microservices
Faster time to market
Competitive differentiation
Improved collaboration
with partners
Workforce management
What a Microservice is not
• A service implemented with a small amount of code
• A simple API to a more complex service implemented as
part of a Monolithic application
• A service built and delivered without automation of testing
and deployment and operations
• A service built on mutable compute infrastructure that is
updated and patched separately from software deployment
• A service that has dependencies on its peers that prevent it
from being changed and updated independently
• A large, coarse-grained service or Monolithic set of services
packaged in a Docker container
• A service exposed via API by another party; a published API
• A component, module, service, or capability, labeled as a
“Microservice" by a vendor, over which you do not have
deployment and management control consistent with your
other Microservices
Service Oriented Architecture vs Microservices
Moving to the cloud
Refactoring a Monolith into Microservices
Refactoring a Monolith into Microservices
Refactoring a Monolith into Microservices
Microservices architectural view points
Microservices best practices
Microservices in Azure
Azure application platform
Benefits of Microsoft Azure PaaS
Microservice tools and approaches
• Unable to find a polyglot
solution that works
consistently
on-premises and cloud, on
Linux and Windows
• Difficult to scale quickly to
meet surging demands, roll
out upgrades faster with zero
downtimes, and be fault
resilient
• Need a prescriptive platform
approach to delivering
microservices; unable to get
started easily
• Delivering same
functionality to multiple
deployment environments
• Ensuring consistency and
avoiding dependency hell
• Unable to migrate and scale
apps while maintaining
compatibility
• Paying for VMs that are
always on to manage the
unpredictable scale of
processes in your apps
• Having to manage operating
system & security patch
updates
• Tightly coupling event-based
code into business logic of
enterprise apps
Microservice tools and approaches
Customizable, pick best-
of-breed solutions
Easy to build,
deploy, and manage
Microservices at scale
Quick ramp up, sub second
metering, zero ops
Bring your ownPrescriptive framework“Server-less”
Microservice tools and approaches
Build your ownPrescriptive platform for
hyperscale applications
Platform optimized for
developer productivity
Developer productivity Infrastructure control
Azure Container ServicesAzure Service FabricAzure Functions
Azure Functions
What is “serverless”?
Event-driven
scale
Sub-second
billing
Abstraction
of servers
How is it different?
Complex
framework
Micro-
functionality
Outside
client app
Inside client
app
Mono-lithic
application
Loosely
coupled
components
Why serverless?
• Stateless  Scale
• Not worth deploying a traditional backend
• Workload is sporadic (very low & high scale)
• Dev ops favored versus dedicated ops
• Lots of different services involved that need “glue”
Focus on business logicShip faster Reduced dev ops
Applications
Every 15 minutes Clean tableFind and clean invalid data
Applications
Photo taken and
WebHook called Stores in blob storage Produces scaled images
Loaded web page
calls WebHook
Completed pageCreate ad based on user profile
Applications
File added to
Blob Storage
Transform CSV to data rows
CSV
Power BI
Chart graphic
Applications
Excel file saved
to OneDrive
Microsoft Graph API analyzes content Creates new sheets
with charts
Integration
Store
record
Post new
invoice
Fetch Invoice
Grab raw
file
Convert to
JSON
API layer
API
Management
Logic App Function
Azure Service Fabric
Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable
and reliable microservices. Microservices can be developed in using the Service Fabric programming models, to
deploying guest executables and container images.
Azure Service Fabric
Microservices using Service Fabric
Microservices
Service Fabric
High Availability
Simple
Programming
Models
Hybrid
Operations
High
Density
Hyper-Scale
Rolling
Upgrades
Data Partitioning
Automated Rollback
Stateful
Services
Low Latency High Monitoring
Container Orchestration
& Lifecycle Management
Load Balancing
Self-Healing
Replication
& FailoverPlacement
Constraints
Fast Startup &
Shutdown
Windows Server Linux Windows Server Linux
Azure
Windows Server Linux
Private Clouds Hosted Clouds
Inside the Service Fabric Platform
Reliability Subsystem
Reliability, Availability,
Replication, Resource
Management
Management
Subsystem
Deployment, Upgrade
and Monitoring
Transport Subsystem
Secure point-to-point communication
Federation Subsystem
Federates a set of nodes to form a consistent scalable fabric
Communication
Subsystem
Reliable messaging and
service discovery
Native and Managed APIs
Hosting & Activation
Application Lifecycle
Application Model
Declarative Application Description
Reliable, Scalable, Manageable Scalable Applications
Microservices runtime
App1
App2
Handling server failures
Stateful microservice
Application
Package
Microservice upgrades
• Upgrade progresses one UD at a time
• Upgrade limited to the code/config
package that changed
Node
Node
NodeNode
Node
Node
Service
Package
B
Service
Package
A
Migrating a traditional application to Microservices
1)Traditional app
2)Hosted as guest executable or container in Service Fabric
3)With new microservices added alongside
4)Breaking into microservices
5)Transformed into microservices
The Container Revolution
Azure Container Service
• Simplest way to deploy your container
orchestration environment on Azure
• Agile, flexible, and provides choice of orchestrator
• Open source templates for provisioning your
environment
• Easy ramp up to an optimized enterprise grade
container management
• Kubernetes on Azure
Container Service (preview)
• DC/OS Upgrade to 1.8.4
• Open Source Azure
Container Service Engine
• Azure Container Registry (preview)
• VS, VSTS, and VS code integration and
deployment to Azure Container Service
Azure
Container
Registry
Azure Container Service
Azure Application Platform
Living with Microservices
Balance of responsibility
Balance of control and responsibility
depends on the category of the service
MOVE-IN READY
Use immediately with minimal configuration
SOME ASSEMBLY REQUIRED
Existing services are a starting point, with additional
configuration for a custom fit
BUILD FROM THE GROUND UP
Building blocks, create your own solution or apps from
scratch
Responsibility On-Prem IaaS PaaS SaaS
Applications
Data
Runtime
Middleware
O/S
Virtualization
Servers
Storage
Networking
MicrosoftCustomer
Ok, How to I get Started?
Readiness
• Azure
Learning
Paths
Prioritize
• Functional
Matrix
Document
• Models
(Current &
Future State)
Start
• Always On
Options for
You
Azure Learning Path:
https://azure.microsoft.com/en-us/documentation/learning-paths/service-fabric/
Functional Matrix
Service Overview
Business Value
(1 highest, 5 lowest)
Technical Complexity
(1 simple, 5 most complex)
Ranking
Decomposing Functionality of a Stable Architecture
Decomposition Approaches Service Bylaws
Decomposition Example via Functional Matrix
Service Overview
Business Value
(1 highest, 5 lowest)
Technical Complexity
(1 simple, 5 most complex)
Ranking
Shopping Cart
Bill Presentment, Shipping
Options, Packaging 1 4 4
Account Management
User Account Management,
Preferences, Payment History 1 4 4
Checkout Payment, Tracking 1 2 2
Inventory Management Inventory controls, Reorder 1 1 1
Campaign Management
Ad Management, Sales &
Promotions, Social Manger 1 5 5
…
High Ranking = Decompose Again
Decomposition Example via Functional Matrix
Service Overview
Business Value
(1 highest, 5 lowest)
Technical Complexity
(1 simple, 5 most complex)
Ranking
Shopping Cart
Bill Presentment, Shipping
Options, Packaging 1 4 4
Account Management
User Account Management,
Preferences, Payment History
Access/Auth Service Sign in / Access rights 1 1 1
PaymentHistory Service List all orders (shipped, returns, pending) 2 1 2
CustomizeSite
Adapts all pages to include users select
preferences 1 5 5
Checkout Payment, Tracking 1 2 2
Inventory Management Inventory controls, Reorder 1 1 1
Campaign Management
Ad Management, Sales &
Promotions, Social Manger 1 5 5
…
High Ranking = Decompose Again
Team Model
Role Responsibilities Deliverables # of Resources Skillset
Software Architecture
System architecture and
service model
Logical / Physical Design
Functional Matrix
1-2 / Project
Cloud Architect
API Architect
Operations
Create Dev, Test,
Production deployment
plan for new solution
DevOps Plan 1-2 / Project
Docker expertise
DevOps expertise
Developers App Builder
Web App / Service / Data
Structures, etc.
As Appropriate
As Needed for your
Solution
Quality Assurance
Test scripts for new
application architecture
Test Scripts 1-2 / Project
Bold = Potential Investment Areas
Architectural Modeling – Free Tools & Reference Models
• Solution / Logical:
https://azure.microsoft.com/
en-us/solutions/architecture/
• Physical:
https://docs.microsoft.com/
en-us/azure/architecture/
reference-architectures/
• Visio 2016 Stencil -
https://www.microsoft.com/en-
us/download/confirmation.aspx?id=41937
• Stencil organizers services into Azure
service groupings
Comparing App Architectures
Architectural Modeling
Monolithic Application Microservices Approach
Web App
Visual Studio Team
Services Build and Release Agent
Visual Studio Team
Services Build and Release Agent
Service Fabric
Blob Storage
Blob Storage
Architectural Modeling – Future Possibilities
Microservices Approach
Visual Studio Team
Services Build and Release Agent
Service Fabric
Blob Storage
PowerBI Machine Learning
Cognitive
Services
Q&A
Thank you!

More Related Content

What's hot

Migrate to Microsoft Azure with Confidence
Migrate to Microsoft Azure with ConfidenceMigrate to Microsoft Azure with Confidence
Migrate to Microsoft Azure with Confidence
David J Rosenthal
 
AZ-204T00A-PowerPoint_00.pptx
AZ-204T00A-PowerPoint_00.pptxAZ-204T00A-PowerPoint_00.pptx
AZ-204T00A-PowerPoint_00.pptx
JavierMadrigal29
 
Drive business outcomes using Azure Devops
Drive business outcomes using Azure DevopsDrive business outcomes using Azure Devops
Drive business outcomes using Azure Devops
Belatrix Software
 
AKS - Azure Kubernetes Services - kubernetes meetup may 2018
AKS - Azure Kubernetes Services  - kubernetes meetup may 2018AKS - Azure Kubernetes Services  - kubernetes meetup may 2018
AKS - Azure Kubernetes Services - kubernetes meetup may 2018
Jorge Arteiro
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
Amazon Web Services
 
Arm 기반의 AWS Graviton 프로세서로 구동되는 AWS 인스턴스 살펴보기 - 김종선, AWS솔루션즈 아키텍트:: AWS Summi...
Arm 기반의 AWS Graviton 프로세서로 구동되는 AWS 인스턴스 살펴보기 - 김종선, AWS솔루션즈 아키텍트:: AWS Summi...Arm 기반의 AWS Graviton 프로세서로 구동되는 AWS 인스턴스 살펴보기 - 김종선, AWS솔루션즈 아키텍트:: AWS Summi...
Arm 기반의 AWS Graviton 프로세서로 구동되는 AWS 인스턴스 살펴보기 - 김종선, AWS솔루션즈 아키텍트:: AWS Summi...
Amazon Web Services Korea
 
Azure Migrate
Azure MigrateAzure Migrate
Azure Migrate
Mustafa
 
Azure subscription management with EA and CSP
Azure subscription management with EA and CSPAzure subscription management with EA and CSP
Azure subscription management with EA and CSP
Daichi Isami
 
Welcome to Azure Devops
Welcome to Azure DevopsWelcome to Azure Devops
Welcome to Azure Devops
Alessandro Scardova
 
Azure Application Modernization
Azure Application ModernizationAzure Application Modernization
Azure Application Modernization
Karina Matos
 
Migrating On-Premises Workloads with Azure Migrate
Migrating On-Premises Workloads with Azure MigrateMigrating On-Premises Workloads with Azure Migrate
Migrating On-Premises Workloads with Azure Migrate
Dinusha Kumarasiri
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOps
GlobalLogic Ukraine
 
Azure DevOps in Action
Azure DevOps in ActionAzure DevOps in Action
Azure DevOps in Action
Callon Campbell
 
cloud-migrations.pptx
cloud-migrations.pptxcloud-migrations.pptx
cloud-migrations.pptx
John Mulhall
 
Event-driven microservices
Event-driven microservicesEvent-driven microservices
Event-driven microservices
Andrew Schofield
 
Azure Container Apps
Azure Container AppsAzure Container Apps
Azure Container Apps
Ken Sykora
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure Functions
Callon Campbell
 
Let's Talk About: Azure Networking
Let's Talk About: Azure NetworkingLet's Talk About: Azure Networking
Let's Talk About: Azure Networking
Pedro Sousa
 
The Beginner’s Guide To Spring Cloud
The Beginner’s Guide To Spring CloudThe Beginner’s Guide To Spring Cloud
The Beginner’s Guide To Spring Cloud
VMware Tanzu
 
Multitenancy on EKS
Multitenancy on EKSMultitenancy on EKS
Multitenancy on EKS
Ian Crosby
 

What's hot (20)

Migrate to Microsoft Azure with Confidence
Migrate to Microsoft Azure with ConfidenceMigrate to Microsoft Azure with Confidence
Migrate to Microsoft Azure with Confidence
 
AZ-204T00A-PowerPoint_00.pptx
AZ-204T00A-PowerPoint_00.pptxAZ-204T00A-PowerPoint_00.pptx
AZ-204T00A-PowerPoint_00.pptx
 
Drive business outcomes using Azure Devops
Drive business outcomes using Azure DevopsDrive business outcomes using Azure Devops
Drive business outcomes using Azure Devops
 
AKS - Azure Kubernetes Services - kubernetes meetup may 2018
AKS - Azure Kubernetes Services  - kubernetes meetup may 2018AKS - Azure Kubernetes Services  - kubernetes meetup may 2018
AKS - Azure Kubernetes Services - kubernetes meetup may 2018
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
 
Arm 기반의 AWS Graviton 프로세서로 구동되는 AWS 인스턴스 살펴보기 - 김종선, AWS솔루션즈 아키텍트:: AWS Summi...
Arm 기반의 AWS Graviton 프로세서로 구동되는 AWS 인스턴스 살펴보기 - 김종선, AWS솔루션즈 아키텍트:: AWS Summi...Arm 기반의 AWS Graviton 프로세서로 구동되는 AWS 인스턴스 살펴보기 - 김종선, AWS솔루션즈 아키텍트:: AWS Summi...
Arm 기반의 AWS Graviton 프로세서로 구동되는 AWS 인스턴스 살펴보기 - 김종선, AWS솔루션즈 아키텍트:: AWS Summi...
 
Azure Migrate
Azure MigrateAzure Migrate
Azure Migrate
 
Azure subscription management with EA and CSP
Azure subscription management with EA and CSPAzure subscription management with EA and CSP
Azure subscription management with EA and CSP
 
Welcome to Azure Devops
Welcome to Azure DevopsWelcome to Azure Devops
Welcome to Azure Devops
 
Azure Application Modernization
Azure Application ModernizationAzure Application Modernization
Azure Application Modernization
 
Migrating On-Premises Workloads with Azure Migrate
Migrating On-Premises Workloads with Azure MigrateMigrating On-Premises Workloads with Azure Migrate
Migrating On-Premises Workloads with Azure Migrate
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOps
 
Azure DevOps in Action
Azure DevOps in ActionAzure DevOps in Action
Azure DevOps in Action
 
cloud-migrations.pptx
cloud-migrations.pptxcloud-migrations.pptx
cloud-migrations.pptx
 
Event-driven microservices
Event-driven microservicesEvent-driven microservices
Event-driven microservices
 
Azure Container Apps
Azure Container AppsAzure Container Apps
Azure Container Apps
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure Functions
 
Let's Talk About: Azure Networking
Let's Talk About: Azure NetworkingLet's Talk About: Azure Networking
Let's Talk About: Azure Networking
 
The Beginner’s Guide To Spring Cloud
The Beginner’s Guide To Spring CloudThe Beginner’s Guide To Spring Cloud
The Beginner’s Guide To Spring Cloud
 
Multitenancy on EKS
Multitenancy on EKSMultitenancy on EKS
Multitenancy on EKS
 

Similar to Designing Microservices

Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
Matt Ray
 
Implementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architectureImplementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architecture
Davide Veronese
 
Micro services
Micro servicesMicro services
Micro services
Brian Perera
 
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)
Amazon Web Services
 
Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...
Lucas Jellema
 
Microsoft cloud continuum
Microsoft cloud continuumMicrosoft cloud continuum
Microsoft cloud continuum
Mathews Job
 
Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure
Doug Vanderweide
 
ArchitectNow - Migrating Legacy .NET Apps to Azure
ArchitectNow - Migrating Legacy .NET Apps to AzureArchitectNow - Migrating Legacy .NET Apps to Azure
ArchitectNow - Migrating Legacy .NET Apps to Azure
Kevin Grossnicklaus
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application Development
WaveMaker, Inc.
 
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
Ian Choi
 
App Modernisation with Microsoft Azure
App Modernisation with Microsoft AzureApp Modernisation with Microsoft Azure
App Modernisation with Microsoft Azure
Adam Stephensen
 
Innovation with Open Sources and App Modernization for Developers | Ian Y. Choi
Innovation with Open Sources and App Modernization for Developers | Ian Y. ChoiInnovation with Open Sources and App Modernization for Developers | Ian Y. Choi
Innovation with Open Sources and App Modernization for Developers | Ian Y. Choi
Vietnam Open Infrastructure User Group
 
Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and docker
Alex Ivy
 
Cloud Native Apps
Cloud Native AppsCloud Native Apps
Cloud Native Apps
David Chou
 
Introduction to Azure fundamentals of cloud.pptx
Introduction to Azure fundamentals of cloud.pptxIntroduction to Azure fundamentals of cloud.pptx
Introduction to Azure fundamentals of cloud.pptx
Nadir Arain
 
Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...
Jelastic Multi-Cloud PaaS
 
Cloud Computing101 Azure, updated june 2017
Cloud Computing101 Azure, updated june 2017Cloud Computing101 Azure, updated june 2017
Cloud Computing101 Azure, updated june 2017
Fernando Mejía
 
Evolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesEvolving your Architecture to MicroServices
Evolving your Architecture to MicroServices
Hector Tapia
 
Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure
Doug Vanderweide
 
Modern Architecture in the Cloud of 2018
Modern Architecture in the Cloud of 2018Modern Architecture in the Cloud of 2018
Modern Architecture in the Cloud of 2018
Marius Zaharia
 

Similar to Designing Microservices (20)

Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
 
Implementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architectureImplementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architecture
 
Micro services
Micro servicesMicro services
Micro services
 
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)
AWS re:Invent 2016: Workshop: Migrating Microsoft Applications to AWS (ENT216)
 
Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...
 
Microsoft cloud continuum
Microsoft cloud continuumMicrosoft cloud continuum
Microsoft cloud continuum
 
Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure
 
ArchitectNow - Migrating Legacy .NET Apps to Azure
ArchitectNow - Migrating Legacy .NET Apps to AzureArchitectNow - Migrating Legacy .NET Apps to Azure
ArchitectNow - Migrating Legacy .NET Apps to Azure
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application Development
 
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
 
App Modernisation with Microsoft Azure
App Modernisation with Microsoft AzureApp Modernisation with Microsoft Azure
App Modernisation with Microsoft Azure
 
Innovation with Open Sources and App Modernization for Developers | Ian Y. Choi
Innovation with Open Sources and App Modernization for Developers | Ian Y. ChoiInnovation with Open Sources and App Modernization for Developers | Ian Y. Choi
Innovation with Open Sources and App Modernization for Developers | Ian Y. Choi
 
Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and docker
 
Cloud Native Apps
Cloud Native AppsCloud Native Apps
Cloud Native Apps
 
Introduction to Azure fundamentals of cloud.pptx
Introduction to Azure fundamentals of cloud.pptxIntroduction to Azure fundamentals of cloud.pptx
Introduction to Azure fundamentals of cloud.pptx
 
Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...
 
Cloud Computing101 Azure, updated june 2017
Cloud Computing101 Azure, updated june 2017Cloud Computing101 Azure, updated june 2017
Cloud Computing101 Azure, updated june 2017
 
Evolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesEvolving your Architecture to MicroServices
Evolving your Architecture to MicroServices
 
Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure
 
Modern Architecture in the Cloud of 2018
Modern Architecture in the Cloud of 2018Modern Architecture in the Cloud of 2018
Modern Architecture in the Cloud of 2018
 

More from David Chou

Windows Phone app development overview
Windows Phone app development overviewWindows Phone app development overview
Windows Phone app development overview
David Chou
 
Microsoft AI Platform Overview
Microsoft AI Platform OverviewMicrosoft AI Platform Overview
Microsoft AI Platform Overview
David Chou
 
Designing Artificial Intelligence
Designing Artificial IntelligenceDesigning Artificial Intelligence
Designing Artificial Intelligence
David Chou
 
Immersive Computing
Immersive ComputingImmersive Computing
Immersive Computing
David Chou
 
Java on Windows Azure
Java on Windows AzureJava on Windows Azure
Java on Windows Azure
David Chou
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft Azure
David Chou
 
Combining Private and Public Clouds into Meaningful Hybrids
Combining Private and Public Clouds into Meaningful HybridsCombining Private and Public Clouds into Meaningful Hybrids
Combining Private and Public Clouds into Meaningful Hybrids
David Chou
 
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows AzureCloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
David Chou
 
Java on Windows Azure
Java on Windows AzureJava on Windows Azure
Java on Windows Azure
David Chou
 
Windows Azure AppFabric
Windows Azure AppFabricWindows Azure AppFabric
Windows Azure AppFabric
David Chou
 
Java on Windows Azure (Cloud Computing Expo 2010)
Java on Windows Azure (Cloud Computing Expo 2010)Java on Windows Azure (Cloud Computing Expo 2010)
Java on Windows Azure (Cloud Computing Expo 2010)
David Chou
 
Scale as a Competitive Advantage
Scale as a Competitive AdvantageScale as a Competitive Advantage
Scale as a Competitive Advantage
David Chou
 
Architecting Cloudy Applications
Architecting Cloudy ApplicationsArchitecting Cloudy Applications
Architecting Cloudy Applications
David Chou
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
David Chou
 
Kelley Blue Book and Cloud Computing
Kelley Blue Book and Cloud ComputingKelley Blue Book and Cloud Computing
Kelley Blue Book and Cloud Computing
David Chou
 
Windows Phone 7
Windows Phone 7Windows Phone 7
Windows Phone 7
David Chou
 
Silverlight 4 Briefing
Silverlight 4 BriefingSilverlight 4 Briefing
Silverlight 4 Briefing
David Chou
 
Architecting Solutions Leveraging The Cloud
Architecting Solutions Leveraging The CloudArchitecting Solutions Leveraging The Cloud
Architecting Solutions Leveraging The Cloud
David Chou
 
SOA And Cloud Computing
SOA And Cloud ComputingSOA And Cloud Computing
SOA And Cloud Computing
David Chou
 
Microsoft Cloud Computing - Windows Azure Platform
Microsoft Cloud Computing - Windows Azure PlatformMicrosoft Cloud Computing - Windows Azure Platform
Microsoft Cloud Computing - Windows Azure Platform
David Chou
 

More from David Chou (20)

Windows Phone app development overview
Windows Phone app development overviewWindows Phone app development overview
Windows Phone app development overview
 
Microsoft AI Platform Overview
Microsoft AI Platform OverviewMicrosoft AI Platform Overview
Microsoft AI Platform Overview
 
Designing Artificial Intelligence
Designing Artificial IntelligenceDesigning Artificial Intelligence
Designing Artificial Intelligence
 
Immersive Computing
Immersive ComputingImmersive Computing
Immersive Computing
 
Java on Windows Azure
Java on Windows AzureJava on Windows Azure
Java on Windows Azure
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft Azure
 
Combining Private and Public Clouds into Meaningful Hybrids
Combining Private and Public Clouds into Meaningful HybridsCombining Private and Public Clouds into Meaningful Hybrids
Combining Private and Public Clouds into Meaningful Hybrids
 
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows AzureCloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
 
Java on Windows Azure
Java on Windows AzureJava on Windows Azure
Java on Windows Azure
 
Windows Azure AppFabric
Windows Azure AppFabricWindows Azure AppFabric
Windows Azure AppFabric
 
Java on Windows Azure (Cloud Computing Expo 2010)
Java on Windows Azure (Cloud Computing Expo 2010)Java on Windows Azure (Cloud Computing Expo 2010)
Java on Windows Azure (Cloud Computing Expo 2010)
 
Scale as a Competitive Advantage
Scale as a Competitive AdvantageScale as a Competitive Advantage
Scale as a Competitive Advantage
 
Architecting Cloudy Applications
Architecting Cloudy ApplicationsArchitecting Cloudy Applications
Architecting Cloudy Applications
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
 
Kelley Blue Book and Cloud Computing
Kelley Blue Book and Cloud ComputingKelley Blue Book and Cloud Computing
Kelley Blue Book and Cloud Computing
 
Windows Phone 7
Windows Phone 7Windows Phone 7
Windows Phone 7
 
Silverlight 4 Briefing
Silverlight 4 BriefingSilverlight 4 Briefing
Silverlight 4 Briefing
 
Architecting Solutions Leveraging The Cloud
Architecting Solutions Leveraging The CloudArchitecting Solutions Leveraging The Cloud
Architecting Solutions Leveraging The Cloud
 
SOA And Cloud Computing
SOA And Cloud ComputingSOA And Cloud Computing
SOA And Cloud Computing
 
Microsoft Cloud Computing - Windows Azure Platform
Microsoft Cloud Computing - Windows Azure PlatformMicrosoft Cloud Computing - Windows Azure Platform
Microsoft Cloud Computing - Windows Azure Platform
 

Recently uploaded

Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 

Recently uploaded (20)

Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 

Designing Microservices

  • 3. The rise of cloud apps and Microservices
  • 4. Why Microservices Faster Time to Market = address customer needs more rapidly w/ a more pliable product construction & composition model Lower Deployment Costs = change production live with ultimate granularity More Revenue Opportunities = can monetize all aspects of the solution (services, data, rules) based on more composability options Business Drivers Faster Time to Market = more flexible development cycles (timing, tooling, deployment models) Faster & More Precise Change Management = Leverages advanced DevOps tactics for “live” updates/rollbacks in production Maximum Capacity = Infinite scale w/ code + Azure services Technical Drivers
  • 5. What is a Microservice App 1 1 2 4 3 App 1 App 2 Monolithic application approach Microservices application approach • Does one thing well (functionality driven) • Is developed by a small cross-functional team • Can be built with task-appropriate languages/frameworks • Communicates over well-defined interfaces/protocols (lightweight) • Has a unique logical name (URI) that can be resolved • Is independent code and configuration (& optionally state) • Deploys independently • Scales independently • Gets upgraded independently Microservice applications are composed of small, independently versioned, and scalable customer- focused services that communicate with each other over standard protocols with well-defined interfaces.
  • 6. What is different – distributed state The microservices approach has a graph of interconnected microservices where state is typically scoped to the microservice and various technologies are used. Each microservice manages and stores its own state.
  • 7. Business value of Microservices Faster time to market Competitive differentiation Improved collaboration with partners Workforce management
  • 8. What a Microservice is not • A service implemented with a small amount of code • A simple API to a more complex service implemented as part of a Monolithic application • A service built and delivered without automation of testing and deployment and operations • A service built on mutable compute infrastructure that is updated and patched separately from software deployment • A service that has dependencies on its peers that prevent it from being changed and updated independently • A large, coarse-grained service or Monolithic set of services packaged in a Docker container • A service exposed via API by another party; a published API • A component, module, service, or capability, labeled as a “Microservice" by a vendor, over which you do not have deployment and management control consistent with your other Microservices
  • 9. Service Oriented Architecture vs Microservices
  • 10. Moving to the cloud
  • 11. Refactoring a Monolith into Microservices
  • 12. Refactoring a Monolith into Microservices
  • 13. Refactoring a Monolith into Microservices
  • 18. Benefits of Microsoft Azure PaaS
  • 19. Microservice tools and approaches • Unable to find a polyglot solution that works consistently on-premises and cloud, on Linux and Windows • Difficult to scale quickly to meet surging demands, roll out upgrades faster with zero downtimes, and be fault resilient • Need a prescriptive platform approach to delivering microservices; unable to get started easily • Delivering same functionality to multiple deployment environments • Ensuring consistency and avoiding dependency hell • Unable to migrate and scale apps while maintaining compatibility • Paying for VMs that are always on to manage the unpredictable scale of processes in your apps • Having to manage operating system & security patch updates • Tightly coupling event-based code into business logic of enterprise apps
  • 20. Microservice tools and approaches Customizable, pick best- of-breed solutions Easy to build, deploy, and manage Microservices at scale Quick ramp up, sub second metering, zero ops Bring your ownPrescriptive framework“Server-less”
  • 21. Microservice tools and approaches Build your ownPrescriptive platform for hyperscale applications Platform optimized for developer productivity Developer productivity Infrastructure control Azure Container ServicesAzure Service FabricAzure Functions
  • 24. How is it different? Complex framework Micro- functionality Outside client app Inside client app Mono-lithic application Loosely coupled components
  • 25. Why serverless? • Stateless  Scale • Not worth deploying a traditional backend • Workload is sporadic (very low & high scale) • Dev ops favored versus dedicated ops • Lots of different services involved that need “glue” Focus on business logicShip faster Reduced dev ops
  • 26. Applications Every 15 minutes Clean tableFind and clean invalid data
  • 27. Applications Photo taken and WebHook called Stores in blob storage Produces scaled images Loaded web page calls WebHook Completed pageCreate ad based on user profile
  • 28. Applications File added to Blob Storage Transform CSV to data rows CSV Power BI Chart graphic
  • 29. Applications Excel file saved to OneDrive Microsoft Graph API analyzes content Creates new sheets with charts
  • 30. Integration Store record Post new invoice Fetch Invoice Grab raw file Convert to JSON API layer API Management Logic App Function
  • 31. Azure Service Fabric Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices. Microservices can be developed in using the Service Fabric programming models, to deploying guest executables and container images.
  • 33. Microservices using Service Fabric Microservices Service Fabric High Availability Simple Programming Models Hybrid Operations High Density Hyper-Scale Rolling Upgrades Data Partitioning Automated Rollback Stateful Services Low Latency High Monitoring Container Orchestration & Lifecycle Management Load Balancing Self-Healing Replication & FailoverPlacement Constraints Fast Startup & Shutdown Windows Server Linux Windows Server Linux Azure Windows Server Linux Private Clouds Hosted Clouds
  • 34. Inside the Service Fabric Platform Reliability Subsystem Reliability, Availability, Replication, Resource Management Management Subsystem Deployment, Upgrade and Monitoring Transport Subsystem Secure point-to-point communication Federation Subsystem Federates a set of nodes to form a consistent scalable fabric Communication Subsystem Reliable messaging and service discovery Native and Managed APIs Hosting & Activation Application Lifecycle Application Model Declarative Application Description Reliable, Scalable, Manageable Scalable Applications
  • 38. Microservice upgrades • Upgrade progresses one UD at a time • Upgrade limited to the code/config package that changed Node Node NodeNode Node Node Service Package B Service Package A
  • 39. Migrating a traditional application to Microservices 1)Traditional app 2)Hosted as guest executable or container in Service Fabric 3)With new microservices added alongside 4)Breaking into microservices 5)Transformed into microservices
  • 41. Azure Container Service • Simplest way to deploy your container orchestration environment on Azure • Agile, flexible, and provides choice of orchestrator • Open source templates for provisioning your environment • Easy ramp up to an optimized enterprise grade container management • Kubernetes on Azure Container Service (preview) • DC/OS Upgrade to 1.8.4 • Open Source Azure Container Service Engine • Azure Container Registry (preview) • VS, VSTS, and VS code integration and deployment to Azure Container Service Azure Container Registry
  • 45. Balance of responsibility Balance of control and responsibility depends on the category of the service MOVE-IN READY Use immediately with minimal configuration SOME ASSEMBLY REQUIRED Existing services are a starting point, with additional configuration for a custom fit BUILD FROM THE GROUND UP Building blocks, create your own solution or apps from scratch Responsibility On-Prem IaaS PaaS SaaS Applications Data Runtime Middleware O/S Virtualization Servers Storage Networking MicrosoftCustomer
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56. Ok, How to I get Started? Readiness • Azure Learning Paths Prioritize • Functional Matrix Document • Models (Current & Future State) Start • Always On Options for You
  • 58. Functional Matrix Service Overview Business Value (1 highest, 5 lowest) Technical Complexity (1 simple, 5 most complex) Ranking
  • 59. Decomposing Functionality of a Stable Architecture Decomposition Approaches Service Bylaws
  • 60. Decomposition Example via Functional Matrix Service Overview Business Value (1 highest, 5 lowest) Technical Complexity (1 simple, 5 most complex) Ranking Shopping Cart Bill Presentment, Shipping Options, Packaging 1 4 4 Account Management User Account Management, Preferences, Payment History 1 4 4 Checkout Payment, Tracking 1 2 2 Inventory Management Inventory controls, Reorder 1 1 1 Campaign Management Ad Management, Sales & Promotions, Social Manger 1 5 5 … High Ranking = Decompose Again
  • 61. Decomposition Example via Functional Matrix Service Overview Business Value (1 highest, 5 lowest) Technical Complexity (1 simple, 5 most complex) Ranking Shopping Cart Bill Presentment, Shipping Options, Packaging 1 4 4 Account Management User Account Management, Preferences, Payment History Access/Auth Service Sign in / Access rights 1 1 1 PaymentHistory Service List all orders (shipped, returns, pending) 2 1 2 CustomizeSite Adapts all pages to include users select preferences 1 5 5 Checkout Payment, Tracking 1 2 2 Inventory Management Inventory controls, Reorder 1 1 1 Campaign Management Ad Management, Sales & Promotions, Social Manger 1 5 5 … High Ranking = Decompose Again
  • 62. Team Model Role Responsibilities Deliverables # of Resources Skillset Software Architecture System architecture and service model Logical / Physical Design Functional Matrix 1-2 / Project Cloud Architect API Architect Operations Create Dev, Test, Production deployment plan for new solution DevOps Plan 1-2 / Project Docker expertise DevOps expertise Developers App Builder Web App / Service / Data Structures, etc. As Appropriate As Needed for your Solution Quality Assurance Test scripts for new application architecture Test Scripts 1-2 / Project Bold = Potential Investment Areas
  • 63. Architectural Modeling – Free Tools & Reference Models • Solution / Logical: https://azure.microsoft.com/ en-us/solutions/architecture/ • Physical: https://docs.microsoft.com/ en-us/azure/architecture/ reference-architectures/ • Visio 2016 Stencil - https://www.microsoft.com/en- us/download/confirmation.aspx?id=41937 • Stencil organizers services into Azure service groupings
  • 65. Architectural Modeling Monolithic Application Microservices Approach Web App Visual Studio Team Services Build and Release Agent Visual Studio Team Services Build and Release Agent Service Fabric Blob Storage Blob Storage
  • 66. Architectural Modeling – Future Possibilities Microservices Approach Visual Studio Team Services Build and Release Agent Service Fabric Blob Storage PowerBI Machine Learning Cognitive Services
  • 67. Q&A

Editor's Notes

  1. Craig
  2. You should address the following: - What - Why
  3. You should address the following: - What - Why
  4. http://aka.ms/tryservicefabric
  5. Nate We’ll be taking a look at the Service Fabrics Framework (An open source cluster manager you can start using to tackle refactoring monoliths.) ASF Orchestrator Application Partitioner Resource allocator Integrates with ALM tools Distributed systems platform Runs on Azure Runs on-prem Runs on other cloud provider’s platforms Runs on your dev machine!
  6. SPEAKER SCRIPT: (2:30) Service Fabric supports all of these patterns via its runtime vs. attempting to build/scale through devops and developer heroics “Your code” is support by a declarative app model and API for direct control and support. We will demo this in a sec, Each subsystem solves a problem space Management – controls state of the application (which version, health); integrates with VS 2017 Communication – node activation and interop Reliability Subsystem – keeps this running, scaling, and supporting your application Hosting & Activation Subsystem – spins up and down node as part of app lifecycle management Federation Subsystem – mirrors, rebuilds, scales application sets to increase reliability Transport Subsystem – secure point to point messaging between nodes (pattern #3)
  7. https://tryappservice.azure.com
  8. You should address the following: - What - Why
  9. SPEAKER SCRIPT: (:30) Discuss the outline for the session Readiness – discuss the online assets Prioritize – an approach to get your services organized, prioritize for a potential POC Document – free tools to document your app Start – Always On options for you
  10. SPEAKER SCRIPT: (2:00) Should this via a browser session, click on a few topics to show instructions, code, best practices
  11. The idea here is to provide a framework for determine which services should be created first. It also establishes a process for scoping additional services. This is effective in getting all stakeholders on the page. TODO: Add an example such as eCommerce to brainstorm on the best services to build first. Now that priority is set what is next?
  12. SPEAKER SCRIPT: (1:00) Now that we have prioritize the functionality we should like at how to decompose those into services. Discuss the 4 types of decomposition. **Might be a good time to be interactive and discuss which the audience likes better and why. ** Then talk about the driving factors for each service. TODO: condense this list or add a visual instead.
  13. SPEAKER SCRIPT: (1:00) Here is a following example of a decomposition or architectural model using a functional matrix. All the “1”’s are low hanging fruit. 2 may be good targets. 4 and above may be an opportunity for further refinement.
  14. SPEAKER SCRIPT: (1:00) I decomposed the Account Management service into more discrete services to help prioritize and identify more low hanging fruit for the POC/MVP.
  15. SPEAKER SCRIPT: (2:00) Microservices solutions will introduce more formal architecture, ops, and QA roles on your project.
  16. SPEAKER SCRIPT: (4:00) Open Visio and show the installed template. Drag-drop something you are comfortable with Show the content/reference logical and physical architectures available to help you get started.
  17. SPEAKER SCRIPT: (1:30) These assets/tools will help you compare and contrast options. To create your store front, you can try a Service Fabric, classic PAAS, or lift/shift your IAAS solution.