İlginizi Çekebilir
  1. Ana Sayfa
  2. Open Source
  3. OpenShift Container Platform Nedir?

OpenShift Container Platform Nedir?

OpenShift Container Platform Nedir?

Container, Linux üzerinde ortaya çıkan bir izolasyon teknolojisidir. Uygulama ve uygulama işletim sistemi ve diğer ihtiyaçlarını paketleyebildiğimiz yöntemdir. Container image’larını tek bir binary haline getirip, izole edilen işletim sistemimizde çalıştırabilmekteyiz.

Resim-1

Container’lar çalıştırıldığı makine üzerinde çalışan izole proseslerdir. İzole prosesler, native proseslerle aynı performans gösteren sanal makinalara göre çok daha verimli ve daha hızlı ayağa kalkabilen bir servis yapısı sunmaktadır. Platform kendi datacenterınızı sanal ya da fiziksel ortamlarda, public ve private cloud üzerinde çalıştırılabilme imkânı sunmaktadır. Platform pek çok teknoloji ve ürünün bir araya gelmiş hali olarak düşünülebilir.

Resim-2

pek çok yeteneği beraberinde getirmektedir. Bunlardan bazıları; servislerin yönetilmesi, servislerin discover edilmesi, logların toplanması izlenmesi servislerin birbiri ile konuşması dış dünyadan gelen trafiğin içeriye yük kontrollerinin yapılarak servislere ulaştırılması, çalışan container’ların monitör edilmesi, host güvenliğinin sağlanması container’ların birbirleriyle konuşurken güvenliğin sağlaması gibi. Aynı zamanda uygulama geliştirirken, Container’lar nasıl oluşturulur? Oluşturulan bu Container’lar nasıl yaygınlaştırılır? Nasıl blue/green deployment yapılır? Nasıl continous delivery pipeline oluşturulur? gibi birçok sorunun cevabını kendi içerisinde barındırır.

Aşağıda belirtilen yeteneklerden; dış dünyadan gelen trafiğin yük kontrollerinin yapılarak servislere ulaştırılması örneğini görmekteyiz.

Resim-3

Uygulama sunucuları, database, diller, application, runtime çeşitli middleware’lar OpenShift içerisinde bulunur.

OpenShift Cluster tek bir sanal makinadan (node) oluşup, yüzlerce sanal makina (node) sayısına arttırılabilmektedir. Node sayısının artması paralelinde yüzbinlerce pod’u beraberinde getirmektedir. Çünkü her bir node kendi içerisinde tek bir pod barındırdığı gibi, birden fazla pod’a da sahip olabilmektedir. Her bir node aynı zamanda belirli bir işletim sistemi üzerinden ayağa kalkmaktadır.

Bu platformda; uygulama servislerimizin bağlı olduğu podlardan biri down olduğu takdirde uygulama çökmeyecektir. Bu platform tarafından servis recovery edilip, yeni bir pod üzerinden yeniden ayağa kalkmaktadır. Ya da herhangi bir node down olduğu durumda podlar içerisindeki servis ve uygulamalar diğer node’lar üzerinden yeniden ayağa kalkmaktır.

Resim-4

Resim-5

Resim-6

Tüm bu cluster yönetimi master makinalar ile sağlanmaktadır. Bu master makinalar tüm cluster yapısının beyni olarak düşünülebilir.

Bu master makinaların görevi; Hangi container nerede çalışıyor? Container’ları çalıştırmak için uygun podları belirlemek ve container çöktüğü zaman eş zamanlı olarak onu yeni bir pod üzerinde ayağa kaldırmak, podları izlemek, hangi node container çalıştırmak için uygun gibi analizleri yapmaktır.

Resim-7

Developer’lar da master makinalara bağlanarak yönetimsel işlemlerini gerçekleştirebilmektedirler.

OpenShift dış trafigi kendi servislerine ulaştıran teknolojileri içerisinde barındırıyor. Servislerin birbirleri içerisinde konuşurken , service registry görevlerini üstleniyor. Aynı zamanda container image’larının saklanması, imagel’ların görülmesi ve bu image’ların nodelar üzerine çekilip çalıştırması için gerekli registry sağlamaktadır.

Container instance’lar pod’lar olarak düşünülebilir.OpenShift bu container instance’lar için kalıcı verilerin yazılmasını sağlayan sağlamaktadır.

Resim-8

Bu platform üzerinde third party language runtimes (PHP, Phyton, java, Ruby…), databases (MySQL,PostgreSQL,MongoDB,Redis..) ,application runtimes (Spring Boot,Jboss Web Server,Jboss EAP,Jboss A-MQ,Jboss Fuse..) ,middleware (3SCALE API mgmt,Jboss BRMS,Jboss BPMS ) olduğu gibi ,kendi katalog yapımızı da oluşturabilme imkanı sunmaktadır.Örneğin; kendi image’larımızı kendi kataloğunuza ekleyebiliriz.

Third party certified image’lar bulabileceğimiz gibi Red Hat’n sağlamış olduğu image’ları da buradan bulabilmekteyiz.

Cloud native yapısı ile uygulamamız container ile birlikte çok kısa sürede ayağa kalkmaktadır.

OpenShift tarafında geleneksel yeni nesil uygulamaların bir arada desteklendiği runtime’lar sağlanmaktadır. Örneğin geleneksel mevcut Java Enterprise uygulamalarını Jbos Enterprise Application platformda çalıştırabiliriz. Ya da Web Container gerektiren uygulamalar için Tomcat çalıştırabileceğimiz applicaion da runtime içerisinde bulunmaktadır.

Red Hat uygulamalarımızı hızlıca geliştirebilmemiz için bize template uygulamalar sağlayıp bu uygulamalarımızı OpenShift Cluster’a deploy edebilme imkânı sunmaktadır.

OpenShift bize özelliği sunmaktadır. Bu özellik container instance sayısının otomatik olarak scale edilebilmesini sağlamaktadır. Scaling işlemi manuel olarakta yapılabilir. Örneğin; ikinci bir sunucuda da uygulamamızın çalışmasını istiyoruz. İkinci pod eş zamanlı olarak bu platform üzerinde ayağa kaldırılabiliyor. Bu ayağa kalkan uygulamanın instance’nın hangi node üzerinde çalışacağını OpenShift kendisi belirlemektedir.

Bu platform üzerinde çalışan makina loglarını görebilir, log arşivlerine erişebilir, metrikler alabilir ya da shell terminal üzerinde makinaya bağlanıp, komut satırı üzerinden makinamızı kontrol edebiliriz.

Resim-9

Api Gateway, tüm servislere client tarafından arkada çalışan tüm servislere erişebilmemizi sağlamaktadır.

Servislere erişim kesildiğinde ya da bir servis başka bir servis üzerinde çalıştığında yapıda çökme meydana gelebilir.

OpenShift yeni nesil uygulamalara karşın, geleneksel uygulamalarımız; cloud native yapısına uydurularak daha verimli çalıştırılabilir. Geleneksel uygulamalar bu anlamda modernize edilebilir.

Geleneksel yapıdan modern yapıya dönüşümde aşağıdaki 3 temel model esas alınmalıdır.

Rehost; geleneksel uygulamamızı farklı bir container/cloud ortamda çalıştırılması

Reshape; geleneksel uygulamanın yeniden design edilmesi

Rewrite; Geleneksel uygulamanın yeniden yazılması

Uygulamalar Automated olarak farklı bir platforma taşınmak istendiğinde, Cloud native ve yapıya büründürülürken incremental yaklaşım sağlanmalıdır.

Uygulamalar cloud ortama taşınması/çalışması; verimlilik, kârlılık, operasyonda azalma gibi kazanımlar sağlamaktadır.

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

https://redhat-partner.highspot.com/items/5940b430f2167613fe2265c2#38

TAGs: OpenShift, , Container Platform, , Reshape Nedir?, Rewrite Nedir?, ?, Pod nedir?, , , , Service Discovery, Persistent Storage, Autoscaling

Yorum Yap

Yazar Hakkında

Merve İşler.1993 İstanbul doğumluyum. Beykent Üniversitesi Elektronik ve Haberleşme Mühendisliği mezunuyum. Stajlarımı Türk Hava Yolları ve İstanbul Teknik Üniversitesi’nde tamamladım. Öğrenciliğimin son yılında GATE ELEKTRONİK’te proje bazlı çalıştım ve “Radar Antenna Design” projesinde yer aldım.Mezun olduktan sonra Bilgeadam’da Sistem ve Network eğitimi aldım.Burada; Hyper-V, VMware ESXI 5.0, Windows Server2008, Windows Server 2012 R2, Active Directory Domain yapısının oluşturulması, DHCP ve DNS sunucu, L2TP ve SSTP VPN, FSRM ve DFS, WSUS kurulumu ve yapılandırması, Roaming Profile ve Drive Map oluşturulması vb. alanlarda eğitimimi tamamladım. Eğitimi tamamladıktan sonra Türk Telekom’da Sunucu Sanallaştırma ve Altyapı Operasyon biriminde Linux/Unix System Engineer pozisyonunda çalışmaya başladım. Çalışmakta olduğum birimde; Red Hat Virtualization, Red Hat Satellite, Ansible, CHEF, Linux, Solaris, HPUX OS Management & Support teknolojilerinde uzmanlaşmaktayım.

Yorum Yap