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

Cloud Run ve Kubernetes üzerinde sunucusuz uygulamalar

Cloud Run ve Kubernetes üzerinde sunucusuz uygulamalar

Ahmet Alp Balkan

April 16, 2020
Tweet

More Decks by Ahmet Alp Balkan

Other Decks in Technology

Transcript

  1. Serverless & Containers Cloud Run ile istediğiniz yerde Ahmet Alp

    Balkan Developer Advocate, Google Cloud
  2. Hakkımda • Linux containers ve Kubernetes üzerine 6 yıldır çalışıyorum.

    • 3 yıldır Google Cloud'da Kubernetes ve Cloud Run gibi container teknolojileri üzerine projelerde çalışıyorum. • Yüz binlerce geliştiricinin günlük olarak kullandığı açık kaynaklı araçlar geliştiriyorum. twitter.com/ahmetb github.com/ahmetb youtube.com/ahmetb
  3. youtube.com/ahmetb

  4. “Cloud, elinizdeki bir problemi başkasının problemi yapmaktır.”

  5. Geliştiricinin yazdığı kod Kod yayında

  6. Geliştiricinin yazdığı kod Kod yayında IT/Ops takımına gereksinimleri ilet Datacenter

    takımı makineler yaratsın Makinelere gereken paketler kurulsun Kodu build & test et Ops takımı yeni versiyonu çalıştırsın Hata varsa:rollback, Yoksa: rollout Kapasite planı yap Eski versiyona trafiği zamanla azaltarak durdur
  7. VM'ler uygulamalar container'lar kod parçaları SERVERLESS SUNUCULAR

  8. Fiziksel makineler (Datacenter) Sanal makineler (Infrastructure as a Service) Sanal

    makine grupları (Kubernetes cluster'ları) Container platformları (Containers as a Service) Uygulama platformları (Platform as a Service) Kod parçacığı platformları (Functions as a Service) SİZ SİZ CLOUD SİZ CLOUD SİZ CLOUD SİZ CLOUD SİZ CLOUD
  9. Sanal makineler Infrastructure as a service (IaaS) • "Bana 4

    çekirdekli, 16 GB RAM'li bir Ubuntu makinesi ver" ◦ "... bu makine imajını çalıştır" • "Bu makineyi, disklerini ve network'ünü çalışır halde tut." • "Networking ve storage ayarlarını ben yapacağım." • "Makinenin güvenliğini sağlamak benim sorumluluğum." Deployment birimi VM/disk imajı Örnek: • Google Compute Engine
  10. Makine kümeleri (Kubernetes clusters) • "Bana şu boyutta 10 tane

    makine ver, ve üzerine Kubernetes kur" ◦ Otomatik olarak makinelerimi yönet ve Kubernetes versiyonumu güncelle. ◦ Ben Kubernetes kullanarak uygulamalarımı bu makinelerde çalıştıracağım. Deployment ünitesi: container image + Kubernetes konfigürasyonları Örnek: • Google Kubernetes Engine (GKE)
  11. Container platformları (Containers as a Service) • "Bu container'ı çalıştır"

    ◦ Kullanıcı sayısına göre kaç tane instance çalıştıracağına karar ver. ◦ Makinaları görmek veya yönetmek istemiyorum. Sınırlama sadece server uygulamaları (request/response) Deployment ünitesi: container image Örnek: • Google Cloud Run • AWS Fargate 1 • Azure Container Instances 1 1 Bu platformlar tam Cloud Run gibi request/response tabanlı autoscaling ile çalışmıyor, fakat batch container’ları (yani HTTP serversız containlerlar) çalıştırabiliyorlar.
  12. Uygulama platformları (Platform as a Service) • "Bu uygulamayı benim

    için çalıştır" ◦ Kullanıcı sayısına göre kaç tane instance çalıştıracağına karar ver. ◦ Makinaları görmek veya yönetmek istemiyorum. Sınırlama sadece desteklenen diller (Node.js, Python, Go, Java…) Deployment ünitesi: uygulama kodu Örnek: • Google App Engine • Heroku...
  13. Kod parçacığı platformları (Functions as a Service) • "Bu fonksiyonu

    benim için çalıştır" ◦ Kullanıcı sayısına göre kaç tane instance çalıştıracağına karar ver. ◦ Makinaları görmek veya yönetmek istemiyorum. Sınırlama sadece desteklenen dillerde, kodun belli şekilde yazılması gerek Deployment ünitesi: fonksiyon/metod kodu Örnek: • Google Cloud Functions • AWS Lambda...
  14. VM'ler uygulamalar container'lar kod parçaları SERVERLESS SUNUCULAR Kısıtlama ve kolaylık

    Kontrol ve esneklik
  15. VM'ler uygulamalar container'lar kod parçaları SERVERLESS SUNUCULAR Geliştiriciler sadece uygulamasıyla

    uğraşıyor Geliştiriciler altyapı ile de uğraşıyor
  16. VM'ler uygulamalar container'lar kod parçaları SERVERLESS SUNUCULAR Birim fiyatı ($/CPU

    saniye) daha pahalı Birim fiyatı ($/CPU-saniye) daha ucuz
  17. VM'ler uygulamalar container'lar kod parçaları SERVERLESS SUNUCULAR Kullandığın kadar öde

    Uygulama boştayken masraf yapabiliyor
  18. Serverless?

  19. Otomatik ölçeklenen Serverless Operasyon modeli Altyapı yönetimi yok Kullandığın kadar

    öde Programlama modeli Veri tutmayan (stateless) Hızlı başlayan, kolay ölçeklenen Request Response modeli
  20. Serverless platformlar ile altyapıyla uğraşmadan milyonlarca kullanıcıya ekstra emek harcamadan

    scale edebilirsiniz. Örnek: Snapchat + App Engine
  21. Sadece compute platformları mı serverless?

  22. Serverless veritabanları Cloud SQL Cloud Firestore Cloud Spanner Cloud PubSub

    Cloud Memcached Cloud Bigtable
  23. Serverless karakteristikleri 1. Altyapı yönetimi ve ops yok 2. Kullandığın

    kadar öde 3. Talep miktarına göre otomatik ölçekleme Halk arasında serverless karakteristikleri 1. Functions as a service/Lambda 2. Node.js (ya da sadece bazı diller)
  24. Cloud Run Her dilde serverless uygulamalar 1. Uygulamayı container olarak

    paketle 2. Google'ın altyapısında sınırsız ölçekle 3. Kullandığın kadar öde (request başına, her 100 ms) Birkaç saniyede: container image → fully autoscaling TLS-secured endpoint
  25. Demo 1: Container’lar + Serverless

  26. • Sadece HTTP request’e cevap verirken ücretli ◦ 100 milisaniyelik

    dilimlerde ödemeli ◦ container arkada boş dururken ücretsiz • Free tier, her ay: ◦ ilk 2 milyon request, ilk 50 CPU core-saati, ilk 100 GB RAM-saati • Düşük trafikli uygulamalar neredeyse ücretsiz çalışıyor. Cloud Run ne kadar ucuz?
  27. Demo 2: Herhangi bir dil/binary serverless olabilir mi?

  28. None
  29. Cloud Run Container Contract 1. Linux x86_64 binary’ler. 2. $PORT

    numarası üzerinde dinle. 3. Request’lere cevap ver, background’da işlem yapma.
  30. Serverless geliştirici deneyimi • Makine yönetimi yok • Güvenlik yönetimi

    yok • Network ayarları yok • İstediğiniz dil, framework ya da binary/DLL • Talebe göre otomatik ve hızlı scale eden uygulamalar
  31. • Bankalar ve finans • Sağlık kurumları • Devlet kurumları

    • Savunma endüstrisi • ... Peki ya bu deneyime kendi datacenter'ınızda sahip olsaydınız? Herkes cloud ve serverless kullanabilir mi?
  32. 1. Açık kaynaklı Cloud Run implementasyonu Çözüm 2. Cloud ⇔

    On-Premises Arasındaki taşınmayı kolaylaştır 3. Aynı deneyimi Google Cloud dışında (on-prem, Azure, AWS) sağla.
  33. Çözüm Knative Kubernetes GKE On-Prem Cloud Run for Anthos 1.

    Açık kaynaklı Cloud Run implementasyonu 2. Cloud ⇔ On-Premises Arasındaki taşınmayı kolaylaştır 3. Aynı deneyimi Google Cloud dışında (on-prem, Azure, AWS) sağla.
  34. • Serverless deneyimi, istediğiniz yerde Google Cloud, on-prem, AWS, Azure…

    • Aynı geliştirici/operator araçları • Aynı uygulama geliştirme paradigması (container'lar: istediğiniz dil, framework, binary…) Cloud Run for Anthos
  35. Google'ın modern uygulama altyapısı, istediğiniz yerde. Google Cloud Other Clouds

    On-prem Edge
  36. Cluster'lar arası config'leri yönetmek: Anthos Con g Management Uygulama geliştirme:

    Cloud Run for Anthos Servisler ve cluster'lar arası trafiği yönetmek: Anthos Service Mesh Cluster yönetimi: Anthos GKE Monitoring ve operasyonel araçlar Stackdriver Anthos'un içinde ne var
  37. Demo 3: Cloud Run for Anthos ile Kubernetes'te serverless uygulamalar

  38. Özetle... • Her şeyi kendiniz yapmaya çalışmayın. Serverless çoğu probleminizi

    çözebilir. • Serverless sadece bir compute türü değil. Bir çok alanda serverless çözümler var. • Cloud Run ile herhangi bir dilde uygulamayı altyapıyla uğraşmadan çalıştırabilirsiniz. • Anthos, özel ihtiyaçları olan ve altyapılarını modernize etmek isteyenler için bir çözüm.
  39. Teşekkürler! • Soru/cevap • Dokümantasyon: https://cloud.run https://knative.dev https://knative.tips • Sıkça

    sorulan sorular: github.com/ahmetb/cloud-run-faq Bana ulaşın: twitter.com/ahmetb github.com/ahmetb youtube.com/ahmetb