Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

Scaling Without Bankruptcy

Scaling Without Bankruptcy

GDG DevFest İzmir 2025 için yapmış olduğum sunum

Avatar for Eser Ozvataf

Eser Ozvataf

December 13, 2025
Tweet

More Decks by Eser Ozvataf

Other Decks in Technology

Transcript

  1. Scaling Without Bankruptcy: Leveraging LLM Batch Services with Golang’s Parallelism

    Eser Özvataf Fellow @ T-Fashion youtube.com/@eserozvataf GDG DevFest İzmir 13/12/2025
  2. Bugün Aktaracaklarım 01 Kişisel Geçmişim 02 Hikaye / Vaka Analizi

    03 Neye Alternatif Arıyoruz? 04 Vertex AI Batch P. 05 Golang’in Resme Girişi 06 B.F.O. Projesi 07 Kapanış / Sorular youtube.com/@eserozvataf
  3. Çalışmalarımı incelemek için https://eser.dev’i ziyaret edebilirsiniz. > 30 Yıl Kod

    > 50 Konferans Sunum > 70 YouTube Video > 200 Açık GitHub Repo youtube.com/@eserozvataf 01 Kişisel Geçmişim
  4. Veritabanı (Nesneler) Uygulama Model Servisi (OpenAI/Google/Anthropic) Sonucu kaydet Model Yanıtı

    Her nesne için tekrarla (Döngü) Model Çağrı Akışı 03 Neye Alternatif Arıyoruz?
  5. Rate Limiting (RPM ayarlamak, yönetmek zorundayız) 01 Retry logic yönetmek

    gerekiyor 02 Farklı modellerin farklı tierlarla farklı limitleri olabiliyor 03 İşleri hızlandırmak istediğimizde paralel request atarken connection pool yönetmeliyiz 04 Belli throughput altında müşteriler mutsuz oluyor, fazla kaynakta da throttle sorunun var 05 Dead letter queuelar 06 Altyapıda paralelde yürüyen başka önemli işler spike’lara neden olabiliyor 07 Latency’ler tutarsız. Aynı request bazen 500ms, bazen 5 saniye sürebiliyor 08 Peak saatlerde response time artışı 09 Operasyon maliyeti (sistemin ayakta tutulması) + Hizmet kullanım maliyeti 10 03 Neye Alternatif Arıyoruz? Model Çağrı Akışı - Problemler?
  6. Tier RPM TPM RPD DARBOĞAZ TAHMİNİ SÜRE FREE 10 250K

    250 RPD (250/GÜN) ~ 5 gün TIER 1 1,000 1M 10K TPM ~ 11 dakika TIER 2 2,000 3M 100K TPM ~ 3.5 dakika TIER 3 10,000 8M ∞ TPM ~ 1.5 dakika 03 Neye Alternatif Arıyoruz? Tier Bazında Model Çağrı Akışı - Limitler (gemini-2.5-flash)
  7. 04 Vertex AI Batch P. Model Çağrı Akış”lar”ı Batch Predictions

    (Asenkron Model Çağrısı) Uygulama Model Servisi (OpenAI/Google/Anthropic) Model Yanıtı Online Predictions (Senkron Model Çağrısı) Hepimizin en alışık olduğu akış. Anlık yanıt ihtiyacımızın olduğu durumlarda direkt web servis çağrısı gibi kullandığımız yaklaşım Anlık yanıt gerektirmeyen analiz benzeri toplu veri işleme senaryolarında kullanılabilecek akış. Tablolar halinde asenkron bir çağrı yaklaşımı. Ama bir dizi dezavantaj da mevcut...
  8. 04 Vertex AI Batch P. Batch Predictions Tablo (CloudSQL) Vertex

    AI (us-central1) Vertex AI (us-east4) Vertex AI (europe-north1) 10K/10K 10K/10K 10K/10K
  9. 04 Vertex AI Batch P. Batch Predictions - API Üzerinden

    Uygulama Vertex AI (us-central1) Vertex AI (us-east4) Vertex AI (europe-north1) x1000 9K/10K 10K/10K 10K/10K
  10. 04 Vertex AI Batch P. Maliyet Optimizasyonu Online predictions'a kıyasla

    ~%50 daha düşük birim maliyet. Yüksek hacimli işlemlerde bu fark ciddi bütçe tasarrufu sağlıyor. Rate Limit Sorunu Yok (Dynamic Shared Quota) Online API'lerde RPM/TPM limitlerine takılmak yerine, yüz binlerce kaydı tek job olarak submit edebiliyoruz. Implementasyon Basitliği Retry mekanizması, error handling ve job scheduling Google tarafından yönetiliyor. Kendi queue sistemimizi yazmamıza gerek kalmadı. Kaynak Verimliliği Kendi sunucularımızda connection pool, concurrent request yönetimi gibi karmaşıklıklarla uğraşmıyoruz. Ölçeklenebilirlik Veri hacmi arttıkça infrastructure tarafında değişiklik yapmadan aynı pipeline'ı kullanmaya devam edebiliyoruz. BigQuery Entegrasyonu Input/output doğrudan BigQuery tablolarından okunup yazılabiliyor. ETL süreçleriyle doğal bir uyum sağlayabiliyor. Batch Predictions
  11. Tek bir moda haftası için ortalama 60 bin çağrı. Her

    analiz parametresi değiştiğinde (ki müşteri geri dönüşleriyle 3 - 4 faz olabiliyor) tekrar edilmesiyle ortalama 200 bin çağrı. Sosyal medyayı da dahil ettiğimizde… Son 30 günde 2.5 milyon çağrı. Input+Output 10 milyardan fazla token kullanımı. Hacim Son kullanıcılara sunduğumuz bir hizmet var ve B2B modelimizde sözleşmelerle garanti altına alınıyor. Moda etkinliklerinin, sosyal medyada olan bitenin analizlerle platforma eklenmesi için müşterilerimize bir taahhüt veriyoruz. Bu taahhüt süreleri yaklaşınca batch’den online’a geri dönmemiz gerekebilir! SLA (Fallback) Startup denkleminde ~%50’e yakın maliyet avantajı olmazsa olmaz. Ancak “Batch” yapısının kendine has bir denklemi var. Buna adapte olabilecek ve yığın işlem de olsa elimizdeki veriyi son kullanıcıları en az bekleterek modellere işletebilecek bir çözüm gerekiyor. Çözüm 05 Golang’in Resme Girişi Netleşen Resim
  12. 06 B.F.O. Projesi Golang Özelinde Kazanımlarımız Gözlemleme (observability) imkanları native

    seviyede (prometheus, jaeger, grafana v.s.) 01 Taşınabilirlik (portability), kolay dockerize edilmesi, az bağımlılığa sahip olması 02 Daha direkt (overhead’in az), daha az katmanlı bir yapı nedeniyle az kaynak kullanımı 03 Goroutineler ile işleri paralelleştirirken ayrı yönetebilmek 04 Hexagonal architecture gibi genişleyebilir mimariler kullanabilmek, daha kompakt codebase 05 Yapılan işe uygun “olgun” kütüphane zenginliği (cloud, redis, http v.s.) 06
  13. 06 B.F.O. Projesi Demo go run ./cmd/cli system reset --confirm

    go run ./cmd/cli bucket new test go run ./cmd/cli task load --model bfo-echo --count 2050 --bucket-id test