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

Azure API Management
Azure API ManagementAzure API Management
Azure API Management
Daniel Toomey
 
Azure App Service
Azure App ServiceAzure App Service
Azure App Service
BizTalk360
 
Three layer API Design Architecture
Three layer API Design ArchitectureThree layer API Design Architecture
Three layer API Design Architecture
Harish Kumar
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
Kelvin Yeung
 
Microservices
MicroservicesMicroservices
Microservices
SmartBear
 
AWS Cloud Adoption Framework
AWS Cloud Adoption Framework AWS Cloud Adoption Framework
AWS Cloud Adoption Framework
Amazon Web Services
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
Amazon Web Services
 
Emerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
Emerging Trends in Hybrid-Cloud & Multi-Cloud StrategiesEmerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
Emerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
Chaitanya Atreya
 
App Modernisation with Microsoft Azure
App Modernisation with Microsoft AzureApp Modernisation with Microsoft Azure
App Modernisation with Microsoft Azure
Adam Stephensen
 
APIsecure 2023 - API orchestration: to build resilient applications, Cherish ...
APIsecure 2023 - API orchestration: to build resilient applications, Cherish ...APIsecure 2023 - API orchestration: to build resilient applications, Cherish ...
APIsecure 2023 - API orchestration: to build resilient applications, Cherish ...
apidays
 
Migrating On-Premises Databases to Cloud
Migrating On-Premises Databases to CloudMigrating On-Premises Databases to Cloud
Migrating On-Premises Databases to Cloud
Amazon Web Services
 
Architecture: Microservices
Architecture: MicroservicesArchitecture: Microservices
Architecture: Microservices
Amazon Web Services
 
Service mesh
Service meshService mesh
Service mesh
Arnab Mitra
 
Migrating to the Cloud
Migrating to the CloudMigrating to the Cloud
Migrating to the Cloud
Amazon Web Services
 
Cloud Migration Strategy Framework
Cloud Migration Strategy FrameworkCloud Migration Strategy Framework
Cloud Migration Strategy Framework
PT Datacomm Diangraha
 
Migrating thousands of workloads to AWS at enterprise scale
Migrating thousands of workloads to AWS at enterprise scaleMigrating thousands of workloads to AWS at enterprise scale
Migrating thousands of workloads to AWS at enterprise scale
Tom Laszewski
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
Nguyen Tung
 
Exposing services with Azure API Management
Exposing services with Azure API ManagementExposing services with Azure API Management
Exposing services with Azure API Management
Callon Campbell
 

What's hot (20)

Azure API Management
Azure API ManagementAzure API Management
Azure API Management
 
Azure App Service
Azure App ServiceAzure App Service
Azure App Service
 
Azure migration
Azure migrationAzure migration
Azure migration
 
Three layer API Design Architecture
Three layer API Design ArchitectureThree layer API Design Architecture
Three layer API Design Architecture
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
Microservices
MicroservicesMicroservices
Microservices
 
AWS Cloud Adoption Framework
AWS Cloud Adoption Framework AWS Cloud Adoption Framework
AWS Cloud Adoption Framework
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Emerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
Emerging Trends in Hybrid-Cloud & Multi-Cloud StrategiesEmerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
Emerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
 
App Modernisation with Microsoft Azure
App Modernisation with Microsoft AzureApp Modernisation with Microsoft Azure
App Modernisation with Microsoft Azure
 
APIsecure 2023 - API orchestration: to build resilient applications, Cherish ...
APIsecure 2023 - API orchestration: to build resilient applications, Cherish ...APIsecure 2023 - API orchestration: to build resilient applications, Cherish ...
APIsecure 2023 - API orchestration: to build resilient applications, Cherish ...
 
Cloud Migration Workshop
Cloud Migration WorkshopCloud Migration Workshop
Cloud Migration Workshop
 
Migrating On-Premises Databases to Cloud
Migrating On-Premises Databases to CloudMigrating On-Premises Databases to Cloud
Migrating On-Premises Databases to Cloud
 
Architecture: Microservices
Architecture: MicroservicesArchitecture: Microservices
Architecture: Microservices
 
Service mesh
Service meshService mesh
Service mesh
 
Migrating to the Cloud
Migrating to the CloudMigrating to the Cloud
Migrating to the Cloud
 
Cloud Migration Strategy Framework
Cloud Migration Strategy FrameworkCloud Migration Strategy Framework
Cloud Migration Strategy Framework
 
Migrating thousands of workloads to AWS at enterprise scale
Migrating thousands of workloads to AWS at enterprise scaleMigrating thousands of workloads to AWS at enterprise scale
Migrating thousands of workloads to AWS at enterprise scale
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Exposing services with Azure API Management
Exposing services with Azure API ManagementExposing services with Azure API Management
Exposing services with Azure API Management
 

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
 
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
 
Global Azure 2024 - On-Premises to Azure Cloud: .NET Web App Journey
Global Azure 2024 - On-Premises to Azure Cloud: .NET Web App JourneyGlobal Azure 2024 - On-Premises to Azure Cloud: .NET Web App Journey
Global Azure 2024 - On-Premises to Azure Cloud: .NET Web App Journey
Callon Campbell
 

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...
 
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
 
Global Azure 2024 - On-Premises to Azure Cloud: .NET Web App Journey
Global Azure 2024 - On-Premises to Azure Cloud: .NET Web App JourneyGlobal Azure 2024 - On-Premises to Azure Cloud: .NET Web App Journey
Global Azure 2024 - On-Premises to Azure Cloud: .NET Web App Journey
 

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

Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
ayushiqss
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 

Recently uploaded (20)

Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 

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.