Home.TechStack

TechStack

techstack_banner
devopsteam_img

We are the DevOps Team.

Our mission is to make the Product Development Team efficient and happy.

We live in this technical landscape (Technical Map)

Platform Infrastructure Components:

Identity and Access Management (IAM):

Keycloak, Java

techcardimag

Reverse Proxy:

Yarp, C#

techcardimag

Bus System:

RabbitMQ

techcardimag

Database:

MSSQL

techcardimag

Secrets:

HashiCorp Vault

techcardimag techcardimag

Observability:

Loki, Tempo, Prometheus

techcardimag

Infrastructure (cloud):

Kubernetes: Dockerfiles, Kubernetes Manifests, Kustomize

infrustructure

Azure: ARM-Templates, Powershell

infrustructur2

Infrastructure (on premise):Infrastructure (on premise):

Windows: Windows-Installer (WIX-Tool), C# (custom extensions), SSL, Firewalls

infrustructur3

(linux vs windows (we live in a world of 90% linux and 10% windows - with the core technologies being 100% open-source and linux driven)

infrustructur4

Development Platforms and Automation Tools:

Azure DevOps:

  • Pipelines: Yaml Pipelines, Powershell
  • Scrum Board
  • Artefact feeds (nuget, npm)
  • Git, Mono Repository
  • Wiki
development
development

Microsoft 365:

  • Office, Outlook, Teams

IDE: Visual Studio, VS Code

ide

Internal Tools: Angular, React, NodeJS, C#, Python

angular react.png node
csharp python

Product Development: Angular, JavaScript, C#, .Net

productdevelopment

We implement exciting concepts

DevOps concepts:

CICD

  • release flow - automatic SemVer tags based on git branch
  • continuous integration (CI): automatically build each module (written in azure- pipelines yaml, powershell, bash)
  • continuous deployment (CD): automatically deploy each module into production (written in azure-pipelines yaml, powershell, bash, internal tools written in C# and JavaScript)
cicd-image
iac-image

Infrastructure as Code (IaC)

provision Azure resources using ARM templates (VMs, Storage Accounts, DBs, virtual networks, Key Vault, DNS Zone)

Policy as Code (PaC)

bring policies into code and collaborate together as a team, e.g. Workflows, Roles and Permissions to access Azure and other platforms

pac-image

GitOps (Git Operations) - Configuration as Code

GitOps Operato

  • watch new docker tags and trigger deployments (based on predefined rules)
  • run deployment - generate kubernetes manifests from kustomize templates, apply changes to the cluster

internal tools to bridge the full deployment automation gap

  • deployment-status-controller - reports on the latest versions, so that the deployment pipeline can check if all the deployment changes have taken place
  • sql-configurator - sets up an initial database and creates users and schemas so that the applications can pick up from there (otherwise the initial setup would have to be done by a sysadmin)
  • iam-configurator - create/update users and permissions (the configuration is stored in code)
gitops

ChatOps (Chat Operations)

chatops-image

the visual abstraction layer on top of infrastructure automation APIs for convenient use UIs, leverage git ops and generate audittrails, make automation APIs more accessible (democratize)

  • Chats - talk to a chatbot that can access lower level automation APIs
  • Dashboards - see your infrastructure all in one place and make configuration changes conveniently over an UI
  • Wizards - user workflows via UI for complex human-machine processes, e.g. create new release (1. create release branch, 2. build all modules, 3. create release notes)

SecOps (Security Operations)

work with security engineers early on to avoid big surprises

secops.png-image
aiops-image

AIOps (Artificial Intelligence Operations)

@future: use machine learning and big data to enhance IT operations analytics, e.g.: performance monitoring, event correlations, anomaly, fault and failure (AFF) detection and analysis.

different execution runtimes - design a system that runs on different execution runtimes

  • windows-desktop
  • windows-server
  • kubernetes
iac-image

Quality Assurance

  • acceptance tests written in Given-When-Then style (Gherkin) that serve as the communication layer for the 3 amigos (tester, developer, product owner)

    1. all modules in a single process and in-memory,

    2. separate processes with mocks&stubs,

    3. staging system with real external dependencies,

    4. in production

  • build testable systems - software cell, ports and adapters
  • build test infrastructure: create building blocks to fully automate the testing process
  • pipeline automation: automatically create new environments, deploy platform modules, execute acceptance tests

Observability - what you can't measure you can't improve

Establish a Site Reliability Engineering (SRE) culture with SLIs, SLOs, SLAs

observability