Legacy to Microservices @ GOTO Amsterdam 2016

September 20, 2016

You hear all the fun stuff, but how do you get there? You’re stuck with the decisions you made 10 years ago.

The Legacy to Microservices track at GOTO Amsterdam 2016 was about getting you on track again! Watch the videos from the Legacy to Microservices track at GOTO Amsterdam 2016 below.


Java-Based Microservices, Containers, Kubernetes – How To

with Arjen Wassink, Developer and Architect at Quintor and Ray Tsang, Developer Advocate for the Google Cloud Platform

Learn how to create a Java-based microservice using Spring Boot, containerize it using Maven plugins, and subsequently deploy a fleet of microservices and dependent components such as Redis using Kubernetes.

Spring Boot makes creating microservices fast and easy – when it comes to running a single instance. Like most Java applications, the harder part is usually the clustering and fail-over configurations.

First, we’ll go over how to get started with Spring Boot, and, subsequently, using Maven plugins to generate and create Docker images during the build process.

Next, we’ll go over some basic architecture and configurations, such as:

  • Configuring Spring Session
  • Using Redis as the session store
  • Testing the configuration locally with container linking
  • Tips and tricks for faster startup (/dev/./urandom is your friend)

Finally, with the images, we’ll deploy the microservice into Kubernetes:

  • Defining pods and services
  • Linking microservices to Redis using Kubernetes
  • Perform rolling upgrades of the application
  • Canary new versions of the microservices into the fleet

The best part is – we can visualize all these activities happening in Kubernetes.

Download the Slides

[bctt tweet=”Building #Java-Based #Microservices: watch @ArjenWassink + @saturnism’s presentation at @GOTOamst 2016″]


Software that Fits in Your Head

with Dan North, Agile Troublemaker, Developer, Originator of BDD

Software gets complicated fast. Most of good architecture and design practise is about trying to slow the rate at which software gets complicated. You can’t stop it, it’s a form of entropy. You can only slow it down and do your level best to stay on top of things.

One way to manage the mess is to maximise the likelihood that everyone knows what’s going on in the codebase. This requires two things: consistency and replaceability.

Consistency implies you can make reasonable assumptions about unfamiliar parts of the application. Replaceability means you can kill code easily and replace it with something better.

Dan North argues that code should either be new enough that someone remembers writing it, or well-enough established that everyone knows how it works. It’s code in that awkward middle stage, between brand new and part-of-the-furniture, that gets forgotten about and starts to smell. If code is going to die it should die quickly. If it is going to stick around it should be stable.

In this talk, Dan describes a model for thinking about the age of code and argues for replaceability as a first class concern. He also discovers that if you optimise for both replaceability and consistency you can end up with something that looks a lot like microservices.

Download the Slides

[bctt tweet=”Software that Fits in Your Head – watch @tastpod explain in his talk at @GOTOamst 2016″]


Journey from Monolith to Microservices and DevOps

with Aviran Mordo, Head of Engineering at Wix

Wix.com started the journey toward DevOps and a microservices solution about 5 years ago when we switched from a monolithic application to a microservices-based system—a transition that took two full years to complete, with many lessons learned along the way. Today, Wix successfully operates over 200 microservices on a battle-tested production environment.

In this talk, we will cover why Continuous Delivery and DevOps are important requirements for microservices, discuss guidelines for a good microservice architecture, explain why YAGNI and KISS are important and how operational concerns (DevOps) affect the design of a microservices architecture, as well as give some recommendations on the best way to transition from a monolithic to a microservices architecture.

Download the slides

[bctt tweet=”Watch @aviranm share @WixEng’s journey from monolith to #microservices and #DevOps at @GOTOamst 2016″]


Microservices at Netflix Scale – First Principles, Tradeoffs & Lessons Learned

with Ruslan Meshenberg, Director of Platform Engineering at Netflix

Netflix’s world leading streaming service is comprised of hundreds of microservices. We cover explicit technology choices we made for all of the microservices to work well together, and the lessons learned of things that don’t work well. We describe the organizational structure inside of Netflix that creates common development, runtime, and operational aspects of microservices. We discuss how microservices impacted Netflix product development with regards to agility, choice, and standardization. We summarize where we are now, including an overview of our open source technologies, and where we’re heading in the future.

Download the slides

[bctt tweet=”#Microservices at Netflix Scale – Principles, Tradeoffs + Lessons: watch @rusmeshenberg’s @GOTOamst talk”]


Messaging and Microservices

with Clemens Vasters, Architect for Messaging at Microsoft Corporation

Microservices are the new hot topic in the industry, and yet they are based on foundational principles of service orientation as formulated in the early 2000s, and those were in turn based on experience and insights from building messaging-oriented systems in previous decades. Clemens Vasters discusses about the eternal truths and proven patterns of messaging, and about how messaging helps Microservices-architecture based systems achieve operational objectives.

Download the Slides

[bctt tweet=”.@clemensv explains how messaging helps #microservices architectures achieve ops objectives at @GOTOamst”]