Passa al contenuto principale

Template per microservizi

Sei un platform engineer. I tuoi sviluppatori dovrebbero poter richiedere un nuovo XApplication e ottenere indietro un golden path opinionated: un database gestito, un repo GitHub cablato per la CI, i workload di cui ha bisogno nel cluster, e la colla che li tiene insieme. Tutto ciò a cui non vogliono pensare è già deciso per loro.

Cosa stai costruendo

Un XR — chiamiamolo XApplication (prefisso X per la convenzione di naming) — che prende una manciata di input (nome, team, flavour del database) e compone tutto ciò che serve a un nuovo microservizio. Un XR per servizio. Gli sviluppatori non scrivono mai un Deployment, una MR Bucket o una GitHub Repository direttamente; modificano un solo YAML breve e lo pushano.

Passi suggeriti

  1. Parti dal modulo Definisci un'Application — l'XRD namespaced + Composition che emette i Deployment frontend/backend e una ConfigMap. Quella è la forma in cui crescerai fino a una vera platform XR.
  2. Aggiungi un database gestito. Scegli il cloud che il tuo team usa già: provider-aws, provider-gcp o provider-azure. I moduli ti accompagnano attraverso una sola MR (un bucket); lo stesso setup sblocca ogni altra risorsa che il provider espone — incluse le CRD del database gestito.
  3. Aggiungi un repo GitHub per XApplication con provider-github. Riusa lo stesso XR XApplication — lascia che la Composition emetta una MR Repository accanto ai workload.
  4. Pacchettizza tutta la piattaforma come artefatto OCI con Pacchettizza come Configuration. Pinna le sue dipendenze provider/function. Adesso un altro cluster può installare la tua IDP con un solo kubectl apply.
  5. Valida le Composition prima di mergeare le modifiche eseguendo render e beta validate della CLI Crossplane in locale.

Stretch goal

  • Esponi il readiness di ogni risorsa composta sull'XR XApplication con function-auto-ready.
  • Aggiungi un input tier (free, paid) e fai switch tra family di provider dentro la Composition con function-go-templating.
  • Self-service via ArgoCD: ogni XR XApplication è un file in un repo git contro cui gli sviluppatori aprono PR.

Riferimenti