spinny:~/writing $ less platform-engineering-internal-developer-platform.md
12Yazı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.34Gartner, 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.56## Platform Engineering Nedir?78Platform 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.910```mermaid11graph TD12 subgraph "Developers"13 D1[Frontend Team]14 D2[Backend Team]15 D3[Data Team]16 end1718 subgraph "Internal Developer Platform"19 Portal[Developer Portal]20 Templates[Service Templates]21 CICD[CI/CD Pipelines]22 Infra[Infrastructure Abstraction]23 end2425 subgraph "Infrastructure"26 K8s[Kubernetes]27 Cloud[Cloud Services]28 DB[Databases]29 Monitor[Monitoring]30 end3132 D1 --> Portal33 D2 --> Portal34 D3 --> Portal35 Portal --> Templates36 Portal --> CICD37 Portal --> Infra38 Infra --> K8s39 Infra --> Cloud40 Infra --> DB41 CICD --> Monitor42```4344### Platform Engineering vs DevOps4546Platform 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.4748| 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 |5556## Platform Engineering Neden Önemli5758### Bilişsel Yük Sorunu5960Tipik bir modern organizasyonda, bir geliştiricinin anlaması gerekenler:6162- 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 uyumluluk7172Bu, gerçek üründen odağı uzaklaştıran muazzam bir bilişsel yüktür.7374### Altın Yol7576Platform 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.7778```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```8889**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şlar9495## Internal Developer Platform Oluşturma9697### Katman 1: Developer Portal9899Portal, 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).100101Temel ö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şletilebilir106107```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```127128### Katman 2: Altyapı Soyutlama129130Geliştiriciler doğrudan Terraform veya Kubernetes YAML yazmamalıdır. Platform soyutlamalar sağlamalıdır.131132**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)136137```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```149150RDS 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.151152### Katman 3: CI/CD Standardizasyonu153154Ekiplerin her birinin kendi pipeline'larını oluşturmaması için CI/CD'yi standardize edin.155156```yaml157# .github/workflows/platform-ci.yml158# Teams just include the shared workflow159name: Build and Deploy160on:161 push:162 branches: [main]163164jobs:165 pipeline:166 uses: myorg/platform-workflows/.github/workflows/standard-pipeline.yml@v2167 with:168 language: node169 deploy-target: production170 secrets: inherit171```172173**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 alma178179### Katman 4: Gözlemlenebilirlik180181Geliştiricilerin hazır panolar ve uyarılar alması için önceden yapılandırılmış izleme.182183- **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 entegrasyonu187188```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```199200## Başarıyı Ölçme201202Platformunuzun çalıştığını nasıl bilirsiniz? Bu metrikleri takip edin:203204### 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üresi209210### 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 %'si215216## Yaygın Hatalar217218### 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.220221### 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.223224### 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.226227### 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.229230## Başlarken231232İlk IDP'nizi oluşturmak için pratik bir yol haritası:233234```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]239240 A --> A1[Interview developers]241 A --> A2[Map pain points]242 A --> A3[Choose first golden path]243244 B --> B1[Deploy Backstage]245 B --> B2[First service template]246 B --> B3[Standardized CI/CD]247248 C --> C1[Gather feedback]249 C --> C2[Add infrastructure abstraction]250 C --> C3[Improve docs and onboarding]251252 D --> D1[More templates and golden paths]253 D --> D2[Self-service infrastructure]254 D --> D3[Advanced observability]255```256257### Minimum Uygulanabilir Platform2582591. **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ız263264Bu MVP'yi 2-3 mühendislik ekibiyle 2-3 ayda oluşturabilirsiniz.265266## Sonuç267268Platform 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.269270Platform 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.271272**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
:Platform Engineering: Internal Developer Platform Nasıl Oluşturulurlines 1-277 (END) — press q to close