disparity between development environment and production environment 3. Solution: ArgoCD per developer 4. DX: Developer Experience 5. Effect on organizational structure: team topologies
team is already using Kubernetes to deploy application - Operations team is already using ArgoCD - => ArgoCD templates already exist for platform (API gateway, observability) and application - Want to reuse and share knowledge between Ops and Dev but.. - Kubernetes on its own (kubectl apply) is too complicated, lots of potential for error (drift!) - Solution: Ops team prepares personal ArgoCD per developer - Can use GitOps deployment repo, web UI, or kubectl to deploy stack - Development environment is near exact copy of prod
push, or use ArgoCD UI, or kubectl apply 2. Ksync (volume sync between local machine and pod) local checkout and pods in stack as desired a. See also Telepresence / Ambassador Edge Stack “service preview” (network proxies b/w local and Pod) 3. Use kubectl logs (or ELK!) for reading logs, Grafana/Prometheus for metrics a. Developers get practice using observability tooling on a day-to-day basis 4. If templates need to change, modify targetRevision of Application to point to a feature branch on developer’s personal templates repo, make edits to template, PR these back to upstream org templates when complete 5. Developer pulls in upstream master whenever PRs merged on organization templates
black box that can be “peeked into” - If developer does need to edit templates, they can do so autonomously (or with help of Ops) as opposed to waiting on a ticket - Slowly introduce some ops concepts to developer at a pace they can feel comfortable with - BioBox uses custom JavaScript (language our devs are familiar with) templates (instead of Helm/Jsonnet etc) to further lower the barrier to entry
for application as well as platform configuration - Easy to set up, but not a black box and they can inspect further as they feel comfortable - Aiming for somewhere in between Type 1 and Type 2 team topology: https://web.devopstopologies.com/