33 puan yazan GN⁺ 2025-06-18 | 1 yorum | WhatsApp'ta paylaş
  • Tek geliştiricilerin bile Kubernetes'i kolayca kullanabilmesi için oluşturulmuş açık kaynak platform olup, mevcut Heroku'ya benzer bir kullanım kolaylığı sunuyor
    • Docker ve Docker Compose ortamında çalışıyor; basit komutlarla kurulup çalıştırılabiliyor
  • Mevcut bir startup'ta yaşanan beklenmedik BT maliyeti artışı sorununu çözmek amacıyla geliştirildi
  • Karmaşık özellikler yerine Ingress, Services, Deployments, Pods, CronJobs gibi yalnızca çekirdek öğeleri görünür kılarak sadeliği hedefliyor
  • Helm üzerinden neredeyse tüm açık kaynak uygulamalar dağıtılabiliyor ve YAML yapılandırmaları indirilebildiği için Canine'den çıkmak da mümkün
  • Hesap, dağıtım, gösterge paneli gibi Kubernetes'te varsayılan olarak bulunmayan özellikleri de tamamlayarak küçük ekipler için uygun bir geliştirme platformu olmayı hedefliyor

Genel Bakış

  • Canine, açık kaynak bir Kubernetes dağıtım platformudur ve uygulamaları Heroku'daki gibi kolayca dağıtabilmek için tasarlanmıştır
  • Kendi Kubernetes kümesi üzerinde çalışır; gerektiğinde YAML yapılandırmaları indirilerek merkezi olmayan işletim de mümkündür
  • Ingress, Services, Deployments, Pods, CronJobs gibi yalnızca temel kaynakları görünür kılarak sade ve sezgisel bir kullanım sunar

Sorun Tanımı: Karmaşık yapı ve hızla artan maliyetler

  • Önceki startup işletme deneyiminde BT maliyetleri beklenenden çok daha hızlı arttı
  • Maliyetler çoğunlukla organizasyonel karmaşıklık ve entegre servislerin artışıyla yükseldi; sunucu ya da hesaplama kullanımından bağımsız olduğu durumlar da sık görüldü
  • Aşağıdaki gibi üçüncü taraf araçların birikmesi BT maliyetlerini hızla artırdı:
    • Looker, Redshift, Databricks, DBT Cloud, FiveTran gibi veri araçları
    • Datadog, New Relic, Sentry gibi izleme araçları
    • Google Maps API, AWS gibi altyapı araçları
  • Bazıları açık kaynakla değiştirilebilirdi; ancak izleme, sağlık kontrolü, bildirim gibi operasyonel altyapıyı kurma yükü nedeniyle benimsenmeleri ertelendi

Kubernetes'in potansiyeli ve sınırları

  • Kubernetes, tek düğümden binlerce kümeye kadar ölçeklenebilen bir platformdur ve neredeyse tüm bulutlarda standart olarak sunulur
  • Ancak yeni başlayanlar ve küçük ekipler için karmaşık ve kolayca bozulabilecek bir sistem olarak algılanır
  • Özellikle CoreDNS'in silinmesi gibi bir hatayla tüm küme çalışamaz hale gelebilir
  • Maliyet ve operasyonel karmaşıklık biriktiğinde, mevcut soyutlanmış PaaS çözümleri tersine engel haline gelebilir

Canine'in özellikleri

  • Kubernetes'in yalnızca asgari gerekli işlevlerini görünür kılarak sadelik ve denetlenebilirlik sağlar
  • Eksik kalan noktaları şu özelliklerle tamamlar:
    • Hesap yönetimi
    • Dağıtım yönetimi
    • Basit one-off betik çalıştırma
    • Metrik gösterge paneli
  • Sezgisel bir dağıtım platformu sayesinde yeni başlayanlar da Kubernetes ortamına kolayca uygulama dağıtabilir
  • Yalnızca Docker ve Docker Compose hazırsa, tek bir komutla kurulup çalıştırılabilir
  • Kubernetes'in karmaşık yapılandırma ve bakım yükünü azaltan UI tabanlı bir yönetim ortamı sunar
  • Helm entegrasyonu sayesinde Sentry gibi açık kaynak uygulamalar da kolayca dağıtılabilir

Geçiş ve esneklik

  • Canine, mevcut Kubernetes'in üzerine eklenerek kullanıldığı için ayrılması da kolaydır
  • Tüm yapılandırmalar YAML olarak indirilebilir ve daha sonra başka bir platforma geçiş de rahattır

Önemi ve fark yaratan yönleri

  • Genel Kubernetes araçlarına kıyasla başlangıç dostu bir UI ve kolay bir kurulum süreci sunar
  • Heroku benzeri kullanım deneyimini Kubernetes ekosistemine taşıyarak giriş bariyerini büyük ölçüde düşürür
  • Açık kaynak temeli sayesinde esnek genişletilebilirlik ve topluluk odaklı geliştirme mümkündür
  • Küçük geliştirme ekipleri veya startup'ların da Kubernetes'in avantajlarından kolayca yararlanabilmesi açısından büyük etki beklenir
  • Apache 2.0 License ile serbestçe kullanılabilir, dağıtılabilir ve değiştirilebilir

1 yorum

 
GN⁺ 2025-06-18
Hacker News görüşleri
  • Kendi sunucumda “Heroku benzeri bir deneyim” kurmak için hep daha iyi çözümler arayan biriyim, o yüzden bunu görmek gerçekten sevindirici.
    Canine’ın Kubernetes dokümantasyonu çok erişilebilir görünüyor; şimdiye kadar gördüklerimin en kullanıcı dostu olanlarından biri gibi.
    Dokümanları okurken şunu merak ettim: Canine, Digital Ocean gibi yerlerdeki managed K8s ortamlarında da kullanılabiliyor mu diye umutlanmıştım, ama okuduklarımdan doğrudan bir K8s kümesini sizin yönetmeniz gerektiği izlenimini aldım.
    Birkaç sorum var:

    1. Hetzner’da bir “Cluster” oluşturduğunuzda, bu gerçekten birden fazla makineye yayılan gerçek bir K8s kümesi mi, yoksa tek bir makinenin sanal olarak bölünmüş hali mi?
    2. Kurulum script’ini başka sunucularda çalıştırırsam, bunlar kümeye katılıp pod’ları dağıtık şekilde barındıran gerçek bir dağıtık sunucu yapısı mı oluşturuyor?
    3. Mevcut bir managed K8s’e Canine bağlayıp dağıtım yapabiliyor muyum?
    • Şu anda Canine’ın desteklediği iki kurulum var:
      1. Tek bir Hetzner VPS üzerinde çalıştırmak
      2. Önceden kurulmuş bir Kubernetes kümesinde kullanmak
        Genel olarak 1. seçenek staging/geliştirme uygulamaları, 2. seçenek ise production uygulamaları için kullanılıyor.
      3. seçenekte Digital Ocean vb. üzerinde node sayısını siz yönetiyorsunuz; Kubernetes de iş yüklerini otomatik yeniden zamanlıyor ve autoscaling özelliklerini kullanabiliyorsunuz.
        Sanırım sorunuzun özü şu: Canine’ın Hetzner üzerinde doğrudan çok düğümlü bir küme oluşturma desteği şu an yok.
        Hetzner’ın terraform araçlarıyla bir K8s kümesi kurmak mümkün ama bu henüz Canine’a gömülü değil.
        Arayüzü iyileştirdikten sonra bununla ilgilenmek istiyorum.
        Şimdilik ya tek VPS üzerinde K3s kurulum rehberiyle yardımcı oluyoruz ya da zaten hazır bir kümeniz olduğu varsayımıyla çalışıyoruz.
        İlgili bağlantı: terraform-hcloud-kube-hetzner
  • Böyle projelere gerçekten ihtiyaç olduğunu düşünen biri olarak bunu destekliyorum.
    Bugün seçim yapacak olsam muhtemelen Canine ile Dokploy arasında düşünürdüm (Docker Swarm’ın da küçümsenen bir teknoloji olduğunu düşünüyorum).
    Bir geri bildirim: “Neden Canine kullanmamalısınız” bölümü dürüst ve taze hissettirecek diye düşündüm ama biraz alaycı bir ton taşıdığı için rahatsız ediciydi.
    Bence sadece açıkça şunları yazsa daha iyi olurdu: sunucu satın alıp yönetmeniz gerekiyor, bir şey çökerse sorumluluk sizde, ayrıca bu erken aşamadaki tek geliştiricili bir ürün. Bunlar zaten yeterince gerçekçi dezavantajlar.

    • Docker Swarm’ın şu anda bakım ve destek durumu nasıl, merak ediyorum.
      Birkaç yıl önce mevcut Docker ekibi geliştirmeyi bırakmış gibi göründüğü için takip etmeyi bırakmıştım.

    • Bunu diğer landing page’lerden ayrışsın diye öyle yazmıştım ama gerçek kullanıcı geri bildirimi için çok teşekkür ederim.
      Yeniden deneyeceğim.

  • Dünyadaki farklı PaaS platformlarını toplayıp yöneten bir liste paylaşıyorum:
    awesome-paas

  • OP’ye bir soru:
    Böyle bir projeyi yapmaya sizi iten şey neydi, merak ediyorum.
    Ben de karmaşık bir şeyi baştan sona inşa etme isteğine sahibim ama şimdiye kadar sadece API ve React entegrasyonu gibi şeylerle uğraştım.
    Karmaşık bir fikri gerçekçi yapılacak işlere bölüp bunu açık kaynak bir “Heroku alternatifi”ne dönüştürme sürecinizi merak ediyorum.
    Benim Heroku deneyimim neredeyse yok, bu yüzden “hangi özellikleri uygulamalıyım” diye bakarken herhalde fiyat sayfası gibi yerlere bakardım; ama bunun verimsiz olup olmayacağından emin değilim.

  • Kubernetes tabanlı bir Heroku alternatifi fikri ilginç.
    Ama bunu kullanmak için K8s ya da Helm chart gibi şeyleri bilmem gerekiyorsa, benim için aslında Heroku alternatifi sayılmaz.
    Elbette operatör bakış açısından bunun echo hello kadar basit görünebileceğini anlıyorum.
    Ama ben bir şeyi mümkün olduğunca hızlı yayına almak istediğimde, “Kubernetes” ya da “Helm chart” kelimelerini düşünmek bile istemiyorum.

    • Zaten Canine’ın amacı tam olarak buydu.
      Kullanıcının Kubernetes’in varlığını bile bilmesi gerekmiyor; sadece onun olgun ekosisteminden faydalanabiliyor.
      Ne zaman daha güçlü özelliklere ihtiyaç duyarsanız, Kubernetes API gibi daha ileri araçları doğrudan açıp kullanmanız da mümkün.
  • Küçük bir düzeltme:
    Kubernetes, docker container değil, Open Container Initiative (OCI) standardına uygun container’ları çalıştırır.
    Docker bir ticari markadır.

    • Bir başka küçük düzeltme daha:
      Canine Kubernetes Crash Course içinde “10 bin sunucuyu destekler” deniyor ama
      resmi olarak Kubernetes’in en fazla 5 bin node desteklediği belirtiliyor.
      kubernetes resmi belgelerine bakın
      Elbette çok daha büyük kümeler mümkün, ama o noktada ciddi özelleştirme gerekiyor (örneğin API registry’nin tamamen değiştirilmesi gibi).
      İş yükü de elbette etkili.
      Kubernetes kutudan çıktığı haliyle devasa kümeleri destekleme konusunda hâlâ tam noktada değil ama her sürümde gelişiyor.

    • “docker gerekli” denince hoşlanmıyorum.
      Bugünlerde daha çok docker yerine podman ya da containerd ile çalışıyorum.

  • Bu projeyi yapmak inanılmaz eğlenceliydi; hayatımda en çok keyif aldığım geliştirme işi buydu.
    Tüm “tech stack”i tek elde tutma hissi harika.
    Rails uygulamasından Canine altyapısına, Raspberry Pi sunucusundan kullandığım ISP’ye kadar
    her şeyi kendim yönetip uygulama dağıtmak çok tatmin edici bir deneyim oldu.

  • Web sitesinde lisans bilgisi 2024 MIT License olarak görünüyor
    ama GitHub’da Apache license yazıyor.
    Yılın doğru olup olmamasından ziyade, lisans türü bence daha önemli bir fark.
    Gerçekte hangisi geçerli, merak ediyorum.

  • Self-hosting tarafında docker ile K8s arasında bir orta katman istediğim için ben de benzer şeyleri araştırmıştım.
    Nomad’ı da değerlendirdim ama yine de dead simple docker’a göre biraz daha karmaşık geldi ve ekosistemi de zayıftı.
    Sonuçta ev sunucusunda sadece docker kullanıyorum; dağıtım sırasında downtime’ı kabul ediyorum.
    Production’da Canine’ın K8s’in ne kadarını soyutladığını merak ediyorum.
    Sonunda içeriye girip bakmak gerekecek mi? K8s’e yeni biri olarak o ara seviyenin gerçekten mümkün olup olmadığını merak ediyorum.

    • Ben de Docker ile Kubernetes arasında duran bir araç geliştiriyorum:
      uncloud
      Hedefi, Docker benzeri bir CLI ve Docker Compose’un çok makineli/production yeteneklerini sunarken operasyonel bir control plane olmadan sadeliği korumak.
      Hâlâ geliştirme aşamasında ama her katmanda neler olup bittiğinin kolay anlaşılması ve troubleshooting’in kolay olması ana hedeflerden biri.
  • Konsepti gerçekten çok beğendim.
    K8s harika bir teknoloji ama karmaşıklığı büyük bir giriş bariyeri.
    Açık paylaşımlara bakınca işin özünü iyi kavradığınız hissi veriyor.
    Özellikle PVE, Microcloud, Cockpit gibi çözümlerin popüler olduğu self-hosting alanında daha da faydalı olabilir.
    Evde boşta duran bir N100 NUC’um var; Microcloud’dan vazgeçip Canine’ı deneme isteği uyandırdı.

    • Helm bazen can sıkıcı olabiliyor.
      values.yaml içinde sonradan güncellenen ayarlarla ilk kurulumda verilmesi gereken ayarların hangileri olduğu karışabiliyor.
      Bazı Helm kurulumlarında o kadar çok servis oluyor ki hangisini ne zaman yeniden başlatmanın güvenli olduğunu anlamak zorlaşıyor.
      Öte yandan çekirdek Kubernetes, stateless job’lar için gerçekten çok keyifli bir deneyim sunuyor.

    • Bugünlerde K8s’in “karmaşık” olduğu fikrinin tam olarak nereden geldiğini anlamıyorum.
      Eskiden kubespray ile iki saatlik kurulumlar falan vardı, evet.
      Ama artık rke gibi araçlarla tek bir yaml dosyası ve bir SSH anahtarıyla küme oluşturabiliyorsunuz.