Bulut Tabanlı Uygulamalar

menu icon

Bulut Tabanlı Uygulamalar

Bulut tabanlı uygulamaları ve bu uygulamaların işletmenize nasıl inovasyon ve hız sağladığını keşfedin.

Bulut tabanlı nedir?

Bulut tabanlı, bir uygulamanın bulunduğu yerden çok uygulamanın nasıl oluşturulduğu ve devreye alındığını ifade eder.

  • Bulut tabanlı bir uygulama, herhangi bir bulut ortamına entegre olmak üzere tasarlanmış mikro hizmetler olarak bilinen, ayrı, yeniden kullanılabilir bileşenlerden oluşur.
  • Bu mikro hizmetler yapıtaşı işlevi görür ve genellikle konteynerlerde sunulur.
  • Mikro hizmetler, bir uygulama oluşturacak şekilde bir bütün olarak birlikte çalışır, ancak, her biri bağımsız olarak ölçeklenebilir, sürekli olarak iyileştirilebilir ve otomasyon ve düzenleme süreçleri aracılığıyla hızla yinelenebilir.
  • Her bir mikro hizmetin esnekliği, bulut tabanlı uygulamaların çevikliğine ve sürekli olarak iyileştirilmesine katkıda bulunur.

Andrea Crawford "What is Cloud Native?" (4:36) adlı videoda bazı temel kavramlara ilişkin genel bir bakış sunuyor:

Ayrıca, "Everything Cloud Native" adlı yedi bölümlük bir mini diziyi içeren IBM Cloud Pod Yayınını da keşfedebilirsiniz.

Mikro hizmetler ve konteynerler

Mikro hizmetler (mikro hizmet mimarisi olarak da adlandırılır) tek bir uygulamanın birçok küçük, gevşek olarak bağlanmış ve bağımsız olarak devreye alınabilen bileşenlerden ya da hizmetlerden oluştuğu mimari bir yaklaşımdır. Bu hizmetler (mikro hizmetler olarak da adlandırılır) veritabanını ve veri modelini de içeren genellikle kendi teknoloji yazılım demetlerine sahiptir ve REST API'leri, olay akışı ve mesaj aracılarının bir araya gelmesiyle birbirleriyle iletişim kurarlar.

Mikro hizmetler, birbirini etkilemeden ya da son kullanıcı deneyimini kesintiye uğratmadan bağımsız olarak devreye alınabildiği ve yeniden devreye alınabildiği için sürekli entegrasyon/sürekli devreye alma (CI/CD) ya da DevOps gibi otomatik, yinelemeli teslim yöntemleriyle mükemmel uyum sağlar.

Mikro hizmetler tam olarak yeni bulut tabanlı uygulamalar oluşturmanın yanı sıra, geleneksel tek parça uygulamaları modernleştirmek için de kullanılabilir.

Kısa bir süre önce BT yöneticileri, geliştirici yöneticileri ve geliştiricilerin katılımıyla gerçekleştirilen bir IBM araştırmasında, mikro hizmet kullanıcılarının %87'si mikro hizmet kullanımına geçmenin masrafa ve zahmete değer olduğunu kabul ediyor. Aşağıdaki interaktif aracı kullanarak katılımcıların mikro hizmetlerin avantajlarına ve zorluklarına ilişkin bakış açıları hakkında ek bilgi edinebilirsiniz:

(Kaynak: 'Microservices in the enterprise 2021: Real benefits, worth the challenges'.)

Geliştiriciler mikro hizmetleri genellikle konteynerlerde, yani uygulama kaynak kodunu (bu durumda mikro hizmet kodunu) birleştiren basit, yürütülebilir uygulama bileşenlerinde devreye alırlar. Kodu her türlü ortamda çalıştırmak için gereken bütün işletim sistemi (OS) kitaplıkları ve bağımlılıkları da mikro hizmetlerle birlikte konteynerlerde devreye alınır. Sanal makinelerden daha küçük, kaynak kullanımı daha düşük ve daha taşınabilir nitelikte olan konteynerler, modern bulut tabanlı uygulamaların fiili hesaplama birimleridir.

Konteynerler, hibrit çoklu bulut ortamı genelinde tutarlı bir devreye alma ve yönetim deneyimi sağlayarak mikro hizmetlerin avantajlarını büyütür. Bu ortamlar genel bulutları, özel bulutu ve şirket içi altyapıyı içerir. Ancak bulut tabanlı uygulamalar çoğaldıkça konteynerler ve bunların yönetimindeki karmaşıklık da artar. Konteynerleştirilmiş mikro hizmetler kullanan çoğu kuruluş, konteyner devreye alımını ve yönetimini uygun ölçekte otomatikleştirmek için aynı zamanda Kubernetes gibi bir konteyner düzenleme platformu da kullanır.

Konteynerler ve konteynerleştirmeyle ilgili ek bilgi için bkz. "Containers: A Complete Guide" ve "Containerization: A Complete Guide".

Mimari bir yapı olarak mikro hizmetleri ve konteynerleri neden kullanmanız gerektiği hakkında daha fazla bilgi edinin.

Avantajları ve dezavantajları

IBM müşterileri mevcut uygulamaları iyileştirme, yeni uygulamalar oluşturma ve kullanıcı deneyimini geliştirme konusunda kendilerine gittikçe daha fazla iş düştüğünü fark ediyor. Bulut tabanlı uygulamalar uygulama performansını, esnekliği ve genişletilebilirliği artırarak bu talepleri karşılıyor.

Avantajları

  • Bulut tabanlı uygulamaların yönetimi, Çevik ve DevOps süreçlerinin kullanımıyla ortaya çıkan yinelenen iyileştirmeler sayesinde geleneksel tek parça uygulamalara göre daha kolay olabilir.
  • Tek tek mikro hizmetlerden oluşan bulut tabanlı uygulamalar, sürekli olarak yeni ve iyileştirilmiş uygulama özellikleri eklenmek üzere adım adım ve otomatik olarak iyileştirilebilir.
  • İyileştirmeler son kullanıcı deneyiminde herhangi bir kapalı kalma süresine ya da kesintiye yol açmadan kesintisiz olarak gerçekleştirilebilir.
  • Yatay ve dikey ölçekleme bulut tabanlı uygulamaların temelini oluşturan esnek altyapı sayesinde daha kolay hale gelir.
  • Bulut tabanlı geliştirme süreci, günümüz iş ortamının gerektirdiği hız ve inovasyona daha iyi uyum sağlar.

Dezavantajları

  • Mikro hizmetler uygulama geliştirmeye yönelik yinelemeli bir yaklaşıma olanak tanısa da aynı zamanda daha fazla öğenin yönetilmesini de gerektirir. Büyük bir uygulama yerine, çok daha küçük ve ayrı hizmetleri yönetmek gerekli hale gelir.
  • Bulut tabanlı uygulamalar, DevOps veri hattını yönetmek, geleneksel izleme yapılarını değiştirmek ve mikro hizmet mimarisini denetlemek için ek araç kümeleri gerektirir.
  • Bulut tabanlı uygulamalar, hızlı geliştirme ve devreye alma olanağı sağlar, ancak, aynı zamanda bu inovasyon hızıyla baş edebilen bir iş kültürü de gerektirir.

Uygulama örnekleri

Bulut tabanlı uygulamalarda genellikle oldukça belirli işlevler bulunur. Bulut tabanlı uygulamaların bir seyahat web sitesinde nasıl kullanılabileceğini düşünün. Bu sitede yer alan uçuşlar, oteller, arabalar, özel teklifler gibi her bir konu sitenin kendi mikro hizmetidir. Her bir mikro hizmet, diğer mikro hizmetlerden bağımsız olarak yeni özellikler çıkarabilir. Özel teklifler ve indirimler de bağımsız olarak yatay ölçeklenebilir. Seyahat sitesi müşterilere bir bütün olarak sunulurken, her bir mikro hizmet bağımsız olarak kalır ve diğer hizmetleri etkilemeden gerektikçe ölçeklenebilir ya da güncellenebilir. Aşağıda, diğer bulut tabanlı uygulamalara ilişkin birkaç örnek bulunmaktadır:

IBM Cloud Garage, IBM müşterilerine ölçeklenebilir, yenilikçi bulut tabanlı uygulamaları hızla oluşturma konusunda danışmanlık uzmanlığı sağlar. Ölçeği ne olursa olsun her türlü işletmenin, gerçek dünyadaki iş ihtiyaçlarını karşılayan uygulamalar tasarlayabileceği ve oluşturabileceği bir inovasyon merkezi sunar.

American Airlines (2:50) IBM ile işbirliği yaparak sert hava koşullarında devreye giren Dynamic Rebooking uygulamasını geliştirdi. Uygulama, kullanıcılara daha fazla bilgi ve daha iyi bir yeniden rezervasyon süreci sağlayarak müşteri deneyimini iyileştirdi.

Eğitim amaçlı bir analitik platformu olan XComp Analytics'in (1:56) bir analitik sorununu çözmesi gerekiyordu; ancak, şirket tek bir sorunu düzeltmeye yönelik süreçte IBM Cloud Garage ile çalışmaya başladıktan sonra altı yeni ürün geliştirmeyi başardı. Çözümde, belirli analitik sorunlarını çözmek için mikro hizmet mimarisi kullanıldı ve IBM Watson eklendi.

UBank'ın (2:45) kendi ev kredisi olanağını iyileştirme ve müşterilerin ev kredisi sürecini tamamlamasına yardımcı olmaya yönelik bir iş gereksinimi vardı. Şirketin akıllı asistan uygulaması olan RoboChat, bu ihtiyaca yanıt verdi ve IBM DevOps araç zinciri kullanılarak oluşturuldu. RoboChat kullanan müşterilerin ev kredisi sürecini tamamlama oranı %15 daha yüksek oldu.

Tıbbi araştırmaların önemli amaçlarından biri de doktorlara hasta bakımıyla ilgili en iyi uygulamalar konusunda tavsiyede bulunmaktır. Ancak, en iyi uygulamaları ortaya koyan tıbbi araştırmaların gerçek tıbbi pratiklere dahil olması 17 yıl sürüyor. ThinkResearch (2:06) bakım noktasında en iyi tıbbi bilgileri sağlamak için IBM Cloud'u kullanıyor. ThinkResearch DevOps ekibi, IBM Cloud altyapısını ve yönetilen Kubernettes hizmetlerini kullanarak altyapı yerine inovasyon ve hasta bakımına odaklanabiliyor.

Geliştirme ilkeleri

Geliştiriciler ister yeni bir bulut tabanlı uygulama oluşturuyor olsun, isterse var olan bir uygulamayı modernize ediyor olsun, tutarlı bir dizi ilkeye bağlı kalır:

  • Mikro hizmet mimari yaklaşımını takip edin: Uygulamaları mikro hizmetler olarak bilinen tek işlevli hizmetler halinde parçalara ayırın. Mikro hizmetler gevşek olarak bağlıdır, ancak, bağımsız kalmaya devam eder; böylece bir uygulamanın kapalı kalma süresine yol açmadan adım adım, otomatik ve sürekli olarak iyileştirilmesine olanak tanır.
  • Maksimum esneklik ve ölçeklenebilirlik için konteynerlerden yararlanın: Konteynerler, yazılımı bütün kod ve bağımlılıklarıyla birlikte tek bir yerde sunarak yazılımın her yerde çalışmasına olanak tanır. Bu, çoklu bulut ortamında esneklik ve taşınabilirlik sağlar. Konteynerler, kullanıcı tarafından tanımlanan Kubernetes düzenleme ilkeleriyle hızlı yatay ve dikey ölçekleme olanağı da sağlar.
  • Çevik yöntemler kullanın: Çevik yöntemler, oluşturma ve iyileştirme sürecini hızlandırır. Geliştiriciler kullanıcıların geribildirimlerine göre güncellemeleri hızla yineleyebilir. Bu sayede çalışan uygulama sürümünün son kullanıcı beklentilerine mümkün olduğunca yaklaşması sağlanır.

Depolama

Bulut tabanlı uygulamalar, genellikle konteynerlere dayanır. Konteynerlerin cazibesi, esnek, basit ve taşınabilir olmalarından kaynaklanır. Konteynerlerin kullanımı başlangıçta kullanıcı verilerinin kullanıcı oturumları arasında kaydedilmesini gerektirmeyen, durum bilgisi olmayan uygulamalara odaklanma eğilimi gösteriyordu.

Ancak, buluta taşınan temel iş işlevlerinin sayısı arttığı için kalıcı depolama sorunu bulut tabanlı bir ortamda ele alınmalıdır. Bu, geliştiricilerin bulut depolamaya yaklaşmak için yeni yollar bulmasını gerektirir.

Tıpkı bulut tabanlı uygulama geliştirmenin bir mikro hizmet yaklaşımı ve modüler bir yaklaşım benimsemesi gibi bulut tabanlı depolama da bu yolu izlemelidir. Bulut tabanlı veriler, olay ya da sistem log'ları, ilişkisel veritabanları ve belge ya da nesne depoları gibi sayısız yerde bulunabilir.

Veri konumu, saklama talepleri, taşınabilirlik, platform uyumluluğu ve güvenlik, geliştiricilerin bulut tabanlı depolamayı planlarken göz önünde bulundurması gereken özelliklerden yalnızca birkaçıdır.

IBM Cloud Object Storage platformunun bulut tabanlı uygulamalar için nasıl kalıcı bir veri deposu oluşturduğunu keşfedin.

Bulut tabanlı ve geleneksel uygulamaların karşılaştırılması

Bulut tabanlı ve Bulut destekli

Bulut destekli bir uygulama, geleneksel bir veri merkezinde devreye alınmak üzere geliştirilmiş, ancak daha sonra bir bulut ortamında çalışabilecek şekilde değiştirilmiş bir uygulamadır. Ancak, bulut tabanlı uygulamalar yalnızca Bulutta çalışmak üzere oluşturulmuştur. Geliştiriciler bulut tabanlı uygulamaları ölçeklenebilir, platformdan bağımsız ve mikro hizmetlerden oluşacak şekilde tasarlar.

Bulut tabanlı ve Buluta hazır

"Buluta hazır" teriminin anlamı bulut bilişimin kısa tarihi boyunca birkaç kez değişti. Başlangıçta bu terim internet üzerinde çalışmak üzere tasarlanmış hizmetler ya da yazılımlar için kullanılıyordu. Bu terim günümüzde daha çok bulut ortamında çalışan bir uygulamayı ya da bulut ortamı için yeniden yapılandırılan geleneksel bir uygulamayı tanımlamak için kullanılıyor. Geçmişi çok daha kısa olan "bulut tabanlı" terimi ise başından itibaren sadece bulutta çalışmak ve bulut mimarisinin özelliklerinden yararlanmak üzere geliştirilen bir uygulama ya da bulut tabanlı ilkelere göre iyileştirilen ve yeniden yapılandırılan var olan bir uygulamaya atıfta bulunur.

Bulut tabanlı ve Buluta dayalı

Buluta dayalı bir hizmet ya da uygulama internet üzerinden sağlanır. Çok sayıda bulut olanağını serbestçe ifade etmek için kullanılan genel bir terimdir. Bulut tabanlı ise daha özel bir terimdir. Bulut tabanlı, bulut ortamlarında çalışmak üzere tasarlanmış uygulamaları tarif eder. Bu terim, mikro hizmetlere, sürekli entegrasyon ve sürekli teslime (CI/CD) dayanan ve her türlü bulut platformu aracılığıyla kullanılabilen uygulamaları ifade eder.

Bulut tabanlı ve Bulut öncelikli

Bulut öncelikli, kuruluşların yeni BT hizmetlerini başlatırken, var olan hizmetleri yenilerken ya da eski teknolojiyi değiştirirken öncelikle bulut kaynaklarını kullanma taahhüdünde bulunduğu bir iş stratejisini ifade eder. Bu stratejiye maliyet tasarrufu ve operasyonel verimlilikler yön verir. Bulut tabanlı uygulamalar, yalnızca bulut kaynaklarını kullandığından ve bulut mimarisinin yararlı özelliklerini kullanacak şekilde tasarlandığından, bulut öncelikli stratejiyle iyi uyum sağlar.

Bulut tabanlı ve IBM

Daha zahmetli kullanıcı beklentilerinin karşılanması doğru mimarilerin, uygulamaların ve teknolojilerin benimsenmesi anlamına gelir. Bulut yolculuğunuz sırasında yeni uygulamalar oluşturarak kullanıcı deneyimini geliştirmek ve var olan uygulamaları modernleştirmek isterseniz, bulut tabanlı uygulamalar uygulama performansını, esnekliği ve genişletilebilirliği iyileştirerek size yardımcı olabilir.

Bir sonraki adımı atın:

  • Bulut tabanlı uygulamalar için IBM'den yararlanarak nasıl ilerleyebileceğinizi görün.
  • IBM'in bulut tabanlı profesyonel hizmetlerle size nasıl rehberlik edebileceğini öğrenin.
  • Bu eğitici programla var olan bir uygulamayı bulut tabanlı devreye alma için modernleştirmeyi deneyin.
  • IBM Cloud Associate Solution Advisor role dayalı sertifikasyon programının içinde bulunan Cloud Native and Multiccloud (Bulut Tabanlı ve Çoklu Bulut) kursu ve rozeti hakkında bilgi alın.
  • IBM Cloud Professional Developer role dayalı sertifikasyon programının içinde bulunan "Deploying Cloud-Native Architectures and Applications" (Bulut Tabanlı Mimarileri ve Uygulamaları Devreye Alma) ve "Preparing for Cloud-Native Security" (Bulut Tabanlı Güvenlik için Hazırlanma) gibi modern entegrasyon, güvenlik ve kimlik kurslarıyla becerilerinizi geliştirin.

Bir IBM Cloud hesabıyla bugün başlangıç yapın.