Hands-on lab: Architectural anti-patterns when delivering a software ecosystem with Kubernetes

by | Feb 3, 2019 | Voxxed Days Bucharest 2019

Laurențiu Spilcă is a dedicated Development Lead and Trainer with over nine years of experience. Currently, he leads the development of a project in the financial market of European Nordic countries, in which the latest technologies are used. Before being a Development Lead, he worked as a Software Developer building one of the biggest ERP solutions with worldwide installations. For Laurențiu is not important only to deliver high quality software, but also to share knowledge and help others to upskill. This has driven him to design and teach courses related to Java technologies. Delivering presentations and workshops is another way he succeeded in spreading his enthusiasm for software. Outside work, Laurențiu is passionate about traveling and scuba diving.

Kubernetes is one of the mostly used tools for container orchestration today. But even if we can deliver almost anything in a container, to develop a robust, scalable and secure system there are some practices we need to follow and smells we need to avoid. Let’s discuss them with a hands-on approach.

There are several factors that we take into consideration when working on a software solution: the languages we use, the process, how we deliver and how all these have to match with the general architecture.

In this workshop we will approach the links between a clean architecture and the development in an environment orchestrated with Kubernetes. We will discuss and prove several anti-patterns and good practices through hands-on examples.

Our workshop will start by installing minikube and kubectl and we will first dig into the major resources of a Kubernetes project: deployments, services, pods, routes.

We will find out how to integrate them and how to configure load-balancing, scaling and service access. Then, based on the observations we make, we will take several situations of architecture implementations, discuss them all together, try them where possible and classify them as anti-patterns or good approaches.

At the end of the workshop we will summarize what we have found and draw conclusions based on our observations and see where these would be useful.