SlideShare una empresa de Scribd logo
1 de 46
Refactoring to Microservices
Moving away from old school servers
and into the cloud
ASK AWAY!
Step 1. Go to slido.com
Step 2. Key in #SproutAcademy in the event code.
Step 3. Type your questions.
Wifi name: KMC
Wifi password: S0lstic3!
About Me
Senior Architect at Sprout
Solutions
Microsoft MVP for Visual Studio
and Development Technologies
User Group Lead of the
Philippine .NET Users Group
(PHINUG)
Not so long ago in a country far far away...
In January 2009 a startup purchased 3 servers...
Web Database
2 servers 1 server
4 cores, 2.83 GHz, 12 MB L2
cache
8 cores, 2.5 GHz, 24 MB L2
cache
8 GB RAM 24 GB RAM
500 GB RAID 1 mirror array
(hot-fail, cold-swap)
500 GB RAID 10 array
(hot-swap, up to 2 drives at once)
dual redundant power supplies
Total Cost: ~$5500 (one time) + colocation fee
Had to expand by December...
January 2009
December 2009
Seven years later...
Web Main Database Everything else
DB
And a bunch of
other servers...
11 servers 2 servers 2 servers ● Service Servers
● Redis Servers
● Elasticsearch
Servers
● HAProxy Load
Balancer Servers
● Machine Learning
Servers
● Logstash Servers
● HTTP Logging
SQL Server
12 cores @2.6-3.5 GHz 12 cores @2.7-3.5 GHz 8 cores @3.2-3.6GHz
64 GB RAM 384 GB RAM 768 GB RAM
2x 300GB SATA SSDs
RAID 1
4 TB PCIe SSD (RAID 0)
+ 24 x 200 GB SATA
SSDs (RAID 10)
3x 2 TB PCIe SSD (Raid
0) + 24 x 1.2 TB SATA
HDDs (RAID 10)
Dual 10Gbps network Dual 10Gbps network Dual 10 Gbps network
Total Cost: $$$$$$$$$$$$
And their data center looks like...
Statistics for 2016
209,420,973 HTTP requests to our load balancer
66,294,789 page loads
504,816,843 SQL Queries (from HTTP requests alone)
5,831,683,114 Redis hits
17,158,874 Elastic searches
607,073,066 ms (168 hours) spent running SQL queries
10,396,073 ms (2.8 hours) spent on Redis hits
1,609,944,301 ms (447 hours) spent processing in ASP.Net
That’s the story of...
Highly performant apps can be
achieved with well designed
monoliths
Monoliths are not necessarily bad
Simplicity
Consistency
Inter-module refactoring
So why would you use microservices?
Let’s talk about
Sprout also begins its story in 2009 with...
Typical monolithic WISA application except...
ASP.NET Web Application
Written in C#
Runs on IIS
SQL Server Database
Inherently multi-tenant
Then came along...
Integration became a business need...
Biometric data upload
Data integration between apps
More clients & users meant
more business needs came along...
Biometric data upload
Data integration between apps
Clients need APIs
High Availability
Performance
New products
Tangential features
Better UX
Microservices should answer concrete
business needs
Monolithic app vs. Microservice apps
You have a true microservice when you achieve...
Componentization via services
Organized around business
capabilities
Products not Projects
Smart endpoints vs. dumb pipes
Decentralized governance
Decentralized data management
Infrastructure automation
Design for failure
Evolutionary Design
Componentization via services
Payrol
l
HR
● Authentication
● Employee 201
● Attendance
● Performance
● Movement
● Compliance
● Loans
● Authentication
● Attendance
● Taxation
● Loans
● Accounting
● Compliance
Componentization via services
Payrol
l
HR
Employee 201 Attendance
Performance
Movement Compliance
Loans
Accounting
Taxation
Authentication
Organized around business capabilities
Each team must be full stack
Developer
QA
UI
DBA
System Admins/Devs
} DevOps culture
Products not projects
Each team must have a dedicated product owner
Preferably a domain expert
Otherwise needs to have immersed with end users
Team should be concerned over the product lifetime
Refactoring to microservices means
reorganizing your team
Smart endpoints vs. dumb pipes
Endpoints should have full business logic
Security
Data validation
Error handling
Logging
Do not make CRUD endpoints
Decentralized governance & data management
Each team must have a say on their development stack
UI/UX
Backend
QA
Each team must have a say on their data store
SQL vs. No SQL?
Must otherwise be compliant with business requirements
Infrastructure automation
Capability to quickly provision servers
Quickly scale based on need
Ability to deploy applications rapidly
Design for failure
Gracefully handle errors
Rapidly provide feedback on errors
Logging and monitoring
Evolutionary Design
Services should be able to change without breaking
Handle both old and new endpoints
Deprecate over time
Microservices have their own benefits
Partial Deployment
High Availability
Preserve Modularity
Multiple Platforms
Our microservices journey so far
Microservices across products
PayrollHR Project
X
● Authentication
● Employee 201
● Attendance
● Performance
● Movement
● Compliance
● Loans
● Authentication
● Attendance
● Taxation
● Loans
● Accounting
● Compliance
Employee 201
Challenges: Infrastructure
Web
Live
Data
Live
Web
Test
Data
Test
vs
Option 1: On Premise
Web
Live
Data
Live
Web
Test
Data
Test
● Pros: Greater degree of
control, more cost
effective (up to a certain
point)
● Cons: More difficult to
expand and provision,
less resilient to downtime,
need relevant skillset
Option 2: Public Cloud (AWS / Azure / Google)
● Pros: Faster provisioning,
more resilient, less
management overhead
● Cons: Beefed up specs
and bandwidth are
costlier, hidden costs,
data residency
complications
Challenges: Data architecture
Employee 201Sprout HR Sprout Payroll
Sharded by tenant Sharded by tenant
New!
Option 1: Unsharded data
Sprout HR Sprout Payroll
Sharded by tenant Sharded by tenant
● Pros: Simpler data access,
easier maintenance for
backups & business
continuity
● Cons: Lost data isolation,
potential bottlenecks at
data layer
Employee 201
Option 2: Aggressive sharding
Sprout HR Sprout Payroll
Sharded by tenant and by
employee table
Sharded by tenant
● Pros: Greater data
isolation and modularity;
Shards could be deployed
to separate servers for
better throughput
● Cons: More difficult
maintenance for backups
& business continuity
Employee 201
Our journey towards...
Componentization via services
Organized around business
capabilities
Products not Projects
Smart endpoints vs. dumb pipes
Decentralized governance
Decentralized data management
Infrastructure automation
Design for failure
Evolutionary Design
Will be continued...
Panel / Q&A
Thank you very much!
References
https://stackoverflow.blog/2009/01/12/new-stack-overflow-server-glamour-shots/
https://nickcraver.com/blog/2016/02/17/stack-overflow-the-architecture-2016-
edition/
http://blog.serverfault.com/2015/03/05/how-we-upgrade-a-live-data-center/
https://martinfowler.com/articles/microservices.html
GOTO 2014 - Microservices - Martin Fowler https://youtu.be/wgdBVIX9ifA

Más contenido relacionado

La actualidad más candente

Windows Virtual Desktop Customer benefits
Windows Virtual Desktop Customer benefitsWindows Virtual Desktop Customer benefits
Windows Virtual Desktop Customer benefitsPrime Infoserv
 
2109 mobile cloud integrating your mobile workloads with the enterprise
2109 mobile cloud  integrating your mobile workloads with the enterprise2109 mobile cloud  integrating your mobile workloads with the enterprise
2109 mobile cloud integrating your mobile workloads with the enterpriseTodd Kaplinger
 
MS TechDays 2011 - Generate Revenue on Azure
MS TechDays 2011 - Generate Revenue on AzureMS TechDays 2011 - Generate Revenue on Azure
MS TechDays 2011 - Generate Revenue on AzureSpiffy
 
RDS & Windows Virtual Desktop - Desktop in 2019+
RDS & Windows Virtual Desktop - Desktop in 2019+RDS & Windows Virtual Desktop - Desktop in 2019+
RDS & Windows Virtual Desktop - Desktop in 2019+Marcel Meurer
 
Windows virtual desktop l100 presentation
Windows virtual desktop l100 presentationWindows virtual desktop l100 presentation
Windows virtual desktop l100 presentationkiefter
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservicesLalit Kale
 
Scaling wix to over 50 m users
Scaling wix to over 50 m usersScaling wix to over 50 m users
Scaling wix to over 50 m usersYoav Avrahami
 
Getting the most from Windows Virtual Desktop in Azure
Getting the most from Windows Virtual Desktop in AzureGetting the most from Windows Virtual Desktop in Azure
Getting the most from Windows Virtual Desktop in AzureRichard Conway
 
Microservices Development - ICP Workshop Batch II
Microservices Development - ICP Workshop Batch IIMicroservices Development - ICP Workshop Batch II
Microservices Development - ICP Workshop Batch IIPT Datacomm Diangraha
 
Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesAngelos Kapsimanis
 
Microsoft Azure : Microsoft Strategy for Cloud Computing
Microsoft Azure : Microsoft Strategy for Cloud Computing Microsoft Azure : Microsoft Strategy for Cloud Computing
Microsoft Azure : Microsoft Strategy for Cloud Computing NstdaAcademy Nstda
 
The Windows Azure Platform: A Perspective - David Chappell
The Windows Azure Platform: A Perspective - David ChappellThe Windows Azure Platform: A Perspective - David Chappell
The Windows Azure Platform: A Perspective - David ChappellSpiffy
 
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...Michael Elder
 
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateAccelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateMichael Elder
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing MicroservicesDavid Chou
 
DOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M usersDOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M usersYoav Avrahami
 
Modernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft AzureModernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft AzureDavid J Rosenthal
 
CTU June 2011 - Hybrid Cloud Management with Microsoft System Center - Concero
CTU June 2011 - Hybrid Cloud Management with Microsoft System Center - ConceroCTU June 2011 - Hybrid Cloud Management with Microsoft System Center - Concero
CTU June 2011 - Hybrid Cloud Management with Microsoft System Center - ConceroSpiffy
 
Intro to azure logic apps
Intro to azure logic appsIntro to azure logic apps
Intro to azure logic appsnj-azure
 

La actualidad más candente (20)

Windows Virtual Desktop Customer benefits
Windows Virtual Desktop Customer benefitsWindows Virtual Desktop Customer benefits
Windows Virtual Desktop Customer benefits
 
2109 mobile cloud integrating your mobile workloads with the enterprise
2109 mobile cloud  integrating your mobile workloads with the enterprise2109 mobile cloud  integrating your mobile workloads with the enterprise
2109 mobile cloud integrating your mobile workloads with the enterprise
 
MS TechDays 2011 - Generate Revenue on Azure
MS TechDays 2011 - Generate Revenue on AzureMS TechDays 2011 - Generate Revenue on Azure
MS TechDays 2011 - Generate Revenue on Azure
 
RDS & Windows Virtual Desktop - Desktop in 2019+
RDS & Windows Virtual Desktop - Desktop in 2019+RDS & Windows Virtual Desktop - Desktop in 2019+
RDS & Windows Virtual Desktop - Desktop in 2019+
 
Windows virtual desktop l100 presentation
Windows virtual desktop l100 presentationWindows virtual desktop l100 presentation
Windows virtual desktop l100 presentation
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservices
 
Scaling wix to over 50 m users
Scaling wix to over 50 m usersScaling wix to over 50 m users
Scaling wix to over 50 m users
 
Getting the most from Windows Virtual Desktop in Azure
Getting the most from Windows Virtual Desktop in AzureGetting the most from Windows Virtual Desktop in Azure
Getting the most from Windows Virtual Desktop in Azure
 
Microservices Development - ICP Workshop Batch II
Microservices Development - ICP Workshop Batch IIMicroservices Development - ICP Workshop Batch II
Microservices Development - ICP Workshop Batch II
 
Azure Overview
Azure Overview Azure Overview
Azure Overview
 
Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based Architectures
 
Microsoft Azure : Microsoft Strategy for Cloud Computing
Microsoft Azure : Microsoft Strategy for Cloud Computing Microsoft Azure : Microsoft Strategy for Cloud Computing
Microsoft Azure : Microsoft Strategy for Cloud Computing
 
The Windows Azure Platform: A Perspective - David Chappell
The Windows Azure Platform: A Perspective - David ChappellThe Windows Azure Platform: A Perspective - David Chappell
The Windows Azure Platform: A Perspective - David Chappell
 
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
 
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateAccelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud Private
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 
DOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M usersDOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M users
 
Modernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft AzureModernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft Azure
 
CTU June 2011 - Hybrid Cloud Management with Microsoft System Center - Concero
CTU June 2011 - Hybrid Cloud Management with Microsoft System Center - ConceroCTU June 2011 - Hybrid Cloud Management with Microsoft System Center - Concero
CTU June 2011 - Hybrid Cloud Management with Microsoft System Center - Concero
 
Intro to azure logic apps
Intro to azure logic appsIntro to azure logic apps
Intro to azure logic apps
 

Similar a Refactoring to Microservices

Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREAraf Karsh Hamid
 
Azure_Business_Opportunity
Azure_Business_OpportunityAzure_Business_Opportunity
Azure_Business_OpportunityNojan Emad
 
Get Started with Microsoft Azure.pptx
Get Started with Microsoft Azure.pptxGet Started with Microsoft Azure.pptx
Get Started with Microsoft Azure.pptxAnjaliMishra647628
 
Microservice at a glance
Microservice at a glanceMicroservice at a glance
Microservice at a glanceKetan Ghumatkar
 
Azure Overview Csco
Azure Overview CscoAzure Overview Csco
Azure Overview Cscorajramab
 
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...Gary Arora
 
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptxGangTingFan
 
Cassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackCassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackDataStax Academy
 
Understanding The Azure Platform Jan
Understanding The Azure Platform   JanUnderstanding The Azure Platform   Jan
Understanding The Azure Platform JanDavidGristwood
 
Cloud Native Apps
Cloud Native AppsCloud Native Apps
Cloud Native AppsDavid Chou
 
How to move to the cloud, get it right, stay secure and not cost a fortune
How to move to the cloud, get it right, stay secure and not cost a fortuneHow to move to the cloud, get it right, stay secure and not cost a fortune
How to move to the cloud, get it right, stay secure and not cost a fortuneCorecom Consulting
 
Solving enterprise challenges through scale out storage & big compute final
Solving enterprise challenges through scale out storage & big compute finalSolving enterprise challenges through scale out storage & big compute final
Solving enterprise challenges through scale out storage & big compute finalAvere Systems
 
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateAccelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateMichael Elder
 
Faster, Simpler, Better - MongoDB to the rescue
Faster, Simpler, Better - MongoDB to the rescue Faster, Simpler, Better - MongoDB to the rescue
Faster, Simpler, Better - MongoDB to the rescue MongoDB
 
Transforming a Large Mission-Critical E-Commerce Platform from a Relational A...
Transforming a Large Mission-Critical E-Commerce Platform from a Relational A...Transforming a Large Mission-Critical E-Commerce Platform from a Relational A...
Transforming a Large Mission-Critical E-Commerce Platform from a Relational A...MongoDB
 
FInal Project - USMx CC605x Cloud Computing for Enterprises - Hugo Aquino
FInal Project - USMx CC605x Cloud Computing for Enterprises - Hugo AquinoFInal Project - USMx CC605x Cloud Computing for Enterprises - Hugo Aquino
FInal Project - USMx CC605x Cloud Computing for Enterprises - Hugo AquinoHugo Aquino
 
Microsoft Windows Server 2012 R2 Overview - Presented by Atidan
Microsoft Windows Server 2012 R2 Overview - Presented by AtidanMicrosoft Windows Server 2012 R2 Overview - Presented by Atidan
Microsoft Windows Server 2012 R2 Overview - Presented by AtidanDavid J Rosenthal
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application DevelopmentWaveMaker, Inc.
 
Brocade Software Networking Presentation at Interface 2016
Brocade Software Networking Presentation at Interface 2016Brocade Software Networking Presentation at Interface 2016
Brocade Software Networking Presentation at Interface 2016Scott Sims
 

Similar a Refactoring to Microservices (20)

Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
Azure_Business_Opportunity
Azure_Business_OpportunityAzure_Business_Opportunity
Azure_Business_Opportunity
 
Get Started with Microsoft Azure.pptx
Get Started with Microsoft Azure.pptxGet Started with Microsoft Azure.pptx
Get Started with Microsoft Azure.pptx
 
Microservice at a glance
Microservice at a glanceMicroservice at a glance
Microservice at a glance
 
Azure Overview Csco
Azure Overview CscoAzure Overview Csco
Azure Overview Csco
 
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
Leapfrog into Serverless - a Deloitte-Amtrak Case Study | Serverless Confere...
 
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
 
Cassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackCassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stack
 
Understanding The Azure Platform Jan
Understanding The Azure Platform   JanUnderstanding The Azure Platform   Jan
Understanding The Azure Platform Jan
 
Cloud Native Apps
Cloud Native AppsCloud Native Apps
Cloud Native Apps
 
How to move to the cloud, get it right, stay secure and not cost a fortune
How to move to the cloud, get it right, stay secure and not cost a fortuneHow to move to the cloud, get it right, stay secure and not cost a fortune
How to move to the cloud, get it right, stay secure and not cost a fortune
 
Solving enterprise challenges through scale out storage & big compute final
Solving enterprise challenges through scale out storage & big compute finalSolving enterprise challenges through scale out storage & big compute final
Solving enterprise challenges through scale out storage & big compute final
 
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateAccelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud Private
 
Faster, Simpler, Better - MongoDB to the rescue
Faster, Simpler, Better - MongoDB to the rescue Faster, Simpler, Better - MongoDB to the rescue
Faster, Simpler, Better - MongoDB to the rescue
 
Transforming a Large Mission-Critical E-Commerce Platform from a Relational A...
Transforming a Large Mission-Critical E-Commerce Platform from a Relational A...Transforming a Large Mission-Critical E-Commerce Platform from a Relational A...
Transforming a Large Mission-Critical E-Commerce Platform from a Relational A...
 
FInal Project - USMx CC605x Cloud Computing for Enterprises - Hugo Aquino
FInal Project - USMx CC605x Cloud Computing for Enterprises - Hugo AquinoFInal Project - USMx CC605x Cloud Computing for Enterprises - Hugo Aquino
FInal Project - USMx CC605x Cloud Computing for Enterprises - Hugo Aquino
 
Microsoft Windows Server 2012 R2 Overview - Presented by Atidan
Microsoft Windows Server 2012 R2 Overview - Presented by AtidanMicrosoft Windows Server 2012 R2 Overview - Presented by Atidan
Microsoft Windows Server 2012 R2 Overview - Presented by Atidan
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application Development
 
Brocade Software Networking Presentation at Interface 2016
Brocade Software Networking Presentation at Interface 2016Brocade Software Networking Presentation at Interface 2016
Brocade Software Networking Presentation at Interface 2016
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 

Más de Jacinto Limjap

Maintainable UI Tests with Selenium and C#
Maintainable UI Tests with Selenium and C#Maintainable UI Tests with Selenium and C#
Maintainable UI Tests with Selenium and C#Jacinto Limjap
 
Donetconf2016: The Future of C#
Donetconf2016: The Future of C#Donetconf2016: The Future of C#
Donetconf2016: The Future of C#Jacinto Limjap
 
C# and the Evolution of a Programming Language
C# and the Evolution of a Programming LanguageC# and the Evolution of a Programming Language
C# and the Evolution of a Programming LanguageJacinto Limjap
 
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Jacinto Limjap
 
N-tier and oop - moving across technologies
N-tier and oop - moving across technologiesN-tier and oop - moving across technologies
N-tier and oop - moving across technologiesJacinto Limjap
 
MSDN Ramp-Up Part 3: Business logic
MSDN Ramp-Up Part 3: Business logicMSDN Ramp-Up Part 3: Business logic
MSDN Ramp-Up Part 3: Business logicJacinto Limjap
 
Developing windows phone 7 applications
Developing windows phone 7 applicationsDeveloping windows phone 7 applications
Developing windows phone 7 applicationsJacinto Limjap
 
Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7Jacinto Limjap
 
Dynamics & Object Runtime Composition with C# 4.0
Dynamics & Object Runtime Composition with C# 4.0Dynamics & Object Runtime Composition with C# 4.0
Dynamics & Object Runtime Composition with C# 4.0Jacinto Limjap
 
Three Developer Abilities They Dont Teach In College
Three Developer  Abilities They Dont Teach In CollegeThree Developer  Abilities They Dont Teach In College
Three Developer Abilities They Dont Teach In CollegeJacinto Limjap
 

Más de Jacinto Limjap (11)

Maintainable UI Tests with Selenium and C#
Maintainable UI Tests with Selenium and C#Maintainable UI Tests with Selenium and C#
Maintainable UI Tests with Selenium and C#
 
Donetconf2016: The Future of C#
Donetconf2016: The Future of C#Donetconf2016: The Future of C#
Donetconf2016: The Future of C#
 
C# and the Evolution of a Programming Language
C# and the Evolution of a Programming LanguageC# and the Evolution of a Programming Language
C# and the Evolution of a Programming Language
 
SQL vs NoSQL
SQL vs NoSQLSQL vs NoSQL
SQL vs NoSQL
 
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
 
N-tier and oop - moving across technologies
N-tier and oop - moving across technologiesN-tier and oop - moving across technologies
N-tier and oop - moving across technologies
 
MSDN Ramp-Up Part 3: Business logic
MSDN Ramp-Up Part 3: Business logicMSDN Ramp-Up Part 3: Business logic
MSDN Ramp-Up Part 3: Business logic
 
Developing windows phone 7 applications
Developing windows phone 7 applicationsDeveloping windows phone 7 applications
Developing windows phone 7 applications
 
Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7Automated Unit Testing in Silverlight for Windows Phone 7
Automated Unit Testing in Silverlight for Windows Phone 7
 
Dynamics & Object Runtime Composition with C# 4.0
Dynamics & Object Runtime Composition with C# 4.0Dynamics & Object Runtime Composition with C# 4.0
Dynamics & Object Runtime Composition with C# 4.0
 
Three Developer Abilities They Dont Teach In College
Three Developer  Abilities They Dont Teach In CollegeThree Developer  Abilities They Dont Teach In College
Three Developer Abilities They Dont Teach In College
 

Último

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 

Último (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 

Refactoring to Microservices

Notas del editor

  1. Free Stock Photos: https://stocksnap.io/ | https://www.pexels.com/ | https://pixabay.com/ | https://unsplash.com/
  2. Up to a certain size monoliths are much simpler It’s easier to keep data consistent Refactoring models across modules are easier because of reuse
  3. And to answer that question, let’s tell another story
  4. Biometric data upload -- need for a communication layer Data integration between apps -- HR and Payroll talking to each other
  5. New products -- Recruitment Clients asking for REST APIs -- their own needs Tangential features -- nice to haves + client requests
  6. And to answer that question, let’s tell another story
  7. If each shape is an individual business capability and the green field represents an application, this is how they would look like
  8. Componentization -- a responsibility is represented as a service Business capabilities -- Individual service teams are not centered around skillsets (UI vs devs vs DBA) but is full stack Products not Projects -- Success is measured against usefulness vs. completion Smart endpoints vs. dumb pipes -- Logic is at the endpoints. NO CRUD ENDPOINTS Decentralized governance -- each product team should be able to use their own stack Decentralized data management -- each product team should ideally have their own data store Infrastructure automation -- provisioning and deployment should be automated Design for failure -- capability to handle errors more gracefully Evolutionary Design -- microservices are designed to constantly change and improve
  9. Partial Deployment -- easier because no need to bring down whole app Availability -- easier to scale, but data consistency is a question Preserve Modularity -- the architecture is the modularity Multiple Platforms -- No real need to stick to one stack
  10. Componentization -- a responsibility is represented as a service Business capabilities -- Individual service teams are not centered around skillsets (UI vs devs vs DBA) but is full stack Products not Projects -- Success is measured against usefulness vs. completion Smart endpoints vs. dumb pipes -- Logic is at the endpoints. NO CRUD ENDPOINTS Decentralized governance -- each product team should be able to use their own stack Decentralized data management -- each product team should ideally have their own data store Infrastructure automation -- provisioning and deployment should be automated Design for failure -- capability to handle errors more gracefully Evolutionary Design -- microservices are designed to constantly change and improve