AWS - Amazon Web Services, GCP - Google Cloud Platform, Microsoft Azure... 3 büyük bulut sağlayıcı. Bulut bilişim konusu biliyorsunuz çok revaçta. Geliştiricilier, proje yöneticileri ve hatta siyasetçiler bile buluttan bahsediyor. İlk başta göze korkutucu geliyor. Bulut bilişim ile ilişkili ve bir manada o sayede mümkün bir çok yeni kavram var. Bahsettiğimiz 3 büyük sağlayıcının her biri yüzlerce farklı servis sunuyor. Tüm detayları konuşmak mümkün değil elbet ama yok mu bu konuya giriş yapmanın, detaylı olarak incelemeden önce ana hatlarıyla konuyu akılda oturtmanın bir yolu ? Bu yazımızda bunu deneyeceğiz.
Nedir bu Bulut Bilişim ?
Gelin önce şu "servis" kelimesinden bahsedelim. Çok geniş anlamda kullanılıyor ancak şu yaygın tanımı tam da konumuza göre: "Taşıma, iletişim, elektrik, gaz vb gibi temel ortak ihtiyaçları herkese açık olarak veren sistemler". Elektrik ve gaz kısmını boşverirsek (hele 1 ocak sonrası) bu tanım şu önemli 2 özelliği öne çıkarıyor:
- O sistem zaten orada var; kurmak, işletmek ve bakımını yapmak zorunda değilsiniz
- Erişim herkese açık ve çoğunlukla kullandığınız kadar ödüyorsunuz (pay as you go)
Aslında çok da tanıdık bir kavram. Örneğin evde yemek yapmak yerine dışarıdan sipariş verdiğinizde "yemek servisi" almış oluyorsunuz. Yada bir çamaşır makinası alıp kurmak ve bakımıyla uğraşmak yerine çamaşırhaneden "çamaşır yıkama servisi" alabilirsiniz.
Bulut denince sonu "aaS" ile biten birçok kısaltma görüyor olabilirsiniz, "as a Service" kısmını "servis olarak" şeklinde çevirebiliriz: "servis olarak X". Biz de "Servis olarak Yemek" = "YaaS", "Servis olarak Çamaşır Yıkama" = "ÇYaaS" şeklinde kısaltmalar uydurabiliriz. Yıkadığınız çamaşırın kilogramına göre ödeyin, benzer şekilde yediğiniz dönerin gramı kadar ödeyin yeterli. Bulut Bilişim aslında tam da bu: bilgi işlem ihtiyaçlarınızı "as a service" yani servis olarak; ilk kurulum maliyeti olmadan, ilgili bakımları siz yapmak zorunda kalmadan ve kullandığınız kadar ödeyerek almanız.
On-Prem, IaaS, PaaS, SaaS
Bulut; bilgi işlem ihtiyaçlarını servis olarak karşılamayı sağlıyor. Bu biraz bulanık bir ifade. Bilgi işlem ihtiyaçlarınız neler olabilir ve bunlar hangi seviyede karşılanabilir ? Yaygın kabul gören 3 seviyeden veya daha sık kullanılan ismiyle 3 modelden bahsedebiliriz. Bu arada sık karşılaştığımız bir diğer terim "On-Prem" (kısaca On-Premise yani "Yerinde") veya "On-Site" (Sahada). On-Prem bütün bilgi işlem altyapısı ve ihtiyaçlarının kurum içinde yani yerinde karşılandığı, bildiğimiz model.
Bu konuda hemen her yerde görebileceğiniz yukarıdaki görsel bilgi işlem ihtiyaçlarını katmanlamış.
Network, Depolama (Storage) ve Sunucular (Servers veya Compute) fiziksel altyapı. Ağ ekipmanları (hub/switch), depolama diskleri, sunucu donanımları ve bunlar için gerekli bina, dolap, kablolama vb. bu katmanda. Binanın fiziksel güvenliğinden tutun, soğutulmasına kadar her türlü bakım ve işletme maliyeti bu katmanda yer alıyor.
Sanallaştırma (Virtualization) bu konunun anahtarı. Fiziksel altyapıdaki ayrı ayrı kaynakları büyük tek bir kaynak gibi yönetmemizi sağlıyor. Örneğin 1TB kapasiteli 10 ayrı disk yerine tek bir 10TB kapasiteli disk veya 8 çekirdekli CPU içeren 10 ayrı sunucu yerine 80 çekirdekli tek bir sunucu varmış gibi kaynakları yönetmemizi sağlayan bu katmandaki teknolojiler. 10TB sanal diskin 100GB kadarını bir işe, 4 çekirdekli CPU kapasitesitesini bir işe tahsis etmemizi sağlıyor bu teknolojiler. Bu yazıda sanallaştırmanın detaylarına girmeyelim (ama güzel bir yazı konusu olurdu).
İşletim Sistemi (OS) ve Çalışma Zamanı (Runtime) ise yazılım seviyesinin alt katmanı, uygulamaların üzerinde çalıştığı katman. İşletim sistemlerini örneklemeye gerek yok ancak Çalışma Zamanı tanımı içine örneğin web uygulama sunucuları (Apache, JBoss, WildFly, Microsoft için IIS) veya JVM, Python gibi platformlar örnek olarak verilebilir. Bu katmanın aynı zamanda son dönemin büyük değişimlerinden container (Docker olarak biliyor olabilirsiniz) kavramının olduğu katman olduğunu söyleyelim. İşletim sistemleri ve çalışma zamanı bileşenlerini (ve kütüphanelerini) güncel tutmak bu katmanın maliyeti.
Uygulamalar (Applications) ve Data (Veri) yazılım seviyesinin üst katmanı ve totalde kullanıcılara yönelik en üst katman. Yazılım geliştirme yaşam döngüsü (SDLC) içindeki analiz, tasarım, gerçekleme, test, devreye alma ve destek faaliyetlerinin tümü bu katmanda.
Bu aşamada bilgi işlem ihtiyaçlarımızı grupladık, bu bölümün girişindeki ilk soruya cevap verdik: fiziksel katman, sanallaştırma, yazılım altyapı ve uygulama katmanı. Peki bunlar hangi seviyelerde servis olarak alınabilir ?
- IaaS: Intrastructure as a Service (Servis olarak Altyapı): Fiziksel altyapı ve sanallaştırmanın servis olarak verildiği model. Fiziksel her türlü kaynağın yönetimi ve işletilmesi bulut sağlayıcının sorumluluğunda. Kullanım açısından en esnek model, hangi kaynağın nasıl kullanılacağına kadar denetim sizde ancak daha çok uzmanlık ve iş gücü gerektiriyor.
- PaaS: Platform as a Service (Service olarak Platform): İşletim sistemi ve çalışma zamanı bileşenlerinin (veya container'ların) servis olarak sağlandığı model. Bunları güncel tutma ve yedekleme sorumluluğu bulut sağlayıcıda. Siz uygulamalarınızı ve süreçlerinizi geliştiriyorsunuz. IaaS'a göre esnekliği daha az; işlemci, disk vb seviyesinde kaynak yönetimi sizin kontrolünüzde değil ama daha az uzmanlık ve iş gücü gerektiriyor.
- SaaS: Software as a Service (Service olarak Yazılım): Aslında hepimizin bütün bu bulut bilişim furyası çıkmadan önce aşina olduğu model. GMail veya Hotmail hesabınız (kurumsal veya kişisel) varsa kullandığınız model bu. Uygulama ve verisi tamamen servis sağlayıcının sorumluluğunda, siz kullanıcısınız.
Peki size hangi model uygun ?
Bu tamamen kurumunuzun büyüklüğüne, ihtiyaçlarınıza ve ekibinizin yetkinliklerine bağlı. Örnekleyelim:
Hepimiz
kişisel olarak SaaS modelindeki eposta servislerinin kullanıcısıyız.
Eposta uygulamasının ne kadar depolama alanına ihtiyaç duyduğu veya kaç CPU
çekirdeği gerektirdiği ile ilgilenmiyoruz. İhtiyacınız çalışanlarınızın iletişim için kullanacakları email, takvim, anlık mesajlaşma, dosya paylaşımı, ofis vb hazır uygulamalar ise siz zaten bu yazıda kullandığımız manada bulut bilişim kullanıcısı değilsiniz. İhtiyaç duyduğunuz yazılımları "kullandığın kadar öde" şeklinde kullanmanız mantıklı görünüyor.
Sizin bir geliştirme ekibiniz var ve onların geliştirdikleri uygulamaları çalıştıracakları bir altyapı lazım ama ağ, veri tabanı vb sistem yönetimi işlevlerine ihtiyacınız ve bunlarla ilgilenecek ekibiniz yok. Bu durumda PaaS sizin için uygun olabilir.
Çok daha büyük bir kurumsunuz; analistleriniz, geliştiricileriniz; ağ, veritabanı ve sistem yöneticileriniz var; kurum içi ve dışı çok sayıda projeniz var. Paket yazılım olarak kullandıklarınız, kendinize uygun olarak geliştirdikleriniz ve bunların entegrasyonları için depolama, işlem gücü ve network seviyesinde esnekliğe ihtiyacınız var ama fiziksel olarak sunucu almak, kablolamak vb uğraşmak istemiyorsunuz. Evet tahmin ettiniz, IaaS size uygun gibi görünüyor. Hatta siz kaynakların bir kısmının on-prem bir kısmının servis sağlayıcıda olduğu hibrid bulut modelini de değerlendirebilirsiniz.AWS, GCP, Azure diye başlamıştık...
- Network: Yalıtılmış, her kiracının (tenant) tamamen kendisine ait kendi adres uzayı olan ve alt ağlara (subnet) bölebildiği sanal ağ hizmeti.
- Computing: İşlem / işlemci (CPU olarak) ve bellek kapasitesinin sanal makineler olarak sağlandığı işlem gücü hizmeti.
- Storage: Depolama (yapısal ve yapısal olmayan - block ve file) hizmeti.
Bu üç servis sağlayıcıyı örneğin ülkemizdeki Turkcell gibi sağlayıcılardan (ve IBM, Oracle vb daha küçük sağlayıcılardan) ayıran temel özellik IaaS seviyesindeki tüm bu hizmetleri web üzerinden bir arayüz ile sağlamaları. Sadece tarayıcınızdan, ek hiçbir yazılım kurmadan tüm bu kaynakları 'tıklayarak' yönetebilmek gerçekten büyük kolaylık ve her üç sağlayıcının devasa "web yönetim konsolları" var.
AWS, GCP ve Azure tabii ki IaaS seviyesinde kalmıyor, neden kalsınlar ki ? Dünya üzerinde coğrafi olarak farklı kıtalarda çok sayıda veri merkezine yayılmış fiziksel altyapıları var. Bu altyapıyı direk olarak konsolları ile kullandırdıkları gibi bu altyapı üzerinde PaaS seviyesinde sağladıkları bir çok servis de var.
Dolayısı ile AWS, GCP ve Azure hem IaaS hem PaaS sağlayıcılar. Aslında onları çekici yapan PaaS seviyesinde sağladıkları çok geniş bir kapsama yayılmış servisler. Yazımızın son kısmında biraz bundan bahsedelim ve artık vedalaşalım.
HaaS! - Her şey as a Service!
- NaaS (Network) - Servis olarak Ağ: Ağlar, alt ağlar, public/private IP adresler, bunlara erişim kuralları vb ağ ile ilgili her şeyi yapabildiğimiz servis
- DBaaS (Database) - Servis olarak Veritabanı: İlişkisel (RDBMS) ve/veya NoSQL veritabanınızı seçin; yedekleme, güncelleme vs tamamen servis sağlayıcının sorumluğu, sadece yazın ve okuyun
- FaaS (Function) - Servis olarak Fonksiyonlar/Kod: Serverless mimariye göz kırpıyoruz, bir istek geldiğinde çalışacak kodu sağlıyorsunuz o kadar; üzerinde çalışacağı donanım, çalışma zamanı, eş zamanlı 1 tane istek de gelse 1 milyon istek de gelse gerekli ölçekleme servis sağlayıcıda
- Hatta MLaaS (Machine Learning) - Servis olarak Makine Öğrenmesi: ML algoritmaları bunların üzerinde çalıştığı tüm alt yapı servis sağlayıcıda, girdiyi verin çıktıyı alın
- Hatta ve hatta AIaaS (Artificial Intelligence) Servis Olarak Yapay Zeka: Görüntü, ses ve metin işleme için hazır Yapay Zeka modelleri servis sağlayıcıda, girdiyi verin çıktıyı alın
- IoTaaS (IoT - Internet Of Things) - Servis olarak Nesnelerin İnterneti: IoT cihazlarının bağlanacağı tüm alt yapı, mesaj kuyrukları, onları işleme ve gruplama için gerekli olan her şey servis sağlayıcıda, siz cihazlarınızı bağlanmak için ayarlıyorsunuz hepsi bu
vb direk son kullanıcıyı değil ancak yazılım geliştiricileri hedefleyen ve PaaS ile SaaS arasına konumlandırabileceğimiz çok sayıda servis AWS, GCP ve Azure tarafından sağlanmakta. Bütün bunlara bir bütün olarak X as a Service - XaaS deniyor.
Özet
Bulut bilişim; bilgi işlem ihtiyaçlarınızı, fiziksel altyapıdan hazır yazılım seviyesine kadar servis olarak elde edip kullanabildiğiniz bir ekonomik modelin adı. Yukarıda bahsettiğimiz üzere farklı seviyelerde servis almak mümkün. AWS, GCP ve Azure temel ihtiyaçlar açısından muadil servisler sağlıyorlar. Bu üç dev yanında yerel ve global ölçekte başka sağlayıcılar da var. On-Prem kaynaklarla bulut sağlayıcılar üzerindeki kaynakları birleştiren hibrit modeller de mevcut.
Sağlayıcılardan birini ve alacağınız hizmetlerin seviyesini seçmek ise tamamen ihtiyaçlarınıza ve yetkinliklerinize bağlı ve yasal düzenlemeler (örn KVKK - Kişisel Verilerin Korunması Kanunu) de seçiminizde etkili olabilir.
Yorumlar
Yorum Gönder