Sunucu, istemciler olarak bilinen diğer bilgisayarlara ağ üzerinden kaynaklar, veriler, hizmetler veya programlar sağlayan bir bilgisayar veya sistemdir. Teorik olarak, bilgisayarlar kaynakları istemci makinelerle paylaştığında bunlar sunucu olarak kabul edilir. Web sunucuları, posta sunucuları ve sanal sunucular dahil olmak üzere birçok sunucu türü vardır.
Bireysel bir sistem kaynakları aynı anda kullanabilir ve başka bir sistemden kullanabilir. Bu, bir cihazın aynı anda hem sunucu hem de istemci olabileceği anlamına gelir.
İlk sunucuların bazıları ana bilgisayar veya mini bilgisayardı. Mini bilgisayarlar, ana bilgisayarlardan çok daha küçüktü, bu yüzden bu şekilde anılmakta idi. Ancak, teknoloji ilerledikçe, masaüstü bilgisayarlardan çok daha büyük hale geldiler ve bu da mikrobilgisayar kavramını biraz saçma hale getirdi.
Başlangıçta, bu tür sunucular, gerçek bilgi işlem yapmayan terminaller olarak bilinen istemcilere bağlandı. Aptal terminaller olarak adlandırılan bu terminaller, bir klavye veya kart okuyucu aracılığıyla girişi kabul etmek ve hesaplamaların sonuçlarını bir ekran veya yazıcıya döndürmek için vardı. Gerçek hesaplama sunucuda yapıldı.
Daha sonra, sunucular genellikle bir ağ üzerinden daha az güçlü istemci bilgisayarlara bağlanan tek, güçlü bilgisayarlardı. Bu ağ mimarisine genellikle hem istemci bilgisayarın hem de sunucunun bilgi işlem gücüne sahip olduğu, ancak belirli görevlerin sunuculara devredildiği istemci-sunucu modeli olarak adlandırılır. Ana bilgisayar terminali modeli gibi önceki bilgisayar modellerinde, ana bilgisayar, bu adla belirtilmese bile bir sunucu gibi davranıyordu.
Teknoloji geliştikçe, bir sunucunun tanımı da onunla birlikte gelişti. Günümüzde bir sunucu, bir veya daha fazla fiziksel bilgi işlem aygıtında çalışan yazılımdan başka bir şey olmayabilir. Bu tür sunuculara genellikle sanal sunucular denir. Başlangıçta, tek bir donanım sunucusunun yapabileceği sunucu işlevlerinin sayısını artırmak için sanal sunucular kullanıldı. Günümüzde sanal sunucular, bulut bilgi işlem adı verilen bir düzenlemede genellikle Internet’teki donanımda üçüncü taraflarca çalıştırılmaktadır.
Bir sunucu, e-posta kabul eden ve saklayan ve daha sonra bunu talep eden bir istemciye sağlayan, posta sunucusu gibi tek bir görev yapacak şekilde tasarlanabilir. Sunucular, hem dosyaları depolayan hem de istemcilerden yazdırma işlerini kabul eden ve daha sonra bunları ağa bağlı bir yazıcıya gönderen dosya ve yazdırma sunucusu gibi çeşitli görevleri gerçekleştirebilir.
Bir Sunucu Nasıl Çalışır?
Sunucu olarak işlev görmek için, aygıtın ağ bağlantısındaki istemcilerden gelen istekleri dinleyecek şekilde yapılandırılması gerekir. Bu işlevsellik, yüklü bir uygulama, rol veya bu ikisinin bir kombinasyonu olarak işletim sisteminin bir parçası olarak var olabilir.
Örneğin, Microsoft’un Windows Server işletim sistemi istemci isteklerini dinleme ve yanıtlama işlevselliği sağlar. Ayrıca, yüklü roller veya hizmetler, sunucunun hangi tür istemci isteklerine yanıt verebileceğini artırır. Başka bir örnekte, bir Apache web sunucusu, Internet tarayıcısı isteklerine bir işletim sisteminin üzerine yüklenen ek bir Apache uygulamasıyla yanıt verir.
İstemci bir sunucudan veri veya işlevsellik gerektirdiğinde, ağ üzerinden bir istek gönderir. Sunucu bu isteği alır ve uygun bilgilerle yanıt verir. Bu, çağrı ve yanıt modeli olarak da bilinen istemci-sunucu ağının istek ve yanıt modelidir.
Sunucu genellikle, istekte bulunanın kimliğini doğrulamak, istemcinin istenen verilere veya kaynaklara erişim izninin olmasını sağlamak ve istenen yanıtı beklenen ve düzgün bir şekilde biçimlendirmek veya döndürmek de dahil olmak üzere tek bir istek ve yanıtın parçası olarak çok sayıda ek görev gerçekleştirir.
Sunucu Türleri
Hepsi farklı işlevleri yerine getiren birçok sunucu türü vardır. Çoğu ağ, bir veya daha fazla ortak sunucu türünü içerir:
- Dosya sunucuları: Dosya sunucuları dosyaları depolar ve dağıtır. Birden çok istemci veya kullanıcı bir sunucuda depolanan dosyaları paylaşabilir. Ayrıca, dosyaları merkezi olarak depolamak, bir kuruluştaki her aygıttaki dosyalar için güvenlik ve bütünlük sağlamaya çalışmaktan daha kolay yedekleme veya hataya dayanıklılık çözümleri sunar. Dosya sunucusu donanımı, performansı artırmak amacıyla okuma ve yazma hızlarını en üst düzeye çıkarmak için tasarlanabilir.
- Yazdırma sunucuları: Baskı sunucuları, yazdırma işlevinin yönetimine ve dağıtımına izin verir. Her iş istasyonuna bir yazıcı iliştirmek yerine, tek bir baskı sunucusu çok sayıda istemciden gelen yazdırma isteklerine yanıt verebilir. Bugün, bazı daha büyük ve üst düzey yazıcılar, ek bir bilgisayar tabanlı baskı sunucusuna olan ihtiyacı ortadan kaldıran kendi yerleşik baskı sunucusuna sahiptir. Bu dahili yazdırma sunucusu, bir istemciden gelen yazdırma isteklerine yanıt vererek de çalışır.
- Uygulama sunucuları: Uygulama sunucuları, uygulamaları yerel olarak çalıştıran istemci bilgisayarlar yerine çalışır. Uygulama sunucuları genellikle çok sayıda kullanıcı tarafından paylaşılan yoğun kaynak kullanan uygulamalar çalıştırır. Bunu yapmak, her istemcinin uygulamaları çalıştırmak için yeterli kaynağa sahip olma ihtiyacını ortadan kaldırır. Ayrıca, yalnızca bir makinenin aksine, birçok makineye yazılım yükleme ve bakım ihtiyacını ortadan kaldırır.
- DNS sunucuları: Etki Alanı Adı Sistemi (DNS) sunucuları, insanlar tarafından kolayca anlaşılan adları makine tarafından okunabilen IP adreslerine dönüştürerek istemci bilgisayarlara ad çözümlemesi sağlayan uygulama sunuculardır. DNS sistemi, her biri başka türlü bilinmeyen bir bilgisayar adı istemek için kullanılabilen, yaygın olarak dağıtılmış bir ad ve diğer DNS sunucuları veritabanıdır. İstemci bir sistemin adresine ihtiyaç duyduğunda, bir DNS sunucusuna istenen kaynağın adıyla bir DNS isteği gönderir. DNS sunucusu, kendi IP tablosundan gerekli IP adresiyle yanıt verir.
- Posta sunucuları: Posta sunucuları çok yaygın bir uygulama sunucusu türüdür. Posta sunucuları bir kullanıcıya gönderilen e-postaları alır ve söz konusu kullanıcı adına bir istemci tarafından talep edilene kadar saklar. Bir e-posta sunucusuna sahip olmak, tek bir makinenin her zaman doğru bir şekilde yapılandırılmasını ve ağa bağlanmasını sağlar. Daha sonra, her istemci makinenin kendi e-posta alt sisteminin sürekli çalışmasını gerektirmek yerine mesaj göndermeye ve almaya hazırdır.
- Web sunucuları: Bugünün pazarındaki en bol sunucu tiplerinden biri bir web sunucusudur. Web sunucusu, Internet veya intranet üzerinden kullanıcılar tarafından talep edilen programları ve verileri barındıran özel bir uygulama sunucusu türüdür. Web sunucuları, istemci bilgisayarlarda çalışan tarayıcılardan web sayfaları veya diğer web tabanlı hizmetler için gelen isteklere yanıt verir. Yaygın web sunucuları arasında Apache web sunucuları, Microsoft Internet Information Services (IIS) sunucuları ve Nginx sunucuları bulunur.
- Veritabanı sunucuları: Şirketler, kullanıcılar ve diğer hizmetler tarafından kullanılan veri miktarı şaşırtıcıdır. Bu verilerin çoğu veritabanlarında saklanır. Veritabanlarına herhangi bir zamanda birden çok istemci tarafından erişilebilir olması gerekir ve olağanüstü miktarda disk alanı gerektirebilir. Bu ihtiyaçların her ikisi de bu tür veritabanlarını sunucularda bulmak için kendilerini iyi ödünç vermektedir. Veritabanı sunucuları veritabanı uygulamaları çalıştırır ve istemcilerden gelen çok sayıda isteğe yanıt verir. Genel veritabanı sunucusu uygulamaları arasında Oracle, Microsoft SQL Server, DB2 ve Informix bulunur.
- Sanal sunucular: Sanal sunucular, sunucu dünyasını fırtınaya neden oluyor. Makine donanımına işletim sistemi olarak yüklenen geleneksel sunuculardan farklı olarak, sanal sunucular yalnızca hipervizör adı verilen özel yazılımda tanımlandığı şekilde bulunur. Her hiper yönetici yüzlerce hatta binlerce sanal sunucuyu aynı anda çalıştırabilir. Hiper yönetici sanal donanımı gerçek fiziksel donanımmış gibi sunucuya sunar. Sanal sunucu her zamanki gibi sanal donanımı kullanır ve hiper yönetici, gerçek hesaplama ve depolama ihtiyaçlarını, diğer tüm sanal sunucular arasında paylaşılan gerçek donanıma aktarır.
- Proxy sunucuları: Proxy sunucusu, istemci ve sunucu arasında aracı görevi görür. Genellikle güvenlik amacıyla istemcileri veya sunucuları izole etmek için kullanılan bir proxy sunucusu istemciden istek alır. İstemciye yanıt vermek yerine, isteği başka bir sunucuya veya işleme iletir. Proxy sunucusu yanıtı ikinci sunucudan alır ve özgün istemciye kendi başına yanıt veriyormuş gibi yanıt verir. Bu şekilde, ne istemci ne de yanıt veren sunucunun birbirine doğrudan bağlanması gerekmez.
- İzleme ve yönetim sunucuları: Bazı sunucular diğer sistemleri ve istemcileri izlemek veya yönetmek için mevcuttur. Birçok izleme sunucusu türü vardır. Bazıları ağı dinler ve her istemci isteğini ve sunucu yanıtını alır, ancak bazıları verileri kendileri istemez veya yanıtlamaz. Bu şekilde, izleme sunucusu ağdaki tüm trafiğin yanı sıra istemcilerin ve sunucuların isteklerini ve yanıtlarını, bu işlemlere müdahale etmeden izleyebilir. Bir izleme sunucusu, ağın sağlığını izleyen ağ yöneticileri tarafından çalıştırılanlar gibi izleme istemcilerinden gelen isteklere yanıt verecektir.
Sunucu Yapıları
Sunucu kavramı neredeyse ağ oluşturmanın kendisi kadar eskidir. Sonuçta, bir ağın amacı bir bilgisayarın başka bir bilgisayarla konuşmasına ve iş veya kaynakları dağıtmasına izin vermektir. Bilişim o zamandan beri gelişti ve çeşitli sunucu yapıları ve donanımlarıyla sonuçlandı.
- Ana bilgisayar veya mini bilgisayar (AS / 400): Orijinal sunucuların, ana bilgisayarların ve daha sonra mini bilgisayarların, istemci sisteme bırakılan bir ekran ve klavye aracılığıyla kullanıcıyla etkileşim dışında neredeyse tüm bilgi işlem görevlerini gerçekleştirdiğini söyleyebilirsiniz.
- Bilgisayar donanım sunucusu: Bir sonraki büyük sunucu dalgası bilgisayar tabanlı sunucuları içeriyordu. Birçok açıdan, bu sunucular daha büyük, daha güçlü masaüstü bilgisayarlardan başka bir şey değildi. Bu tür sunucular genellikle daha pahalıdır ve çoğu istemci bilgisayardan çok daha fazla bellek ve disk alanı barındırır. Her sunucu hala kendi anakartı, işlemcisi, belleği, disk sürücüleri ve güç kaynağı bulunan bağımsız bir birimdi. Bunun gibi sunucular genellikle sunucu odaları olarak adlandırılan klimalı odalarda depolandı ve daha iyi depolama ve erişilebilirlik için raflara cıvatalandı.
- Blade sunucular: Orijinal bilgisayar sunucusu donanımı büyüktü ve yüzlerce kilo tutabilecek raflarda saklandı. Bununla birlikte, zamanla, donanımın daha hızlı bağlanması, sunucunun bazı bağımsız bir aygıttan çıkarılmasına neden oldu. Sabit diskleri çıkararak, dahili soğutmayı ve bilgi işlem parçalarının devam eden minyatürleştirmesini ortadan kaldırarak sunucular sonunda blade sunucusu olarak bilinen tek bir ince sunucuya indirgenmiştir. Sunucu odalarındaki raflarda hala saklanırken, blade sunucular daha küçüktür ve daha kolay değiştirilebilir.
- Sunucuları birleştirme: Sanallaştırmadan önce bile, sunucular bir donanım makinesine kurulan tek bir sunucu işletim sisteminin standart modelinden çıkarılıyordu. Ağa bağlı depolama gibi teknoloji, bir sunucunun kendi depolama alanına sahip olma ihtiyacını ortadan kaldırdı. Yansıtma ve kümeleme gibi diğer teknolojiler, donanım parçalarının daha büyük, daha güçlü sunucularla birleştirilmesini sağladı. Böyle bir sunucu birkaç blade’den, birkaç bağlı depolama aygıtından ve harici bir güç kaynağından oluşabilir ve sunucu çalışırken her bir parça diğeri için değiştirilebilir.
- Sanal sunucular: Sanal Sunucular hala donanım gerektirir, ancak bu donanım artık hipervizör olarak bilinen farklı bir işlem yürütmektedir. Microsoft’un Hyper-V gibi bazı durumlarda, donanımın kendisinde tam bir işletim sistemi çalışmaya devam eder. Diğer durumlarda, çıplak metal hipervizörleri doğrudan sunucu donanımına kurulabilir. Her iki durumda da, donanım genellikle bir dizi blade sunucu, ağa bağlı depolama ve güç kaynağı boyunca yayılır ve bu da herhangi bir sunucunun nerede bittiğini ve diğerinin nerede başladığını söylemenin imkansız olduğu bir ortamla sonuçlanır.
Sunucu İşletim Sistemi Örnekleri
Microsoft Windows sunucuları: Windows for Workgroups’un Microsoft’un ilk sunucu işletim sistemi olduğu iddia edilebilir. Bu sürümde, bazı bilgisayarlar kaynakları paylaşacak ve istemcilerden gelen isteklere yanıt verecek şekilde ayarlanabilir; Microsoft’un ilk gerçek sunucu işletim sistemi Windows NT’ydi. 3.5 ve 3.51 sürümleri, Microsoft bugün varlığını sürdüren Windows Server serisini piyasaya sürene kadar birçok iş ağında çalışıyordu. En güncel Windows Server sürümü Windows Server 2016’dır. Bu sürüm, çok sayıda uygulamayı ve veritabanını ve sanal sunuculara izin veren bir hipervizörü destekler.
Linux / Unix sunucuları: Sunucu işletim sistemlerindeki diğer büyük oynatıcı Linux / Unix alanıdır. Red Hat Enterprise Linux, Debian ve CentOS dahil olmak üzere birçok Linux / Unix sürümü ve çeşidi vardır. Açık kaynaklı bir işletim sistemi olarak Linux, genellikle Apache web uygulama sunucusu kurulu olarak bir web sunucusu olarak çok popülerdir.
NetWare: Artık yapılmamasına rağmen, NetWare, istemci-sunucu dönemi hızlandıkça sunucu yazılım alanında önemli bir oyuncuydu. Sonunda NetWare, sunucu işletim sistemini Linux tabanlı bir çekirdeğe taşıdı ve Novell Open Enterprise Server (OES) olarak adlandırdı.
Bulut sunucuları: İnternet gibi açık bir ağ üzerinde üçüncü taraf bir altyapı üzerinde barındırılan sanal sunuculara bulut sunucuları denir. Bugünlerde Google’ın Cloud Platform, Microsoft Azure ve IBM Cloud dahil olmak üzere çok sayıda bulut sunucusu sağlayıcısı var.
Ancak, kurumsal bulut bilişimin ana öncüsü Amazon’un AWS platformuydu. Başlangıçta Amazon’un kendi sunucularının ve ağlarının yedek kapasitesini kullanmaya başladı, ancak AWS artık müşterilerin neredeyse anında sanal bir sunucu oluşturmasına ve ardından sunucunun anında kullanabileceği kaynak miktarını ayarlamasına izin veriyor.
Günümüzde bir sunucu, birden çok işlemci, disk sürücüsü, bellek ve ağ bağlantısından oluşan fiziksel donanım verilerinden başka bir şey olamaz. Ancak, şimdi bile, bir sunucu hala sadece bir istemcinin isteğine yanıt veren bir sistemdir.