From Monoliths to Services: Grafually paying your Technical Debt
-
Upload
david-litvak-bruno -
Category
Software
-
view
91 -
download
2
Transcript of From Monoliths to Services: Grafually paying your Technical Debt
![Page 1: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/1.jpg)
From Monoliths to Services Gradually paying your Technical Debt
BY DAVID LITVAK (@dlitvakb)
![Page 2: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/2.jpg)
2
TECHNICAL DEBT
![Page 3: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/3.jpg)
“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
![Page 4: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/4.jpg)
![Page 5: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/5.jpg)
Metaphor explaining difficulties of shipping software
![Page 6: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/6.jpg)
Like financial debt, technical debt comes with interests.
Failing to pay your debt, interests will come back at you.
Why is it called Debt?
![Page 7: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/7.jpg)
![Page 8: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/8.jpg)
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
![Page 9: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/9.jpg)
Debt itself is not a bad thing!
Invest and pay back early!
Don’t leave debt hanging!
But Hey! It’s not always bad!
![Page 10: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/10.jpg)
![Page 11: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/11.jpg)
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
![Page 12: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/12.jpg)
![Page 13: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/13.jpg)
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
![Page 14: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/14.jpg)
![Page 15: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/15.jpg)
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
![Page 16: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/16.jpg)
![Page 17: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/17.jpg)
How to avoid?
• Work Small
Make incremental progress
![Page 18: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/18.jpg)
![Page 19: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/19.jpg)
How to avoid?
• Work Clean
Seek for refactoring opportunities
![Page 20: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/20.jpg)
![Page 21: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/21.jpg)
How to avoid?
• Work Green
Have a Test Suite - Use Continuous Integration Tools
![Page 22: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/22.jpg)
![Page 23: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/23.jpg)
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
![Page 24: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/24.jpg)
![Page 25: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/25.jpg)
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
![Page 26: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/26.jpg)
![Page 27: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/27.jpg)
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
![Page 28: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/28.jpg)
![Page 29: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/29.jpg)
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
![Page 30: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/30.jpg)
![Page 31: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/31.jpg)
31
MICROSERVICES
![Page 32: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/32.jpg)
Architectural Styles
• Monoliths
Single Application - Multiple Responsibilities
• Microservices
Multiple Applications - Single Responsibilities
![Page 33: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/33.jpg)
“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
![Page 34: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/34.jpg)
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
![Page 35: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/35.jpg)
KISS / UNIX
Modern development adopted a similar style
Where does it come from?
https://en.wikipedia.org/wiki/KISS_principle
![Page 36: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/36.jpg)
![Page 37: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/37.jpg)
Why is it useful?
• Service Independence
Independent from one another - they have “contracts”
![Page 38: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/38.jpg)
Why is it useful?
• Deployability
Have a bug in a component - fix and deploy
![Page 39: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/39.jpg)
Why is it useful?
• Team Independence
Each can be owned by a different team
![Page 40: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/40.jpg)
What are the downsides?• Piping
You have to take into account the inter-connections
• Deployability
Orchestration and Versioning
• Infrastructure
Much more complex setup
![Page 41: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/41.jpg)
41
STATE OF THE CLOUD
![Page 42: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/42.jpg)
“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/
![Page 43: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/43.jpg)
2016
![Page 44: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/44.jpg)
![Page 45: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/45.jpg)
“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
![Page 46: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/46.jpg)
What does it provide us? - Infrastructure
• Cheap
Even with pay-on-demand pricing models
![Page 47: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/47.jpg)
What does it provide us? - Infrastructure
• Replaceable
Changed the service? Drop the server and create a new one
![Page 48: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/48.jpg)
What does it provide us? - Infrastructure
• Scalable
When demand raises, automatically spin up new copies to cope with demand
![Page 49: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/49.jpg)
What does it provide us? - Software
• CDNs
Global content caching - Blazing fast websites
![Page 50: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/50.jpg)
![Page 51: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/51.jpg)
What does it provide us? - Software
• Content and Databases
Storage servers with multiple architectures
![Page 52: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/52.jpg)
![Page 53: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/53.jpg)
What does it provide us? - Software
• And EVERYTHING Else
Even sending “Thank You” notes as a Service
![Page 54: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/54.jpg)
![Page 55: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/55.jpg)
Current Options - Infrastructure
• Amazon Web Services
• Microsoft Azure
• Rackspace
• Google Cloud Engine
![Page 56: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/56.jpg)
Current Options - CDNs
• CloudFront
• Akamai
• MaxCDN
• Fastly
![Page 57: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/57.jpg)
Current Options - Services
• Contentful
Content Management as a Service
![Page 58: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/58.jpg)
![Page 59: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/59.jpg)
Current Options - Services
• Snipcart
Shopping Cart as a Service
![Page 60: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/60.jpg)
![Page 61: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/61.jpg)
Current Options - Services
• Auth0
Authentication as a Service
![Page 62: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/62.jpg)
![Page 63: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/63.jpg)
63
GOING SERVERLESS
![Page 64: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/64.jpg)
“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
![Page 65: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/65.jpg)
TRADITIONAL APPLICATION
Unintelligent Client
Server does most of the hard work
Source: https://www.martinfowler.com
![Page 66: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/66.jpg)
SERVERLESS APPLICATION
Rich client - Many Frontends
Independent services and infrastructure
Source: https://www.martinfowler.com
![Page 67: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/67.jpg)
“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
![Page 68: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/68.jpg)
68
GOODBYE MONOLITH
![Page 69: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/69.jpg)
“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
![Page 70: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/70.jpg)
Now that we’ve introduced the concepts
Let’s dive into how to apply them in practice
![Page 71: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/71.jpg)
Starting from your Rails App
• Identify
Models usually travel in families - identify these families
![Page 72: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/72.jpg)
![Page 73: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/73.jpg)
Starting from your Rails App
• Categorize
Understand the functionality and responsibility of each component family
![Page 74: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/74.jpg)
![Page 75: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/75.jpg)
Starting from your Rails App
• Split
Create separate API apps exposing them
![Page 76: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/76.jpg)
![Page 77: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/77.jpg)
Starting from your Rails App
• Communicate
Integrate different parts of the application through it’s HTTP Interfaces
![Page 78: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/78.jpg)
![Page 79: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/79.jpg)
Moving away from Rails
• Move Static and Read-first content to a CMS
Marketing, Blogs, Product and non-user generated content moved
![Page 80: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/80.jpg)
![Page 81: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/81.jpg)
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
![Page 82: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/82.jpg)
![Page 83: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/83.jpg)
Moving away from Rails
• Profit from 3rd party Services
Use cloud based authentication, messaging, mailing, payments to remove burden from your code
![Page 84: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/84.jpg)
![Page 85: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/85.jpg)
Moving away from Rails
• Leverage Static Sites and Static Assets
Using Static Site Generated websites + CDNs to deliver fast and increase conversion
![Page 86: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/86.jpg)
“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/
![Page 87: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/87.jpg)
Keep Security in Check
• Validate
Validate on your Client side code - specially on payment transactions
![Page 88: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/88.jpg)
![Page 89: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/89.jpg)
Keep Security in Check
• Validate
Validate on your Middleware - specially on payment transactions
![Page 90: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/90.jpg)
![Page 91: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/91.jpg)
Keep Security in Check
• Validate
Make sure not to expose your internals
![Page 92: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/92.jpg)
![Page 93: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/93.jpg)
Keep Security in Check
• Validate
Make sure you have retry and fallback mechanisms
![Page 94: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/94.jpg)
![Page 95: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/95.jpg)
Rounding up
• Prototype and test ideas
• Create single responsibility applications
• Test your code
• Keep it safe
![Page 96: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/96.jpg)
Demo Time
![Page 97: From Monoliths to Services: Grafually paying your Technical Debt](https://reader031.fdocuments.us/reader031/viewer/2022013013/58f350931a28ab806a8b45c9/html5/thumbnails/97.jpg)