SlideShare a Scribd company logo
1 of 37
Download to read offline
Using Microsoft for Microservices
Presenter: Chase Q. Aucoin
PRESENTATION MAP
Our hope is that at the end of this your mind
will be racing with questions and ideas
2
What Is a Microservice
Business Domains
Business Agility
Teams & Organization
Building Services
Health & Monitoring
Questions & Answers
Where Does UI Fit?
Testing & Deployment
Failure as a Service
Simply put: It’s a self contained, domain specific, service
What is a Microservice
Using Microsoft for Microservices 4
When you hear the term cloud you probably think
a place. When we say cloud we mean a set of
patterns and practices. These patterns and
practices work regardless of hosted providers or
on premises deployments.
What Does Cloud mean?
Cloud Services are available on demand. Whether
that is VMs, File Storage, or Data Processing
On Demand
Cloud services are distributed across many fault
zones to ensure high uptime.
Distributed
In a cloud scenario building applications that can
scale horizontally is favored to the traditional
approach of increasing the size of compute
resources. This allows for “infinite” scalability.
Horizontal Scale
Because of the transient nature of resources in a
cloud environment services assume that they will fail
instead of assuming they will always exist.
Built To Fail
Lose coupling between components allows easy
transitions between implementations and locality of
a given resource.
Loosely Coupled
Where possible use existing built technical
resources to provide the highest levels of
productivity and reduce operations complexity.
Favor Existing Technical Solutions
Using Microsoft for Microservices 5
Traditional when we think of a service we think of an in process body of code that has
methods. Sometimes we mean the actual deployable “windows service”. Sometimes we
think of it as a worker process that is servicing something on a continuous loop.
During this presentation we mean an application that does the “heavy lifting” of
responding to a clients request.
What is a service
Using Microsoft for Microservices
Traditional 3-Tier Architecture
Client - Presentation
Service – Business Logic
Data - Database
Using Microsoft for Microservices 7
The monolith is ancient. It contains all knowledge. It succeeds as one. It fails as
one.
The Monolith
Most monolithic application start from a need to get business value out quickly.
They are typically feature driven and more often than not built in an
environment of tight deadlines and high expectations. It is only in hindsight as
productivity slows, and the pace of innovation declines that we question its
nature. Most times at this point it has become so engrained into its place within
a business that changing its nature seems like an impossible task.
It is not impossible, but it does take work.
Using Microsoft for Microservices 8
You only have to deploy and manage one
application
Single Deployable
Cloud services are distributed across many fault
zones to ensure high uptime.
Initial Agility Is High
You can change large amounts of the source all in
one place. This could also be considered a con in
most scenarios.
Simplifies Make Broad Changes
Feature A that is part of one domain may be ready
to go but other features in other domains may have
committed code that are not ready for deployment
into a production environment
Inconsistent State
As you move the application through the delivery
pipeline you have to test the entire surface area of
the application.
Testing
You cannot scale the areas of the application that
are creating “hot zones” independently making for
difficult management scenarios both technically and
also with your consumers.
Scale
Deployable Service or Data
Feature A
Feature B
Feature C
Feature D
Feature E
Feature F
Monolithic ApplicationAdvantages Challenges
Using Microsoft for Microservices 9
“I don’t need to know everything. I just need to know where to find it when I
need it.” Albert Einstein
Microservices
Microservices instead of being solely focused on features. Are focused on a
given business or technical domain or “bounded context” that they operate in.
This nature allows us to have laser focus on business need. It also allows us to
speak the same language as the business and delivery applications in a more
meaningful and rapid way in a large scale application set.
Using Microsoft for Microservices 10
If one service fails it does not bring down the entire
application stack. Worst case scenario loss of a
single set of functionality is lost until recovered.
Physically Decoupled
You only have to test one domain. This does require
an adherence to some SOLID principals for best
results.
Testing
Easily scale a specific potion of the application that
needs to scale. Likewise you can scale delivery
teams more reliably providing more types of
functionality going out in parallel.
Scale
Embracing a Microservice paradigm for software
delivery usually means shift mentality within the
organization about how to deliver software.
Requires Culture Shift
Since there are more moving parts that means there
is ultimately more to have to keep track of. This is
where automation is important.
Large Footprint
It is usually slow initially for the organization to shift
culture and get it’s processes in place
Initial Agility Is Slower
Deployable Domain
Service A
Data A
Microservice ApplicationAdvantages Challenges
Deployable Domain
Service B
Data B
Deployable Domain
Service C
Data C
Deployable Domain
Service D
Data D
Using Microsoft for Microservices 11
Advocates fewer services but doesn’t suggest what
the bounding of those service are. Services are
typically very “smart”
Fewer Components
The logic for a feature may be scattered across
many domains.
Logic Across Many Domains
Mulesoft, Biztalk, Corba, EJB
Middleware Required
Service a scoped within the bounds of a given
domain.
Many Small Components
Typically the business logic for doing an atomic body
of work lives within a single service.
Business Logic Per Service
Service are exposed via simple wire protocols such
as HTTP with JSON with API gateways creating high
levels of interoperability across BU’s
API Driven
Isn’t This Just SOA?SOA Microservices
Sort of..
Conceptually the 2 are similar, but SOA tends
to be a loaded term that may be defined
drastically different form one person to the
next.
In our experience SOA becomes a vehicle for:
• Selling expensive over-complicated software
(ESBs, BPM tools, ERP, Service Registries Etc..),
• Long business process modeling initiatives
• Large checks with little to no tangible ROI
How do we think about services in relation to the business
Business Domains
Using Microsoft for Microservices
What is a Business Domain?
An area of the business that tends to use similar taxonomy/terminology to describe a
business/technical need or value proposition.
1
Focuses on the management
and information retrieval of
Employees
Employees
2
Focuses on the tracking and
management of projects
Projects
3
Focuses on the logging of events
in the system
Logging
4
Focuses on the authentication
of users into the system (Identity
management)
Authentication
Using Microsoft for Microservices
Why we organize Microservices by domain?
It does a few things for us.
• Enables us to speak in a common language with the business alleviating miscommunication
• Allows us to create end to end ownership for a team
• The business and engineers work closer allowing for rapid ideation, validation, and iteration
• Create highly concurrent deployment scenarios
• Create isolation. Services only have to care about what is happening within their domain without being
bogged down by having to know everything all the time
• Alleviates paralysis by analysis
Scaling teams is just as important as scaling software
Teams & Organization
Using Microsoft for Microservices
Conways Law
organizations which design systems ... are constrained to produce
designs which are copies of the communication structures of these
organizations.
“
“
Melvin Edward Conway PhD | Rockwell Semiconductor
Business Team
UI Team
Service Team
Data Team
Using Microsoft for Microservices
Inverse Conways Law
Organizations which design systems ... Are encouraged to create
communication structures that produce the desired designs for the
systems.
“
“
David Pitt | Keyhole Software
Domain A Team
Domain B Team
Domain C Team
Domain D Team
Using Microsoft for Microservices 18
Siloed teams leads to siloed application architecture.
Limiting holistic knowledge of a give domain within
the business.
Siloed Teams
Difficult to scale teams to meet the demands of the
business.
Limited Scalability
Too much time is spent transferring knowledge
between the layers so everyone has to know
everything all the time. This hinders the
effectiveness of delivery.
Productivity
Each delivery team knows exactly what it needs in
order to get it’s products into production end to
end.
Cross Functional Teams
Teams can easily be distributed across BU’s and as
new domains are required new teams can be on-
boarded to meet demand without limiting existing
teams.
Highly Scalable
Once the cross functional team hits it’s stride new
features can be production ready in days not
months.
Highly Productive
Conways LawSOA/Monolith Microservices
organizations which design systems ... are
constrained to produce designs which are copies of
the communication structures of these
organizations.
“
“
Melvin Edward Conway PhD | Rockwell Semiconductor
Delivering more, faster, with automation and collaboration
Business Agility
Using Microsoft for Microservices
How Can We Create More Value Across Our Organization?
Reuse applications that we have already built value in to create value across all of our
business units.
Microservice facilitate this because at their heart they are just APIs.
Using Microsoft for Microservices 21
“I think of novels in architectural terms. You have to enter at the gate, and this
gate must be constructed in such a way that the reader has immediate
confidence in the strength of the building.”” Ian Mcewan
API Gateways
A strong gateway is incredibly valuable within an organization. It allows your
work to be self documenting and creates scenarios for pull instead of push
during cross collaboration. It enables us to leverage our existing code over and
over in new and novel ways.
Beyond Conceptual: how do we put it together?
Building Services
Using Microsoft for Microservices 23
What are the pieces that enable
us to create Microservices in our
organization?
Technical Components
Using Microsoft for Microservices 24
Since our services are so widely
distributed we need to know when
one is failing and pull it out of load to
alleviate stress during peak load.
Circuit Breaker
Service Fabric – Built In
Polly
Service Fabric - Name Service
WCF – Discovery Service
Azure – Service Bus
The service registry lets services find
each other at run time without
having to know in advance where
service are located.
Service Registry
Using JavaScript/HTML and
frameworks like backbone or angular
powered by services requested via
AJAX through the API gateway
SPA Front-End
Angular
Backbone
Ember
React
Web API with Swagger
Azure – API Gateway
Mashery
Mulesoft
The gateway is the entry point to
serve up client requests via an HTTP
based API for maximum
interoperability
API gateway
Using Microsoft for Microservices 25
TFS – Release Management
Jenkins
TeamCity
Service Fabric
Docker
The biggest key to the successful
implementation of the Microservice
paradigm is to automate as much of
the delivery cycle.
Continuous Delivery
Messaging increases asynchrony
across the system and enables
patterns such as CQRS, Pipes &
Filters, and Subscription Based
Extension
Messaging
Azure – Service Bus
RabbitMQ
Service Fabric – Built In
Azure - Application Insights
Operations Management Suite
ELK Stack
Log aggregation allows you to see
what’s going on across your services
at a glance.
Log Aggregation
Nuget lets us manage the packaging
and delivery of shared libraries within
the enterprise
NuGet
ProGet
MyGet
Nuget.Server
Using Microsoft for Microservices
SPA SPA SPA SPA
API Gateway API Gateway API Gateway API Gateway
Auth Primary Auth Secondary Auth Secondary Employee Primary
Employee SecondaryEmployee Secondary Project Primary Project Secondary
Project Secondary
Using Microsoft for Microservices
Project DAL
Project Service
Project API
[Project]
Appointment DAL
Appointment Service
Appointment API
[Appointment]
Employee DAL
Employee Service
Employee API
[Employee]
SQL Server Mongo/3Rd Party API
Sample Architecture
Authorization
Authentication
Service Fabric
Application Insights
TFS/ Release Management
Moving away from rendered views
How Does UI Fit?
Using Microsoft for Microservices
How do we think differently about UI in this paradigm?
• The UI is just another consumer of services
• The UI should go on a separate cadence as the services as it wil be the slowest to move through the
business process and the least impactful to system stability
• Favor simple HTML and Javascript modules
Best practices to make launching the most boring part of the cycle
Testing & Deployment
Using Microsoft for Microservices
What should we keep in mind for testing?
• Automate service testing and make it part of the CI/CD process
• Keep the testing surface area limited to the domain that is being published.
• Isolate a domain specific automated integration testing environment for regression that can be drop
and recreated during the delivery process.
Using Microsoft for Microservices
Containers
• Instead of delivering “code” deliver containers.
• Docker and Service Fabric are excellent choices for containerization.
• Have an automated rollback strategy as part of deployment. This is built into Service Fabric
• Configuration should be injected at runtime or via container configuration
• Storage mechanisms should be durable and movable in case of failure. Good choices include vSphere
disk virtualization or Azure File Storage mounted as a drive at application startup.
Keeping your system healthy after launch
Health & Monitoring
Using Microsoft for Microservices
How do we keep services healthy?
• Leverage tools like Application Insights and ELK stack
• Use your hosting platforms built in health tools. Service Fabric, IIS, Azure all have customizable health
metrics.
Dealing with mission critical failure before it ever happens
Failure As A Service
Using Microsoft for Microservices
What is failure as a service?
• Use tools like Keyhole Trouble Maker or Built in Service Fabric tools to randomly stop applications in
production
• If your apps are able to handle this continual shutting off of parts of the system you can sleep easy at
night knowing that the system is stable.
Failure As A Service
Dealing with mission critical failure before it happens
Question & Answers

More Related Content

What's hot

RapidScale Company Presentation
RapidScale Company PresentationRapidScale Company Presentation
RapidScale Company PresentationRapidScale
 
Microsoft Azure For Solutions Architects
Microsoft Azure For Solutions ArchitectsMicrosoft Azure For Solutions Architects
Microsoft Azure For Solutions ArchitectsRoy Kim
 
App Modernisation with Microsoft Azure
App Modernisation with Microsoft AzureApp Modernisation with Microsoft Azure
App Modernisation with Microsoft AzureAdam Stephensen
 
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...Kai Wähner
 
Parallels RAS - Application Virtualization & VDI Solution
Parallels RAS - Application Virtualization & VDI SolutionParallels RAS - Application Virtualization & VDI Solution
Parallels RAS - Application Virtualization & VDI SolutionGIORGIO BONUCCELLI
 
Data Center Modelling
Data Center ModellingData Center Modelling
Data Center ModellingElastra
 
AppSphere 15 - Microsoft Azure for Developers & DevOps
AppSphere 15 - Microsoft Azure for Developers & DevOpsAppSphere 15 - Microsoft Azure for Developers & DevOps
AppSphere 15 - Microsoft Azure for Developers & DevOpsAppDynamics
 
Cloud First: Be Prepared
Cloud First: Be PreparedCloud First: Be Prepared
Cloud First: Be PreparedAlan Eardley
 
Hyper Stratus Migrating Applications to the Cloud
Hyper Stratus Migrating Applications to the CloudHyper Stratus Migrating Applications to the Cloud
Hyper Stratus Migrating Applications to the Cloudbhgolden
 
Running an erlang based messaging system on AWS
Running an erlang based messaging system on AWSRunning an erlang based messaging system on AWS
Running an erlang based messaging system on AWSLahav Savir
 
Best Practice Public Cloud Security
Best Practice Public Cloud SecurityBest Practice Public Cloud Security
Best Practice Public Cloud SecurityJason Singh
 
Migrating Existing ASP.NET Web Applications to Microsoft Azure
Migrating Existing ASP.NET Web Applications to Microsoft AzureMigrating Existing ASP.NET Web Applications to Microsoft Azure
Migrating Existing ASP.NET Web Applications to Microsoft AzureIlyas F ☁☁☁
 
AWS Summit 2014 - Melbourne - Keynote by Mike Clayville
AWS Summit 2014 - Melbourne - Keynote by Mike ClayvilleAWS Summit 2014 - Melbourne - Keynote by Mike Clayville
AWS Summit 2014 - Melbourne - Keynote by Mike ClayvilleAmazon Web Services
 

What's hot (20)

Seminar report on microsoft azure
Seminar report on microsoft azureSeminar report on microsoft azure
Seminar report on microsoft azure
 
An Overview of Windows Azure
An Overview of Windows AzureAn Overview of Windows Azure
An Overview of Windows Azure
 
SAP virtualization
SAP virtualizationSAP virtualization
SAP virtualization
 
RapidScale Company Presentation
RapidScale Company PresentationRapidScale Company Presentation
RapidScale Company Presentation
 
Microsoft Azure For Solutions Architects
Microsoft Azure For Solutions ArchitectsMicrosoft Azure For Solutions Architects
Microsoft Azure For Solutions Architects
 
Windows Azure Platform Overview
Windows Azure Platform OverviewWindows Azure Platform Overview
Windows Azure Platform Overview
 
App Modernisation with Microsoft Azure
App Modernisation with Microsoft AzureApp Modernisation with Microsoft Azure
App Modernisation with Microsoft Azure
 
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
 
Parallels RAS - Application Virtualization & VDI Solution
Parallels RAS - Application Virtualization & VDI SolutionParallels RAS - Application Virtualization & VDI Solution
Parallels RAS - Application Virtualization & VDI Solution
 
Data Center Modelling
Data Center ModellingData Center Modelling
Data Center Modelling
 
AppSphere 15 - Microsoft Azure for Developers & DevOps
AppSphere 15 - Microsoft Azure for Developers & DevOpsAppSphere 15 - Microsoft Azure for Developers & DevOps
AppSphere 15 - Microsoft Azure for Developers & DevOps
 
Cloud First: Be Prepared
Cloud First: Be PreparedCloud First: Be Prepared
Cloud First: Be Prepared
 
Hyper Stratus Migrating Applications to the Cloud
Hyper Stratus Migrating Applications to the CloudHyper Stratus Migrating Applications to the Cloud
Hyper Stratus Migrating Applications to the Cloud
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Running an erlang based messaging system on AWS
Running an erlang based messaging system on AWSRunning an erlang based messaging system on AWS
Running an erlang based messaging system on AWS
 
Best Practice Public Cloud Security
Best Practice Public Cloud SecurityBest Practice Public Cloud Security
Best Practice Public Cloud Security
 
Cloud Computing - PaaS
Cloud Computing - PaaSCloud Computing - PaaS
Cloud Computing - PaaS
 
Migrating Existing ASP.NET Web Applications to Microsoft Azure
Migrating Existing ASP.NET Web Applications to Microsoft AzureMigrating Existing ASP.NET Web Applications to Microsoft Azure
Migrating Existing ASP.NET Web Applications to Microsoft Azure
 
Cloud architecture
Cloud architectureCloud architecture
Cloud architecture
 
AWS Summit 2014 - Melbourne - Keynote by Mike Clayville
AWS Summit 2014 - Melbourne - Keynote by Mike ClayvilleAWS Summit 2014 - Melbourne - Keynote by Mike Clayville
AWS Summit 2014 - Melbourne - Keynote by Mike Clayville
 

Viewers also liked

Building mental models
Building mental modelsBuilding mental models
Building mental modelsEmily Kissner
 
Rez gateway (RezOS) innovate the future
Rez gateway  (RezOS) innovate the futureRez gateway  (RezOS) innovate the future
Rez gateway (RezOS) innovate the futureindikaMaligaspe
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...OpenWhisk
 
DOXLON November 2016: Facebook Engineering on cgroupv2
DOXLON November 2016: Facebook Engineering on cgroupv2DOXLON November 2016: Facebook Engineering on cgroupv2
DOXLON November 2016: Facebook Engineering on cgroupv2Outlyer
 
Cloud adoption patterns
Cloud adoption patternsCloud adoption patterns
Cloud adoption patternsKyle Brown
 
Zero to Hero: Getting started with DVCS
Zero to Hero: Getting started with DVCSZero to Hero: Getting started with DVCS
Zero to Hero: Getting started with DVCSAtlassian
 
Database2011 MySQL Sharding
Database2011 MySQL ShardingDatabase2011 MySQL Sharding
Database2011 MySQL ShardingMoshe Kaplan
 
Interact Differently: Get More From Your Tools Through Exposed APIs
Interact Differently: Get More From Your Tools Through Exposed APIsInteract Differently: Get More From Your Tools Through Exposed APIs
Interact Differently: Get More From Your Tools Through Exposed APIsKevin Fealey
 
Using NLP to find contextual relationships between fashion houses
Using NLP to find contextual relationships between fashion housesUsing NLP to find contextual relationships between fashion houses
Using NLP to find contextual relationships between fashion housesSushant Shankar
 
Delphi XE2, door André Mussche op de 4DotNet Developers Day
Delphi XE2, door André Mussche op de 4DotNet Developers DayDelphi XE2, door André Mussche op de 4DotNet Developers Day
Delphi XE2, door André Mussche op de 4DotNet Developers DayHanneke Dotnet
 
Cohesive SDN Summit Presentation: OpenFlow is SDN, SDN is not OpenFlow
Cohesive SDN Summit Presentation: OpenFlow is SDN, SDN is not OpenFlowCohesive SDN Summit Presentation: OpenFlow is SDN, SDN is not OpenFlow
Cohesive SDN Summit Presentation: OpenFlow is SDN, SDN is not OpenFlowCohesive Networks
 
Next-gen Network Telemetry is Within Your Packets: In-band OAM
Next-gen Network Telemetry is Within Your Packets: In-band OAMNext-gen Network Telemetry is Within Your Packets: In-band OAM
Next-gen Network Telemetry is Within Your Packets: In-band OAMFrank Brockners
 
Dashboards: Using data to find out what's really going on
Dashboards: Using data to find out what's really going onDashboards: Using data to find out what's really going on
Dashboards: Using data to find out what's really going onrouanw
 
Can you handle The TRUTH ,..? Missing page history of JESUS and Hidden TRUTH
Can you handle The TRUTH ,..?  Missing page history of JESUS and Hidden TRUTHCan you handle The TRUTH ,..?  Missing page history of JESUS and Hidden TRUTH
Can you handle The TRUTH ,..? Missing page history of JESUS and Hidden TRUTHHeri kusrianto
 

Viewers also liked (20)

Building mental models
Building mental modelsBuilding mental models
Building mental models
 
Bsides threat hunting
Bsides threat huntingBsides threat hunting
Bsides threat hunting
 
Rez gateway (RezOS) innovate the future
Rez gateway  (RezOS) innovate the futureRez gateway  (RezOS) innovate the future
Rez gateway (RezOS) innovate the future
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
 
DOXLON November 2016: Facebook Engineering on cgroupv2
DOXLON November 2016: Facebook Engineering on cgroupv2DOXLON November 2016: Facebook Engineering on cgroupv2
DOXLON November 2016: Facebook Engineering on cgroupv2
 
OS17 Brochure
OS17 BrochureOS17 Brochure
OS17 Brochure
 
Cloud adoption patterns
Cloud adoption patternsCloud adoption patterns
Cloud adoption patterns
 
De tabernakel
De tabernakelDe tabernakel
De tabernakel
 
Wapenrusting
WapenrustingWapenrusting
Wapenrusting
 
Zero to Hero: Getting started with DVCS
Zero to Hero: Getting started with DVCSZero to Hero: Getting started with DVCS
Zero to Hero: Getting started with DVCS
 
Database2011 MySQL Sharding
Database2011 MySQL ShardingDatabase2011 MySQL Sharding
Database2011 MySQL Sharding
 
Interact Differently: Get More From Your Tools Through Exposed APIs
Interact Differently: Get More From Your Tools Through Exposed APIsInteract Differently: Get More From Your Tools Through Exposed APIs
Interact Differently: Get More From Your Tools Through Exposed APIs
 
Using NLP to find contextual relationships between fashion houses
Using NLP to find contextual relationships between fashion housesUsing NLP to find contextual relationships between fashion houses
Using NLP to find contextual relationships between fashion houses
 
Delphi XE2, door André Mussche op de 4DotNet Developers Day
Delphi XE2, door André Mussche op de 4DotNet Developers DayDelphi XE2, door André Mussche op de 4DotNet Developers Day
Delphi XE2, door André Mussche op de 4DotNet Developers Day
 
Yirgacheffe Chelelelktu Washed Coffee 2015
Yirgacheffe Chelelelktu Washed Coffee 2015Yirgacheffe Chelelelktu Washed Coffee 2015
Yirgacheffe Chelelelktu Washed Coffee 2015
 
Cohesive SDN Summit Presentation: OpenFlow is SDN, SDN is not OpenFlow
Cohesive SDN Summit Presentation: OpenFlow is SDN, SDN is not OpenFlowCohesive SDN Summit Presentation: OpenFlow is SDN, SDN is not OpenFlow
Cohesive SDN Summit Presentation: OpenFlow is SDN, SDN is not OpenFlow
 
Next-gen Network Telemetry is Within Your Packets: In-band OAM
Next-gen Network Telemetry is Within Your Packets: In-band OAMNext-gen Network Telemetry is Within Your Packets: In-band OAM
Next-gen Network Telemetry is Within Your Packets: In-band OAM
 
Dialogue Assessment
Dialogue AssessmentDialogue Assessment
Dialogue Assessment
 
Dashboards: Using data to find out what's really going on
Dashboards: Using data to find out what's really going onDashboards: Using data to find out what's really going on
Dashboards: Using data to find out what's really going on
 
Can you handle The TRUTH ,..? Missing page history of JESUS and Hidden TRUTH
Can you handle The TRUTH ,..?  Missing page history of JESUS and Hidden TRUTHCan you handle The TRUTH ,..?  Missing page history of JESUS and Hidden TRUTH
Can you handle The TRUTH ,..? Missing page history of JESUS and Hidden TRUTH
 

Similar to Microsoft Microservices

Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...3gamma
 
Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Jesper Nordström
 
CWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCapgemini
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureKim Clark
 
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and MoreA Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and MoreSimform
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureFaren faren
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineDevOps.com
 
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY IJwest
 
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHYSELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHYdannyijwest
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesAraf Karsh Hamid
 
Building cloud-ready Microservices
Building cloud-ready MicroservicesBuilding cloud-ready Microservices
Building cloud-ready Microservicesveredflis
 
Microservice final final
Microservice final finalMicroservice final final
Microservice final finalgaurav shukla
 
Microservices: A Step Towards Modernizing Healthcare Applications
Microservices: A Step Towards Modernizing Healthcare ApplicationsMicroservices: A Step Towards Modernizing Healthcare Applications
Microservices: A Step Towards Modernizing Healthcare ApplicationsCitiusTech
 
Architecting for speed: How agile innovators accelerate growth through micros...
Architecting for speed: How agile innovators accelerate growth through micros...Architecting for speed: How agile innovators accelerate growth through micros...
Architecting for speed: How agile innovators accelerate growth through micros...Jesper Nordström
 
Architecting for speed - how agile innovators accelerate growth through micro...
Architecting for speed - how agile innovators accelerate growth through micro...Architecting for speed - how agile innovators accelerate growth through micro...
Architecting for speed - how agile innovators accelerate growth through micro...3gamma
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Kim Clark
 
Pitfalls & Challenges Faced During a Microservices Architecture Implementation
Pitfalls & Challenges Faced During a Microservices Architecture ImplementationPitfalls & Challenges Faced During a Microservices Architecture Implementation
Pitfalls & Challenges Faced During a Microservices Architecture ImplementationCognizant
 
Cloud Native Architecture: Its Benefits and Key Components
Cloud Native Architecture: Its Benefits and Key ComponentsCloud Native Architecture: Its Benefits and Key Components
Cloud Native Architecture: Its Benefits and Key ComponentsAndrewHolland58
 

Similar to Microsoft Microservices (20)

Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...
 
Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...Architecting for speed: how agile innovators accelerate growth through micros...
Architecting for speed: how agile innovators accelerate growth through micros...
 
CWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der wal
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
 
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and MoreA Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
 
Microservices
MicroservicesMicroservices
Microservices
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Whitepaper : Microservices In or Out
Whitepaper : Microservices   In or OutWhitepaper : Microservices   In or Out
Whitepaper : Microservices In or Out
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD Pipeline
 
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
 
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHYSELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
SELECTION MECHANISM OF MICRO-SERVICES ORCHESTRATION VS. CHOREOGRAPHY
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 
Building cloud-ready Microservices
Building cloud-ready MicroservicesBuilding cloud-ready Microservices
Building cloud-ready Microservices
 
Microservice final final
Microservice final finalMicroservice final final
Microservice final final
 
Microservices: A Step Towards Modernizing Healthcare Applications
Microservices: A Step Towards Modernizing Healthcare ApplicationsMicroservices: A Step Towards Modernizing Healthcare Applications
Microservices: A Step Towards Modernizing Healthcare Applications
 
Architecting for speed: How agile innovators accelerate growth through micros...
Architecting for speed: How agile innovators accelerate growth through micros...Architecting for speed: How agile innovators accelerate growth through micros...
Architecting for speed: How agile innovators accelerate growth through micros...
 
Architecting for speed - how agile innovators accelerate growth through micro...
Architecting for speed - how agile innovators accelerate growth through micro...Architecting for speed - how agile innovators accelerate growth through micro...
Architecting for speed - how agile innovators accelerate growth through micro...
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...
 
Pitfalls & Challenges Faced During a Microservices Architecture Implementation
Pitfalls & Challenges Faced During a Microservices Architecture ImplementationPitfalls & Challenges Faced During a Microservices Architecture Implementation
Pitfalls & Challenges Faced During a Microservices Architecture Implementation
 
Cloud Native Architecture: Its Benefits and Key Components
Cloud Native Architecture: Its Benefits and Key ComponentsCloud Native Architecture: Its Benefits and Key Components
Cloud Native Architecture: Its Benefits and Key Components
 

Recently uploaded

[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdfSteve Caron
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxAS Design & AST.
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Effort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsEffort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsDEEPRAJ PATHAK
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxRTS corp
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxSasikiranMarri
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...kalichargn70th171
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfkalichargn70th171
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 

Recently uploaded (20)

[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptx
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Effort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsEffort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software Projects
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptx
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 

Microsoft Microservices

  • 1. Using Microsoft for Microservices Presenter: Chase Q. Aucoin
  • 2. PRESENTATION MAP Our hope is that at the end of this your mind will be racing with questions and ideas 2 What Is a Microservice Business Domains Business Agility Teams & Organization Building Services Health & Monitoring Questions & Answers Where Does UI Fit? Testing & Deployment Failure as a Service
  • 3. Simply put: It’s a self contained, domain specific, service What is a Microservice
  • 4. Using Microsoft for Microservices 4 When you hear the term cloud you probably think a place. When we say cloud we mean a set of patterns and practices. These patterns and practices work regardless of hosted providers or on premises deployments. What Does Cloud mean? Cloud Services are available on demand. Whether that is VMs, File Storage, or Data Processing On Demand Cloud services are distributed across many fault zones to ensure high uptime. Distributed In a cloud scenario building applications that can scale horizontally is favored to the traditional approach of increasing the size of compute resources. This allows for “infinite” scalability. Horizontal Scale Because of the transient nature of resources in a cloud environment services assume that they will fail instead of assuming they will always exist. Built To Fail Lose coupling between components allows easy transitions between implementations and locality of a given resource. Loosely Coupled Where possible use existing built technical resources to provide the highest levels of productivity and reduce operations complexity. Favor Existing Technical Solutions
  • 5. Using Microsoft for Microservices 5 Traditional when we think of a service we think of an in process body of code that has methods. Sometimes we mean the actual deployable “windows service”. Sometimes we think of it as a worker process that is servicing something on a continuous loop. During this presentation we mean an application that does the “heavy lifting” of responding to a clients request. What is a service
  • 6. Using Microsoft for Microservices Traditional 3-Tier Architecture Client - Presentation Service – Business Logic Data - Database
  • 7. Using Microsoft for Microservices 7 The monolith is ancient. It contains all knowledge. It succeeds as one. It fails as one. The Monolith Most monolithic application start from a need to get business value out quickly. They are typically feature driven and more often than not built in an environment of tight deadlines and high expectations. It is only in hindsight as productivity slows, and the pace of innovation declines that we question its nature. Most times at this point it has become so engrained into its place within a business that changing its nature seems like an impossible task. It is not impossible, but it does take work.
  • 8. Using Microsoft for Microservices 8 You only have to deploy and manage one application Single Deployable Cloud services are distributed across many fault zones to ensure high uptime. Initial Agility Is High You can change large amounts of the source all in one place. This could also be considered a con in most scenarios. Simplifies Make Broad Changes Feature A that is part of one domain may be ready to go but other features in other domains may have committed code that are not ready for deployment into a production environment Inconsistent State As you move the application through the delivery pipeline you have to test the entire surface area of the application. Testing You cannot scale the areas of the application that are creating “hot zones” independently making for difficult management scenarios both technically and also with your consumers. Scale Deployable Service or Data Feature A Feature B Feature C Feature D Feature E Feature F Monolithic ApplicationAdvantages Challenges
  • 9. Using Microsoft for Microservices 9 “I don’t need to know everything. I just need to know where to find it when I need it.” Albert Einstein Microservices Microservices instead of being solely focused on features. Are focused on a given business or technical domain or “bounded context” that they operate in. This nature allows us to have laser focus on business need. It also allows us to speak the same language as the business and delivery applications in a more meaningful and rapid way in a large scale application set.
  • 10. Using Microsoft for Microservices 10 If one service fails it does not bring down the entire application stack. Worst case scenario loss of a single set of functionality is lost until recovered. Physically Decoupled You only have to test one domain. This does require an adherence to some SOLID principals for best results. Testing Easily scale a specific potion of the application that needs to scale. Likewise you can scale delivery teams more reliably providing more types of functionality going out in parallel. Scale Embracing a Microservice paradigm for software delivery usually means shift mentality within the organization about how to deliver software. Requires Culture Shift Since there are more moving parts that means there is ultimately more to have to keep track of. This is where automation is important. Large Footprint It is usually slow initially for the organization to shift culture and get it’s processes in place Initial Agility Is Slower Deployable Domain Service A Data A Microservice ApplicationAdvantages Challenges Deployable Domain Service B Data B Deployable Domain Service C Data C Deployable Domain Service D Data D
  • 11. Using Microsoft for Microservices 11 Advocates fewer services but doesn’t suggest what the bounding of those service are. Services are typically very “smart” Fewer Components The logic for a feature may be scattered across many domains. Logic Across Many Domains Mulesoft, Biztalk, Corba, EJB Middleware Required Service a scoped within the bounds of a given domain. Many Small Components Typically the business logic for doing an atomic body of work lives within a single service. Business Logic Per Service Service are exposed via simple wire protocols such as HTTP with JSON with API gateways creating high levels of interoperability across BU’s API Driven Isn’t This Just SOA?SOA Microservices Sort of.. Conceptually the 2 are similar, but SOA tends to be a loaded term that may be defined drastically different form one person to the next. In our experience SOA becomes a vehicle for: • Selling expensive over-complicated software (ESBs, BPM tools, ERP, Service Registries Etc..), • Long business process modeling initiatives • Large checks with little to no tangible ROI
  • 12. How do we think about services in relation to the business Business Domains
  • 13. Using Microsoft for Microservices What is a Business Domain? An area of the business that tends to use similar taxonomy/terminology to describe a business/technical need or value proposition. 1 Focuses on the management and information retrieval of Employees Employees 2 Focuses on the tracking and management of projects Projects 3 Focuses on the logging of events in the system Logging 4 Focuses on the authentication of users into the system (Identity management) Authentication
  • 14. Using Microsoft for Microservices Why we organize Microservices by domain? It does a few things for us. • Enables us to speak in a common language with the business alleviating miscommunication • Allows us to create end to end ownership for a team • The business and engineers work closer allowing for rapid ideation, validation, and iteration • Create highly concurrent deployment scenarios • Create isolation. Services only have to care about what is happening within their domain without being bogged down by having to know everything all the time • Alleviates paralysis by analysis
  • 15. Scaling teams is just as important as scaling software Teams & Organization
  • 16. Using Microsoft for Microservices Conways Law organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations. “ “ Melvin Edward Conway PhD | Rockwell Semiconductor Business Team UI Team Service Team Data Team
  • 17. Using Microsoft for Microservices Inverse Conways Law Organizations which design systems ... Are encouraged to create communication structures that produce the desired designs for the systems. “ “ David Pitt | Keyhole Software Domain A Team Domain B Team Domain C Team Domain D Team
  • 18. Using Microsoft for Microservices 18 Siloed teams leads to siloed application architecture. Limiting holistic knowledge of a give domain within the business. Siloed Teams Difficult to scale teams to meet the demands of the business. Limited Scalability Too much time is spent transferring knowledge between the layers so everyone has to know everything all the time. This hinders the effectiveness of delivery. Productivity Each delivery team knows exactly what it needs in order to get it’s products into production end to end. Cross Functional Teams Teams can easily be distributed across BU’s and as new domains are required new teams can be on- boarded to meet demand without limiting existing teams. Highly Scalable Once the cross functional team hits it’s stride new features can be production ready in days not months. Highly Productive Conways LawSOA/Monolith Microservices organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations. “ “ Melvin Edward Conway PhD | Rockwell Semiconductor
  • 19. Delivering more, faster, with automation and collaboration Business Agility
  • 20. Using Microsoft for Microservices How Can We Create More Value Across Our Organization? Reuse applications that we have already built value in to create value across all of our business units. Microservice facilitate this because at their heart they are just APIs.
  • 21. Using Microsoft for Microservices 21 “I think of novels in architectural terms. You have to enter at the gate, and this gate must be constructed in such a way that the reader has immediate confidence in the strength of the building.”” Ian Mcewan API Gateways A strong gateway is incredibly valuable within an organization. It allows your work to be self documenting and creates scenarios for pull instead of push during cross collaboration. It enables us to leverage our existing code over and over in new and novel ways.
  • 22. Beyond Conceptual: how do we put it together? Building Services
  • 23. Using Microsoft for Microservices 23 What are the pieces that enable us to create Microservices in our organization? Technical Components
  • 24. Using Microsoft for Microservices 24 Since our services are so widely distributed we need to know when one is failing and pull it out of load to alleviate stress during peak load. Circuit Breaker Service Fabric – Built In Polly Service Fabric - Name Service WCF – Discovery Service Azure – Service Bus The service registry lets services find each other at run time without having to know in advance where service are located. Service Registry Using JavaScript/HTML and frameworks like backbone or angular powered by services requested via AJAX through the API gateway SPA Front-End Angular Backbone Ember React Web API with Swagger Azure – API Gateway Mashery Mulesoft The gateway is the entry point to serve up client requests via an HTTP based API for maximum interoperability API gateway
  • 25. Using Microsoft for Microservices 25 TFS – Release Management Jenkins TeamCity Service Fabric Docker The biggest key to the successful implementation of the Microservice paradigm is to automate as much of the delivery cycle. Continuous Delivery Messaging increases asynchrony across the system and enables patterns such as CQRS, Pipes & Filters, and Subscription Based Extension Messaging Azure – Service Bus RabbitMQ Service Fabric – Built In Azure - Application Insights Operations Management Suite ELK Stack Log aggregation allows you to see what’s going on across your services at a glance. Log Aggregation Nuget lets us manage the packaging and delivery of shared libraries within the enterprise NuGet ProGet MyGet Nuget.Server
  • 26. Using Microsoft for Microservices SPA SPA SPA SPA API Gateway API Gateway API Gateway API Gateway Auth Primary Auth Secondary Auth Secondary Employee Primary Employee SecondaryEmployee Secondary Project Primary Project Secondary Project Secondary
  • 27. Using Microsoft for Microservices Project DAL Project Service Project API [Project] Appointment DAL Appointment Service Appointment API [Appointment] Employee DAL Employee Service Employee API [Employee] SQL Server Mongo/3Rd Party API Sample Architecture Authorization Authentication Service Fabric Application Insights TFS/ Release Management
  • 28. Moving away from rendered views How Does UI Fit?
  • 29. Using Microsoft for Microservices How do we think differently about UI in this paradigm? • The UI is just another consumer of services • The UI should go on a separate cadence as the services as it wil be the slowest to move through the business process and the least impactful to system stability • Favor simple HTML and Javascript modules
  • 30. Best practices to make launching the most boring part of the cycle Testing & Deployment
  • 31. Using Microsoft for Microservices What should we keep in mind for testing? • Automate service testing and make it part of the CI/CD process • Keep the testing surface area limited to the domain that is being published. • Isolate a domain specific automated integration testing environment for regression that can be drop and recreated during the delivery process.
  • 32. Using Microsoft for Microservices Containers • Instead of delivering “code” deliver containers. • Docker and Service Fabric are excellent choices for containerization. • Have an automated rollback strategy as part of deployment. This is built into Service Fabric • Configuration should be injected at runtime or via container configuration • Storage mechanisms should be durable and movable in case of failure. Good choices include vSphere disk virtualization or Azure File Storage mounted as a drive at application startup.
  • 33. Keeping your system healthy after launch Health & Monitoring
  • 34. Using Microsoft for Microservices How do we keep services healthy? • Leverage tools like Application Insights and ELK stack • Use your hosting platforms built in health tools. Service Fabric, IIS, Azure all have customizable health metrics.
  • 35. Dealing with mission critical failure before it ever happens Failure As A Service
  • 36. Using Microsoft for Microservices What is failure as a service? • Use tools like Keyhole Trouble Maker or Built in Service Fabric tools to randomly stop applications in production • If your apps are able to handle this continual shutting off of parts of the system you can sleep easy at night knowing that the system is stable. Failure As A Service Dealing with mission critical failure before it happens