Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, yazılım mimarı Burak Kaşmer tarafından sunulan bir eğitim içeriğidir. Burak, yazılım mimarlığı alanında uzman bir profesyoneldir.
- Video, yüksek trafikli bir web sitesinde canlı maç skorlarını gösteren bir banner örneği üzerinden, mikro servisler ve Redis teknolojisi kullanarak real time veri güncellemesi yapma yöntemini anlatmaktadır. İçerik, teorik bilgilerle başlayıp uygulamaya geçiş yapmaktadır.
- Eğitimde üç milyon kullanıcıya aynı anda hizmet veren bir sistemde performans optimizasyonu, RAM yönetimi, Redis kullanımı, mikro servisler ve cloud çözümleri gibi konular ele alınmaktadır. Ayrıca Redis'in session'lara göre avantajları, veri saklama stratejileri, cloud ölçeklenebilirliği, Redis'in lock mekanizması ve SQL veritabanına Code First yaklaşımıyla veri aktarımı gibi teknik detaylar da açıklanmaktadır.
- Yazılım Mimarlığında Teknoloji Kombinasyonu
- Yazılım mimarlığında tek bir teknolojide bir sorunun çözümü olmayabilir, farklı komponentler bir araya getirilerek çözüm bulunmalıdır.
- Teknoloji seçimleri maliyet, teslim süresi, ekip kabiliyetleri, firma politikası ve veri depolama gibi faktörlere göre değişir.
- Yazılım mimarlığının bir dalı olarak, farklı teknolojileri birleştirip sorunlara karşı "voltron" oluşturma işi yapılabilir.
- 03:29Makale İçeriği ve Senaryo
- Makalede canlı maç skorlarını gösteren bir HTML5 MVC sayfası oluşturulacak ve jQuery kullanılacak.
- Yüksek trafik alan bir siteye (örneğin Hürriyet.com.tr) konulduğunda performans çok önemli olacak.
- Real time maç skorları için soket tekniği kullanılacak ve mikro servisler kullanılacak.
- 05:01Veri Depolama ve Performans
- Maç skorları Redis gibi bir keşte tutulacak ve her gelen client bu keşten skorları görecektir.
- Redis, session veya lokal keşten daha performanslı olup, farklı tipleri tutabilir ve indeksleme mantığı vardır.
- Redis'i cloud kullanarak scaleble edebilir, master-slave şeklinde ayırabilir ve farklı sunucuları tek bir keşte tutabilirsiniz.
- 07:49Veritabanı ve Cloud Çözümü
- Anlık kullanıcı sayısı sürekli değişebilir ve bilgiler database'den önce Redis'te tutulacak.
- Çok fazla data girişi olduğunda, performans için önce Redis'te çalışıp sonra veritabanına aktarılabilir.
- Cloud çözümü kullanılarak Azure üzerinde scaleble olarak üç farklı kıtada sunucular kullanılabilir ve otomatik olarak on sunucuya kadar ölçeklenebilir.
- 09:48Mikro Servisler ve Redis Kullanımı
- Oracle gibi veritabanlarının güncellenmesi gerekiyor ve bu güncelleme anlık olarak çalışan klanları iki milyon kişiye gösteren sayfayı sunucu üzerindeki yükü bindirmeden farklı sunucularda asenkron olarak atılmasını sağlayacak mikro servisler kullanılacak.
- Azure cloud üzerinde konsol uygulamaları oluşturulacak ve sadece maç skorlarının değiştiği datayı JSON olarak konsol uygulamasına atacak, Redis'ten bir kanalda dinleyecek.
- Redis'ten alınan veriler SQL'e Code First yaklaşımıyla Entity Framework kullanarak güncellenecek, ancak performans amaçlı anlık yoğun yükün bindiği kısımlarda Entity yerine depo veya ADO.NET kullanılabilir.
- 11:07Mikro Servislerin Avantajları
- Var olan ana sistemin dışında başka bir yapı oluşturulduğu için ciddi anlamda performansa ihtiyaç olmayacak ve SQL database veya başka bir database değiştirilebilir.
- Mikro servisler herhangi bir başka dille (örneğin Python) yazılabilir ve var olan sisteme dokunmadan farklı yapılar üzerinde değişiklikler yapılabilir.
- Loglar, kimin skoru değiştirdiği, uyarı mesajları, e-mail'ler ve hatalar gibi konular da mikro servislerle çözülebilir.
- 11:50jQuery Kullanımı ve Veri Aktarımı
- jQuery kullanılarak sadece değişen datayı ve bu dataya ait bilgileri nasıl posta olup gönderilebileceğinin mantığı gösterilecek.
- Değişen datayı signalar sınıfına, server sınıfına gönderilecek, Redis güncellenecek ve mikro servislere Redis kullanarak konsol uygulamalarına ilgili datayı gönderip SQL bazında database bazında güncellenmesi sağlanacak.
- Redis'in lock mekanizması sayesinde aynı anda bir milyon kişi de gelse bile otomatik locklar sayesinde double check lock gibi statik yapılar kullanmaya gerek kalmayacak.