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

Develop Cloud Native Apps with .NET

Develop Cloud Native Apps with .NET

Mennan Köse

February 20, 2021
Tweet

More Decks by Mennan Köse

Other Decks in Technology

Transcript

  1. CLOUD-NATIVE UYGULAMALAR NEDİR? • Container’larla paketlenmiş, microservice olarak dağıtılan ve

    çevik DevOps süreçleri ile dağıtımı sağlanabilen uygulamalardır. • Public, private veya hybrid cloud ortamlarında çalışabilir.
  2. • Loosely coupled • Lightweight servisler • Kolay taşınabilir •

    Dilden bağımsız • İşletim sisteminden bağımsız • Çalıştığı sistemin kaynaklarını efektif kullanan • Ölçeklenebilir CLOUD-NATIVE UYGULAMALARIN ÖZELLİKLERİ
  3. • Logging • Healthcheck • Proxy Server • Uygulama bazlı

    ayarların yönetimi • Kritik ayar bilgilerinin saklanması • Graceful Shutdown .NET ile CLOUD-NATIVE UYGULAMA GELİŞTİRME
  4. • Servisler arasındaki isteklerin takibi için CorrelationId kullanılmalıdır. • CorrelationId

    değeri olarak HttpContext.TraceIdentifier kullanılabilir. LOGGING
  5. • Uygulamanın ve uygulamanın çalışması için ihtiyacı olduğu kaynakların sağlıklı

    bir şekilde çalışıp çalışmadığının kontrolüdür. • . NET üzerinde Microsoft.AspNetCore.Diagnostics.HealthChecks paketi kullanılarak healthcheck kontrolü projeye eklenir. • .NET ile gelen AddHealthcheck isimli servis kullanılarak uygulamalarımıza healthcheck özelliği kazandırabiliriz. • AddDbContextCheck servisi ile EF Core ile bağlantı sağlanan kaynakların healthcheck durumları kontrol edilebilir. • Farklı kaynaklar için healthcheck kontrolü eklemek için IHealthcheck interface’i kullanılabilir. HEALTHCHECK
  6. • Proxy server (Nginx, IIS v.b.) arkasında çalışan uygulamalar bazı

    bilgilere istemci ile ilgili bazı bilgilere ihtiyaç duyabilir. • Proxy server üzerinden X-Forwarded-For, X-Forwarded-Proto veya X-Forwarded-Host header’larının iletilmesi gerekmektedir. • .NET Core 3.0’dan sonraki sürümlerde ASPNETCORE_FORWARDEDHEADERS_ENABLED environment variable’ı true olarak ayarlanarak aktif hale getirilebilir. • Daha eski sürümlerde ForwardedHeadersOptions servisi ayarlanarak kullanılabilir. PROXY SERVER
  7. • Uygulamanın temel ayarları appSettings.json dosyasında tutulabilir. • Kritik bilgiler

    içeren ayarlar aşağıdaki yöntemlerden biri kullanılarak container veya pod’un içerisine geçilmelidir: a. Environment Variable b. Docker Secret c. Kubernetes Secret d. Hashicorp Vault e. Azure Key Vault UYGULAMA BAZLI AYARLARIN YÖNETİMİ
  8. • Uygulama kapanmadan önce yapılması gereken işlemler varsa bu adımda

    yapılmalıdır. • Long running olarak çalışan işlemleri sonlandırmak amaçlı kullanılabilir. GRACEFUL SHUTDOWN