Kara Hatherly / Software Engineer - Atlassian
Scala, Java and Python developer at Atlassian, with a focus on architecture and scalability.
Talk / Re-architecting legacy systems for scale
We all know the kind of service we want to be running: one which is stateless, whose resource utilisation is directly proportional to load and which we can scale horizontally - as much as we need - by simply running the same software on more hardware.
But that's not exactly what we have now at Atlassian. Instead, we have 15 year-old codebases with state peppered throughout, where requests must be handled by a customer-specific instance, where restarts imply downtime and where our only option to scale is to buy newer, better hardware (or pack our VMs more sparsely). Not the situation we want to be in.
So how do we get from where we are to where we want to be? We don't want to do a complete rewrite. We want to be able to work incrementally and get early validation. We want to rebuild the guts of our core products while continuing to serve millions of users making requests to hundreds of thousands of VMs without them noticing a thing.
This talk draws on both completed and ongoing projects and will present the best-practices we have developed to go about re-architecting our stateful, single-tenanted applications into horizontally scalable, tenantless services.
Wednesday 10th August 2016