System Engineering

In the lecture “System Engineering and Management” we try to take a closer look at current software systems and how to build and deploy software. With this blog, we try to share our experience with you, so maybe you can profit from our mistakes 😉

  • Autoscaling of Docker Containers in Google Kubernetes Engine
    In this blog post we are taking a look at scaling possibilities within Kubernetes in a cloud environment. We are going to present and discuss various options that all have the same target: increase the availability of a service.
  • Attempts at automating the build process of a .NET WPF application with GitLab’s CI/CD pipeline
    (Originally written for System Engineering and Management in 02/2020) Introduction In the System Engineering course of WS1920, I took the opportunity to look into automating the build process of a Windows desktop application. Specifically, the application in question is built in C#, targeting .NET Framework 4.0 and using Windows Presentation Foundation (WPF) for the user interface. The ...
  • Kubernetes: from Zero to Hero with Kompose, Minikube, k3sup and Helm — Part 2: Hands-On
    This is part two of our series on how we designed and implemented a scalable, highly-available and fault-tolerant microservice-based Image Editor. This part depicts how we went from a basic Docker Compose setup to running our application on our own »bare-metal« Kubernetes cluster.
  • Kubernetes: from Zero to Hero with Kompose, Minikube, k3sup and Helm — Part 1: Design
    This is part one of our series on how we designed and implemented a scalable, highly-available and fault-tolerant microservice-based Image Editor. The series covers the various design choices we made and the difficulties we faced during design and development of our system. It shows how we set up the scaling infrastructure with Kubernetes and what ...
  • Reproducibility in Machine Learning
    The rise of Machine Learning has led to changes across all areas of computer science. From a very abstract point of view, heuristics are replaced by black-box machine-learning algorithms providing “better results”. But how do we actually quantify better results? ML-based solutions tend to focus more on absolute performance improvements (measured by metrics) instead of ...
  • Experiences from breaking down a monolith (3)
    Written by Verena Barth, Marcel Heisler, Florian Rupp, & Tim Tenckhoff DevOps Code Sharing Building multiple services hold in separated code repositories, we headed the problem of code duplication. Multiple times a piece of code is used twice, for example data models. As the services grow larger, just copying is no option. This makes ...
  • Migrating to Kubernetes Part 1 – Introduction
    Written by: Pirmin Gersbacher, Can Kattwinkel, Mario Sallat Introduction The great challenge of collaborative working in a software developer team is to enable a high level of developer activity while ensuring a high product quality. In order to achieve this often CI/CD processes are utilized. Talking about modern development techniques the terms Continuous Integration (CI) and Continuous Delivery ...
  • Migrating to Kubernetes Part 2 – Deploy with kubectl
    Written by: Pirmin Gersbacher, Can Kattwinkel, Mario Sallat Migrating from Bare Metal to Kubernetes The interest in software containers is a relatively new trend in the developers world. Classic VMs have not lost their right to exist within a world full of monoliths yet, but the trend is clearly towards microservices in which containers can play off ...
  • Migrating to Kubernetes Part 3 – Creating Environments with Helm
    Written by: Pirmin Gersbacher, Can Kattwinkel, Mario Sallat Creating Environments on the Fly The last step has been the deployment of a classic 3 tier application onto a Kubernetes Cluster powered by Minikube. In the next stage it gets a little complicated, since there are two things to do that depend on each other. So far the ...
  • Migrating to Kubernetes Part 4 – Create Environments via Gitlab
    Written by: Pirmin Gersbacher, Can Kattwinkel, Mario Sallat Connect Gitlab with Kubernetes With the Review Apps Gitlab offers an excellent improvement of the Developer Experience. More or less Gitlab enables the management of environments. For each environment, there is a CI task to each set-up and tear down. It is important that the dynamic URL under which ...