01Sorun ve çözüm
Apache Kafka kurulumu hizmetimizde işe kümenin taşıyacağı olayları ve bu olayların sahiplerini çıkararak başlıyoruz. Hangi konunun hangi anahtarla bölümleneceği, kaç kopya tutulacağı, ne kadar süre saklanacağı ve hangi servisin yazıp hangisinin okuyacağı yazılı bir tasarım belgesine dönüşür. Kurulum bu belgeye göre altyapı koduyla yapılır; böylece aynı küme test ortamında da birebir kurulabilir.
Devamını okuDaha az göster
Teslimden önce bir broker'ı bilerek kapatıp üreticilerin ve tüketicilerin nasıl davrandığını sizinle birlikte izliyoruz. İşletim el kitabı, izleme panoları ve alarm eşikleri ekibinize devredilir.
02Kimler için
Apache Kafka kurulumuna ihtiyaç duyan yapılar
Kafka genellikle servisler arasındaki doğrudan çağrılar ya da gece çalışan toplu aktarımlar yetersiz kalmaya başladığında gündeme gelir.
- Mikroservislerini sipariş, ödeme ve stok olayları üzerinden gevşek bağlı hâle getirmek isteyen yazılım ekipleri
- Uygulama veritabanındaki değişiklikleri veri ambarına ve arama motoruna anlık aktarmak isteyen şirketler
- Yüzlerce sunucudan ya da cihazdan gelen log ve telemetri verisini tek bir hatta toplamak isteyen işletmeler
- RabbitMQ veya veritabanı tablosu üzerinden kurulmuş bir kuyruğun kapasitesine ve yeniden oynatma ihtiyacına yetişemeyen ekipler
- Kendi kurdukları Kafka kümesinde disk taşması, sık yeniden dengeleme ya da açıklanamayan gecikmeler yaşayan kuruluşlar
03İhtiyaçlar
Kafka projelerinde en sık rastlanan tasarım hataları
Kümede yaşanan sorunların çoğu kurulum gününde verilen ve sonradan geri alınması pahalı olan kararlardan doğar.
- 01
Bölüm anahtarının rastgele seçilmesi
Aynı siparişe ait olayların sırayla işlenmesi gerekiyorsa anahtar sipariş numarası olmalıdır. Anahtarsız yazılan mesajlar bölümlere dağılır ve tüketicide sıra kaybolur; tersine, tek bir müşteriye yığılan anahtar bir bölümü sıcak noktaya çevirir.
- 02
Dayanıklılık ayarlarının varsayılanda bırakılması
Replikasyon faktörü, en az eşzamanlı kopya sayısı ve üreticinin onay ayarı birlikte düşünülmezse broker kaybında onaylanmış mesajlar da kaybolabilir. Bu üç ayar her konu için verinin önemine göre belirlenir.
- 03
Şema yönetiminin olmaması
Serbest biçimli JSON mesajlarda bir alanın adı değiştiğinde hata ancak tüketici tarafında ortaya çıkar. Avro veya Protobuf şemaları ve uyumluluk kuralları, kırıcı değişikliği daha yazma anında reddeder.
- 04
Saklama ve disk planının yapılmaması
Günlük veri hacmi, saklama süresi ve kopya sayısı çarpılmadan disk boyutu belirlenirse küme bir gece dolar. Sıkıştırma türü ve yalnızca son değeri tutan sıkıştırılmış konular bu hesabı önemli ölçüde değiştirir.
- 05
Tüketici gecikmesinin izlenmemesi
Broker'lar sağlıklı görünürken bir tüketici grubu saatlerce geride kalabilir. Grup bazında gecikme izlenmedikçe sorun, rapor ekranındaki eski veriyle fark edilir.
04Özellikler
Apache Kafka kurulumu hizmetinin teslimatları
Kapsam, kümeyi kendi sunucularınızda mı yoksa yönetilen bir serviste mi çalıştıracağınıza göre şekillenir.
- 01
Konu ve bölüm tasarım belgesi
Her konu için anahtar, bölüm sayısı, kopya sayısı, saklama süresi ve sahip ekip tablo hâlinde yazılır. Konu adlandırma kuralı da bu belgede sabitlenir.
- 02
KRaft modunda küme kurulumu
Güncel sürümlerde ZooKeeper yerine Kafka'nın kendi denetleyici katmanı olan KRaft kullanılır. Denetleyici ve broker rolleri, sunucular ve erişilebilirlik bölgeleri arasında hata alanlarına göre dağıtılır.
- 03
Kimlik doğrulama ve erişim listeleri
İstemci trafiği TLS ile şifrelenir, servisler SASL ile kimlik doğrular. Her servis yalnızca yetkili olduğu konulara yazabilir ya da okuyabilir.
- 04
Şema kayıt servisi ve bağlayıcılar
Şemalar merkezi bir kayıt servisinde tutulur. Kafka Connect ile veritabanı, nesne depolama ve arama motoru bağlantıları kod yazmadan yapılandırılabilir hâle gelir.
- 05
İzleme, alarm ve işletim el kitabı
Broker metrikleri, eksik kopyalı bölümler ve tüketici gecikmesi panolara bağlanır. Broker değiştirme, bölüm taşıma ve sürüm yükseltme adımları el kitabında yazılı olarak teslim edilir.
05Entegrasyonlar
Kümeye veri yazan ve kümeden okuyan sistemler
Kafka tek başına değer üretmez; değerini çevresindeki sistemleri birbirine bağladığında gösterir.
- 01
Veritabanından değişiklik yakalama
PostgreSQL, MySQL veya SQL Server'daki satır değişiklikleri Debezium gibi bir değişiklik yakalama aracıyla olay olarak konulara aktarılır; uygulama koduna dokunmak gerekmez.
- 02
Uygulama servisleri
Java, .NET, Go, Node.js ve Python istemcileri için üretici ve tüketici ayarları, yeniden deneme ve tekrar eden mesajlara karşı idempotent yazma kurallarıyla birlikte belirlenir.
- 03
Analitik ve arama hedefleri
Konulardaki veri, bağlayıcılarla veri ambarına, nesne depolamaya ya da Elasticsearch ve OpenSearch gibi arama motorlarına akıtılır.
- 04
Yönetilen Kafka servisleri
Kendi sunucunuzu işletmek istemiyorsanız Amazon MSK, Confluent Cloud ya da Kafka protokolünü destekleyen Azure Event Hubs gibi seçenekler maliyet ve kısıtlarıyla karşılaştırılır.
- 05
Kubernetes ve izleme yığını
Küme Kubernetes üzerinde çalışacaksa Strimzi gibi bir operatörle kurulur. Metrikler Prometheus ve Grafana'ya, loglar merkezi log sisteminize bağlanır.
06Süreç
Apache Kafka kurulumu hizmeti nasıl ilerler?
Adım 01
Analiz
İş akışınızı, kullanıcılarınızı ve mevcut sistemlerinizi dinleriz; kapsamı, öncelikleri ve kabul ölçütlerini yazılı hâle getiririz.
Adım 02
Tasarım
Ekran akışlarını ve veri modelini çıkarırız. Arayüzü sizinle gözden geçirip onay almadan geliştirmeye geçmeyiz.
Adım 03
Geliştirme
Kısa döngülerle çalışırız; her döngü sonunda çalışan bir sürümü test ortamında görürsünüz.
Adım 04
Test
İşlevsel testler, entegrasyon testleri ve temel güvenlik kontrolleriyle hataları yayından önce yakalarız.
Adım 05
Yayın
Sunucu, alan adı, yedekleme ve izleme ayarlarını yaparak canlıya alırız; ekibinize kısa bir kullanım eğitimi veririz.
Adım 06
Bakım
İsterseniz bakım ve destek anlaşmasıyla güncellemeleri, izlemeyi ve yeni geliştirmeleri sürdürürüz.
07Teknoloji
Kafka işletiminde dikkat ettiğimiz noktalar
Bir Kafka kümesinin kapasitesini broker sayısından çok disk verimi ve ağ bant genişliği belirler. Bu yüzden boyutlandırmayı tahminle değil, gerçek mesaj boyutunuz ve yazma hızınızla yaptığımız yük testleriyle yapıyoruz. Sonuçlar, kümenin hangi noktada büyütülmesi gerektiğini gösteren eşiklerle birlikte belgeye eklenir.
Devamını okuDaha az göster
Kümeler arası kopyalama ihtiyacı varsa, örneğin ikinci bir veri merkezine ya da buluta aktarım gerekiyorsa, MirrorMaker 2 ile tüketici konumlarının da taşındığı bir yapı kurarız. Kişisel veri taşıyan konularda alan bazında maskeleme ve saklama süresinin KVKK kapsamındaki imha politikanızla uyumlu olması tasarım aşamasında ele alınır.
Sürüm yükseltmeleri broker broker, kesintisiz yapılacak biçimde planlanır ve önce test kümesinde denenir. Kurulumdan sonra işletimi kendiniz sürdürebilir ya da bakım ve destek anlaşmasıyla izleme ile yükseltmeleri bize bırakabilirsiniz.
08Çalışma modelleri
Bu hizmette çalışma modelleri
- 01
Proje bazlı
Sabit kapsam, sabit fiyat ve belirli teslim tarihi
Kapsamı belli, teslim tarihi olan işler için.
- Yazılı kapsam ve kabul ölçütleri
- Sabit fiyat ve belirli teslim tarihi
- Teslim ve kabul adımları sözleşmede
- 02
Bakım ve destek
Aylık sözleşmeli, SLA'lı bakım, destek ve geliştirme saati
Yayındaki bir sistemin sürekliliği için.
- Aylık sözleşme ve SLA
- İzleme, güncelleme ve hata düzeltme
- Aylık geliştirme saati
- 03
Danışmanlık
Saatlik veya günlük teknik danışmanlık
Karar, denetim veya yön belirleme gereken durumlar için.
- Saatlik veya günlük çalışma
- Yazılı rapor ve öneriler
- Ekibinizle birlikte çalışma
09Sık sorulan sorular
Apache Kafka kurulumu hakkında sık sorulan sorular
Apache Kafka kurulumu fiyatları neye göre belirlenir?
Belirleyici etkenler küme sayısı ve ortamlar, beklenen veri hacmi, güvenlik gereksinimleri, bağlanacak kaynak ve hedef sistem sayısı ile şema kayıt servisi ve Kafka Connect gibi ek bileşenlerdir. Ön görüşmede bu kalemleri netleştirip yazılı ve sabit kapsamlı bir teklif hazırlıyoruz.
Kendi sunucumuzda mı kuralım, yönetilen servis mi kullanalım?
Ekibinizde Kafka işletecek kimse yoksa ve verinin buluta çıkmasına engel bulunmuyorsa yönetilen servis çoğu zaman daha az yük getirir. Veri yerleşimi kısıtı, yüksek ve sürekli hacim ya da mevcut sunucu yatırımı varsa kendi kurulumunuz mantıklı olabilir; kararı iki seçeneğin işletim maliyetini yan yana koyarak veriyoruz.
Kafka yerine RabbitMQ yetmez mi?
Mesajın bir kez işlenip silinmesi yeterliyse RabbitMQ gibi bir mesaj kuyruğu daha sade bir seçimdir. Aynı olayı birden çok ekibin bağımsız okuması, geçmişe dönüp yeniden işleme ya da yüksek hacimli olay akışı gerekiyorsa Kafka'nın kalıcı log yapısı öne çıkar.
Mevcut ZooKeeper tabanlı kümemizi KRaft'a taşıyabilir misiniz?
Evet. Geçiş, kümenin sürümüne göre ara yükseltmeler ve denetleyici taşıma adımlarıyla planlanır. Önce aynı yapıdaki bir test kümesinde prova yapılır, ardından üretim kümesi bakım penceresinde adım adım taşınır.
Mesaj kaybı yaşamamak için neler yapıyorsunuz?
Kritik konularda birden fazla kopya, eşzamanlı kopya alt sınırı ve üreticide tüm kopyaların onayını bekleyen ayar birlikte kullanılır. Tüketicilerde konum, mesaj başarıyla işlendikten sonra kaydedilir; teslimden önce broker kapatma testleriyle bu davranış doğrulanır.
Apache Kafka kurulumu firması olarak kurulumdan sonra destek veriyor musunuz?
Evet. Bakım ve destek anlaşmasıyla izleme alarmlarına müdahale, kapasite takibi, sürüm yükseltmeleri ve yeni konu tasarımlarına destek veriyoruz. Yalnızca danışmanlık isterseniz kendi ekibinizin işlettiği kümeye düzenli gözden geçirme de yapabiliriz.
10İlgili hizmetler