Your SlideShare is downloading. ×
0
MONOLITHS<br />(when you have to break ‘em.. And why)<br />
What’s a monolith?<br />Simply put: an application that has grown too big for its own good<br />Coined from the 2010 Rails...
Why Rails is particularly susceptible?<br />Deceptively simple<br />Lots of abuse-able features (sessions, controllers, em...
Disclaimer<br />Just because its big, doesn’t mean it’s bad.<br />You can go big as long as you:<br />Have a plan (archite...
“How did it come to this? “<br />Badly executed agile application development <br />Unfamiliarity with Ruby and/or Rails<b...
Symptoms<br />Lack of modularity makes it hard to:<br /> extend<br /> maintain<br /> deploy<br /> test<br />LOTS of duplic...
Why break it (up)?<br />When a module goes down, only IT goes down <br />A chance to start over without ACTUALLY starting ...
Why break it (up)? Continued…<br />Developer autonomy<br />Enforced modularization and decoupling<br />Easier to debug<br />
Getting started<br />Split application into as many logical modules as possible<br />Determine which ones have the most in...
Implementation Ideas<br />Shared DB + libraries<br />Multiple DB’s + Synching<br />Web services / interfaces<br />
There’s always a catch…<br />Performance hit unless on the same intranet<br />Extra layer of security for webservices/inte...
In closing…<br />If you don’t break it up.. it will break down<br />
Upcoming SlideShare
Loading in...5
×

Monoliths (and why you break 'em)

441

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
441
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Monoliths (and why you break 'em)"

  1. 1. MONOLITHS<br />(when you have to break ‘em.. And why)<br />
  2. 2. What’s a monolith?<br />Simply put: an application that has grown too big for its own good<br />Coined from the 2010 Railsconf presentation “From 1 to 30..”<br />No discernable architecture<br />Less hurtful term for BBM<br />
  3. 3. Why Rails is particularly susceptible?<br />Deceptively simple<br />Lots of abuse-able features (sessions, controllers, embedded ruby)<br />Fast development = fast degeneration<br />
  4. 4. Disclaimer<br />Just because its big, doesn’t mean it’s bad.<br />You can go big as long as you:<br />Have a plan (architecture) <br />Follow conventions (DRY, convention over configuration)<br />Test (BDD)<br />
  5. 5. “How did it come to this? “<br />Badly executed agile application development <br />Unfamiliarity with Ruby and/or Rails<br />Doing it RIGHT took a backseat to Doing it RIGHT NOW<br />Poor communication/cooperation between developers<br />No refactoring<br />
  6. 6. Symptoms<br />Lack of modularity makes it hard to:<br /> extend<br /> maintain<br /> deploy<br /> test<br />LOTS of duplication<br />LOTS of coupling<br />Difficult to bring in new people<br />
  7. 7. Why break it (up)?<br />When a module goes down, only IT goes down <br />A chance to start over without ACTUALLY starting over (Perfect opportunity to refactor)<br />Opposite of everything in the previous slide (easier to maintain, test, etc..)<br />
  8. 8. Why break it (up)? Continued…<br />Developer autonomy<br />Enforced modularization and decoupling<br />Easier to debug<br />
  9. 9. Getting started<br />Split application into as many logical modules as possible<br />Determine which ones have the most interaction<br />Group those together<br />Repeat steps 1 -3 until comfortable<br />???<br />Profit!<br />
  10. 10. Implementation Ideas<br />Shared DB + libraries<br />Multiple DB’s + Synching<br />Web services / interfaces<br />
  11. 11. There’s always a catch…<br />Performance hit unless on the same intranet<br />Extra layer of security for webservices/interfaces<br />Servers aren’t free<br />
  12. 12. In closing…<br />If you don’t break it up.. it will break down<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×