IT’de On-Prem. vs Cloud Teknolojiler

IT’de On-Prem. vs Cloud Teknolojiler

Yazıya başlamadan; bu yazı teknik nitelikte değildir, hiç bir kaynak kullanmadan hazırladım. Yazımda “bulut” kelimesinin ne olduğuna dair fikri olmayanların “bulut” teknolojisini kullanan servislerin, bu teknolojiyi kullanmayanlara göre avantajlarını göz önünde bulundurarak “bulut”un ne olduğuna aşina olmasını hedefledim. Bundan dolayı yer yer teknik İngilizce terimlerin Türkçe çevirilerini yazdım.


IT (Information Technologies): BT yani Bilişim Teknolojileri.

Cloud Computing (Cloud): Türkçesi ile Bulut İşlem, kısaca “Cloud” yada Türkçesi ile “Bulut”. IT Alanında kullanılan bir teknoloji.

On-Prem. (On-Premise): IT’de Cloud teknolojisini kullanmayan servis ve hizmetler.


B ulut kelimesinin bilişimdeki tarihi 1950’li yıllara dayanmaktadır. O yıllarda interneti çağrıştıran bir metafor olarak kullanılıyordu. Ancak günümüzde kullanılan anlamını yakın tarihimiz olan 1990’larda kazandı. Bu yazımızda da bu anlamın bize getirdiği faydalardan bir kaçının, On-Prem teknolojilere göre avantajlarına değineceğiz.

Bu yüzden önce On-Prem teknoloji neler yapıyor, nasıl işliyor önce bunlara bakmakta fayda var.


On-Prem

On-Prem teknolojilere günümüzde hala kullanılmakta olan aslında Cloud teknolojisininde yapıtaşı olan server yani Türkçesi ile sunucular vardır. Server bir client tan yani istemciden gelen isteğe içerisinde bulundurduğu yazılımlar aracılığıyla isteği yorumlayıp geri dönüş yapan, bu iş için özel olarak hazırlanmış bilgisayarlara verilen isimdir.

Client-Server İlişkisi

Kabaca örnek vermek gerekirse;

Günümüzde çoğu bireyin kullandığı mobil uygulamalardan birini ele alalım örneğin Instagram. Biz instagram hesabımıza fotoğraf yüklerken bir client (istemci) oluyoruz. Client olarak son aşamada “Yükle” butonuna tıkladığımız anda, Instagram sunucularına bir request (istek) atmış oluyoruz. Instagram’ın serverları içerisinde bulunan “Instagram Server” yazılımıyla gelen isteği yorumluyor. Buradaki yorumdan kasıt kabaca dosyayı kendi sistemine kaydediyor ve o dosyanın, dosya sistemindeki yoluyla sizin eşsiz kullanıcı numaranızı ilişkilendiriyor ve spesifik bilgilerle (yorum sayısı=0,beğeni sayısı=0, yorum açık=0 gibi bilgiler) birlikte veritabanına kaydediyor. Daha sonra size fotoğrafınızın yüklendiğini anlayabileceğiniz “Yüklendi” gibi bir yanıt dönüyor. Buradaki “Yüklendi” serverın clienta gönderdiği response (yanıt) oluyor. Sunucular kısaca bu işe yarıyor diyebiliriz.


Serverlar birçok clienta response dönmek durumunda kaldığından dolayı, kişisel bilgisayarlardan farklı olarak, sürekli açık kalması ve yüksek işlemcilere, belleklere, disklere ve bant genişliğine sahip olması gerekiyor. Tüm bunlarla birlikte ısınma sorunları da artıyor ve iklimlendirme ihtiyaçları doğuyor. Bunlar da yüksek maliyet demek. Yani kişisel bilgisayarlarımızda kullandığımız donanımlardan daha pahalı donanımlar, sistemlerimize özel iklimlendirme cihazları ve biz bugün evlerimizde en yüksek 100 mbp/s bant genişliğine sahip iken, bu bilgisayarlar en az 100 mbp/s bant genişliğiyle ancak yanıt verebilecek durumda kalabiliyorlar.

Tüm bunlar Data Center yani Veri Merkezlerini devreye sokuyor. Veri merkezlerinin amaçlarından biri, sunucu ihtiyacı olan işletmeler için çözümler üretmek. Bunlar “Sunucu Kiralama”, “VPS Kiralama”, “VDS Kiralama” gibi hizmetler doğuruyor. Küçük bir alan ve donanım ihtiyacı duyanlara VPS yada VDS gibi HyperVisor yazılımları ile kurulan Sanal Makineleri kiralayabiliyorlar. Kabaca veri merkezleri sahibi olduğu sunucuları izole edip müşteri ihtiyacına göre özel alanlar oluşturuyor. Sonuç olarak bir makine üzerinde birden fazla makine görevi gören “sanal işletim sistemleri” kurup, işletmelere kiralıyorlar.

Bu kiralama işlemleri genel olarak aylık fiyatlandırma ile oluyor. İhtiyaç duyduğumuz donanımlara, enerjiye, bant genişliğine, bakıma, alana gibi birçok etkene göre bu fiyatlar değişiklikler gösterebiliyor.


Yazımıza burdan itibaren daha iyi anlaşılması amacıyla bir örnek üzerinden gideceğiz.

Bir üniversitenin otomasyon sistemini ele alalım.

Bu durumda otomasyon yazılımı bir server (sunucu), öğrenciler birer Client (istemci), öğrencilerin yaptığı her request (istek), sunucunun isteklere yaptığı her response (yanıt) oluyor.

Elimizde varsaydığımız altyapı:

Okuldaki Öğrenci Sayısı: 25000

Yazılım: Öğrenci Otomasyon Sistemi

Yazılım Dili: X

OS: X

CPU: X

RAM: X

Bandwidth: X

Sunucuya Gelen İstek Sayısı: 5000 anlık/ortalama

Burada X temsili bir sabit sayı olsun. Öğrenci otomasyon sistemimizde sunucuya aynı anda ortalama 5000 request geliyor ve sunucu bu istek sayısını kusursuz bir biçimde karşılayabiliyor.

  • - Ancak ders seçimi, online sınav, uzaktan eğitim gibi etkinliklerin olduğu günlerde, öğrenciler sisteme bağlanmakta sorun yaşıyor halk deyimiyle “sistem çöküyor”. Sistemsel olarak “ölçeklendirme sorunu” yani server, clientlardan gelen requestlere, response dönerken ağır yük biniyor ve yetersiz kalıyor.
  • + Bu durumda sunucu sayısının artırılması gerekiyor. Yani normalde X dilindeki yazılımın X kadar donanımlar ve X kadar bant genişliği ile karşıladığımız sunucumuza Y kadar donanım ve Y kadar bant genişliği eklememiz gerekiyor. buradaki Y gelen istek sayısına göre değişkenlik gösterebilir.

  • - Peki okul olarak bunu neden yapmıyoruz/yapamıyoruz ?
  • + Yılda 12 ay var, sunucuya ihtiyaç duyulan dönem 8 ay, öğrencilerin 7 ay normal eğitim aldığını varsayarsak öğrenciler 7 ay boyunca derslerle ilgili dökümanlara, akademik belgelerine, transkript gibi kişisel bilgilere ulaşabilmek için aynı anda ortalama 5000 istek atıyor. Sunucuya ihtiyaç duyulan 8 aydan geri kalan 1 ayda ise ders seçimi, online eğitim gibi sebeplerden dolayı yoğun istek geliyor. Aynı yıldaki 12 aydan geri kalan 4 ay, her eğitim/öğretim döneminde tekrar sunucu kurulumları yapmamak için ödeme yaptığımız gibi bu 1 ayda da ekstra ödeme yapmamız gerekecek, yani sadece 1 aylık ihtiyaç için 12 ay boyunca aslında her zaman ödeme yapmak zorunda kalacağız. Bu da bütçemizi aşıyor.

  • Buna bir çözüm yok mu ?

Cloud teknolojinin yüzlerce avantajından sadece bir tanesi de bu.

Bu soruyu yanıtlamadan örneğimize kısa bir ara vererek Cloud teknolojiyi kabaca açıklayalım.


Cloud

Cloud teknoloji On-Prem yani sunuculardaki VPS/VDS mantığıyla çalışır. Cloud sağlayıcı şirket(Amazon AWS, Google Cloud, Microsoft Azure, DigitalOcean vs.) tüm bunların üzerine bir “Cloud Yönetim Arayüzü” bulunan yazılım sunar ve müşteriye ekstra yetkiler verir. Bu yazılımla müşteriler istediği zaman sanal sunucu oluşturabilir, istediği zaman bu sunucuları açıp kapatabilir ve yeniden başlatabilir. Böylelikle disk dışındaki diğer donanımları kullanmadığı zamanlarda tüketmez. Şirket burada “kullandığın kadar öde” satış modelini kullanmış olur. Bu da sunucu ihtiyacı duyan işletmelere büyük fayda sağlar.

Şimdi örneğimizden yola çıkarak son soruyu cevaplayalım.

  • Çözümü var, cloud teknolojiye geçmek.

Şimdi örneğimizi cloud teknolojiye migrate ettiğimizi (taşıdığımızı) varsayalım;

Önceden otomasyon sistemimizi barındıran sunucunun donanımlarını 5000 olan ortalama isteğe göre kurduğumuz gibi burada da yine kuruyoruz ve aynı disk üzerinde bulunan veritabanına bağlı olacak şekilde 25000 öğrencinin aynı anda istek attığını varsayarak sanal sunucular kurup, X kadar sunucuyu açık bırakabilir, isteklerin arttığı dönemlerde Y kadar sunucuyu dakikalar içerisinde açabiliriz. Bu dönemleri atlattıktan sonra Y kadar sunucumuzu yine dakikalar içerisinde kapatabiliriz. Cloud sağlayıcılar bu hizmette (örneğin Amazon için “Elastic Compute 2”) “kullandığın kadar öde” satış modelini kullanıyor. Böylelikle sadece 1 aylık bir ödeme yapabilir ve her eğitim/öğretim döneminde tekrar bu kurulumları yapmak zorunda kalmayız. Bu yazımızda Cloud teknolojinin yüzlerce faydasından sadece iki tanesi olan “Yüksek Ölçeklenebilirlik” ve dolayısıyla gelen “kullandığın kadar öde” satış modelinin avantajlarını örnek göstererek Cloud’un, On-Prem’e göre farklarından bahsetmeye çalıştık.


Cloud teknoloji günümüzde de gelişmeye devam ediyor ve cloud teknolojinin alt teknolojileri çıkıyor bunların şu sıralar en gözde olanı serverless (sunucusuzluk) teknolojisi. Bu teknoloji, yazımızdaki örnek için çok daha büyük bir avantaj. Bir sonraki yazımda bunu anlatmayı hedefliyorum.