17 puan yazan kuber 2023-08-04 | 4 yorum | WhatsApp'ta paylaş

[Tanıtım]
Kuberian = Kubernetes + Librarian
"Kubernetes kütüphanecisi" hissiyle geliştirdiğim bir oyuncak proje.

[Kullanım amacı]
Kubernetes deposunda bulunan 40 binden fazla fonksiyon arasından
istediğim işi yapan fonksiyonu hızlıca bulmayı hedefliyor.

[Kullanım şekli]
İngilizce olarak that ile başlamaya uygun bir cümle yazarsanız en benzer fonksiyonu buluyor.

[Arama örnekleri]

  • makes scaling decision link
    • Otomatik ölçeklendirme kararının hangi ölçütlere göre verildiğini anlamak için kullandığım sorgu
  • checks if the system supports IPVS link
    • Sistemin IPVS destekleyip desteklemediğini bulan fonksiyonu ararken kullandığım sorgu
  • make requests for checking readiness of the container link
    • Readiness Probe isteğini yapan fonksiyonu bulurken kullandığım sorgu

Kabaca that ile başlayan bir cümle girerseniz buna en uygun benzer fonksiyonu buluyor.

[Yapılma nedeni]
Kubernetes belgeleri bazen muğlak yazılabildiği için uygulama koduna bakmak gerekiyor; ama projenin ölçeği büyük olduğundan bunları tek tek elle aramak zahmetli olduğu için yaptım.

[Teknoloji yığını]

  • Llama 2
  • Rust
  • eui (Elasticsearch UI)
  • Knative w/ Google Cloud Run

[Yorum]
Google Cloud Run kullanınca, geçmişte AWS Lambda ile uğraşıp durduğum günler bana aptalca gelmeye başladı. En az değer gören bulut teknolojilerinden biri gibi geliyor; üstelik fiyatı da şaşırtıcı derecede ucuz, bir kez deneyin!

4 yorum

 
roxie 2023-08-06

Harika bir proje! Bunu yalnızca GeekNews'te değil, başka yerlerde de tanıtmayı düşünmez misiniz?

Ayrıca ben de CloudRun hakkındaki düşüncelerinizi daha fazla duymak isterim

 
kuber 2023-08-07

CloudRun hakkındaki görüşlerimi aşağıdaki yoruma bıraktım. :-)

Hacker News’ta, kullanıcı kalıplarına kısa bir göz atma amacıyla önceden paylaştım hehe
(Google Analytics kullanıyorum.)

Acaba önerebileceğiniz başka topluluklar var mı? Benim aklıma çok fazla yer gelmiyor

 
jwseo 2023-08-06

Vay, ne kadar ilginç bir proje!
Google Cloud Run’ın AWS Lambda’ya kıyasla hangi yönleri sizi daha çok memnun etti? Ben de sadece Lambda kullandım, o yüzden merak ediyorum.

 
kuber 2023-08-07

Bunu daha sonra blog yazısı gibi bir formatta ayrıntılı olarak açıklamayı planlıyorum ama şimdilik HTTP API ortamıyla sınırlı kalarak birkaç noktayı kısaca seçersek

HTTP
Lambda: API Gateway'in RPC çağrısını alıp isteği işleyen mantığı ayrıca uygulamak gerekir
Cloud Run: Genel HTTP iletişimi / HTTP tabanlı kütüphane ya da framework'leri olduğu gibi kullanmak mümkün

Concurrency
Lambda: Bir instance her seferinde yalnızca tek bir isteği işler (aynı anda 100 istek gelirse 100 instance çalıştırmak gerekir)
Cloud Run: Bir instance, kullanıcının belirlediği üst sınıra kadar aynı anda işlem yapabilir
Ek açıklama: Cloud Run, Lambda'ya kıyasla saatlik bazda yaklaşık 1,5 kat daha pahalı olsa da, bir instance 100 concurrency'ye izin veriyorsa 1,5/100 seviyesinde daha ucuza gelir

Cold / Warm / Hot
Lambda: Cold ve Hot dışında, CPU kaynağı verilmeyen bir Warm durumu da var. Bu yüzden APM bilgileri gibi verileri göndermek çok zorlaşıyor (APM bilgisi göndereceğim diye yanıt süresinin uzaması genelde zarardır...) DB Connection gibi şeyler de Warm durumunda kopabiliyor ya da kaynaklar düzgün serbest bırakılmadığı için DB Connection Pool'un tamamen tükenmesine yol açabiliyor
Cloud Run: Yalnızca Cold ve Hot var. Buna rağmen, AWS tarafında düşünürseniz yalnızca API Gateway'in yanıt süresi kadar ücretlendirilir. Kapanırken de kaynakları düzgün temizlemek için normal bir fırsat verir

Geliştirme ortamı
Lambda: Lokalde geliştirme ortamı kurmak çok zahmetlidir ya da dil ekosistemi / CPU mimarisi kısıtları çok büyüktür
Cloud Run: Genel geliştirme ortamıyla aynıdır

Taşınabilirlik
Lambda: Lambda için yazılmış kod Lambda'ya bağımlı hale geldiği için başka platformlara taşımak zordur
Cloud Run: Kod değişikliği olmadan Kubernetes ortamına taşınabilir

Bunların dışında da çok şey var ama genelde insanların katılacağı birkaç noktayı seçtim hehe