spinny:~/writing $ vim platform-engineering-internal-developer-platform.md
1~2Yazılım sistemleri daha karmaşık hale geldikçe - mikroservisler, Kubernetes, çoklu bulut, CI/CD pipeline'ları, gözlemlenebilirlik yığınları - geliştiriciler altyapıya daha fazla, ürün geliştirmeye daha az zaman harcıyorlar. **Platform Engineering**, karmaşıklığı soyutlayan ve geliştiricilere daha hızlı teslimat için self-servis araçlar sunan bir iç platform oluşturarak bu sorunu çözer.3~4Gartner, 2027 yılına kadar **yazılım mühendisliği organizasyonlarının %80'inin** platform ekipleri oluşturacağını öngörüyor. Bu rehberde, Platform Engineering'in ne olduğunu, neden önemli olduğunu ve sıfırdan bir Internal Developer Platform'un nasıl oluşturulacağını inceleyeceğiz.5~6## Platform Engineering Nedir?7~8Platform Engineering, yazılım mühendisliği organizasyonları için self-servis yetenekleri sağlayan araç zincirleri ve iş akışları tasarlama ve oluşturma disiplinidir. Çıktı, bir **Internal Developer Platform (IDP)** - geliştiriciler ile altyapı arasında yer alan bir katmandır.9~10```mermaid11graph TD12 subgraph "Developers"13 D1[Frontend Team]14 D2[Backend Team]15 D3[Data Team]16 end17~18 subgraph "Internal Developer Platform"19 Portal[Developer Portal]20 Templates[Service Templates]21 CICD[CI/CD Pipelines]22 Infra[Infrastructure Abstraction]23 end24~25 subgraph "Infrastructure"26 K8s[Kubernetes]27 Cloud[Cloud Services]28 DB[Databases]29 Monitor[Monitoring]30 end31~32 D1 --> Portal33 D2 --> Portal34 D3 --> Portal35 Portal --> Templates36 Portal --> CICD37 Portal --> Infra38 Infra --> K8s39 Infra --> Cloud40 Infra --> DB41 CICD --> Monitor42```43~44### Platform Engineering vs DevOps45~46Platform Engineering, DevOps'un yerine geçen bir şey değildir - bir sonraki evrimdir. DevOps "sen yap, sen çalıştır" dedi. Platform Engineering "yapma ve çalıştırmayı zahmetsiz hale getireceğiz" diyor.47~48| Boyut | DevOps | Platform Engineering |49|-------|--------|---------------------|50| **Odak** | Kültür ve pratikler | Ürünler ve self-servis |51| **Yaklaşım** | Her ekip altyapıyı yönetir | Platform ekibi altyapıyı soyutlar |52| **Bilişsel Yük** | Yüksek (her ekip her şeyi öğrenir) | Düşük (altın yollar sağlanır) |53| **Çıktı** | CI/CD pipeline'ları, IaC betikleri | Internal Developer Platform |54| **Kullanıcılar** | Tüm mühendislik | Platform ekibi mühendisliğe hizmet eder |55~56## Platform Engineering Neden Önemli57~58### Bilişsel Yük Sorunu59~60Tipik bir modern organizasyonda, bir geliştiricinin anlaması gerekenler:61~62- Git iş akışları ve dallanma stratejileri63- CI/CD pipeline yapılandırması64- Konteyner oluşturma ve kayıt defteri yönetimi65- Kubernetes manifest'leri ve Helm Charts66- Bulut sağlayıcı hizmetleri (AWS/GCP/Azure)67- Ağ, DNS, TLS sertifikaları68- İzleme, loglama, uyarı kurulumu69- Veritabanı sağlama ve geçişler70- Güvenlik politikaları ve uyumluluk71~72Bu, gerçek üründen odağı uzaklaştıran muazzam bir bilişsel yüktür.73~74### Altın Yol75~76Platform Engineering, **altın yollar** kavramını tanıtır - yaygın görevler için görüşlü, iyi desteklenen ve belgelenmiş yollar. Altın yol bir zorunluluk değildir; geliştiriciler *sapabilir*, ama platform doğru olanı kolay olan yapar.77~78```mermaid79flowchart LR80 Dev[Developer] -- "Create new service" --> Portal[Portal]81 Portal -- "Select template" --> Template[Service Template]82 Template -- "Auto-provision" --> Repo[Git Repository]83 Template --> Pipeline[CI/CD Pipeline]84 Template --> Infra[Kubernetes Namespace]85 Template --> Monitor[Dashboards + Alerts]86 Repo --> Ready[Ready to Code!]87```88~89**Yeni bir mikroservis oluşturmak için altın yol örneği:**901. Geliştirici portalda "Yeni Backend Servisi" seçer912. Dil/framework seçer (Node.js, Go, Python)923. Platform otomatik oluşturur: Git deposu, CI/CD pipeline'ı, Kubernetes namespace'i, izleme panoları ve uyarı kuralları934. Geliştirici depoyu klonlar ve hemen kodlamaya başlar94~95## Internal Developer Platform Oluşturma96~97### Katman 1: Developer Portal98~99Portal, geliştiriciler için tek giriş noktasıdır. En popüler açık kaynak seçenek **Backstage**'dir (Spotify tarafından oluşturulmuş, şimdi bir CNCF projesi).100~101Temel özellikler:102- **Servis kataloğu**: Her servis, sahibi, belgeleri ve bağımlılıkları103- **Yazılım şablonları**: En iyi uygulamalarla entegre yeni servisler için iskele104- **Teknik belgeler**: Kod olarak belgeler, işlenmiş ve aranabilir105- **Eklenti ekosistemi**: Özel işlevsellikle genişletilebilir106~107```yaml108# backstage/catalog-info.yaml109apiVersion: backstage.io/v1alpha1110kind: Component111metadata:112 name: user-service113 description: Manages user accounts and authentication114 annotations:115 github.com/project-slug: myorg/user-service116 backstage.io/techdocs-ref: dir:.117spec:118 type: service119 lifecycle: production120 owner: team-auth121 system: identity-platform122 dependsOn:123 - resource:postgresql-main124 providesApis:125 - user-api126```127~128### Katman 2: Altyapı Soyutlama129~130Geliştiriciler doğrudan Terraform veya Kubernetes YAML yazmamalıdır. Platform soyutlamalar sağlamalıdır.131~132**Araçlar:**133- **Crossplane**: Kubernetes-yerel altyapı sağlama134- **Terraform modülleri**: Önceden oluşturulmuş, test edilmiş altyapı modülleri135- **Pulumi**: Gerçek kod olarak altyapı (TypeScript, Python, Go)136~137```yaml138# Example: Crossplane composition for a database139apiVersion: database.example.com/v1140kind: PostgreSQLInstance141metadata:142 name: user-db143spec:144 size: small # Abstraction: small = 2 vCPU, 4GB RAM145 version: "16"146 backup: daily147 team: auth-team148```149~150RDS parametreleri, VPC alt ağları, güvenlik grupları ve yedekleme politikaları yapılandırmak yerine, geliştirici sadece `size: small` ve `backup: daily` belirtir. Platform gerisini halleder.151~152### Katman 3: CI/CD Standardizasyonu153~154Ekiplerin her birinin kendi pipeline'larını oluşturmaması için CI/CD'yi standardize edin.155~156```yaml157# .github/workflows/platform-ci.yml158# Teams just include the shared workflow159name: Build and Deploy160on:161 push:162 branches: [main]163~164jobs:165 pipeline:166 uses: myorg/platform-workflows/.github/workflows/standard-pipeline.yml@v2167 with:168 language: node169 deploy-target: production170 secrets: inherit171```172~173**Temel pratikler:**174- Ekiplerin dahil ettiği (kopyalamadığı) paylaşımlı CI/CD şablonları175- Otomatik güvenlik taraması (SAST, bağımlılık denetimi)176- Standardize dağıtım stratejileri (canary, blue/green)177- Başarısız sağlık kontrollerinde otomatik geri alma178~179### Katman 4: Gözlemlenebilirlik180~181Geliştiricilerin hazır panolar ve uyarılar alması için önceden yapılandırılmış izleme.182~183- **Metrikler**: Prometheus + Grafana, servis başına standart panolar184- **Loglama**: Merkezi toplama ile yapılandırılmış loglama (Loki, ELK)185- **İzleme**: OpenTelemetry ile dağıtık izleme186- **Uyarılar**: Makul varsayılanlarla PagerDuty/Opsgenie entegrasyonu187~188```mermaid189graph LR190 Service[Your Service] -- "OpenTelemetry SDK" --> Collector[OTel Collector]191 Collector --> Prometheus[Prometheus]192 Collector --> Loki[Loki]193 Collector --> Tempo[Tempo]194 Prometheus --> Grafana[Grafana Dashboards]195 Loki --> Grafana196 Tempo --> Grafana197 Grafana --> PagerDuty[PagerDuty Alerts]198```199~200## Başarıyı Ölçme201~202Platformunuzun çalıştığını nasıl bilirsiniz? Bu metrikleri takip edin:203~204### DORA Metrikleri205- **Dağıtım sıklığı**: Kodun üretime ne sıklıkta ulaştığı206- **Değişiklikler için teslim süresi**: Commit'ten üretime kadar geçen süre207- **Değişiklik başarısızlık oranı**: Arızalara neden olan dağıtımların yüzdesi208- **Ortalama kurtarma süresi**: Bir olaydan sonra hizmeti geri yükleme süresi209~210### Platforma Özel Metrikler211- **İlk dağıtıma kadar süre**: "Yeni servis"ten ilk üretim dağıtımına kadar ne kadar süre212- **Geliştirici memnuniyeti (NPS)**: Kullanıcılarınızı düzenli olarak anket yapın213- **Self-servis oranı**: Bilet olmadan işlenen altyapı isteklerinin %'si214- **Altın yol benimseme**: Önerilen yolu izleyen servislerin %'si215~216## Yaygın Hatalar217~218### 1. Çok Erken Çok Fazla Oluşturma219Büyük bir vizyon değil, en büyük acı noktasıyla başlayın. Dağıtımlar acı vericiyse, oradan başlayın. Sağlama haftalarca sürüyorsa, oradan başlayın.220~221### 2. Platformu Ürün Olarak Görmemek222Platform ekibinin bir ürün yöneticisine, kullanıcı araştırmasına ve geri bildirim döngülerine ihtiyacı vardır. Geliştiriciler müşterilerinizdir - ihtiyaçlarını anlayın.223~224### 3. Çekmek Yerine Zorunlu Kılmak225En iyi platformlar, geliştiricilerin hayatını kolaylaştırdıkları için gönüllü olarak benimsenir. Kullanımı zorunlu kılmanız gerekiyorsa, platformunuz yeterince iyi değildir.226~227### 4. Geliştirici Deneyimini Göz Ardı Etmek228Kötü UX'li bir platform kullanılmayacaktır. Net belgelere, yardımcı hata mesajlarına ve hızlı geri bildirim döngülerine yatırım yapın.229~230## Başlarken231~232İlk IDP'nizi oluşturmak için pratik bir yol haritası:233~234```mermaid235flowchart TD236 A[Month 1-2: Discovery] --> B[Month 3-4: MVP]237 B --> C[Month 5-6: Iterate]238 C --> D[Month 7+: Scale]239~240 A --> A1[Interview developers]241 A --> A2[Map pain points]242 A --> A3[Choose first golden path]243~244 B --> B1[Deploy Backstage]245 B --> B2[First service template]246 B --> B3[Standardized CI/CD]247~248 C --> C1[Gather feedback]249 C --> C2[Add infrastructure abstraction]250 C --> C3[Improve docs and onboarding]251~252 D --> D1[More templates and golden paths]253 D --> D2[Self-service infrastructure]254 D --> D3[Advanced observability]255```256~257### Minimum Uygulanabilir Platform258~2591. **Servis kataloğu** (Backstage) - neyin var olduğunu ve kimin sahip olduğunu bilin2602. **Bir servis şablonu** - en yaygın servis türünüz için altın yol2613. **Standardize CI/CD** - ekiplerin dahil ettiği paylaşımlı pipeline2624. **Temel belgeler** - platformu nasıl kullanacağınız, nereden yardım alacağınız263~264Bu MVP'yi 2-3 mühendislik ekibiyle 2-3 ayda oluşturabilirsiniz.265~266## Sonuç267~268Platform Engineering, ilk günden mükemmel platformu oluşturmakla ilgili değildir. Geliştiriciler üzerindeki bilişsel yükü kademeli olarak azaltarak ürün geliştirmeye odaklanmalarını sağlamakla ilgilidir. Küçük başlayın, etkiyi ölçün ve geliştirici geri bildirimlerine göre iterasyon yapın.269~270Platform Engineering'e yatırım yapan organizasyonlar önemli bir rekabet avantajına sahip olacaktır: daha hızlı teslimat, daha mutlu geliştiriciler ve daha güvenilir sistemler.271~272**Kaynaklar:**273- [Team Topologies](https://teamtopologies.com/) - platform ekiplerini popüler hale getiren kitap274- [Backstage](https://backstage.io/) - Spotify'ın açık kaynak geliştirici portalı275- [CNCF Platforms White Paper](https://tag-app-delivery.cncf.io/whitepapers/platforms/) - topluluk tanımı ve en iyi pratikler276- [platformengineering.org](https://platformengineering.org/) - topluluk, etkinlikler ve kaynaklar277~
NORMAL · platform-engineering-internal-developer-platform.md [readonly]277 lines · :q to close