Referanslar · Ürün geliştirme

Veri yoğun SEO plat­formu

Batunet, 2017'den bu yana ticari ve veri yoğun bir SEO platformunun teknik gelişiminden sorumlu. Devralınan ürün canlıda çalışıyordu, ancak işlev kapsamı bugünkünden çok daha dardı. O zamandan beri temel alt sistemler Batunet tarafından yeniden geliştirildi, mevcut alanlar ise sürekli genişletildi.

Genel bakış

Bir dakikada proje.

Rol
2017'den bu yana platformun teknik gelişimi: kavramsal tasarım, mimari, uygulama ve işletim.
Başlangıç durumu
Canlıda çalışan, ticari olarak kullanılan ve işlev kapsamı çok daha dar olan bir ürün.
Ürün biçimi
Ticari SaaS ürünü.
Veri hacmi
Milyarlarca kayıt, terabayt düzeyinde veri hacmi.
Tamamen Batunet tarafından geliştirilen
Teknik web sitesi crawler'ı, raporlama sistemi, yapay zekâ işlev alanı.
İşleme
Worker'lar ve kuyruklar üzerinden dağıtık ve asenkron işleme ile kendi iş (job) yönetimi.
Teknik ortam
PHP, Symfony, MySQL/MariaDB, Redis, RabbitMQ, Elasticsearch/OpenSearch, JavaScript, TypeScript, Docker, Linux/Nginx.
İş bölümü
Platformu işleten şirket iş ihtiyacını ve ürün hedefini belirler. Teknik kavramsal tasarım büyük ölçüde Batunet'te oluşur.
Başlangıç durumu

Sıfırdan başlamak yerine geliş­tir­mek.

Ürünü devraldığımızda çalışıyordu. Canlıdaydı, ticari olarak kullanılıyordu ve işleyen bir çekirdeği vardı; işlev kapsamı ise bugünkünden çok daha dardı. Bu durumda sıfırdan başlayan, oturmuş iş mantığını çöpe atıp ardından yeniden inşa etmek zorunda kalır.

Bu yüzden sıfırdan başlamadık. Her genişletme, sistem çalışırken mevcut sisteme eklendi. Çekirdek korundu; işlev kapsamı 2017'den bu yana sürekli büyüdü: temel alt sistemler yeniden geliştirildi, mevcut alanlar genişletildi.

Kapsam

Burada neler ortaya çıktı?

Üç alt sistem tamamen, bir alt sistem ise neredeyse tamamen Batunet'te geliştirildi. Mevcut alanları devraldık ve önemli ölçüde genişlettik.

Tamamen Batunet tarafından geliştirilen
Teknik web sitesi crawler'ı, Raporlama sistemi, Yapay zekâ işlev alanı
Neredeyse tamamen Batunet tarafından geliştirilen
Dışa aktarma sistemi
Önemli ölçüde genişletilen
Sıralama takibi, Anahtar kelime analizi, Backlink analizi, Rakip analizi, İçerik işlevleri, İzleme (monitoring), Dashboard'lar, Kullanıcı ve yetki sistemi
Veri toplama

Crawler.

Teknik web sitesi crawler'ı tamamen Batunet'te geliştirildi. Web sitelerini alt sayfalarıyla birlikte eksiksiz tarar, teknik kontroller yapar ve sonuçları geçmişiyle birlikte saklar; böylece zaman içindeki değişiklikler görünür kalır. Taramalar otomatik olarak ve düzenli aralıklarla çalışır.

Büyük bir web sitesinde tek bir tarama on binlerce URL'ye ulaşır. Bu, tek bir süreçte yapılamaz. İşleme, görevlerini kuyruklardan alan worker'lara dağıtılmıştır; bunun üzerinde taramaları önceliklendiren kendi iş yönetimi bulunur. Analiz, raporlama ve bunların üzerindeki arayüz de Batunet'te geliştirildi.

Veri yoğun SEO platformu: tarama, veri hacmi, dağıtık işleme ve analizin şematik gösterimi
Mimari

Veri hacmi bir mimari sorusuna dönüş­tü­ğünde.

Milyarlarca kayıt ve terabayt düzeyinde bir veri hacmi bir performans göstergesi değil, bir tasarım koşuludur. Bu büyüklükten itibaren verinin nerede duracağını iş mantığı değil, hangi sorgunun hangi sürede hâlâ yanıtlanabilmesi gerektiği belirler.

Sonuç her yerde aynıdır: İstek döngüsü içinde yapılması gerekmeyen iş, orada yapılmaz. Bu nedenle worker'lar ve kuyruklar üzerinden dağıtık ve asenkron işleme, önbellekleme, bir arama indeksi, kendi iş yönetimi ve büyük dışa aktarmaların asenkron üretimi sonradan eklenen parçalar değil, tasarımın bir parçasıdır.

Analiz

Rapor­lama ve dışa aktarma.

Raporlar ayrı ayrı yapılandırılabilir, düzenli ve otomatik olarak oluşturulur ve birden fazla modül ile veri kaynağından veri birleştirir. Çıktı, büyük veri dışa aktarmaları da dahil olmak üzere XLSX veya CSV olarak alınır.

Bunların hiçbiri istek döngüsü içinde gerçekleşmez: Üretim asenkron çalışır, ardından dosya otomatik olarak sunulur. Raporlama sistemi tamamen, dışa aktarma sistemi ise neredeyse tamamen Batunet'te geliştirildi.

Arayüzler

Harici veri kay­nak­ları.

Platform çok sayıda harici arayüzü ve veri kaynağını entegre eder. Bu da onu, haber vermeden değişen sistemlere bağımlı kılar. Burada arayüz çalışması bir yan ürün değil, ürün geliştirmenin sürekli bir parçasıdır: bağlantı, hata yönetimi, sürüm geçişleri ve sürekli teknik bakım.

Arkasında hangi sağlayıcıların ve modellerin bulunduğunu paylaşmıyoruz; ne veri kaynakları ne de yapay zekâ işlevleri için.

Yapay zekâ

Büyü­ye­rek gelişmiş bir üründe yapay zekâ.

Yapay zekâ işlev alanı tamamen Batunet'te geliştirildi; yanında duran ayrı bir ürün olarak değil, zaten var olan bir sistemin içine yerleştirilmiş olarak. Buna yapay zekâ destekli içerik işlevleri, yapay zekâ sistemlerindeki görünürlük analizi, yapay zekâ yanıtlarının ve kaynaklarının analizi, prompt işleme, rakip analizi ve otomatik öneriler dahildir.

Zor olan kısım model değildi. Zor olan, entegrasyondu: mevcut veriler, mevcut yetkiler, mevcut iş akışları ve ticari bir üründe yer alabilecek kadar tekrarlanabilir olması gereken sonuçlar.

Kullanılan teknolojiler

Teknoloji yığını devralma anında belirlenmişti ve ana hatlarıyla zaten kullandığımız teknolojilerle örtüşüyor.

PHPSymfonyMySQL/MariaDBRedisRabbitMQElasticsearch/OpenSearchJavaScriptTypeScriptDockerLinux/Nginx
Sorular

Bu projeyle ilgili sorular

  • Mevcut ve canlıda çalışan yazılımları devralıyor musunuz?

    Evet. Bu proje tam olarak bunu gösteriyor: 2017'de devraldığımız ve o zamandan beri yeniden inşa etmeden geliştirdiğimiz, çalışan ve ticari olarak kullanılan bir ürün.

  • Büyük veri hacimleriyle nasıl çalışıyorsunuz?

    Bu platformun veri hacmi, milyarlarca kayıtla terabayt düzeyindedir. Bu büyüklükten itibaren verinin nasıl saklanacağı bir yapılandırma meselesi değil, tasarımın bir parçasıdır: dağıtık ve asenkron işleme, önbellekleme, bir arama indeksi ve kendi iş yönetimi.

  • Yalnızca teknik uygulamayı mı geliştiriyorsunuz, yoksa teknik kavramsal tasarımı da mı?

    Her ikisini de. Platformu işleten şirket iş ihtiyacını ve ürün hedefini belirler; teknik kavramsal tasarım ve uygulama büyük ölçüde Batunet'te oluşur.

  • Burada neden müşteri adı yer almıyor?

    Bu proje bilinçli olarak mühendislik çalışmasına odaklanıyor. Bunun için müşterinin kimliği gerekli değil. İsimli referansları doğrudan görüşmede konuşuyoruz.

Bilgi grafiği

Mühen­dis­lik yol­cu­lu­ğu­nuza devam edin.

İlgili kavramlar, kararlar, uygulama kılavuzları ve bakış açıları — bir bağlantı listesi olarak değil, bütünlüklü bir yol olarak.

Pro­je­nizi konu­şa­lım.

Satış ekibi yok. Yönetimle doğrudan bir görüşme.