.Net Core

Microservice Architecture

Post Page Advertisement [Top]

    Merhaba Sevgili Okurlar,

    Bu yazımda sizlere yüksek transaction alan sistemleri nasıl ölçeklenebilir hale getireceğimizden bahsedeceğim. Bu konu özellikle büyük şirketler tarafından oldukça önem arz ediyor. Bir çok şirket günümüzde Mikoservis Yapısına geçiyor ya da geçti. Aslında Microservice Mimarisi ölçeklenebilirliğin bir parçasıdır. Büyük resmi görmek adına bu özel ve az bilinen konuyu sizlerle paylaşıyorum.

Okurken ne dinlemeli ?

    
    Amazon, Netflix, Soundcloud gibi büyük firmaların bir çok mikroservisi olduğundan bahsedilir. Peki sadece bu yeterli mi ? Öncelikle şunu belirtmeliyim ki yüksek işlem gören bir sistemimiz varsa  bahsedeceğim yapıyı kullanmalıyız. Eğer küçük bir projeye sahipsek harcadığımız emek ve maliyet buna değmeyecektir. Hangi teknolojiyi nerede, nasıl, doğru şekilde kullanıp kullanmadığımız önemlidir.


    Öyleyse Ölçeklenebilirlik Küpünden bahsederek başlayalım. Nedir ölçeklenebilirlik küpü ? Nasıl okumalıyız? Martin L. Abbott ve Michael T. Fisher'in yazmış olduğu Art of Scalability, The: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise kitabında yer alan küp bize ölçeklemenin üç prensipte gerçekleşebileceğini anlatıyor. Bunların hepsini yaparsak teoride sonsuz ölçeklemeyi gerçekleştirebileceğimizi söylüyor. Martin L. Abbott ve Michael T. Fisher'in Quigo'da başlayan iş hayatı serüveni PayPal ve eBay ile devam etmiş uzun yıllar birlikte çalışmışlar şimdi ise AKF Partners'de kurucu ortaklar. Bu küpü ortaya atan ikili X,Y ve Z ekseni olmak üzere bizlere üç eksenden bahsediyor.


X Ekseni:

X Ekseni çoğu şirketin aşina olduğu ve genel de yaptığı, az maliyetli bir ölçekleme şeklidir. Çalışan uygulamalarımızın kopyasını alarak çoğullamak ve yük dağılımı yapmaktır. Yani Load Balancing.

Y Ekseni:

Sistemimizi işlevlerine göre özelleştirme işidir. Yani sistemi fonksiyonlara ya da servislere bölmektir. İşte bu da monolithic (tek parça) olan sistemimizi Microservice Mimarisini geçirme işidir. Zaman ve maliyet alacak bir iştir.

Z Ekseni:

X ve Y eksenini Z ekseni yönünde genişletmektir. Bu da requestor (istek yapan) ya da müşterinin herhangi bir özelliğine göre olur. Örneğin istek yapan kişilerin soyadına göre sistemi genişletmek. Örneğin soyadı A-E aralığındaki müşterileri bir server cluster'ına yönlendirip. E-H arasında ki müşterileri ise başka bir server cluster'ına yönlendirmek. Ya da müşterileri yakın olduğu server cluster'larına yönlendirmek. Z ekseni ise en maliyetli ölçekleme adımıdır. Z eksenini daha iyi anlayabilmek için aşağıdaki görseli inceleyebiliriz:




    Gelelim CQRS ve Event Sourcing(ES) kısmına, CQRS ve ES zaten birbirini tamamlayan kavramlar. Sistemimizi Command ve Query olarak da kendi içinde ayırdığımızı düşünürsek. Örneğin products microservisimizi hem Command hem de Query olarak ayırırsak. Bu üç ekseni de uygulayarak sonsuz ölçekleme sağlayabiliriz. Tabii IT sektöründe teoride olabilen şeyleri yapmak zor olabilir o nedenle iyi bir ölçeklemeye yaklaşabiliriz diyelim.


Değerli okurlar bir yazımızın daha sonuna geldik. Benim için oldukça önemli olan bu konuyu sizlerle paylaştığım için mutluyum. Art of Scalability kitabını okumanızı da mutlaka tavsiye ederim. Bir sonraki yazımızda görüşmek üzere.

Hoşça kalın.




 

Hiç yorum yok:

Yorum Gönderme

Bottom Ad [Post Page]