This past week I was lucky enough to attend XConf (27th June) in Manchester, kindly paid for by my employer.
The day started out early – I had to get up at 5am to ensure I was at Nottingham Train Station for 6:30am to meet my colleagues.
We arrived at the venue (etc.venues) just over 30 minutes before the keynote. A lovely range of breakfast options was provided such as cereal, muffins, yoghurt, and pastries. I can personally vouch for the jam provided being incredible and I’ve never seen one of my colleagues be so happy while eating a muffin.
While I won’t go over each talk – I’m sure ThoughtWorks will likely upload the talks at some point in the future – I will discuss the keynote and one of the talks that stood out for me from the day.
Keynote - Principles and Techniques of Evolutionary Architectures
Just before 9:45am, we packed into the one of two of the main rooms for the keynote. The keynote was delivered by the chief technology officer at ThoughtWorks, Dr. Rebecca Parsons (@rebeccaparsons). The keynote was based on the book co-authored by Rebecca and Neal Ford also called Building Evolutionary Architecture.
Rebecca presented why we should care about building evolutionary architecture:
- The expectations for pace of change are increasing rapidly
- Businesses are needing to evolve more so than ever and the lifetime of their business models are shortening
- Technology is changing at a breathtaking pace (Docker anyone?)
The talk then shifted to how evolutionary architecture supports guided and incremental changes.
In order to guide our architecture, we need to specify early in our work just what parts of our architecture will be critical to success. To be able to change our architecture in incremental chunks we need to work out how we incorporate these changes into the development life cycle and also how to move these incremental changes into production.
Rebecca then went on to introduce seven principles that can help when building an evolutionary architecture as well as several techniques that can assist when building that architecture.
Her keynote was thought-provoking and certainly got me in the mindset for a day of learning.
The day was then split into 2 tracks with 12 sessions overall, covering a range of topics such as Blockchain, microservices, devops, Apache Kafka, and many more.
A Microservices Journey
Speaker: Susanne Kaiser (@suksr)
You often get talks where they discuss a technology or technique but they don’t always go into why they may that choice and what they learnt from it.
Susanne’s talk stood out for me as it was based on the real and honest experience of Just Social taking their application from a monolith and breaking it down to a set of microservices. She discussed not only the various approaches they took on this journey but also the downfalls and learnings from each approach taken.
Susanne opened with provocative quote:
People try to copy Netflix, but they can only copy what they see. They copy the results, not the process
- Adrian Cockcroft, AWS VP Cloud Architect, former Netflix Chief Cloud Architect
The talk moved on to how each journey from a monolith to microservices is different due to variety of circumstances such as:
- Team size, skill, and structure
- The amount of legacy the team has to deal with (maintenance effort/runtime environment)
- Strategy (When do new features need to be delivered? What about timelines and milestones?)
Susanne then gave us a bit of background on how, over time, the monolith approach became an issue at Just Social. Productivity began to suffer, usability/UX began to suffer and newer features were also being delivered slowly.
With the monolith application at Just Social being made up of several distinct applications, the idea was to split these applications into their own separate services. This would allow the Just Social team to then be split into separate, autonomous teams with well-defined responsibilities for set of services.
The motivation behind this was to allow the teams to develop, deploy, and scale independently at different speeds.
Susanne then discussed the different decomposition strategies that Just Social used, the benefits of each strategy and the lessons learned from each one.
One thing I always wonder when thinking about microservices is how you handle cross-cutting concerns.
Susanne answered this by saying that you should identify and handle them early.
This is one of the issues Just Social faced with their authorisation code. Teams would either put that code where it already existed in the monolith (feeding the monolith) or teams would implement their own version of that code with every new service.
Just Social identified this, and to solve it they introduced a centralised authorisation service. This then led on to the issue of centralised services being updated and changed by teams as new features and services were being introduced.
Susanne mentioned how one stable common contract should be put in place for a centralised service and how the emphasis should be put on the services interacting with that centralised service to translate their models to fulfill that contract.
Susanne then covered how services could interact with each other, using a request-driven, event-driven, or a hybrid approach and how to manage and share data between services.
Summarising the talk, Susanne mentioned the lessons learnt for Just Social on their journey from monolith to microservices was to:
- Start small
- Handle cross-cutting concerns early
- Take one manageable step at a time
- Avoid a distributed monolith
- Design event-driven and consider event streams as a shared source of truth
- Be aware of affecting circumstances and that each journey is different.
Susanne’s slides were simple and illustrative but also supported her content. My summary above doesn’t do the talk justice – I’d definitely encourage you to check out the slides provided by Susanne here.
Overall, I enjoyed XConf.
The venue was easy to find (a 10-minute walk from Manchester Piccadilly), food and drink was provided throughout the day – which meant I was able to focus on the talks – and a goodie bag with a free t-shirt is always appreciated!
I certainly hope to attend XConf again next year.