Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The 3 Layers of our Platform and Helmping Ourse...

The 3 Layers of our Platform and Helmping Ourselves before helping others

A look into the structure of Banking Circle's Internal Developer Platform, and the open source tooling we have built for it.

Avatar for Juan Herreros

Juan Herreros

May 21, 2024

More Decks by Juan Herreros

Other Decks in Programming

Transcript

  1. The 3 Layers of our Platform Helmping Ourselves before helping

    others Cloud Native Copenhagen, May 21st 2024
  2. WHO ARE WE? As Platform Engineers, we support teams (~200

    people) that build: • Client-facing APIs • Core Banking Systems • Internal reporting tools • Data • Integrations with other companies • … In the cloud (Azure), using different languages, architectures, development processes, etc Banking Circle 4
  3. HISTORY • At some point, using only services from a

    public cloud is not feasible, due to several reasons: • Orchestration and scalability • Security and compliance • Observability • Cost • To avoid a “tennis match”, we need: • Developer Experience • Maintainability Banking Circle 6 Kubernetes Platform
  4. GOALS • Reliability • Scale • Compliance • Security •

    Developer Experience • Standardization • Maintainability Banking Circle 7
  5. FOUNDATION Collection of resources needed to build on top –

    “Starter pack” • Multi-tenancy • Observability • Security - Guardrails • Networking Banking Circle 18
  6. FOUNDATION All major Cloud providers (GCP, AWS, Azure) have their

    own definition • Points in common: IAM, Networking, Security, resource organization • Some also mention: Billing, governance, automation, disaster recovery, observability ChatGPT condensed and summarized their 3 definitions as: “A landing zone is a well-designed, scalable, and secure cloud environment that serves as a foundation for cloud operations, offering modular and subscription-based resource management.” Banking Circle 19 Landing Zone
  7. FOUNDATION Each team gets: • Resources on Kubernetes • A

    namespace • An ArgoCD project • A Cilium network policy • A service account Banking Circle 21 • Resources on Azure, Azure DevOps, Entra Id • Credentials • Role assignments • Identities • DNS records • Etc
  8. FOUNDATION “New generation of tools that go beyond the traditional

    platform-as-a-service (PaaS) model and offer published contracts between developers and platform teams. The contract might involve provisioning cloud environments, databases, monitoring, authentication and more in a different environment. These tools enforce organizational standards while granting developers self-service access to variations through configuration.” Banking Circle 23 Platform Orchestrator Ref: Platform orchestration | Technology Radar | Thoughtworks
  9. FOUNDATION Our Foundation is a “Platform Orchestrator” that creates “Landing

    Zones” • Namespaces • Crossplane • Terraform Banking Circle 24
  10. QUICK RECAP As a Developer, after the Foundation layer, I

    have: • My code • A Foundation to build on Banking Circle 25
  11. DELIVERY This layer is optional, some developers know (and have

    opinions about) how to build and deploy their software For those who don’t, we need to provide a way of getting their code onto our clusters • Pipeline templates • Application blueprints Banking Circle 27
  12. DELIVERY - BLUEPRINTS • Teams define their app in a

    few lines of YAML • We provide blueprints for the most common application topologies (e.g. a simple API, a cronjob, an app with persistent storage) Banking Circle 29
  13. TECHNOLOGIES Banking Circle 32 Layer At Banking Circle we use…

    Alternatives Delivery Pipeline templates, Shuttle, ArgoCD OpenFunction Foundation Namespaces, Crossplane, Terraform vCluster, kcp, Kratix Tooling Kubernetes, ArgoCD, Trivy, Copa, Kyverno, Velero, Grafana, Prometheus, Cilium… Install through Helm, terraform, Helmper CNCF landscape CNOE reference implementation Install through Porter or a script
  14. ACCESS LAYER • Developer Portal • Single pane of glass

    At Banking Circle we use: No IDP (yet), Argo & Dynatrace Other Options: Backstage Banking Circle 35
  15. BENEFITS • Once the layers are clearly established, they are

    easier to maintain • It’s easy to understand the split of responsibilities between Development and Operations • Different teams can work on different layers Banking Circle 37
  16. WHERE TO FIND US • devops.bankingcircle.com • DevOps Demos •

    Kubernetes Platform on Confluence Banking Circle Confidential 39
  17. WHAT’S IN IT FOR YOU • A new tool •

    Ensure good practice around storing dependencies for charts used in production • Easy and repeatable import of Container Images in Helm Charts • See an example of how to build Golang projects leveraging popular tools • Learn about recent CNCF projects in the domain of vulnerability detection and patching Banking Circle 41
  18. AGENDA • The problem • The solution • The problem

    with the solution • The solution, continued • Demo Banking Circle 42
  19. THE PROBLEM 1/3 • The platform team uses a significant

    number of Helm Charts to build the Kubernetes Platform in Banking Circle. Banking Circle 44
  20. THE PROBLEM 2/3 • Multiple consequences of regulatory requirements to

    handle when operating in a bank: o No access to public internet in production o OS level vulnerabilities must be patched according to risk policy Banking Circle 45
  21. THE PROBLEM 3/3 • The Platform Team would like to

    enable teams to use the best tool available for the job and to take ownership of operational aspects. • Apache Airflow for Data Engineers • Ollama • Etc.. Making developers understand Helm Charts including dependencies, security patching, image signing etc. is not feasible. Banking Circle 46
  22. THE REQUIREMENTS • Store Helm Charts in OCI-compliant registries •

    Scan and Patch container images Menti: How do you solve this in your company? Banking Circle 47
  23. HOW WE APPROACHED IT • Go program • Helm SDK

    • Azure and Azure DevOps integration • Azure DevOps pipeline to facilitate scanning, patching and distribution Banking Circle 48
  24. THE GOOD • Pipelines provide a convenient way to store

    artifacts for compliance • Selfhosted agents can run from virtual network for registry access • Solution was used to create images going into production for about a year Banking Circle 50
  25. THE PROBLEM WITH THE SOLUTION • Built on pipelines and

    scripting • Difficult to test and develop • One pipeline run per image import does not scale with manual approvals before pushing to production • Huge resource overhead Banking Circle 51
  26. BACK TO THE DRAWING BOARD… • Create one solution to

    the problem • Build a robust solution with wide compatibility and applicability • What we changed • Replaced dependency on Docker with Oras for OCI • Removed Azure specific code, instead relying on Helm/Docker authentication • Integrated all tools into Helmper • Rewrote the Helmper parsing logic • Goroutines – errgroups, slog etc. • Helmper got a new look • Convinced management to release the code to the community! Banking Circle 52
  27. WHAT 1. Complete backups of Helm Charts in your own

    registries to ensure availability 2. Analyze Helm Charts for OCI artifacts 3. Check status of images in registries 4. Secure container images by patching OS level vulnerabilities 5. Signing images 6. Everything above defined with a declarative spec Banking Circle 55
  28. HOW • Helmper Core: Extracting image references from Helm Charts

    • Standing on the shoulders of giants • Integrate with all the tools through Go libraries Banking Circle 56
  29. HOW IT WORKS (CORE) Banking Circle 57 1) Pull helm

    charts from remote registries 2) Analyze charts for image references 3) Check status of images in registries 4) Sync images
  30. HOW IT WORKS Banking Circle 58 1) Pull charts 2)

    Analyses charts for image references 3) Check status of images in registries 4) Scan external 5) Patch 6) Scan 7) Push 8) Sign
  31. DEMO: CORE • Interacting with Helm repositories through Helm SDK

    • Analyze artifacts with Helmper • Check image availability in registries with Oras • Push charts and images with Oras Banking Circle 59
  32. DEMO: EXTENDED • Everything in previous demo, and … •

    Vulnerability detection with Trivy • Vulnerability patching with Copacetic • Signing with Cosign Banking Circle 61
  33. NEXT STEPS • Grow userbase oDetermine if we are solving

    a problem oGet more companies involved • Roadmap oKubernetes Operator oSBOM oOpenTelemetry • CNCF Sandbox Application Banking Circle 63 https://github.com/christoffernissen/helmper Menti: Quick evaluation of Helmper