Dağıtık sistemler, sanal ve/veya fiziksel ağlar ile birbirine bağlanmış sistemler üzerinde çalışan yazılımların bütün olarak bir yazılımın yürütülmesine imkân verecek şekilde kullanılmasıdır. Dağıtık sistemler, bir yazılımın kesintisiz ve maliyeti az bilişim altyapılarına ihtiyaç duyulması ile ortaya çıkmış bir konudur. Temel olarak bir yazılımın birden fazla bilgisayar üzerinde koşturulması, nasıl ne şekilde koşturulacağının tasarlanması dağıtık sistemler altında incelenir.
İlgilendiği konular yazılımın ihtiyaç duyduğu tüm bileşenlerin; kesintisiz, istenen durumda, yüksek kaynak gereksinimlerine cevap vermesi ve maliyetlerini düşürmek amaçlanarak şekillendi. Şuan merkeziyetsiz uygulamalar üzerindede bu konseptleri görüyoruz. Büyük miktarda işi işleyebilme ihtiyacından, internetin gelişmesine ihtiyaçlar katlanarak artmış ve dağıtık sistemler konseptleride üzerine eklenerek ilerlemiştir.
Dağıtık sistemlerin tasarlanmasında olduğu gibi, Cluster'lar üzerinde çalışan dağıtık bir uygulamanın tasarımı ile gelen zorlukların çözümlenebilmesi için, bugüne kadar birçok gelişim sağlanmış ve bu gelişimler akademisyeneler ve şirketler tarafından desteklenmiştir.
Dağıtık sistemlerin konseptleri
Dağıtık sistemler tasarlarken ihtiyaca göre kullanılabilecek bileşenler;
- Orkestrasyon yazılımları : Sanal makine veya conteyner'leri cluster veya single node bilgisayar üzerinde
- Mesaj kuyrukları
- Veritabanları
- DNS
- Cache
- Firewall
- VPN
Dağıtık sistemler tasarlarken bu bileşenlerin belirli konseptler ve yöntemler ile çalıştırılması gerekir. Bu konseptleri ihtiyaca uygun şekillendirerek tasarlarız.Genel olarak şunlara dikkat ederiz; erişilebilir konumların sayısına(ülkeler,bölgeler), uygulamaya gelen isteklere ne kadar hızlı cevap vermemiz gerektiğine, kritik verilerin olup olmamasına, kesinti konusunda ne kadar hassas olduğumuza göre tasarlayacağımız altyapılar ve kullancağımız bileşenlerde değişir.
Dağıtık sistemler tasarlanırken ve bileşenleri kullanırken hatta yazılımlarımızı tasarlarken göz önünde bulundurmamız gereken bazı konseptler vardır.
Temel olarak;
- High Availability : Yüksek erişilebilirlik, bir yazılımın altyapısının yazılımı her zaman kullanıma hazır tutmayı amaçlaması
- Consistency : Verilerin dağıtıldığında çoğaltılmış verilerin heryerde aynı olması
- Fault Tolerance : Bir hata ya da beklenen durumun dışında bir olay yaşanırsa altyapının bu durumlara karşı tölaransını arttırmak amaçlanır
bunların yanında cluster şeklinde çalışan orkestrasyon yazılımları, veritabanları ve cache'lerin kendilerine özgü kavramları vardır. Bunların hepsi temel bu üç kavrama bağlanmaktadır.
Kaynaklar
- Distributed Systems: Principles and Paradigms, Andrew S. Tanenbaum
- AWS Builders Library
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Dagitik sistemler sanal ve veya fiziksel aglar ile birbirine baglanmis sistemler uzerinde calisan yazilimlarin butun olarak bir yazilimin yurutulmesine imkan verecek sekilde kullanilmasidir Dagitik sistemler bir yazilimin kesintisiz ve maliyeti az bilisim altyapilarina ihtiyac duyulmasi ile ortaya cikmis bir konudur Temel olarak bir yazilimin birden fazla bilgisayar uzerinde kosturulmasi nasil ne sekilde kosturulacaginin tasarlanmasi dagitik sistemler altinda incelenir Ilgilendigi konular yazilimin ihtiyac duydugu tum bilesenlerin kesintisiz istenen durumda yuksek kaynak gereksinimlerine cevap vermesi ve maliyetlerini dusurmek amaclanarak sekillendi Suan merkeziyetsiz uygulamalar uzerindede bu konseptleri goruyoruz Buyuk miktarda isi isleyebilme ihtiyacindan internetin gelismesine ihtiyaclar katlanarak artmis ve dagitik sistemler konseptleride uzerine eklenerek ilerlemistir Dagitik sistemlerin tasarlanmasinda oldugu gibi Cluster lar uzerinde calisan dagitik bir uygulamanin tasarimi ile gelen zorluklarin cozumlenebilmesi icin bugune kadar bircok gelisim saglanmis ve bu gelisimler akademisyeneler ve sirketler tarafindan desteklenmistir Dagitik sistemlerin konseptleriDagitik sistemler tasarlarken ihtiyaca gore kullanilabilecek bilesenler Orkestrasyon yazilimlari Sanal makine veya conteyner leri cluster veya single node bilgisayar uzerinde Mesaj kuyruklari Veritabanlari DNS Cache Firewall VPN Dagitik sistemler tasarlarken bu bilesenlerin belirli konseptler ve yontemler ile calistirilmasi gerekir Bu konseptleri ihtiyaca uygun sekillendirerek tasarlariz Genel olarak sunlara dikkat ederiz erisilebilir konumlarin sayisina ulkeler bolgeler uygulamaya gelen isteklere ne kadar hizli cevap vermemiz gerektigine kritik verilerin olup olmamasina kesinti konusunda ne kadar hassas oldugumuza gore tasarlayacagimiz altyapilar ve kullancagimiz bilesenlerde degisir Dagitik sistemler tasarlanirken ve bilesenleri kullanirken hatta yazilimlarimizi tasarlarken goz onunde bulundurmamiz gereken bazi konseptler vardir Temel olarak High Availability Yuksek erisilebilirlik bir yazilimin altyapisinin yazilimi her zaman kullanima hazir tutmayi amaclamasi Consistency Verilerin dagitildiginda cogaltilmis verilerin heryerde ayni olmasi Fault Tolerance Bir hata ya da beklenen durumun disinda bir olay yasanirsa altyapinin bu durumlara karsi tolaransini arttirmak amaclanir bunlarin yaninda cluster seklinde calisan orkestrasyon yazilimlari veritabanlari ve cache lerin kendilerine ozgu kavramlari vardir Bunlarin hepsi temel bu uc kavrama baglanmaktadir KaynaklarDistributed Systems Principles and Paradigms Andrew S Tanenbaum AWS Builders Library