OpenShift - Genel Bakış

OpenShift, Red Hat tarafından barındırılan bir Hizmet Olarak Bulut Geliştirme Platformudur (PaaS). Uygulamaları oluşturmak, test etmek ve çalıştırmak ve nihayet bunları bulutta dağıtmak için kullanılan açık kaynaklı, bulut tabanlı, kullanıcı dostu bir platformdur.

OpenShift, Node.js, Ruby, Python, Perl ve Java gibi farklı dillerde yazılmış uygulamaları yönetebilir. OpenShift'in en önemli özelliklerinden biri genişletilebilir olmasıdır, bu da kullanıcıların diğer dillerde yazılmış uygulamayı desteklemesine yardımcı olur.

OpenShift, soyutlama katmanı olarak çeşitli sanallaştırma kavramlarıyla birlikte gelir. OpenShift'in altında yatan konsept sanallaştırmaya dayanmaktadır.

Sanallaştırma

Genel olarak sanallaştırma, sistemden, depolamadan veya bir işletim sisteminden başlayan herhangi bir şeyin fiziksel veya gerçek versiyonundan ziyade sanal bir sistemin oluşturulması olarak tanımlanabilir. Sanallaştırmanın temel amacı, BT altyapısını daha ölçeklenebilir ve güvenilir hale getirmektir. Sanallaştırma kavramı on yıllardır varlığını sürdürmektedir ve günümüzde BT endüstrisinin evrimi ile, Sistem seviyesinden Donanım seviyesinden Sunucu seviyesinde sanallaştırmaya kadar çok çeşitli katmanlara uygulanabilir.

Nasıl çalışır

Herhangi bir uygulamanın veya işletim sisteminin gerçek fiziksel katmanından soyutlandığı bir teknoloji olarak tanımlanabilir. Sanallaştırma teknolojisinin önemli kullanımlarından biri, katmanı temel donanımdan soyutlamak için hiper yönetici adı verilen bir yazılım kullanan sunucu sanallaştırmadır. Sanallaştırma üzerinde çalışan bir işletim sisteminin performansı, fiziksel donanım üzerinde çalıştığı zamanki kadar iyidir. Ancak, çalışan sistem ve uygulamaların çoğu temeldeki donanımın kullanılmasını gerektirmediğinden sanallaştırma kavramı popülerdir.

Fiziksel ve Sanal Mimari

Sanallaştırma Türleri

  • Application Virtualization- Bu yöntemde, uygulama temeldeki işletim sisteminden soyutlanır. Bu yöntem, uygulamanın, altındaki işletim sistemine bağlı olmadan tek başına çalıştırılabildiği çok kullanışlıdır.

  • Desktop Virtualization- Bu yöntem, masaüstünde ince bir istemci kullanarak masaüstüne uzaktan erişilebilen iş istasyonu yükünü azaltmak için kullanılır. Bu yöntemde, masaüstü bilgisayarlar çoğunlukla bir veri merkezinde çalıştırılır. Klasik bir örnek, kuruluşların çoğunda kullanılan bir Sanal Masaüstü Görüntüsü (VDI) olabilir.

  • Data Virtualization - Geleneksel veri ve veri yönetimi yöntemlerinden soyutlama ve uzaklaşma yöntemidir.

  • Server Virtualization- Bu yöntemde, fiziksel sunucu, süreç ve işletim sistemini içeren sunucu ile ilgili kaynaklar sanallaştırılır. Bu soyutlamayı sağlayan yazılım genellikle hiper yönetici olarak adlandırılır.

  • Storage Virtualization - Birden fazla depolama cihazının tek bir merkezi konsoldan yönetilen tek bir depolama cihazında toplanması işlemidir.

  • Network Virtualization - Mevcut tüm ağ kaynaklarının, her biri birbirinden bağımsız olan mevcut bant genişliğini ve kanalları bölerek birleştirildiği yöntemdir.

OpenShift

OpenShift, bulut özellikli bir Hizmet Olarak Uygulama Platformudur (PaaS). Kuruluşların geleneksel uygulama altyapılarını ve platformlarını fiziksel, sanal ortamlardan buluta taşımalarına yardımcı olan açık kaynaklı bir teknolojidir.

OpenShift, kolayca geliştirilip OpenShift bulut platformunda dağıtılabilen çok çeşitli uygulamaları destekler. OpenShift temelde geliştiriciler ve kullanıcılar için üç tür platformu destekler.

Hizmet Olarak Altyapı (IaaS)

Bu formatta, hizmet sağlayıcı, bazı önceden tanımlanmış sanal donanım yapılandırmalarına sahip donanım düzeyinde sanal makineler sağlar. Bu alanda AWS Google bulutu, Rackspace ve çok daha fazlasından başlayarak çok sayıda rakip var.

Uzun bir kurulum ve yatırım prosedüründen sonra IaaS'ye sahip olmanın ana dezavantajı, işletim sistemi ve sunucu paketlerini kurmak ve sürdürmek, altyapı ağını yönetmek ve temel sistem yönetimiyle ilgilenmekten hala sorumlu olmasıdır.

Hizmet Olarak Yazılım (SaaS)

SaaS ile altta yatan altyapı hakkında en az endişe duyulur. Tak ve çalıştır kadar basittir, burada kullanıcının sadece hizmetlere kaydolması ve kullanmaya başlaması gerekir. Bu kurulumun ana dezavantajı, servis sağlayıcı tarafından izin verilen minimum miktarda özelleştirme yapılabilmesidir. SaaS'ın en yaygın örneklerinden biri, kullanıcının yalnızca oturum açması ve kullanmaya başlaması gereken Gmail'dir. Kullanıcı ayrıca hesabında bazı küçük değişiklikler yapabilir. Ancak, geliştiricinin bakış açısından pek kullanışlı değil.

Hizmet Olarak Platform (PaaS)

SaaS ve IaaS arasında orta katman olarak düşünülebilir. PaaS değerlendirmesinin birincil hedefi, geliştirme ortamının birkaç komutla döndürülebildiği geliştiriciler içindir. Bu ortamlar, doğrudan bir veritabanı içeren bir web uygulama sunucusuna sahip olmaktan tüm geliştirme ihtiyaçlarını karşılayacak şekilde tasarlanmıştır. Bunu yapmak için, sadece tek bir komuta ihtiyacınız var ve servis sağlayıcı işleri sizin yerinize yapıyor.

Neden OpenShift Kullanmalı?

OpenShift, kurumsal birimlerin, temeldeki işletim sistemi hakkında endişelenmeden uygulamalarını bulutta barındırmaları için ortak bir platform sağlar. Bu, uygulamaları bulutta kullanmayı, geliştirmeyi ve dağıtmayı çok kolaylaştırır. Temel özelliklerinden biri, her türlü geliştirme ve test için yönetilen donanım ve ağ kaynakları sağlamasıdır. OpenShift ile PaaS geliştiricisi, gerekli ortamlarını spesifikasyonlarla tasarlama özgürlüğüne sahiptir.

OpenShift, hizmet planları söz konusu olduğunda farklı türden hizmet düzeyi anlaşmaları sağlar.

Free - Bu plan, her biri için 1 GB alan olmak üzere üç yılla sınırlıdır.

Bronze - Bu plan 3 yılı içerir ve yılda 1 GB alanla 16 yıla kadar genişler.

Sliver - Bu 16 yıllık bronz planıdır, ancak ek maliyet olmadan 6GB depolama kapasitesine sahiptir.

Yukarıdaki özelliklerin dışında OpenShift, OpenShift Enterprise olarak bilinen şirket içi sürümü de sunar. OpenShift'te geliştiriciler, ölçeklenebilir ve ölçeklenemez uygulamalar tasarlama avantajına sahiptir ve bu tasarımlar HAproxy sunucuları kullanılarak gerçekleştirilir.

Özellikleri

OpenShift tarafından desteklenen birden fazla özellik vardır. Çok azı -

  • Çoklu Dil Desteği
  • Çoklu Veritabanı Desteği
  • Genişletilebilir Kartuş Sistemi
  • Kaynak Kodu Sürüm Yönetimi
  • Tek Tıkla Dağıtım
  • Çoklu Ortam Desteği
  • Standartlaştırılmış Geliştiricilerin iş akışı
  • Bağımlılık ve Yapı Yönetimi
  • Otomatik Uygulama Ölçeklendirme
  • Duyarlı Web Konsolu
  • Zengin Komut Satırı Araç Seti
  • Uygulamalara Uzaktan SSH Girişi
  • Rest API Desteği
  • Self-servis On Demand Uygulama Yığını
  • Yerleşik Veritabanı Hizmetleri
  • Sürekli Entegrasyon ve Sürüm Yönetimi
  • IDE Entegrasyonu
  • Uygulamalarda Uzaktan Hata Ayıklama