Infrastructure & DevOps

Infrastructure & DevOps

Want to propose a change, disagree with a placement, or add an interesting new technology? Please reach out to @Damian Szafranek. This Tech Radar is a living document - we keep it useful by updating it together as our projects, tools, and experiences evolve.

Scope

This section covers the platforms, tools, and practices we use to build, deploy, and operate our software. It includes our standards for containerization, continuous integration (CI/CD), and our primary cloud infrastructure services.

Overview

ADOPT

Proven technologies we have high confidence in; our default choices.


Docker

AWS (Amazon Web Services)

Jenkins

Terraform

Kubernetes

Keycloak

AWS ECS

TRIAL

Promising technologies to explore and evaluate for adoption.


GitHub Actions

GitOps

AWS EKS

ASSESS

Interesting technologies requiring investigation.


Helm

AWS Lambda

HOLD

Not recommended for new work; plan migration from existing uses.


Manual Deployments

Docker Swarm

Technologies Breakdown

Docker ADOPT

Docker is our company-wide standard for containerizing applications. It provides a consistent, portable, and isolated environment, which is fundamental to our deployment strategy on AWS.


AWS (Amazon Web Services) ADOPT

AWS is our primary and strategic cloud provider. Our deep in-house expertise, certified engineers, and existing infrastructure make it the default platform for hosting all our applications and services.


Jenkins ADOPT

Jenkins is our established and primary tool for Continuous Integration and Continuous Delivery (CI/CD). It is the standard for automating builds, tests, and deployments for our core projects.


Terraform ADOPT

Our default Infrastructure as Code tool for defining and managing cloud resources in a repeatable, version-controlled way.

Terraform helps us standardize environments, reduce “hand-built” drift, and reliably reproduce infra across stages and projects. Especially valuable when infrastructure needs to be created, replicated, or torn down frequently.


Kubernetes ADOPT

Strategic default for container orchestration when we need scalable, production-grade deployment and operations.

Kubernetes is the industry standard for running containers at scale and fits well as a long-term direction. Use it when operational needs justify it; for smaller systems we still consider simpler managed options.


Keycloak ADOPT

Our default Identity & Access Management (IAM) solution for authentication and authorization. Centralizing login, SSO, and user management instead of building it ourselves.

Keycloak provides a ready-to-run platform for OAuth2/OIDC-based authentication, SSO, and common identity flows (users, roles/groups, clients, tokens). We adopt it to avoid reimplementing security-critical features in applications and to standardize how services integrate with identity across projects. Use it when a system needs real auth (not a demo stub), especially with multiple apps/services, external identity providers, or long-term maintainability requirements.


AWS ECS ADOPT

AWS-native container orchestration that’s often “simpler than Kubernetes” while still enabling scalable container deployments.

ECS can be a strong fit for teams that want managed container orchestration without the operational weight of Kubernetes. We’re trialing it as a pragmatic default for many AWS-hosted services.


GitHub Actions TRIAL

We are actively trialing GitHub Actions on smaller projects as a modern, repository-native CI/CD solution. Its tight integration with our source code management simplifies build and deployment pipelines, especially for new or less complex services.


GitOps TRIAL

Infrastructure and platform changes delivered through Git: PRs, reviews, and automated reconciliation from source control.

GitOps improves traceability and repeatability (infra as code + automated apply). We’re trialing it because the workflow is high-value, but we’re still validating our preferred tooling and end-to-end setup patterns.


AWS EKS TRIAL

Managed Kubernetes on AWS—powerful and flexible, but not always the best “default complexity level”.

EKS is great when you truly need Kubernetes’ ecosystem and control. We’re trialing it to clarify when it’s worth the overhead vs. simpler options for our typical workloads.


Helm ASSESS

Package manager for Kubernetes that standardizes deployment configuration and reuse across environments.

Helm can reduce repetitive YAML and provide composable, versioned “deployment packages.” It’s in assessment because we haven’t used it broadly yet and want to validate patterns, maintainability, and team ergonomics.


AWS Lambda ASSESS

Serverless compute for small, event-driven workloads where simplicity and scaling-by-default outweigh long-running service needs.

We’ve had good results using Lambda for smaller tasks and integrations. We’re assessing its broader fit because we haven’t built many “core systems” around serverless as a primary architecture, and we want clearer guidance on where it shines vs. where it becomes constraining.


Docker Swarm HOLD

Avoid for new work—prefer Kubernetes or AWS managed orchestration options instead.

Swarm is increasingly niche compared to Kubernetes and modern managed orchestration. Existing setups can be maintained where needed, but we don’t recommend starting new platforms or services on Swarm.


Manual Deployments HOLD

Manual and custom-scripted deployments are error-prone and lack the repeatability of automated pipelines. This practice is on hold; all projects are strongly encouraged to migrate to a standardized CI/CD tool like Jenkins for automated deployments.