ÜİYOK'ün Mimarisi: Genel Bakış
Bir mimariyi tasarlayın Dahili Geliştirici Platformu (IDP) anlayış gerektirir onu oluşturan bileşenler ve bunların birbirleriyle nasıl etkileşime girdiği. Modern bir ÜİYOK bir tek bir yekpare ürün değil, sunmak için birlikte çalışan düzenlenmiş hizmetlerden oluşan bir ekosistem geliştiriciler için tutarlı bir self-servis deneyimi.
Bu makalede ÜİYOK'lerin üç temel katmanını inceleyeceğiz: Kontrol Düzlemi, theYürütme Düzlemi ve Veri Katmanı. Her biri için bileşenleri analiz edeceğiz ölçeklenebilirliği belirleyen anahtar, entegrasyon modelleri ve mimari seçimler ve platformun sürdürülebilirliği.
Ne Öğreneceksiniz
- Bir IDP'nin üç mimari katmanı: Kontrol Düzlemi, Yürütme Düzlemi, Veri Katmanı
- API Ağ Geçidi, karar motoru ve politika uygulamasıyla Kontrol Düzlemi nasıl tasarlanır?
- Yürütme Düzlemi: Kubernetes, dağıtım motorları ve yürütme bağlamları
- Veri Katmanı: ölçüm deposu, günlük toplama, yapılandırma yönetimi
- Entegrasyon modelleri: olay akışı, web kancaları, araç federasyonu
- Diyagram ve kod içeren referans mimarisi
Kontrol Düzlemi
Il Kontrol Düzlemi ve ÜİYOK'lerin beyni. Kararları yönetir, iş akışlarını düzenler ve politikaları uygulamak. Ve geliştiricilerin platformla etkileşimde bulunduğu katman, bir geliştirici portalı (Backstage gibi) veya doğrudan CLI veya API aracılığıyla.
Kontrol Düzleminin ana bileşenleri şunlardır:
- API Ağ Geçidi: Kimlik doğrulama, hız sınırlama ve yönlendirme ile platforma yapılan tüm istekler için birleşik giriş noktası
- Karar Motoru: Sağlama, dağıtım ve yapılandırma iş akışlarını koordine eden düzenleme mantığı
- Politika Motoru: Herhangi bir eylem gerçekleştirilmeden önce organizasyonel politikaların (OPA/Rego, Kyverno) uygulanması
- Geliştirici Portalı: Birleşik bir self-servis deneyimi sağlayan web arayüzü (genellikle Backstage)
- Servis Kataloğu: Kuruluşunuzun tüm hizmetlerinin, bileşenlerinin ve kaynaklarının merkezi kaydı
# Reference Architecture: Control Plane
control-plane:
api-gateway:
technology: Kong / Ambassador / Traefik
features:
- authentication: OAuth2 / OIDC
- rate-limiting: per-user, per-team quotas
- routing: path-based routing to backend services
- tls-termination: automatic certificate management
endpoints:
- /api/v1/services # Service catalog CRUD
- /api/v1/deployments # Deployment management
- /api/v1/templates # Golden path templates
- /api/v1/policies # Policy management
decision-engine:
technology: Temporal / Argo Workflows
workflows:
- service-provisioning:
steps: [validate, policy-check, provision-infra, deploy, verify]
- environment-creation:
steps: [validate, quota-check, create-namespace, configure-rbac, setup-monitoring]
- incident-response:
steps: [detect, classify, notify, remediate, verify, postmortem]
policy-engine:
technology: OPA (Open Policy Agent)
policies:
- resource-quotas: "Max CPU/memory per namespace"
- naming-conventions: "Service naming must follow pattern"
- security-baselines: "All containers must run as non-root"
- cost-controls: "Max instance size without approval"
Yürütme Düzlemi
L'Yürütme Düzlemi ve olayların gerçekte gerçekleştiği katman. Burada ikamet Kubernetes kümeleri, CI/CD işlem hatları, dağıtım motorları ve çalıştırdıkları tüm araçlar aslında geliştiricilerin Kontrol Düzlemi aracılığıyla talep ettiği işlemler.
Kontrol Düzlemi ile Yürütme Düzlemi arasındaki ayrım, ölçeklenebilirlik açısından temel önemdedir: Kontrol Düzlemi operasyonları coğrafi olarak veya bulutta dağıtılmış birden fazla Yürütme Düzleminde düzenleyebilir farklı sağlayıcılar.
- Kubernetes Kümeleri: ad alanı izolasyonu ve kaynak kotalarıyla kapsayıcılı iş yükleri için yürütme ortamları
- CI/CD İşlem Hatları: Otomatik derlemeler, testler ve dağıtımlar için GitHub Actions, GitLab CI veya Tekton
- Dağıtım Motorları: Otomatik mutabakatla GitOps tabanlı dağıtımlar için ArgoCD veya Flux
- Altyapı Sağlayıcıları: Bulut kaynaklarının sağlanması için Terraform, Pulumi veya Crossplane
# Execution Plane: Kubernetes cluster configuration
apiVersion: v1
kind: Namespace
metadata:
name: team-checkout
labels:
platform.company.io/team: checkout
platform.company.io/environment: production
platform.company.io/cost-center: engineering
annotations:
platform.company.io/owner: team-checkout@company.io
platform.company.io/slack-channel: "#team-checkout"
---
apiVersion: v1
kind: ResourceQuota
metadata:
name: team-checkout-quota
namespace: team-checkout
spec:
hard:
requests.cpu: "8"
requests.memory: 16Gi
limits.cpu: "16"
limits.memory: 32Gi
pods: "50"
services: "10"
persistentvolumeclaims: "5"
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny-ingress
namespace: team-checkout
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
platform.company.io/team: checkout
Veri Katmanı
Il Veri Katmanı ve ÜİYOK'lerin sinir sistemi. Toplar, işler ve kullanıma sunar platformu çalıştırmak için gerekli tüm bilgiler: performans ölçümleri, uygulama günlükleri, yapılandırmalar, dağıtım durumu ve çok daha fazlası.
İyi tasarlanmış bir Veri Katmanı, bilinçli kararların, hızlı sorun gidermenin ve iyileştirmenin temelidir sürekli platform. Ana bileşenler şunlardır:
- Metrik Deposu: Uzun vadeli depolama ve çoklu küme toplama için Thanos veya Cortex ile zaman serisi metriklerinin toplanması için Prometheus
- Günlük Toplama: Merkezi günlük toplama ve arama için ELK yığını (Elasticsearch, Logstash, Kibana) veya Loki
- İzleme: Mikro hizmet mimarilerinde hata ayıklama için gerekli olan dağıtılmış izleme için Jaeger veya Tempo
- Yapılandırma Deposu: merkezi konfigürasyon yönetimi ve hizmet keşfi için etcd veya Consul
- Gizli Mağaza: Kimlik bilgilerinin, sertifikaların ve API anahtarlarının güvenli bir şekilde yönetilmesi için HashiCorp Vault
Mimari Prensip
Veri Katmanı şu ilkeye uymalıdır: tek cam: tüm veriler Platformun tek bir noktadan, genellikle geliştirici portalından erişilebilir olması gerekir. Bir geliştiricinin bir sorunu teşhis etmek için hiçbir zaman 5 farklı araç arasında gezinmesi gerekmemelidir.
Entegrasyon Modeli
Bir ÜİYOK'ün etkinliği, bileşenleri arasındaki entegrasyonların kalitesine bağlıdır. Desenler en yaygın entegrasyon yöntemleri şunlardır:
- Etkinlik Akışı: bileşenlerin eşzamansız ve ayrıştırılmış olarak iletişim kurmasına olanak tanıyan bir olay veriyolu (Kafka, NATS, CloudEvents)
- Web kancaları: Tamamlanan taahhütler, birleştirmeler ve dağıtımlar gibi gerçek zamanlı olaylar için HTTP anlık bildirimleri
- API Federasyonu: Tüm platform bileşenlerinin API'lerini tek bir uç noktada toplayan bir GraphQL federasyon katmanı
- GitOps: Platformun yapılandırmaları ve istenen durumu için tek gerçek kaynak olarak Git
# Event-driven integration pattern
event-bus:
technology: Apache Kafka
topics:
- platform.deployments:
schema: CloudEvents v1.0
events:
- deployment.requested
- deployment.approved
- deployment.started
- deployment.completed
- deployment.failed
- deployment.rolled-back
- platform.infrastructure:
events:
- resource.provisioned
- resource.updated
- resource.deleted
- quota.exceeded
- platform.incidents:
events:
- alert.fired
- incident.created
- incident.acknowledged
- incident.resolved
consumers:
- notification-service:
subscribes: ["platform.*"]
actions: [slack-notify, email-notify, pagerduty]
- audit-service:
subscribes: ["platform.*"]
actions: [log-to-elasticsearch, compliance-check]
- metrics-service:
subscribes: ["platform.deployments"]
actions: [update-dora-metrics, update-dashboard]
Hizmet Ağı ve Ağ İletişimi
Un Servis Ağı ve modern bir IDP mimarisinin kritik bir bileşenidir. Sağlar uygulama kodunda değişiklik gerektirmeden gelişmiş ağ oluşturma yetenekleri:
- Otomatik mTLS: Manuel yapılandırmaya gerek kalmadan tüm hizmetlerde uçtan uca şifreleme
- Trafik yönetimi: kanarya konuşlandırmaları, mavi-yeşil yönlendirme, başlığa dayalı veya yüzdeye dayalı trafik bölme
- gözlemlenebilirlik: Her servisler arası çağrı için otomatik ölçümler, izleme ve kayıt tutma
- Dayanıklılık: devre kesiciler, otomatik yeniden denemeler, yapılandırılabilir zaman aşımları
En çok benimsenen çözümler Istio (tam ama karmaşık) e Linkerd (hafif ve basit). Seçim, kuruluşun özel ihtiyaçlarına bağlıdır: Istio, daha fazla özellik ancak daha fazla kaynak ve beceri gerektirirken Linkerd, arayan ekipler için idealdir. hafif ve kullanımı kolay bir çözüm.
Ölçeklendirmeyle İlgili Hususlar
Bir ÜİYOK'ün kuruluşla ölçeklendirilecek şekilde tasarlanması gerekir. Ana hususlar endişe:
- Çoklu kiracılık: Paylaşılan kaynakların verimliliğinden ödün vermeden ad alanları, RBAC ve kaynak kotaları ile ekipler arasında izolasyon
- Federasyon: Birden fazla kümeyi ve bulut sağlayıcısını tek bir kontrol düzleminden yönetebilme yeteneği
- Önbelleğe alma: API gecikmesini azaltmak ve arka uç hizmetlerinde yükü azaltmak için önbelleğe alma katmanı
- Yatay ölçeklendirme: Tüm Kontrol Düzlemi bileşenleri yatay olarak ölçeklenebilmelidir
# Multi-cluster federation architecture
federation:
control-plane:
location: central-cluster
components:
- backstage-portal
- policy-engine (OPA)
- workflow-engine (Temporal)
- api-gateway
execution-planes:
- cluster: aws-eu-west-1
provider: AWS EKS
purpose: production-eu
workloads: [web-apps, apis, workers]
- cluster: aws-us-east-1
provider: AWS EKS
purpose: production-us
workloads: [web-apps, apis, workers]
- cluster: gcp-europe-west1
provider: GKE
purpose: data-processing
workloads: [batch-jobs, ml-pipelines]
- cluster: on-prem-datacenter
provider: Bare metal (k3s)
purpose: edge-computing
workloads: [iot-gateways, local-cache]
connectivity:
mesh: Istio multi-cluster
dns: ExternalDNS + Route53
certificates: cert-manager + Let's Encrypt
secrets: Vault with auto-unseal
Mimari En İyi Uygulama
IDP'nizi prensiplerle tasarlayın "Basit başla, sonra ölçeklendir". Bu gerekli değil tüm bileşenleri ilk günden itibaren uygulayın. Minimal bir Kontrol Düzlemi ile başlayın (Backstage + GitHub Eylemleri), tek kümeli bir Yürütme Düzlemi ve temel bir Veri Katmanı (Prometheus + Grafana). Karmaşıklık ekleyin yalnızca veriler bunun gerekli olduğunu gösterdiğinde.
Eksiksiz Referans Mimarisi
Tüm bileşenleri eksiksiz bir referans mimarisine bir araya getiriyoruz. Bu mimari orta ölçekli bir kuruluş (50-200 geliştirici) için olgun bir ÜİYOK'ü temsil eder:
- Geliştirici Portalı: Hizmet kataloğu, şablonlar ve belgeler için özel eklentilere sahip sahne arkası
- CI/CD: Derlemeler ve testler için GitHub Eylemleri, GitOps tabanlı dağıtımlar için ArgoCD
- Altyapı: PR tabanlı iş akışları için Atlantis ile paylaşılan Terraform modülleri
- gözlemlenebilirlik: Metrikler için Prometheus + Grafana, günlükler için Loki, izleme için Tempo
- Güvenlik: Politikanın uygulanması için OPA, sırlar için Vault, çalışma zamanı güvenliği için Falco
- Ağ oluşturma: mTLS ve trafik yönetimi için Istio hizmet ağı
Bir sonraki makalede ayrıntılı olarak inceleyeceğiz Altın Yollar: nasıl tanımlanıp uygulanacağı Geliştiricileri özerkliklerini sınırlamadan en iyi uygulamalara yönlendiren standartlaştırılmış akışlar.







