Patrick Mühlbauer - Split Up! Fighting the Monolith
Having to deal with a monolith, an application which became far to big
over the time, can be quite bothersome. On the other hand if you split
it up and have to deal with lots of smaller components, you might end
up in dependency hell. But not only the splitting of the monolith and
the management of the dependencies afterwards can be a problem, but
also the packaging of you python components itself.
-----
Do you know this situation, where you and your team are facing this
big monolith? An application which has grown far too
big over the years. Every time when you make a change, you have to
fear the code might break at a totally different place, because lots
of things
are closely intertwined. But what to do if you are at such a point?
Maybe you start thinking about microservices but then questions like
"Are they really the right thing for us?" and "How do we get there?" arise.
In my talk I will show you how we are dealing with our monolith. A
collection of multiple python packages without clear boundaries,
forming the
actual application - all living in a single monorepo.
I will talk about how we split up the whole thing, making it more
flexible for us and also easier to use individual components by other
teams.
All this, of course, comes with a price: You have to think more about
the dependencies between you components. You have to think about how
you can efficiently test everything, making sure your final
application is still working correctly.
Don't loosing yourself in dependency hell and packaging all components
correctly becomes quite a challenge.
This talk will:
- show you bad patterns to avoid, so that you don't end up in the
above situation in the first place
- give you ideas what to consider when tackling your monolith
- explain how to package your python components and how to mange your
dependencies |