Google Assistant, Twitter ve Whatsapp benzeri on-premise bir projenin mimarisi nasıl olmalıdır?


Merhaba takipçilerim,

Big Data Blockchain projesi geliştirmek istiyorsunuz. Yapay zeka da olsun, WebRTC de olsun, Kubernetes te olsun, tüm güncel teknolojiler olsun istiyorsunuz. Nereden başlayacaksınız ne kullanacaksınız size anlatayım:

  1. Üyelik sistemi için Hyperledger Indy, NodeJS ve Rest/gRPC-Web kullanın. HyperLedger Indy üyelik sistemleri için geliştirilmiş bir blockchain çözümüdür ve üyelik verilerinin manipüle edilmesini engeller. Güvenlidir. Daha güvenli olması için Kuantum dirençli yapabilirsiniz (NIST bu yıl post-kuantum güvenlik algoritmalarını çıkarmayı hedefliyor).
  2. Logları kaydetmek için .NET 6 minimal api, gRPC/gRPC-Web ve Cassandra kullanın. Cassandra’yı blockchain veritabanı olarak kullanabiliyorsunuz. Insert işlemlerinde hızlı olan bir big data veritabanıdır.
  3. Chat mikroservisi için .NET 6 minimal api, gRPC/gRPC-Web ve HBase ya da Cassandra kullanın. HBase okuma işlemlerinde hızlı bir big data veritabanıdır. Cassandra ekleme işlemlerinde hızlı bir big data veritabanıdır. Tercih sizin.
  4. Toplantı mikroservisi .NET 6 minimal api, gRPC/gRPC-Web, SignalR, Redis ve HBase ya da Cassandra kullanın. Sunucu tarafında Periscope benzeri bir çözüm geliştirmek isterseniz, ya da Teams benzeri çok katılımcılı toplantı sistemi kurmak isterseniz Oven Media Engine ya da MediaSoup gibi yüksek performanslı WebRTC media sunucularını kullanabilirsiniz.
  5. Mikroblogging mikroservisi .NET 6 minimal api, gRPC/gRPC-Web ve HBase kullanın. Twitter HBase kullanmaktadır. Cassandra’yı denemiş fakat stratejik nedenlerden dolayı HBase’i tercih etmiştir.
  6. Yapay zeka mikroservisi için .NET 6 minimal api, gRPC/gRPC-Web, WebSocket kullanın. Ayrıca Azure Bot Servis, Bot Framework ve Dialogflow da kullanmanızı öneriyorum.
  7. Mobil Frontend’ler Flutter kullanın, Flutter en hızlı çözümü geliştirmenizi sağlar, gRPC ve WebRTC destekler. Oven Media Engine WebRTC sunucusu kullanacaksınız Flutter’da hazır player desteği olmadığı için sorun yaşabilirsiniz, aman dikkat.
  8. Web Frontend’ler React ya da Angular kullanın. React tarayıcıda hızlı çalışsa da kurumsal projelerde Angular tercih edilmektedir. Web ikinci planda ve önemsizse Flutter da kullanabilirsiniz.

Tüm servisleri Pardus üzerinde Kubernetes podları olarak çalıştırın. Load Balancer ve API Gateway için Envoy ya da NGINX kullanabilirsiniz. Kubernetes networkünüzü kurmak için minimum 5 adet sunucuya ihtiyacınız olacak. Tüm bu sistemi tek sunucuda çalıştırabilir miyiz henüz ben de bilmiyorum.

CI/CD sistemi kurun. Bunu Jenkins ile yapabilirsiniz. GitHub repolarınıza commit geldiğinde çekip build edip docker image’lerini ve podları güncelleyin.

Kubernetes networkünü güvenli hale getirmek için Istio service mesh kullanın.

.NET 6 backendlerini n-Tiered yapmalısınız. Katmanlarınız şöyle olabilir:
1. Minimal API
2. Service
3. Data (Repository’ler ve Generic-Repository’ler kullanın)
4. Model
5. Infrastructure
6. Test

Angular/React ve Flutter projelerinizde Unit Test ve E2E testleriniz olmalıdır. Testleriniz olmazsa bug karmaşasına düşebilirsiniz, ve projede değişiklik yapmak zamanla çok zorlaşır.

Mutlu kodlamalar 🙂

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s