Cloud Computing 101

Cloud-computing (Bulut bilişim) son yıllarda giderek artan bir şekilde aktif olarak kullanılmaya başlanan bir hizmetler bütünü. Web üzerinden compute, storage, database ve networking gibi hizmetleri, talep bazlı ve kullandığın kadar öde mantığıyla sunan sistemlere genel olarak bulut bilişim hizmetleri deniyor.

Temel olarak bulut hizmetlerini 3 grup altında toplayabiliriz.

  • IaaS (Infrastructure as a Service) : IT altyapısı için temel yapı taşlarını içeren hizmetlerdir. Örn. Aws EC2
  • PaaS (Platform as a Service) : IT altyapısına ek olarak işletim sistemleri yönetimi, web server, execution environment ihtiyaçlarını da giderir. Örn. Aws ElasticBeanstalk
  • SaaS (Software as a Service) : Hizmet sağlayıcısı tarafından çalıştırılan ve yönetilen yazılımlara denir. Örn. Microsoft Office 365
İstanbuldan geçen bulutlar, 2019.

Neye yarıyor bu bulut bilişim tam olarak şimdi?

Bulut bilişim’in çözüm ürettiği sorunlardan biri maliyet. Diyelim ki bir fikriniz var ve bunu canlı sistemler üzerinden denemek ve insanların geri bildirimlerini almak istiyorsunuz. Bunu yapabilmek için öncelikle bir sunucuya ihtiyacınız olacak. Bir sunucu satın almak ve geliştirmekte olduğunuz uygulamanızın yanında sunucu bakım ve masraflarını da yönetmek gibi sorumluluklarınız bulut bilişim hizmetleriyle ortadan kalkıyor. Bunun yerine bir web arayüzü veya komut satırı üzerinden bir sunucu kiralamak ve uygulamaları bu sunucu üzerine deploy etmek oldukça kolay ve sadece kullandığınız kadarını ödediğiniz için de ucuz hale geliyor. Yeni bir girişim hayali olan insanlar için en azından test aşamasında yüksek ölçekli sermaye ihtiyacı ortadan kalkmış oluyor.

Veya diyelim ki çalıştığınız şirkette ek bir sunucu ihtiyacı doğdu. Bu sunucunun günler, haftalar öncesinden planlanması ve siparişinin verilmesi gerekiyor. Ayrıca sunucu bakımı ve yönetimi de şirketin sorumluluğunda olacak. Bunları dakikalar hatta saniyeler seviyesine indirebilmek mümkün hale geliyor.

Bulut hizmetlerin bir diğer önemli faydası çeviklik. Burada kastettiğim çeviklik değişen şartlara göre sistemi hızlı ve kolay bir şekilde düzenleyebiliyor olmak.

Örneğin belirli saatlerde sistemlerinize gelen istek sayılarında ciddi bir yükseliş var. Gerekli konfigürasyonlar yapıldığı takdirde sistem otomatik olarak hem horizontal hem de vertical olarak scale edilebilir.

Bazı terimleri Türkçe’ye çevirmeye çalışmamak belki de en doğrusu. Horizontal scaling ve vertical scaling için bir karşılık bulamadım 🙂

  • Horizontal scaling: Kapasiteyi daha fazla makine ekleyerek arttırmak.
  • Vertical scaling: Kapasiteyi mevcut sisteme (CPU, RAM vb.) kaynak ekleyerek arttırmak.

Veya geceleri sisteminizin kullanım oranı gündüz saatlerine göre düşük. O zaman kullanılmayan sistem kaynakları için de maliyet söz konusu. Aynı şekilde sistemin konigürasyonlarını ayarladıktan sonra bu gibi gereksiz masraflardan kurtulabilmek çok kolay.


Peki mevcut uygulamalarımızı bulut’a taşıyınca tüm sorunlarımız kendiliğinden çözülecek mi?

Hayır.

Uygulamaların bulut bilişim pratiklerine uygun tasarlanması gerekiyor.

Monolithic bir uygulamayı buluta taşımak sadece belki sunucu maliyetleri düşürür. Halbuki bulut bilişim’in sağladığı faydalar sadece maliyet ile sınırlı değil. Artık kullanıcılar 7/24 online olan sistemler istiyor; planlı veya plansız herhangi bir kesinti hem bizler için zarar hem de müşteri memnuniyeti açısından kabul edilemez bir durum. Değişen şartlara hızlı uyum sağlamak işin bir diğer boyutu.

Önemli olan mevcut yapıyı olduğu gibi bulut’a taşımak değil; microservice mimarisine ve cloud tasarım desenlerine uygun sistemler geliştirebilmek.

Cloud-native software is designed to anticipate failure and remain stable even when the infrastructure it’s running on is experiencing outages or is otherwise changing.

Cloud Native Patterns, Cornelia Davis

Giderek yaygınlaşan cloud teknolojilerine ayak uydurmak artık kaçınılmaz. Bunu yaparken de beklenmedik altyapı kesintilerinden etkilenmeyecek, değişime hızlı cevap verebilen cloud-native sistemler tasarlamak yapılması gereken işlerin en önemlisi.

1 thought on “Cloud Computing 101”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s