After a restful night at a London hotel (I learned my lesson from the last time I came in for a London conference) coffee and breakfast at the Business Design Centre in London, muCon 2019 kicks off. muCon (or µCon) is a Conference on Microservices, DDD & Software Architecture. From what I gather, this year for the first time it is an amalgamation of a DDD and Microservices conference into one. I'm here for three days. At this point, I've gotten into a rhythm of blogging about my Conference Experiences so here we go again!
We kick off with an excellent keynote from Michael Feathers which captures various ideologies and principles applied to team and code architecture both at the class level, microservice level and interpersonal individual and team level as well.
NEW #muCon London 2019 #keynote #SkillsCast: @mfeathers explores system structures present in design to create simpler systems.— Skills Matter (@skillsmatter) May 29, 2019
Click here for video: https://t.co/y2Y7F63BrB #SystemStructure #LegacyCode #MicroserviceArchitecture #Architecture pic.twitter.com/ApXVjdgbNA
As usual, the day is split into tracks, so I can only give experience on where I've been and guidance of which speakers and talks I would look out for in the future.
Following on from the keynote for me was "Microservices from Day One" from Richard Rodger. First-hand experience of building Microservices on a greenfields startup after literally writing a book on Microservices development, a chance to practice what he preached. An interesting takeaway that I liked was to design a message-centric system of components(microservices) and then the transport/routing layer doesn't matter (from a technology point of view). This resonates with me because it aligns nicely with the Ports and Adapters architecture.
NEW #muCon London 2019 #SkillsCast: @rjrodger shares how the startup https://t.co/GHuVLEqlZA succeeded in using microservices during their first 18 months of development and why it worked.— Skills Matter (@skillsmatter) May 29, 2019
Click here for video: https://t.co/JJtjx7ccLj#microservice #architecture pic.twitter.com/jnCmbL15zL
Next up, and filling the pre-lunch slot was "Creating an Effective Developer Experience for Cloud-Native Apps" from Daniel Bryant. A great introduction and overview of DevEx, the idea of building a great experience for developers from coding to prod and beyond in the modern world of cloud-native, Kubernetes and Serverless. Whether it is "build or buy", cloud or in-house hosting, the story for developers to build, debug, test, deploy and monitor should be a first-class consideration of developing software.
NEW #muCon London 2019 #SkillsCast: @danielbryantuk explores the core concepts of the cloud-native developer experience and the lessons learned.— Skills Matter (@skillsmatter) May 29, 2019
Click here for video: https://t.co/xaBmX4xpgL#continuousdeliveryprocesses #dx #devex #developerexperience pic.twitter.com/Ls2iTsagua
"The Gordian Knot" from Alberto Brandolini the importance of culture and the influence architecture plays on affecting that culture. Very interesting and a nice perspective on Conway's Law in many ways, and thinking about affecting change.
NEW #muCon London 2019 #SkillsCast: @ziobrando shares how to face a Gordian Knot problem by effectively using a DevOps approach.— Skills Matter (@skillsmatter) May 30, 2019
Click here for video: https://t.co/4ZSESd9uCx#devops #softwarearchitecture #processes #microservices #architecture pic.twitter.com/VV92qAgS9G
"Strategic Domain-Driven Design Patterns" from Nick Tune was an interesting discussion on DDD grouping. Definitely a topic I need to read the (blue) book on, literally and figuratively. (Although I am told one does not simply "read" Eric Evans' Domain Drive Design...) Some very high-level patterns and approaches to help with finding groupings in your system.
NEW #muCon London 2019 #SkillsCast: @ntcoding shares how understanding domain patterns helps you align your microservices and business domain.— Skills Matter (@skillsmatter) May 30, 2019
Click here for video: https://t.co/9d6ClArZJA#domainpatterns #ddd #microservices# architecture pic.twitter.com/8MOMVOS8FG
"Event Driven Collaboration" from Ian Cooper another look at the Reference Data concept, with some practical examples of what and how you might go about implementing this. A revision on the concepts of inside mutable data Vs outside immutable data, events, messages and caching.
NEW #muCon London 2019 #SkillsCast: @ICooper shares how events help us integrate our service architectures.— Skills Matter (@skillsmatter) May 30, 2019
Click here for video: https://t.co/H7WMrEJtwF#eventdrivencollaboration #microservices #architecture pic.twitter.com/j4MBsnHeo5
The day wound down with a couple of Lightning Talks. A standout for me was "Continuous Visibility, No More Dashboards!" From James Brown on Continuous Visibility (CV). Using Alerts and notifications more, and only selectively add trends and maybe CI statuses to a physical dashboard where space is a premium (but don't forget to add GIfs!).
NEW #muCon London 2019 #SkillsCast: James Brown shares his journey on how he and his team evolved visibility on the health of their systems.— Skills Matter (@skillsmatter) May 30, 2019
Click here for video: https://t.co/H7WMrEJtwF#operationalsupport #failurerecovery #syntheticmonitoring pic.twitter.com/DLu8EtKUkV
Day 2 kicks off with another leading Keynote: "Getting to DDD: Pragmatic or Principled?" from
Julie Lerman. Julie gave a discussion on the DDD journey, engaging with new adopters, and how building on the concepts with a group slowly can be a great way to bring more people on board, without getting hung up on being too principled or having to be all in with everything DDD at once.
"Preparing for a future Microservices journey"
from Susanne Kaiser presented a journey from custom build through Microservices to Serverless taking all aspects of a hosted piece of software and it's infrastructure concerns transitioning through Build vs Buy, to commoditization.
"Observable Microservices" from Maria Gomez went through the what of observability (logs, alerts and tracing) along with the 'why' for the value it provides to you once your services are in production.
After lunch, David Leitner presented "Micro Frontends – A Strive for Fully Verticalized Systems". A nice definition of MicroFrontends and example architectures to add to your toolbox of "it depends" solutions. Very clearly outlined the when and where the different approaches are applicable. Definitely check out his work if your thinking about verticalized splitting your frontend.
This led into the afternoon Workshop: "Show me the Kubernetes" with Lewis Denham-Parry and Salman Iqbal. They walked us through the demos at github.com/CloudNativeWales/ShowMeTheKubernetes which worked well on a temporarily spun up cluster on Azure, or with a Minikube locally (instructions included in both cases). Further examples were promised so there might be more than the three we went through in the session.
To round out the second day was a keynote from Diana Montalion on Making a Case for Conceptual Integrity. I'm not too proud to admit that I didn't understand the term "conceptual integrity" at the end and couldn't give you the definition. However, the topic was very interesting and the steps discussed to reach the definition given were very useful and interesting in themselves that to me it didn't matter. Maybe I'm lacking the experience at this stage to accurately grok this, and others with more systems consulting experience and exposure did.
Just one of #muCon’s workshops happening this afternoon ⚙️Show Me the Kubernetes by @soulmaniqbal and @denhamparry offers hands-on experience for anyone new to #kubernetes! #SoftwareArchitectures pic.twitter.com/4yiwC0CbEy— IkeAtSM (@IkeAtSM) May 30, 2019
Of course, most if not all of the talks were recorded and appear online (links added where available) but as usual you have missed the hallway conversations by not being here. These are usually the best part of any conference and this has been no exception. One great conversation leads to quoting the statement that never had anyone said or seen a system that would be described as too gold plated, or too well tested. Most systems instead suffer from not being of a good enough quality or lacking in test coverage.
In other conversations being able to share structures and strategies gives insight into what is or isn't working for other teams and companies and gives a relative look at where they are on their journey compared to you with yours. But based on the guidance and experience of others here, we all seem to be heading in a similar direction through SOA to DDD and Microservices.
Stay tuned for a summary of my day 3 experience.