SlideShare a Scribd company logo
Beware the
Monolith
Presentation by Dee Wilcox
Nashville PHP - March 8, 2016
Developing for Scale
In enterprise-level development projects, or
projects where the application is the business, it is
easy to find ourselves unintentionally scaling up to
a monolith. This month we’ll spend some time
learning together how we can build stable
enterprise applications that scale, while moving
away from this architectural design pattern.
Speak up! Take the survey.
(With a little help from your smart phone)
http://goo.gl/forms/o3qJZ1Krpw
Are you working on a
monolith or distributed
system?
Which do you prefer?
Source: xkcd.com/1504/
1. What is a Monolith?
How do you know if you are working on one?
➔ Single-Tiered
The user interface and data access
code are combined into a single
program from a single platform. Very
few layers of abstraction.
➔ Self-Contained
Independent from other systems and
applications.
➔ Deeply Integrated
Models are collapsed for simplicity.
It’s an integrated system that
collapses as many unnecessary
conceptual models as possible.
Eliminates as much needless
abstraction as you can swing a
hammer at. IT’S A BIG FAT NO
TO DISTRIBUTING YOUR
SYSTEM lest it truly prevents
you from doing what really
needs to be done.
Source
From Majestic
Monolith by David
Heinemeier Hansson
on SignalVsNoise
2. Benefits of a
Monolith
➔ One codebase to
maintain
➔ Application logic is
tightly coupled to the
data model and user
interface
➔ Everything is in one place
Monoliths aren’t all bad. In fact, they are widely
used even in modern tech companies. But when
polled, most Nashville-based developers preferred
a distributed architecture. We can
debate which way is right, but it really
depends on the application and the
environment.
Meet Etsy.
Either Etsy is a monolith or it is a
shining example of what service-
oriented architecture looks like
and/or microservices, depending on
who you ask...
There are other languages at play at
Etsy, but as far as the guts of the API
and the web application, it is largely
PHP. There’s a huge advantage in
that, a massive advantage.
Source
Microservices,
monoliths and laser
nail guns: Etsy tech
boss on finding the
right focus
Meet Bootcamp.
One of the benefits to the
majestic monolith is that it
basically presumes that
the people who work on it
also understand it.
Source
The Majestic Monolith
Monoliths work best
on small teams
dedicated to one
application. Even in the best case
scenario,
documentation,
documentation! Silos of
knowledge are
dangerous without
documentation..
Now for some data.
(Thanks to everyone for participating!)
This survey was limited to the
NashDev Slack team and the
Nashville PHP meetup group.
http://goo.
gl/forms/o3qJZ1Krp
w
Meet Netflix.
“Give the developers the
pain, and they'll automate
everything out of the way.”
Source
https://www.battery.
com/our-
team/member/adrian-
cockcroft/
Defeat the monolith by
going small. Tiny, even.
Microservices are small applications that
represent one piece of business logic, or one
function within the application. When designed
as an API, the application becomes a front end
client consuming various API endpoints.
Pro Tip
Microservices can be
broken down into larger
chunks, but generally,
the smaller, the better.
This makes them easier
to maintain and helps
keep the system
decoupled.
3. Benefits of
Microservices
➔ Application logic, user interface,
and data models are de-
coupled.
➔ Easier to maintain and deploy.
➔ Easier to teach to new team
members.
➔ Increases application stability.
➔ Ability to fail gracefully.
Strong
application
architecture is a
simple as clear
lines and simple
patterns.
Consider the simple marble run.
COMPLEX PATTERNS
COMBINED WITH MILLIONS
OF DESIGN CHOICES
SLOW DOWN THE
SYSTEMAND MAKE IT
DIFFICULT TO UNDERSTAND.
Source: thisiscolossal.com
Some of our
monolithic
applications end
up looking like
this.
But perhaps they should
look more like this.
Building API Centric
Applications
An API Centric web application executes most, if
not all, of its functionality through API calls. The
application is separated into the front end client
and the codebase(s) for the API(s) it consumes. A
formerly monolithic app will likely consume many
microservices.
4. Best Practices
➔ Design your application so that it
is consuming APIs from your
microservices.
➔ Break each business task out into
a microservice with an exposed API.
➔ Require authentication with your
services. It goes without saying, but
this is an crucial for security.
➔ Use AWS to distribute and load
balance your services. We have
seen huge performance gains simply by
moving our infrastructure to AWS.
tl;dr
Microservices,
Monoliths, and
Laser Nail
Guns
Adopting
Microservices at
Netflix: Lessons
for Team and
Process Design
Microservices:
A Definition of
This New
Architectural
Term
Stay in Touch
t/s/l
@dee_wilcox
e/
dee.wilcox@mac.com

More Related Content

Viewers also liked

Splitting the Monolith
Splitting the MonolithSplitting the Monolith
Splitting the Monolith
Maria Gomez
 
Breaking Down the Monolith - Peter Marton, RisingStack
Breaking Down the Monolith - Peter Marton, RisingStackBreaking Down the Monolith - Peter Marton, RisingStack
Breaking Down the Monolith - Peter Marton, RisingStack
NodejsFoundation
 
Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015
Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015
Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015
Teo Ruiz
 
My Monolith is Melting - PIPELINE CONF 2015
My Monolith is Melting - PIPELINE CONF 2015My Monolith is Melting - PIPELINE CONF 2015
My Monolith is Melting - PIPELINE CONF 2015
Meri Williams
 
Monolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly OsconMonolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly Oscon
Christopher Grant
 
Evolving toward Microservices - O’Reilly SACON Keynote
Evolving toward Microservices  - O’Reilly SACON KeynoteEvolving toward Microservices  - O’Reilly SACON Keynote
Evolving toward Microservices - O’Reilly SACON Keynote
Christopher Grant
 
DPM UK: Stealing Project Management Lessons from Artificial Intelligence
DPM UK: Stealing Project Management Lessons from Artificial IntelligenceDPM UK: Stealing Project Management Lessons from Artificial Intelligence
DPM UK: Stealing Project Management Lessons from Artificial Intelligence
Meri Williams
 
I-Tier: Breaking Up the Monolith @ Philly ETE
I-Tier: Breaking Up the Monolith @ Philly ETEI-Tier: Breaking Up the Monolith @ Philly ETE
I-Tier: Breaking Up the Monolith @ Philly ETE
Sean McCullough
 
Embracing the Monolith in Small Teams: Doubling down on python to move fast w...
Embracing the Monolith in Small Teams: Doubling down on python to move fast w...Embracing the Monolith in Small Teams: Doubling down on python to move fast w...
Embracing the Monolith in Small Teams: Doubling down on python to move fast w...
PyData
 
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Surviving as a Monolith in a Microservices World - by Blair Olynyk, HyperwalletSurviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Hyperwallet
 
(PFC304) Effective Interprocess Communications in the Cloud: The Pros and Con...
(PFC304) Effective Interprocess Communications in the Cloud: The Pros and Con...(PFC304) Effective Interprocess Communications in the Cloud: The Pros and Con...
(PFC304) Effective Interprocess Communications in the Cloud: The Pros and Con...
Amazon Web Services
 
From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015
Randy Shoup
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
PLovababu
 
Pragmatic Microservices
Pragmatic MicroservicesPragmatic Microservices
Pragmatic Microservices
Randy Shoup
 
The Journey from Monolith to Microservices: a Guided Adventure
The Journey from Monolith to Microservices: a Guided AdventureThe Journey from Monolith to Microservices: a Guided Adventure
The Journey from Monolith to Microservices: a Guided Adventure
VMware Tanzu
 
Releasing the Monolith On a Daily Basis
Releasing the Monolith On a Daily BasisReleasing the Monolith On a Daily Basis
Releasing the Monolith On a Daily Basis
Atlassian
 

Viewers also liked (16)

Splitting the Monolith
Splitting the MonolithSplitting the Monolith
Splitting the Monolith
 
Breaking Down the Monolith - Peter Marton, RisingStack
Breaking Down the Monolith - Peter Marton, RisingStackBreaking Down the Monolith - Peter Marton, RisingStack
Breaking Down the Monolith - Peter Marton, RisingStack
 
Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015
Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015
Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015
 
My Monolith is Melting - PIPELINE CONF 2015
My Monolith is Melting - PIPELINE CONF 2015My Monolith is Melting - PIPELINE CONF 2015
My Monolith is Melting - PIPELINE CONF 2015
 
Monolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly OsconMonolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly Oscon
 
Evolving toward Microservices - O’Reilly SACON Keynote
Evolving toward Microservices  - O’Reilly SACON KeynoteEvolving toward Microservices  - O’Reilly SACON Keynote
Evolving toward Microservices - O’Reilly SACON Keynote
 
DPM UK: Stealing Project Management Lessons from Artificial Intelligence
DPM UK: Stealing Project Management Lessons from Artificial IntelligenceDPM UK: Stealing Project Management Lessons from Artificial Intelligence
DPM UK: Stealing Project Management Lessons from Artificial Intelligence
 
I-Tier: Breaking Up the Monolith @ Philly ETE
I-Tier: Breaking Up the Monolith @ Philly ETEI-Tier: Breaking Up the Monolith @ Philly ETE
I-Tier: Breaking Up the Monolith @ Philly ETE
 
Embracing the Monolith in Small Teams: Doubling down on python to move fast w...
Embracing the Monolith in Small Teams: Doubling down on python to move fast w...Embracing the Monolith in Small Teams: Doubling down on python to move fast w...
Embracing the Monolith in Small Teams: Doubling down on python to move fast w...
 
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Surviving as a Monolith in a Microservices World - by Blair Olynyk, HyperwalletSurviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
 
(PFC304) Effective Interprocess Communications in the Cloud: The Pros and Con...
(PFC304) Effective Interprocess Communications in the Cloud: The Pros and Con...(PFC304) Effective Interprocess Communications in the Cloud: The Pros and Con...
(PFC304) Effective Interprocess Communications in the Cloud: The Pros and Con...
 
From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
Pragmatic Microservices
Pragmatic MicroservicesPragmatic Microservices
Pragmatic Microservices
 
The Journey from Monolith to Microservices: a Guided Adventure
The Journey from Monolith to Microservices: a Guided AdventureThe Journey from Monolith to Microservices: a Guided Adventure
The Journey from Monolith to Microservices: a Guided Adventure
 
Releasing the Monolith On a Daily Basis
Releasing the Monolith On a Daily BasisReleasing the Monolith On a Daily Basis
Releasing the Monolith On a Daily Basis
 

Similar to Beware the monolith

Metalayer now Colayer - Part 3/3 - full Presentation
Metalayer now Colayer - Part 3/3 - full PresentationMetalayer now Colayer - Part 3/3 - full Presentation
Metalayer now Colayer - Part 3/3 - full Presentation
Markus Hegi
 
A Tale of Contemporary Software
A Tale of Contemporary SoftwareA Tale of Contemporary Software
A Tale of Contemporary Software
Yun Zhi Lin
 
Reactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and Grails
Steve Pember
 
Software application architecture
Software application architectureSoftware application architecture
Software application architecture
anwitat
 
Spectrum 16 pmc 16 - mobile and tech comm
Spectrum 16   pmc 16 - mobile and tech commSpectrum 16   pmc 16 - mobile and tech comm
Spectrum 16 pmc 16 - mobile and tech comm
Neil Perlin
 
Platforms and Microservices - Is There a Middle Ground for Engineers and Tech...
Platforms and Microservices - Is There a Middle Ground for Engineers and Tech...Platforms and Microservices - Is There a Middle Ground for Engineers and Tech...
Platforms and Microservices - Is There a Middle Ground for Engineers and Tech...
Dialexa
 
Microservices Architecture for e-Commerce
Microservices Architecture for e-CommerceMicroservices Architecture for e-Commerce
Microservices Architecture for e-Commerce
Divante
 
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
DataScienceConferenc1
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype Dcphp
Tony Bibbs
 
The Benefits Of Software Creation
The Benefits Of Software CreationThe Benefits Of Software Creation
The Benefits Of Software Creation
Jennifer Wood
 
Microservices
MicroservicesMicroservices
Software Analytics: Towards Software Mining that Matters (2014)
Software Analytics:Towards Software Mining that Matters (2014)Software Analytics:Towards Software Mining that Matters (2014)
Software Analytics: Towards Software Mining that Matters (2014)
Tao Xie
 
A Brief Note On Asp.Net And Cloud Computing Essay
A Brief Note On Asp.Net And Cloud Computing EssayA Brief Note On Asp.Net And Cloud Computing Essay
A Brief Note On Asp.Net And Cloud Computing Essay
Lanate Drummond
 
The top 6 microservices patterns
The top 6 microservices patternsThe top 6 microservices patterns
The top 6 microservices patterns
Abhishek Sood
 
locotalk-whitepaper-2016
locotalk-whitepaper-2016locotalk-whitepaper-2016
locotalk-whitepaper-2016
Anthony Wijnen
 
IRJET- Voice based Email Application for Blind People
IRJET-  	  Voice based Email Application for Blind PeopleIRJET-  	  Voice based Email Application for Blind People
IRJET- Voice based Email Application for Blind People
IRJET Journal
 
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
Capgemini
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
Kelly Goetsch
 
Technology and UX,UI design trends for 2023
Technology and UX,UI design trends for 2023Technology and UX,UI design trends for 2023
Technology and UX,UI design trends for 2023
Cocoon Experience
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
Faren faren
 

Similar to Beware the monolith (20)

Metalayer now Colayer - Part 3/3 - full Presentation
Metalayer now Colayer - Part 3/3 - full PresentationMetalayer now Colayer - Part 3/3 - full Presentation
Metalayer now Colayer - Part 3/3 - full Presentation
 
A Tale of Contemporary Software
A Tale of Contemporary SoftwareA Tale of Contemporary Software
A Tale of Contemporary Software
 
Reactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and Grails
 
Software application architecture
Software application architectureSoftware application architecture
Software application architecture
 
Spectrum 16 pmc 16 - mobile and tech comm
Spectrum 16   pmc 16 - mobile and tech commSpectrum 16   pmc 16 - mobile and tech comm
Spectrum 16 pmc 16 - mobile and tech comm
 
Platforms and Microservices - Is There a Middle Ground for Engineers and Tech...
Platforms and Microservices - Is There a Middle Ground for Engineers and Tech...Platforms and Microservices - Is There a Middle Ground for Engineers and Tech...
Platforms and Microservices - Is There a Middle Ground for Engineers and Tech...
 
Microservices Architecture for e-Commerce
Microservices Architecture for e-CommerceMicroservices Architecture for e-Commerce
Microservices Architecture for e-Commerce
 
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype Dcphp
 
The Benefits Of Software Creation
The Benefits Of Software CreationThe Benefits Of Software Creation
The Benefits Of Software Creation
 
Microservices
MicroservicesMicroservices
Microservices
 
Software Analytics: Towards Software Mining that Matters (2014)
Software Analytics:Towards Software Mining that Matters (2014)Software Analytics:Towards Software Mining that Matters (2014)
Software Analytics: Towards Software Mining that Matters (2014)
 
A Brief Note On Asp.Net And Cloud Computing Essay
A Brief Note On Asp.Net And Cloud Computing EssayA Brief Note On Asp.Net And Cloud Computing Essay
A Brief Note On Asp.Net And Cloud Computing Essay
 
The top 6 microservices patterns
The top 6 microservices patternsThe top 6 microservices patterns
The top 6 microservices patterns
 
locotalk-whitepaper-2016
locotalk-whitepaper-2016locotalk-whitepaper-2016
locotalk-whitepaper-2016
 
IRJET- Voice based Email Application for Blind People
IRJET-  	  Voice based Email Application for Blind PeopleIRJET-  	  Voice based Email Application for Blind People
IRJET- Voice based Email Application for Blind People
 
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
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
 
Technology and UX,UI design trends for 2023
Technology and UX,UI design trends for 2023Technology and UX,UI design trends for 2023
Technology and UX,UI design trends for 2023
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 

Recently uploaded

Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
YAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring detailsYAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring details
NishanthaBulumulla1
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 

Recently uploaded (20)

Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
YAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring detailsYAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring details
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 

Beware the monolith

  • 1. Beware the Monolith Presentation by Dee Wilcox Nashville PHP - March 8, 2016
  • 2. Developing for Scale In enterprise-level development projects, or projects where the application is the business, it is easy to find ourselves unintentionally scaling up to a monolith. This month we’ll spend some time learning together how we can build stable enterprise applications that scale, while moving away from this architectural design pattern.
  • 3. Speak up! Take the survey. (With a little help from your smart phone) http://goo.gl/forms/o3qJZ1Krpw Are you working on a monolith or distributed system? Which do you prefer?
  • 5. 1. What is a Monolith? How do you know if you are working on one? ➔ Single-Tiered The user interface and data access code are combined into a single program from a single platform. Very few layers of abstraction. ➔ Self-Contained Independent from other systems and applications. ➔ Deeply Integrated Models are collapsed for simplicity.
  • 6. It’s an integrated system that collapses as many unnecessary conceptual models as possible. Eliminates as much needless abstraction as you can swing a hammer at. IT’S A BIG FAT NO TO DISTRIBUTING YOUR SYSTEM lest it truly prevents you from doing what really needs to be done. Source From Majestic Monolith by David Heinemeier Hansson on SignalVsNoise
  • 7. 2. Benefits of a Monolith ➔ One codebase to maintain ➔ Application logic is tightly coupled to the data model and user interface ➔ Everything is in one place
  • 8. Monoliths aren’t all bad. In fact, they are widely used even in modern tech companies. But when polled, most Nashville-based developers preferred a distributed architecture. We can debate which way is right, but it really depends on the application and the environment.
  • 9. Meet Etsy. Either Etsy is a monolith or it is a shining example of what service- oriented architecture looks like and/or microservices, depending on who you ask... There are other languages at play at Etsy, but as far as the guts of the API and the web application, it is largely PHP. There’s a huge advantage in that, a massive advantage. Source Microservices, monoliths and laser nail guns: Etsy tech boss on finding the right focus
  • 10. Meet Bootcamp. One of the benefits to the majestic monolith is that it basically presumes that the people who work on it also understand it. Source The Majestic Monolith
  • 11. Monoliths work best on small teams dedicated to one application. Even in the best case scenario, documentation, documentation! Silos of knowledge are dangerous without documentation..
  • 12. Now for some data. (Thanks to everyone for participating!) This survey was limited to the NashDev Slack team and the Nashville PHP meetup group. http://goo. gl/forms/o3qJZ1Krp w
  • 13. Meet Netflix. “Give the developers the pain, and they'll automate everything out of the way.” Source https://www.battery. com/our- team/member/adrian- cockcroft/
  • 14. Defeat the monolith by going small. Tiny, even. Microservices are small applications that represent one piece of business logic, or one function within the application. When designed as an API, the application becomes a front end client consuming various API endpoints. Pro Tip Microservices can be broken down into larger chunks, but generally, the smaller, the better. This makes them easier to maintain and helps keep the system decoupled.
  • 15. 3. Benefits of Microservices ➔ Application logic, user interface, and data models are de- coupled. ➔ Easier to maintain and deploy. ➔ Easier to teach to new team members. ➔ Increases application stability. ➔ Ability to fail gracefully.
  • 16. Strong application architecture is a simple as clear lines and simple patterns.
  • 17. Consider the simple marble run. COMPLEX PATTERNS COMBINED WITH MILLIONS OF DESIGN CHOICES SLOW DOWN THE SYSTEMAND MAKE IT DIFFICULT TO UNDERSTAND. Source: thisiscolossal.com
  • 18. Some of our monolithic applications end up looking like this.
  • 19. But perhaps they should look more like this.
  • 20. Building API Centric Applications An API Centric web application executes most, if not all, of its functionality through API calls. The application is separated into the front end client and the codebase(s) for the API(s) it consumes. A formerly monolithic app will likely consume many microservices.
  • 21. 4. Best Practices ➔ Design your application so that it is consuming APIs from your microservices. ➔ Break each business task out into a microservice with an exposed API. ➔ Require authentication with your services. It goes without saying, but this is an crucial for security. ➔ Use AWS to distribute and load balance your services. We have seen huge performance gains simply by moving our infrastructure to AWS.
  • 22. tl;dr Microservices, Monoliths, and Laser Nail Guns Adopting Microservices at Netflix: Lessons for Team and Process Design Microservices: A Definition of This New Architectural Term