En büyük ilan sitesinin mutfağı: Avito Tech nasıl çalışır?

Kerem Aydın·7 Temmuz 2026·⏱7 dk

Avito Tech, Avito şirketinin tüm dijital ürünlerin geliştiricisi ve yetkinlik merkezi olarak görev yapan dahili teknoloji birimidir. Aylık 100 milyondan fazla kullanıcı için hizmetin çalışmasını sağlayan binlerce mühendis, analist ve veri uzmanını bir araya getirir. Birimin ana görevi; arızaya dayanıklı bir mikroservis mimarisi oluşturmak, içerik moderasyonu için makine öğrenimini entegre etmek ve yeni özelliklerin hızlı geliştirilmesini desteklemektir.

Klasik dış kaynak kullanım ekiplerinden farklı olarak, Avito Tech pazar yerinin iş süreçlerine derinlemesine entegre olmuş durumdadır ve "Gayrimenkul", "Otomobil", "İş" ve "Ürünler" dikeylerinden sorumludur. Buradaki mühendisler sadece kod yazmazlar; aşırı yük altında ölçeklendirme sorunlarını çözer, kendi sıralama algoritmalarını geliştirir ve gerçek zamanlı dolandırıcılığı önleyen güvenlik sistemleri inşa ederler.

Temel Bilgi: Platform, büyük küresel pazar yerleriyle karşılaştırılabilir zirve yüklerini işlerken, ilan moderasyon süreçlerinin %99'u kendi ML modelleri sayesinde tamamen otomatikleştirilmiştir.

Organizasyonel yapı ve çalışma prensipleri

Avito Tech'teki çalışma organizasyonunun temelinde çapraz fonksiyonel ekipler ilkesi yatmaktadır. Frontend veya backend departmanlarına katı bir şekilde ayrılma yerine, uzmanlar belirli ürün hipotezleri veya servisler etrafında birleşir (örneğin, "Arama" ekibi, "Sohbetler" ekibi, "Ödeme" ekibi). Bu yaklaşım, özelliklerin pazara sunulma süresini (Time-to-Market) kısaltmayı ve monolitik yapılarda görülen bürokratik gecikmeleri önlemeyi sağlar.

Her ekip, genel teknoloji kılavuzu çerçevesinde araç seçiminde tam özerkliğe sahiptir. Genellikle "You build it, you run it" (Sen yaparsın, sen işletirsin) olarak adlandırılan bu yaklaşım, geliştiricilerin üretim ortamındaki kodlarının stabilitesinden sorumlu olduğu, nöbetlere katıldığı ve olay analizlerinde yer aldığı anlamına gelir. Bu durum, yüksek bir sorumluluk kültürü ve kod kalitesi oluşturur.

Birimin faaliyet alanlarının başlıca yönleri şunlardır:

  • Platform çekirdeğinin geliştirilmesi: Temel işlevselliği (kayıt, ilan yayınlama, kişisel mesajlar) sağlayan mikroservislerin oluşturulması ve desteklenmesi.
  • Veri Bilimi ve ML: Akıllı sonuç listeleme, kişiselleştirilmiş öneriler ve şüpheli aktivite tespiti için modellerin oluşturulması.
  • Altyapı ve DevOps: Binlerce sunucunun kesintisiz çalışmasının sağlanması, yük dengeleyicilerin ve izleme sistemlerinin yapılandırılması.
  • Mobil geliştirme: Kullanıcıların platformla etkileşim kurduğu ana kanal olan iOS ve Android için yerel uygulamaların oluşturulması.

Teknoloji yığını: Platform neyle çalışıyor?

Avito Tech'in teknoloji yığını tarihsel olarak şekillenmiş ve yük artışıyla birlikte evrim geçirmiştir. Şirket, yatay olarak ölçeklenebilen kanıtlanmış ve performanslı çözümlere odaklanmaktadır. Araç seçimi belirli görevlere göre belirlenir: geliştirme hızının gerekli olduğu yerlerde betik dilleri, performansın kritik olduğu yerlerde derlenen diller kullanılır.

Backend ve sunucu mantığı

Sunucu tarafının temeli iki ana programlama dilinden oluşur: Python ve Go (Golang).

  • Python, iş mantığı, hızlı prototip geliştirme, üçüncü taraf hizmetlerle entegrasyon ve elbette makine öğrenimi ile veri analizi alanlarında baskındır. Zengin kütüphane ekosistemi, Veri Bilimi ekipleri için onu vazgeçilmez kılar.
  • Go, düşük gecikme süresi (low latency) ve kaynakların verimli kullanımının önemli olduğu yüksek yüklü mikroservislerin oluşturulmasında aktif olarak kullanılır. Mesaj işleme sisteminin birçok kritik bileşeni, ağ geçitleri ve gerçek zamanlı servisler Go ile yazılmıştır.
  • Bazı durumlarda, özellikle miras kalan sistemlerde veya özel altyapı görevlerinde Java veya Kotlin ile karşılaşılabilir, ancak gelişim yönü açıkça Python + Go kombinasyonuna kaymıştır.

Geliştiriciler için tavsiye: Benzer yüksek yüklü projelerde kariyer planlıyorsanız, Go'da çoklu iş parçacığı (multithreading) ve Python'da asenkron programlama konularındaki derin anlayışınız mülakattaki en büyük avantajınız olacaktır.

Frontend ve mobil uygulamalar

Avito'nun web arayüzü, modern çerçeveler kullanılarak oluşturulmuş karmaşık bir tek sayfalık uygulamadır (SPA). Ana araç, hızlı yanıt veren dinamik arayüzler oluşturmayı sağlayan React'tir. Uygulama durumunu yönetmek ve sunucu taraflı render (SSR) için, sayfaların iyi SEO optimizasyonu sağlamasını ilgili ekosistem çözümleri kullanılır.

Mobil geliştirmede şirket yerel geliştirme stratejisini benimser:

  • iOS: Swift.
  • Android: Kotlin.

Bu seçim, milyonlarca kurulumu olan uygulamalarda kullanıcı deneyimi için kritik olan kamera, konum belirleme ve karmaşık animasyonlarla çalışırken işletim sistemi özelliklerinden maksimum düzeyde yararlanma gerekliliğinden kaynaklanır. Çapraz platform çözümleri yalnızca ekonomik olarak gerekçelendirildiği ve performanstan ödün verilmediği noktalarda kullanılır.

Veri depolama ve arama

Bu ölçekte veri yönetimi, farklı türde VTYS'lerin kombinasyonunu gerektirir.

Veri TürüTeknolojiAmaç
İlişkisel verilerPostgreSQLKullanıcı profillerinin, işlemlerin, ilanların yapılandırılmış parametrelerinin saklanması. Ana iş yükünü taşıyan sistem.
Belge yönelimliMongoDBEsnek yapıların, logların, ilan taslaklarının ve katı şema gerektirmeyen verilerin saklanması.
ÖnbelleklemeRedisOturum verileri, ağır sorgu sonuçlarının geçici saklanması, görev kuyrukları, sayaçlar.
Arama motoruSphinx / Elasticsearchİlanlarda tam metin arama. Motorun özel geliştirmeleri, yüzlerce sıralama faktörünün dikkate alınmasını sağlar.

Aramaya özel önem verilir. Standart çözümler, coğrafi yakınlık, metin alaka düzeyi, kullanıcı davranışı ve ilan tazeğini dikkate almak için şirket mühendisleri tarafından geliştirilir. Arama, milyonlarca kişinin aynı anda çalıştığı durumlarda bile milisaniyeler içinde sonuç vermelidir.

Altyapı ve akış işleme

Binlerce mikroservisin orkestrasyonu için Kubernetes kullanılır. Docker aracılığıyla konteynerleştirme, uygulamaları tüm bağımlılıklarıyla birlikte paketlemeyi ve şirketin herhangi bir veri merkezine dağıtmayı sağlayan fiili standart haline gelmiştir.

Gerçek zamanlı olay işleme (görüntülemeler, tıklamalar, mesaj gönderme), Apache Kafka gibi mesaj broker'ları üzerine kuruludur. Bu, Lambda mimarisine yakın bir mimariyi uygulamaya olanak tanır: veriler paralel olarak uzun vadeli analiz için depolamaya (Batch) gider ve istatistiklerin anında güncellenmesi ile güvenlik tetikleyicileri için gerçek zamanlı olarak (Speed layer) işlenir.

İzleme, Prometheus + Grafana yığını ve servislerin sağlığını, iş mantığı metriklerini ve hata seviyelerini (SLA/SLO) gösteren dahili panolar aracılığıyla gerçekleştirilir.

Mimari zorluklar ve çözümler

Avito'nun ölçeği, mimari üzerinde benzersiz gereksinimler yaratır. Sadece sunucu sayısını artırmak tüm sorunları çözmez; bileşenlerin etkileşiminin doğru organize edilmesi gerekir.

Mikroservis mimarisi, arızaları izole etmeye olanak tanır. "Favoriler" servisi çökerse, kullanıcılar hala akışı görüntüleyebilir ve satıcılara yazabilir. Servisler arasındaki iletişim çoğunlukla hafif protokoller olan gRPC (yüksek performanslı dahili etkileşim için) ve REST API (harici istemciler için) üzerinden gerçekleşir.

Otomatik moderasyon, en karmaşık teknik zorluklardan biridir. Her gün platforma milyonlarca yeni ilan ve fotoğraf yüklenir. Bunları manuel olarak kontrol etmek imkansızdır. Bilgisayarlı görü sistemi, yasaklı içerik, kopyalar ve kategori uyumsuzlukları için görselleri analiz ederken, NLP modelleri metni spam ve dolandırıcılık şemalarına karşı kontrol eder. Manuel moderasyona yalnızca tartışmalı durumlarda ihtiyaç duyulur ve bu oran minimuma indirilmiştir.

Arızaya dayanıklılık, veri merkezlerinin coğrafi olarak dağıtılması ve trafiğin otomatik yönlendirilmesi mekanizmaları (failover) sayesinde sağlanır. Düzenli olarak eğitim tatbikatları (Chaos Engineering) yapılır; mühendisler sistemin gerçek kazalara hazırlığını test etmek için altyapının bölümlerini kasıtlı olarak kapatır.

Benzer sistemlerin tasarımında yapılan yaygın hatalar

Avito Tech seviyesinde bir mimariyi yeniden üretmeye çalışırken, yeni başlayan mimarlar genellikle bir dizi tipik hata yapar:

  • Erken optimizasyon: Monolit veya basit bir veritabanının yeterli olduğu yerlerde hemen karmaşık dağıtık sistemler uygulamaya çalışmak. Bu, başlangıçta gerçek bir fayda sağlamadan desteği karmaşıklaştırır.
  • Idempotency'i (Tekrarlanabilirliği) göz ardı etmek: Dağıtık sistemlerde ağ arızaları nedeniyle istekler yinelenebilir. Ödeme veya tahsilat servisi bunu dikkate almazsa finansal kayıplar yaşanabilir.
  • Zayıf önbellekleme stratejisi: Hangi verilerin önbelleğe alınabileceği ve hangilerinin her zaman güncel olması gerektiği konusunda net bir anlayış eksikliği, kullanıcılarda eski bilgilere veya veritabanlarında aşırı yüke neden olur.
  • Gözlemlenebilirlik (Observability) eksikliği: Mikroservislerin, uygun günlük kaydı (logging), istek izleme ve metrikler olmadan uygulanması, sistemi arıza nedeninin hızla bulunamadığı bir "kara kutu" haline getirir.

Sıkça Sorulan Sorular (SSS)

Avito Tech'te çalışmak için hangi dili öğrenmek daha iyi? En çok talep gören diller Python ve Go'dur. Python genel mantık backend'i ve makine öğrenimi için, Go ise yüksek performanslı servisler için gereklidir. Her iki dili de bilmek sizi çok yönlü bir aday yapacaktır.

Bulut sağlayıcıları kullanıyorlar mı? Avito Tech, veriler ve performans üzerinde tam kontrol sağlamak için tarihsel olarak kendi altyapısında (On-premise) gelişmiştir, ancak modern uygulamalar hibrit yaklaşımları ve konteynerleştirmeyi aktif olarak benimsemekte olup süreçlerini bulut standartlarına yaklaştırmaktadır.

Test nasıl yapılandırılmış? Şirkette tüm seviyelerde otomatik testlere yönelik bir yaklaşım benimsenmiştir: geliştiriciler tarafından yazılan birim testlerinden, her sürümden önce CI/CD hattında çalıştırılan entegrasyon ve yük testlerine kadar.

Açık kaynak projeleri var mı? Evet, ekip düzenli olarak konferanslara katılır, teknik blog tutar ve dahili araçları ve kütüphaneleriyle ilgili bir dizi Açık Kaynak projesini destekler.