VSHN Tech Radar

There are sometimes many ways how things can be done to achieve the same outcome. To have a common technical alignment at VSHN and to not waste resources, this page lists what tools and technologies we use day-by-day.

If there is a good reason to choose another tool which isn’t listed here, that’s perfectly OK. But please be aware that it might fall out of the picture and doesn’t get the support like the official tools do.

Languages and Frameworks

Name Jobs-to-be-done Ring

Go

Kubernetes Automation (Operators and Controllers)
CLI tools

Adopt

Rust

Tooling which needs to be very fast

Assess

Python

Day-to-day automation
CLI tools

Adopt

Shell Scripts

Day-to-day automation

Adopt

Java

Maintaining the VSHN Portal

Hold

Helm

Packaging of applications for Kubernetes

Adopt

Jsonnet

JSON templating for Kubernetes manifests

Adopt

Automation

Name Jobs-to-be-done Ring

Project Syn Commodore

Bringing configuration to our Kubernetes clusters

Adopt

Terraform

Infrastructure as Code

Assess

Crossplane

Infrastructure as Code with continuous reconciliation

Adopt

Argo CD

GitOps

Adopt

Ansible

Automation of Tasks on VMs and in OpenShift

Assess

Puppet

Configuration management in Linux virtual machines

Hold

System Services

Name Jobs-to-be-done Ring

Kubernetes

Running containerized applications

Adopt

Rook/Ceph

Storage Cluster in Kubernetes

Adopt

Prometheus

Metrics in Kubernetes
Alert roules based on metrics
Alertmanager for alert routing to on-call

Adopt

Opsgenie

On-Call Paging

Adopt

Icinga

Monitoring and Alerting for Puppet Managed Services

Hold

Tools

Name Jobs-to-be-done Ring

AsciiDoc and Antora

Documentation as code

Adopt

Docker

Containerizing applications

Adopt

K8up

Backup on Kubernetes

Adopt

kind

Local Kubernetes environment for development and testing

Adopt

How it works

We currently don’t have a fancy graphical representation, although this page resembles the structure of a graphical way.

This page is inspired by:

Quadrants (Categories)

They are represented by the headings on this page:

Rings

Adopt

Recommended being widely used

  • Used in production

  • Perfect for new projects

  • High confidence in to serve our purpose

  • Usage culture in our production environment

  • Low risk

Trial

Might be the next big thing

  • We have seen work with success in project work to solve a real problem

  • First serious usage experience that confirm benefits and can uncover limitations

  • Slightly more risky

  • Some engineers walked this path and can share knowledge and experiences

Assess

Two-fold: Either brand new or unclear future

  • Promising and have clear potential value-add for us

  • Worth to invest some research and prototyping efforts in to see if it has impact

  • Higher risks, they are often brand new and highly unproven for us

  • Some engineers have knowledge in the technology

  • In a phase to be re-evaluated if it should stay

Hold

Don’t use of new projects

  • Not recommended being used for new projects

  • We think are not (yet) worth to (further) invest in

  • Not be used for new projects, but usually can be continued for existing projects

What’s here?

This page documents our view on the tech landscape and helps to answer which tool or service to use when there is more than one choice. We don’t document obvious things like "use kubectl to talk to Kubernetes". We also don’t document all the dependencies to be used for software development, that would blow up this radar too much.