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

Develop Cloud Native Apps with .NET

Develop Cloud Native Apps with .NET

Avatar for Mennan Köse

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