İçeriğe atla

Dağıtık sistemler

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ı artı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

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">İşletim sistemi</span> bilgisayar donanım kaynaklarını yöneten yazılım

İşletim sistemi ya da işletim dizgesi, bir bilgisayarın donanım kaynaklarını yöneten ve uygulama yazılımlarına hizmet sağlayan yazılımların bir bütünüdür. İşletim sistemleri, bilgisayarın donanımı ile uygulama yazılımları arasında bir köprü görevi görerek kullanıcıların sistemle etkileşim kurmasını sağlar. Öne çıkan örnekler arasında Microsoft Windows, macOS, GNU/Linux dağıtımları, Android ve iOS yer alır.

Bilişim, bilişim bilimi ya da bilgisayar bilimi, bilgi ve hesaplamanın kuramsal temellerini ve bunların bilgisayar sistemlerinde uygulanabilmeleri sağlayan pratik teknikleri araştıran bir yapısal bilim dalıdır. Bilişimciler ya da bilgisayar bilimcileri bilgi oluşturan, tanımlayan ve dönüştüren algoritmik süreçler icat edip, kompleks sistemleri tasarlamak ve modellemek için uygun soyutlamalar formüle ederler. Bilişim Dünya'da hızla gelişmeye devam eden önemli bir teknolojidir.

<span class="mw-page-title-main">Yazılım</span> bilgisayarın somut olmayan çalıştırılabilir bileşeni

Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makine komutlarıdır.

<span class="mw-page-title-main">İntranet</span> kurum içi ağ

İntranet, sadece belirli bir kuruluş içindeki bilgisayarları, yerel ağları (LAN) ve geniş alan ağlarını (WAN) birbirine bağlayan, çoğunlukla TCP/IP tabanlı bir ağdır. İntranet'ler Ağ geçitleri ile diğer ağlara bağlanabilir. Temel oluşturulma amaçları, kuruluş bünyesinde bilgileri ve bilgi işlem kapasitesini paylaşmaktır.

<span class="mw-page-title-main">Kurumsal kaynak planlaması</span> kurumun kaynaklarını verimli şekilde kullanacak şekilde planlaması

Kurumsal kaynak planlaması ya da işletme kaynak planlaması, işletmelerde mal ve hizmet üretimi için gereken işgücü, makine, malzeme gibi kaynakların verimli bir şekilde kullanılmasını sağlayan bütünleşik yönetim sistemlerine verilen genel addır. Kurumsal kaynak planlaması (KKP) sistemleri, bir işletmenin tüm veri ve işlemlerini bir araya getirmeye veya bir araya getirilmesine yardımcı olmaya çalışan ve genelde kullanımı kolay olan sistemlerdir. Klasik bir KKP yazılımı işlem yapabilmek için bilgisayarın çeşitli yazılım ve donanımlarını kullanır. KKP sistemleri temel olarak değişik verilerin saklanabildiği bütünleşik bir veritabanı kullanırlar.

Objective-C, C'nin üzerine yazılmış, yansımalı, nesne yönelimli bir programlama dilidir. ObjC, Objective C ve Obj-C olarak da anılır.

ActiveX, Microsoft'un Microsoft Windows platformları için geliştirdiği bir nesne bileşeni modelidir (COM). Yazılım tabanlı olan ActiveX teknolojisi Internet Explorer eklentisi ve web sayfalarına iliştirilmiş ActiveX tabanlı uygulama olarak çalışır.

<span class="mw-page-title-main">Bilgisayar mimarisi</span>

Bilgisayar mimarisi, en küçüğe ve en başarılıya ulaşmayı hedeflerken aynı zamanda maliyeti de göz önünde bulundurduğu için sanat ve bilimin ortak buluştuğu nokta olarak da tanımlanır. Bilgisayar Mimarisi, bilgisayar parçalarının iç yapıları ve aralarındaki haberleşme bağlantıları ile ilgilidir.

<span class="mw-page-title-main">Bilgisayar güvenliği</span> bilgisayar sistemlerinin ve ağlarının, hırsızlık, hasar, kötüye kullanım gibi durumlara karşı koruma mekanizmaları

Bilgisayar güvenliği, elektronik ortamlarda verilerin veya bilgilerin saklanması ve taşınması esnasında bilgilerin bütünlüğü bozulmadan, izinsiz erişimlerden korunması için, güvenli bir bilgi işleme platformu oluşturma çabalarının tümüdür. Bunun sağlanması için duruma uygun güvenlik politikasının belirlenmesi ve uygulanması gereklidir.

Çok çekirdekli işlemci, ikiden fazla işlemciden (çekirdek) oluşan bir hesaplama birimi. Bilgisayarlarda temel komut kümesi işlemlerini gerçekleştirir.

Bilgisayar bilimci, bilgisayar bilimi, bilgi ve hesaplamanın teorik temellerinin incelenmesi ve bunların uygulamaları hakkında uzmanlaşmış bir kişidir.

<span class="mw-page-title-main">Proje yönetimi yazılımı</span>

Proje yönetimi yazılımı, tahminleme ve planlama, zamanlama, maliyet kontrolü ve bütçe yönetimi, kaynak ayırma, işbirliği yazılımı, iletişim, kalite yönetimi ve dokümantasyon veya yönetim sistemleri gibi büyük çaplı projelerin karmaşıklığı ile mücadele etmek amacıyla kullanılan birçok yazılım çeşidini kapsayan bir terimdir.

<span class="mw-page-title-main">Bulut bilişim</span> internet tabanlı bilişim hizmeti

Bulut bilişim, bilgisayarlar ve diğer cihazlar için, istendiği zaman kullanılabilen ve kullanıcılar arasında paylaşılan bilgisayar kaynakları sağlayan, internet tabanlı bilişim hizmetlerinin genel adıdır. Bulut bilişim bu yönüyle bir ürün değil, hizmettir; temel kaynaktaki yazılım ve bilgilerin paylaşımı sağlanarak, mevcut bilişim hizmetinin; bilgisayarlar ve diğer aygıtlardan elektrik dağıtıcılarına benzer bir biçimde bilişim ağı üzerinden kullanılmasıdır.

<span class="mw-page-title-main">Veri merkezi</span> bilgisayar sunucularının ve ilgili ekipmanın çalıştırıldığı bina veya oda

Veri merkezi, bilgisayar sistemleri ile telekomünikasyon ve veri ambarı sistemleri gibi ek sistemleri barındıran bir tesistir. Sunucu odası veya sistem odası olarak da adlandırılan bu tesisler işletmelere ait sunucu ve veri ambarlarının bulunduğu alanlardır. Veri merkezleri genel olarak iki kategoriye ayrılır:özel veri merkezleri ve İnternet veri merkezleri. Özel veri merkezleri sadece bir kuruluş tarafından kendi hizmetlerinde kullanılır. İnternet veri merkezleri ise üçüncü şahıslara hizmet verir.

<span class="mw-page-title-main">Gömülü sistem</span> Belli bir fonksiyonu yapmaya yönelik bilgisayar sistemi

Gömülü sistem, bilgisayarın kendisini kontrol eden cihaz tarafından içerildiği özel amaçlı bir sistemdir. Genel maksatlı, örneğin kişisel bilgisayar gibi bir bilgisayardan farklı olarak, gömülü bir sistem kendisi için önceden özel olarak tanımlanmış görevleri yerine getirir. Sistem belirli bir amaca yönelik olduğu için tasarım mühendisleri ürünün boyutunu ve maliyetini azaltarak sistemi uygunlaştırabilirler. Gömülü sistemler genellikle büyük miktarlarda üretildiği için maliyetin düşürülmesinden elde edilecek kazanç, milyonlarca ürünün katları olarak elde edilebilir.

Arızaya dayanıklılık, bir sistemin bileşenlerinden birisinin tamamen arızalanarak işlemez hale gelmesi ya da bileşenin içinde bir ya da daha fazla arıza oluşması durumunda, sistemin düzgün bir şekilde işlemeye devam edebilme özelliğidir. Eğer sistemin iş kalitesi azalırsa bile, küçük bir arızanın bile tamamen durmaya yol açtığı safça/amatörce tasarlanmış bir sistemle karşılaştırıldığında, iş kalitesindeki azalma arızanın ciddiyetiyle doğru orantılıdır. 'Arızaya dayanıklılık' yüksek kullanılabilirlik tasarımlarında veya kritik-yaşamsal sistemlerde çok rağbet gören bir özelliktir.

Learning Management System (LMS) ya da Öğrenme Yönetim Sistemi ; uzaktan eğitim eğitim içeriklerinin ya da öğrenme ve geliştirme programlarının yönetimi, belgelenmesi, izlenmesi, raporlanması ve verilmesi için geliştirilmiş web tabanlı uygulamalar bütünüdür.

Bir sistem mimarisi veya çoklu sistemlerin mimarisi; sistemin yapısını, davranışını ve biçimselliğini tanımlayan kavramsal modeldir. Bir mimari tanımı; sistemin yapıları ve davranışları hakkında mantıksallığı destekleyecek şekilde organize edilen ilişkiselliğin standart bir açıklaması veya temsilidir.

Eşzamanlılık denetimi, eşzamanlı işlemler için doğru sonuçların elde edilmesini sağlarken, bu sonuçları da olabildiğince çabuk almayı sağlayan uğraşı alanıdır.Bilgisayar bilimleri, bilgi teknolojileri ve özellikle bilgisayar programlama, işletim sistemleri, çoklu işlemciler ve veritabanı alanlarında önemlidir.

Docker, bir konteynerleştirme teknolojisi olarak tanımlanır ve yazılım uygulamalarının bağımsız ve izole bir ortamda çalıştırılmasını sağlar. Docker, 2013 yılında Docker, Inc. tarafından piyasaya sürülmüştür ve bu tarihten itibaren yazılım geliştirme ve dağıtım süreçlerinde devrim yaratmıştır.