SlideShare a Scribd company logo
From Monoliths to Services
Gradually paying your Technical Debt
BY DAVID LITVAK (@dlitvakb)
2
TECHNICAL DEBT
“You want to make a “quick change” to
your software […], and it isn’t quick.
Whatever made that happen, that’s tech
debt.”
Dave Diehl
http://jimplush.com/talk/2015/02/
Senior Developer at Fusion Alliance
From Monoliths to Services: Grafually paying your Technical Debt
Metaphor explaining difficulties of shipping software
Like financial debt, technical debt comes with interests.
Failing to pay your debt, interests will come back at you.
Why is it called Debt?
From Monoliths to Services: Grafually paying your Technical Debt
THE SOFTWARE COST TRIAD
Move one corner and the others
will adjust accordingly
If you want to increase Quality, you
will have to spend more Money
and Time
Money Time
Quality
SOFTWARE
COST
Technical Debt comes when
Quality is not taken into account,
prioritising spending less or
working faster
Debt itself is not a bad thing!
Invest and pay back early!
Don’t leave debt hanging!
But Hey! It’s not always bad!
From Monoliths to Services: Grafually paying your Technical Debt
What are the causes?
• Cutting Corners
“I know it looks complicated, but I don’t have time to refactor it.”
https://www.codementor.io/ruby-on-rails/tutorial/staying-on-top-of-your-technical-debt
From Monoliths to Services: Grafually paying your Technical Debt
What are the causes?
• Lack of Testing
“We can write tests for it later.”
https://www.codementor.io/ruby-on-rails/tutorial/staying-on-top-of-your-technical-debt
From Monoliths to Services: Grafually paying your Technical Debt
What are the causes?
• Assuming “False Positives” are Positives
“The build fails sometimes, but it passes most of the time. Let’s just move on.”
https://www.codementor.io/ruby-on-rails/tutorial/staying-on-top-of-your-technical-debt
From Monoliths to Services: Grafually paying your Technical Debt
How to avoid?
• Work Small
Make incremental progress
From Monoliths to Services: Grafually paying your Technical Debt
How to avoid?
• Work Clean
Seek for refactoring opportunities
From Monoliths to Services: Grafually paying your Technical Debt
How to avoid?
• Work Green
Have a Test Suite - Use Continuous Integration Tools
From Monoliths to Services: Grafually paying your Technical Debt
Grades of Debt - James Higgs
• Grade One: Accumulation due to extrinsic changes
Keep up to date with your dependencies and technologies
https://madebymany.com/blog/the-four-grades-of-technical-debt
From Monoliths to Services: Grafually paying your Technical Debt
Grades of Debt - James Higgs
• Grade Two: Developer Comfort
Code for readability - your future self and co-workers will much appreciate it
https://madebymany.com/blog/the-four-grades-of-technical-debt
From Monoliths to Services: Grafually paying your Technical Debt
Grades of Debt - James Higgs
• Grade Three: Cost of Pragmatism
Use debt wisely and prototype - throw away if not successful
https://madebymany.com/blog/the-four-grades-of-technical-debt
From Monoliths to Services: Grafually paying your Technical Debt
Grades of Debt - James Higgs
• Grade Four: The One with the Bite - Impossibility to Move Forward
Point of no return! If you’re here, it may be wise to think about restarting!
https://madebymany.com/blog/the-four-grades-of-technical-debt
From Monoliths to Services: Grafually paying your Technical Debt
31
MICROSERVICES
Architectural Styles
• Monoliths
Single Application - Multiple Responsibilities
• Microservices
Multiple Applications - Single Responsibilities
“The microservice architectural style is an approach
to developing a single application as a suite of
small services, each running in its own process and
communicating with lightweight mechanisms, often
an HTTP resource API.”
Martin Fowler
Chief Scientist at ThoughtWorks
http://martinfowler.com/articles/microservices.html
It's an architectural style that enables us to separate each of our product’s
responsibilities into very small and separate applications
This gives us flexibility
KISS / UNIX
Modern development adopted a similar style
Where does it come from?
https://en.wikipedia.org/wiki/KISS_principle
From Monoliths to Services: Grafually paying your Technical Debt
Why is it useful?
• Service Independence
Independent from one another - they have “contracts”
Why is it useful?
• Deployability
Have a bug in a component - fix and deploy
Why is it useful?
• Team Independence
Each can be owned by a different team
What are the downsides?
• Piping
You have to take into account the inter-connections
• Deployability
Orchestration and Versioning
• Infrastructure
Much more complex setup
41
STATE OF THE CLOUD
“If someone asks me what cloud computing is, I try
not to get bogged down with definitions. I tell them
that, simply put, cloud computing is a better way to
run your business.”
Marc Benioff
CEO of salesforce.com
http://www.mercurynews.com/2009/10/23/2009-qa-marc-benioff-ceo-of-salesforce-com/
2016
From Monoliths to Services: Grafually paying your Technical Debt
“Cloud computing is really a no-brainer for any start-up
because it allows you to test your business plan very
quickly for little money. Every start-up, or even a division
within a company that has an idea for something new,
should be figuring out how to use cloud computing in its
plan.”
Brad Jefferson
CEO & Co-Founder of Animoto
http://www.cio.com/article/2428093/infrastructure/cloud-computing--pros-and-cons.html
What does it provide us? - Infrastructure
• Cheap
Even with pay-on-demand pricing models
What does it provide us? - Infrastructure
• Replaceable
Changed the service? Drop the server and create a new one
What does it provide us? - Infrastructure
• Scalable
When demand raises, automatically spin up new copies to cope with demand
What does it provide us? - Software
• CDNs
Global content caching - Blazing fast websites
From Monoliths to Services: Grafually paying your Technical Debt
What does it provide us? - Software
• Content and Databases
Storage servers with multiple architectures
From Monoliths to Services: Grafually paying your Technical Debt
What does it provide us? - Software
• And EVERYTHING Else
Even sending “Thank You” notes as a Service
From Monoliths to Services: Grafually paying your Technical Debt
Current Options - Infrastructure
• Amazon Web Services
• Microsoft Azure
• Rackspace
• Google Cloud Engine
Current Options - CDNs
• CloudFront
• Akamai
• MaxCDN
• Fastly
Current Options - Services
• Contentful
Content Management as a Service
From Monoliths to Services: Grafually paying your Technical Debt
Current Options - Services
• Snipcart
Shopping Cart as a Service
From Monoliths to Services: Grafually paying your Technical Debt
Current Options - Services
• Auth0
Authentication as a Service
From Monoliths to Services: Grafually paying your Technical Debt
63
GOING SERVERLESS
“Serverless architectures refer to applications that
significantly depend on third-party services (knows as
Backend as a Service or "BaaS") or on custom code that's
run in ephemeral containers (Function as a Service or
“FaaS”). […] By using these ideas, and by moving much
behaviour to the front end, such architectures remove the
need for the traditional 'always on' server system sitting
behind an application”
Mike Roberts
CEO & Co-Founder of Fried Gold Software
http://www.martinfowler.com/articles/serverless.html
TRADITIONAL APPLICATION
Unintelligent Client
Server does most of the
hard work
Source: https://www.martinfowler.com
SERVERLESS APPLICATION
Rich client - Many Frontends
Independent services and
infrastructure
Source: https://www.martinfowler.com
“If your PaaS can efficiently start instances in 20ms
that run for half a second, then call it serverless.”
Adrian Cockcroft
Technology Fellow at Battery Ventures
https://twitter.com/adrianco/status/736553530689998848
68
GOODBYE MONOLITH
“Microservices architecture potentially offers an
easier way to pay down technical debt. Refactoring
a big monolithic application can be the equivalent
of a balloon payment. […] you can pay your
technical debt incrementally by refactoring services
one by one.”
Eric Knorr
Editor in Chief at CNET
http://www.infoworld.com/article/2878659/application-development/reducing-technical-debt-with-microservices.html
Now that we’ve introduced the concepts
Let’s dive into how to apply them in practice
Starting from your Rails App
• Identify
Models usually travel in families - identify these families
From Monoliths to Services: Grafually paying your Technical Debt
Starting from your Rails App
• Categorize
Understand the functionality and responsibility of each component family
From Monoliths to Services: Grafually paying your Technical Debt
Starting from your Rails App
• Split
Create separate API apps exposing them
From Monoliths to Services: Grafually paying your Technical Debt
Starting from your Rails App
• Communicate
Integrate different parts of the application through it’s HTTP Interfaces
From Monoliths to Services: Grafually paying your Technical Debt
Moving away from Rails
• Move Static and Read-first content to a CMS
Marketing, Blogs, Product and non-user generated content moved
From Monoliths to Services: Grafually paying your Technical Debt
Moving away from Rails
• Decouple your Front-End from your business logic
Your HTML or Native app shouldn’t be tied to your server code
From Monoliths to Services: Grafually paying your Technical Debt
Moving away from Rails
• Profit from 3rd party Services
Use cloud based authentication, messaging, mailing, payments to remove burden
from your code
From Monoliths to Services: Grafually paying your Technical Debt
Moving away from Rails
• Leverage Static Sites and Static Assets
Using Static Site Generated websites + CDNs to deliver fast and increase conversion
“It’s much easier mentally to tackle $10,000 of debt
across 4 credit cards at $2500 each than 1 card at
the full $10,000.”
Jim Plush
Sr Director of Engineering at CrowdStrike
http://jimplush.com/talk/2015/02/28/microservices-allow-for-localized-tech-debt/
Keep Security in Check
• Validate
Validate on your Client side code - specially on payment transactions
From Monoliths to Services: Grafually paying your Technical Debt
Keep Security in Check
• Validate
Validate on your Middleware - specially on payment transactions
From Monoliths to Services: Grafually paying your Technical Debt
Keep Security in Check
• Validate
Make sure not to expose your internals
From Monoliths to Services: Grafually paying your Technical Debt
Keep Security in Check
• Validate
Make sure you have retry and fallback mechanisms
From Monoliths to Services: Grafually paying your Technical Debt
Rounding up
• Prototype and test ideas
• Create single responsibility applications
• Test your code
• Keep it safe
Demo Time
From Monoliths to Services: Grafually paying your Technical Debt
We’re Hiring!
Twitter: @dlitvakb
Email: david.litvak@contentful.com
Thanks!

More Related Content

PDF
From Monoliths to Services: Paying Your Technical Debt
PPTX
Software Architectures, Week 3 - Microservice-based Architectures
PDF
Microservice Architecture
PDF
Deep-dive into Microservice Outer Architecture
PDF
Decomposing applications for deployability and scalability #springone2gx #s12gx
PPTX
CQRS recipes or how to cook your architecture
PPTX
Intro to Microservices Architecture
PPTX
Why to Cloud Native
From Monoliths to Services: Paying Your Technical Debt
Software Architectures, Week 3 - Microservice-based Architectures
Microservice Architecture
Deep-dive into Microservice Outer Architecture
Decomposing applications for deployability and scalability #springone2gx #s12gx
CQRS recipes or how to cook your architecture
Intro to Microservices Architecture
Why to Cloud Native

What's hot (19)

PPTX
From SOA to MSA
PPTX
Knockout js
PDF
TS 4839 - Enterprise Integration Patterns in Practice
PDF
Understanding Microservices
PDF
Creating Effective Mobile Applications with IBM Bluemix
PPTX
How We Brought Advanced HTML5 Viewing to ADF
PPTX
Pros & Cons of Microservices Architecture
PPT
Bluemix and DevOps workshop lab
PPTX
Introduction to Microservices
PDF
Microservices Architecture (MSA) - Presentation made at The Open Group confer...
PPTX
Voxxed Athens 2018 - Eventing, Serverless, and the Extensible Enterprise
PPTX
App Development Evolution: What has changed?
PPTX
Alfresco DevCon 2019: BiDirectional Sync to Other Platforms
PDF
Continuous Delivery with NetflixOSS
PDF
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
PDF
The App Evolution
PPTX
MS Insights Brazil 2015 containers and devops
PDF
What is a itil and how does it relate to your collaborative environment uklug
PPTX
CloudComputing
From SOA to MSA
Knockout js
TS 4839 - Enterprise Integration Patterns in Practice
Understanding Microservices
Creating Effective Mobile Applications with IBM Bluemix
How We Brought Advanced HTML5 Viewing to ADF
Pros & Cons of Microservices Architecture
Bluemix and DevOps workshop lab
Introduction to Microservices
Microservices Architecture (MSA) - Presentation made at The Open Group confer...
Voxxed Athens 2018 - Eventing, Serverless, and the Extensible Enterprise
App Development Evolution: What has changed?
Alfresco DevCon 2019: BiDirectional Sync to Other Platforms
Continuous Delivery with NetflixOSS
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
The App Evolution
MS Insights Brazil 2015 containers and devops
What is a itil and how does it relate to your collaborative environment uklug
CloudComputing
Ad

Similar to From Monoliths to Services: Grafually paying your Technical Debt (20)

PDF
Evolving your Architecture to MicroServices
PDF
Automating Applications with Habitat - Sydney Cloud Native Meetup
PPTX
What serverless means for enterprise apps
PPTX
Agility and Control from AWS [FutureStack16]
PDF
Microservices Journey NYC
PDF
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
PDF
The Reality of Managing Microservices in Your CD Pipeline
PPTX
MICROSERVICES ARCHITECTURE unit -2.pptx
PPTX
THAT Conference Wisconsin - MACH Based Website Development in Minutes
PPTX
Serverless & Microservices Architecture
PPTX
Over view of software artitecture
PPTX
Technology insights: Decision Science Platform
PPTX
Disruptive Trends in Application Development
PDF
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
PPTX
A Microservice Journey
PDF
20161220 - microservice
PPTX
Best Practices Building Cloud Scale Apps with Microservices
PPTX
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
PPTX
Micro services overview
PPTX
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Evolving your Architecture to MicroServices
Automating Applications with Habitat - Sydney Cloud Native Meetup
What serverless means for enterprise apps
Agility and Control from AWS [FutureStack16]
Microservices Journey NYC
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
The Reality of Managing Microservices in Your CD Pipeline
MICROSERVICES ARCHITECTURE unit -2.pptx
THAT Conference Wisconsin - MACH Based Website Development in Minutes
Serverless & Microservices Architecture
Over view of software artitecture
Technology insights: Decision Science Platform
Disruptive Trends in Application Development
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
A Microservice Journey
20161220 - microservice
Best Practices Building Cloud Scale Apps with Microservices
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Micro services overview
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Ad

Recently uploaded (20)

PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
ai tools demonstartion for schools and inter college
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
history of c programming in notes for students .pptx
PPT
Introduction Database Management System for Course Database
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Introduction to Artificial Intelligence
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Nekopoi APK 2025 free lastest update
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
medical staffing services at VALiNTRY
Wondershare Filmora 15 Crack With Activation Key [2025
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
ai tools demonstartion for schools and inter college
Understanding Forklifts - TECH EHS Solution
history of c programming in notes for students .pptx
Introduction Database Management System for Course Database
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Introduction to Artificial Intelligence
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
How Creative Agencies Leverage Project Management Software.pdf
Nekopoi APK 2025 free lastest update
2025 Textile ERP Trends: SAP, Odoo & Oracle
Softaken Excel to vCard Converter Software.pdf
Odoo POS Development Services by CandidRoot Solutions
How to Choose the Right IT Partner for Your Business in Malaysia
How to Migrate SBCGlobal Email to Yahoo Easily
medical staffing services at VALiNTRY

From Monoliths to Services: Grafually paying your Technical Debt

  • 1. From Monoliths to Services Gradually paying your Technical Debt BY DAVID LITVAK (@dlitvakb)
  • 3. “You want to make a “quick change” to your software […], and it isn’t quick. Whatever made that happen, that’s tech debt.” Dave Diehl http://jimplush.com/talk/2015/02/ Senior Developer at Fusion Alliance
  • 5. Metaphor explaining difficulties of shipping software
  • 6. Like financial debt, technical debt comes with interests. Failing to pay your debt, interests will come back at you. Why is it called Debt?
  • 8. THE SOFTWARE COST TRIAD Move one corner and the others will adjust accordingly If you want to increase Quality, you will have to spend more Money and Time Money Time Quality SOFTWARE COST Technical Debt comes when Quality is not taken into account, prioritising spending less or working faster
  • 9. Debt itself is not a bad thing! Invest and pay back early! Don’t leave debt hanging! But Hey! It’s not always bad!
  • 11. What are the causes? • Cutting Corners “I know it looks complicated, but I don’t have time to refactor it.” https://www.codementor.io/ruby-on-rails/tutorial/staying-on-top-of-your-technical-debt
  • 13. What are the causes? • Lack of Testing “We can write tests for it later.” https://www.codementor.io/ruby-on-rails/tutorial/staying-on-top-of-your-technical-debt
  • 15. What are the causes? • Assuming “False Positives” are Positives “The build fails sometimes, but it passes most of the time. Let’s just move on.” https://www.codementor.io/ruby-on-rails/tutorial/staying-on-top-of-your-technical-debt
  • 17. How to avoid? • Work Small Make incremental progress
  • 19. How to avoid? • Work Clean Seek for refactoring opportunities
  • 21. How to avoid? • Work Green Have a Test Suite - Use Continuous Integration Tools
  • 23. Grades of Debt - James Higgs • Grade One: Accumulation due to extrinsic changes Keep up to date with your dependencies and technologies https://madebymany.com/blog/the-four-grades-of-technical-debt
  • 25. Grades of Debt - James Higgs • Grade Two: Developer Comfort Code for readability - your future self and co-workers will much appreciate it https://madebymany.com/blog/the-four-grades-of-technical-debt
  • 27. Grades of Debt - James Higgs • Grade Three: Cost of Pragmatism Use debt wisely and prototype - throw away if not successful https://madebymany.com/blog/the-four-grades-of-technical-debt
  • 29. Grades of Debt - James Higgs • Grade Four: The One with the Bite - Impossibility to Move Forward Point of no return! If you’re here, it may be wise to think about restarting! https://madebymany.com/blog/the-four-grades-of-technical-debt
  • 32. Architectural Styles • Monoliths Single Application - Multiple Responsibilities • Microservices Multiple Applications - Single Responsibilities
  • 33. “The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.” Martin Fowler Chief Scientist at ThoughtWorks http://martinfowler.com/articles/microservices.html
  • 34. It's an architectural style that enables us to separate each of our product’s responsibilities into very small and separate applications This gives us flexibility
  • 35. KISS / UNIX Modern development adopted a similar style Where does it come from? https://en.wikipedia.org/wiki/KISS_principle
  • 37. Why is it useful? • Service Independence Independent from one another - they have “contracts”
  • 38. Why is it useful? • Deployability Have a bug in a component - fix and deploy
  • 39. Why is it useful? • Team Independence Each can be owned by a different team
  • 40. What are the downsides? • Piping You have to take into account the inter-connections • Deployability Orchestration and Versioning • Infrastructure Much more complex setup
  • 42. “If someone asks me what cloud computing is, I try not to get bogged down with definitions. I tell them that, simply put, cloud computing is a better way to run your business.” Marc Benioff CEO of salesforce.com http://www.mercurynews.com/2009/10/23/2009-qa-marc-benioff-ceo-of-salesforce-com/
  • 43. 2016
  • 45. “Cloud computing is really a no-brainer for any start-up because it allows you to test your business plan very quickly for little money. Every start-up, or even a division within a company that has an idea for something new, should be figuring out how to use cloud computing in its plan.” Brad Jefferson CEO & Co-Founder of Animoto http://www.cio.com/article/2428093/infrastructure/cloud-computing--pros-and-cons.html
  • 46. What does it provide us? - Infrastructure • Cheap Even with pay-on-demand pricing models
  • 47. What does it provide us? - Infrastructure • Replaceable Changed the service? Drop the server and create a new one
  • 48. What does it provide us? - Infrastructure • Scalable When demand raises, automatically spin up new copies to cope with demand
  • 49. What does it provide us? - Software • CDNs Global content caching - Blazing fast websites
  • 51. What does it provide us? - Software • Content and Databases Storage servers with multiple architectures
  • 53. What does it provide us? - Software • And EVERYTHING Else Even sending “Thank You” notes as a Service
  • 55. Current Options - Infrastructure • Amazon Web Services • Microsoft Azure • Rackspace • Google Cloud Engine
  • 56. Current Options - CDNs • CloudFront • Akamai • MaxCDN • Fastly
  • 57. Current Options - Services • Contentful Content Management as a Service
  • 59. Current Options - Services • Snipcart Shopping Cart as a Service
  • 61. Current Options - Services • Auth0 Authentication as a Service
  • 64. “Serverless architectures refer to applications that significantly depend on third-party services (knows as Backend as a Service or "BaaS") or on custom code that's run in ephemeral containers (Function as a Service or “FaaS”). […] By using these ideas, and by moving much behaviour to the front end, such architectures remove the need for the traditional 'always on' server system sitting behind an application” Mike Roberts CEO & Co-Founder of Fried Gold Software http://www.martinfowler.com/articles/serverless.html
  • 65. TRADITIONAL APPLICATION Unintelligent Client Server does most of the hard work Source: https://www.martinfowler.com
  • 66. SERVERLESS APPLICATION Rich client - Many Frontends Independent services and infrastructure Source: https://www.martinfowler.com
  • 67. “If your PaaS can efficiently start instances in 20ms that run for half a second, then call it serverless.” Adrian Cockcroft Technology Fellow at Battery Ventures https://twitter.com/adrianco/status/736553530689998848
  • 69. “Microservices architecture potentially offers an easier way to pay down technical debt. Refactoring a big monolithic application can be the equivalent of a balloon payment. […] you can pay your technical debt incrementally by refactoring services one by one.” Eric Knorr Editor in Chief at CNET http://www.infoworld.com/article/2878659/application-development/reducing-technical-debt-with-microservices.html
  • 70. Now that we’ve introduced the concepts Let’s dive into how to apply them in practice
  • 71. Starting from your Rails App • Identify Models usually travel in families - identify these families
  • 73. Starting from your Rails App • Categorize Understand the functionality and responsibility of each component family
  • 75. Starting from your Rails App • Split Create separate API apps exposing them
  • 77. Starting from your Rails App • Communicate Integrate different parts of the application through it’s HTTP Interfaces
  • 79. Moving away from Rails • Move Static and Read-first content to a CMS Marketing, Blogs, Product and non-user generated content moved
  • 81. Moving away from Rails • Decouple your Front-End from your business logic Your HTML or Native app shouldn’t be tied to your server code
  • 83. Moving away from Rails • Profit from 3rd party Services Use cloud based authentication, messaging, mailing, payments to remove burden from your code
  • 85. Moving away from Rails • Leverage Static Sites and Static Assets Using Static Site Generated websites + CDNs to deliver fast and increase conversion
  • 86. “It’s much easier mentally to tackle $10,000 of debt across 4 credit cards at $2500 each than 1 card at the full $10,000.” Jim Plush Sr Director of Engineering at CrowdStrike http://jimplush.com/talk/2015/02/28/microservices-allow-for-localized-tech-debt/
  • 87. Keep Security in Check • Validate Validate on your Client side code - specially on payment transactions
  • 89. Keep Security in Check • Validate Validate on your Middleware - specially on payment transactions
  • 91. Keep Security in Check • Validate Make sure not to expose your internals
  • 93. Keep Security in Check • Validate Make sure you have retry and fallback mechanisms
  • 95. Rounding up • Prototype and test ideas • Create single responsibility applications • Test your code • Keep it safe
  • 98. We’re Hiring! Twitter: @dlitvakb Email: david.litvak@contentful.com Thanks!