What the engagement covers
Clusters built as products rather than installs
A cluster is not finished when it answers kubectl. It is finished when a team can ship to it on a Friday, see what happened, and roll back with a revert. Everything below is what sits between those two states.
Cluster design on any of the four
Amazon EKS, Azure Kubernetes Service, Google Kubernetes Engine and Red Hat OpenShift, including OCP, ROSA and ARO on private infrastructure.
The full path from DNS to pod
Ingress, routing, load balancing, service mesh and network policy, drawn once and agreed once. Most Kubernetes networking tickets exist because that path was never written down.
GitOps delivery
Argo CD or Flux, so cluster state lives in Git and a rollback is a revert rather than an incident.
Storage and stateful workloads
PVCs, StorageClasses and StatefulSets, with an honest account of what a StatefulSet does and does not buy you — stable identity and storage, not database high availability.
Scaling and scheduling
Autoscaling, resource requests that reflect reality, and placement treated as a decision rather than left to the default scheduler.
Observability designed in
Prometheus, Grafana and OpenTelemetry specified alongside the platform, so what operations can see during an incident is decided while the cluster is still on paper.
- Kubernetes
- Red Hat OpenShift
- Amazon EKS
- Azure Kubernetes Service
- Google Kubernetes Engine
- Helm
- Argo CD
- Docker
- Prometheus
- Grafana
Where this shows up in the work
Six of the twenty-one are cluster builds, across all four platforms and both public and private infrastructure.
AWSKubernetes on AWS with EKS — the full path from DNS name to pod
Google CloudGKE with Istio service mesh
OpenShiftThree-tier .NET and PostgreSQL platform on OpenShift
OpenShiftPrivate OpenShift platform for a health and wellbeing SaaS
Google CloudNode.js on GKE with Jenkins, Argo CD and Helm
AzureContainer pipeline on AKS with Jenkins
Common questions
EKS, AKS, GKE or OpenShift — which should we run?
Whichever your team can operate and your estate already pays for. The managed services differ less than the operating model around them. OpenShift earns its licence when the workload cannot leave your network, or when the security review wants opinionated defaults.
Can you migrate workloads between clusters or clouds?
Yes, EKS to AKS to GKE, and public to private. The application is usually the easy part; the ingress path, the storage class and the identity model are where the time goes.
Do we actually need a service mesh?
Often not. A mesh is worth it when you need service-to-service policy, mTLS or traffic shaping you cannot get from ingress and network policy alone. If the answer is only observability, there are cheaper ways to get it.
Will you hand over something our team can run?
That is the point. Enablement is part of delivery — I do not hand a platform to a team that has not been briefed on it.
Other things I'm brought in for
Most engagements touch more than one of these.
Bring me the cluster nobody wants to deploy to.
Thirty minutes is enough to find out whether the problem is the platform, the release path, or what operations cannot see.