REDHAT OPENSHIFT PİPELİNES

Hazırlayan: Sultan Öztürk - SEKOM SD-X & Bulut Teknolojileri Mühendisi

CI/CD Nedir?

Red Hat, CI/CD süreçlerini “uygulamaların oluşturulması, test edilmesi ve devreye alınması aşamalarını otomasyona bağlayan süreç” olarak özetliyor. Eski düzenlerde yazılım ekipleri ve diğer birimler arasında iş süreçleri manuel yapılıyor ve bu durum karmaşaya sebep oluyordu. İş süreçlerinin otomasyona bağlanmasıyla bu karmaşanın önüne geçmek hedeflendi. Böylelikle CI/CD kavramı ortaya çıkmış oldu.

Redhat Openshift Pipelines CI/CD Nedir?

CI, geliştiriciler için bir otomasyon süreci olan sürekli entegrasyonu ifade ediyor. Başarılı CI, bir uygulamada yapılan yeni kod değişikliklerinin düzenli olarak oluşturulduğu, test edildiği ve paylaşılan bir havuzda birleştirildiği anlamına geliyor. Bu, aynı anda geliştirilmekte olan bir uygulamanın birbiriyle çelişen çok fazla branch’e sahip olma sorununa da çözüm getiriyor.

CD ise bazen birbirinin yerine de kullanılabilen ilgili kavramlar olarak Continuous Deployment ve/veya Continuous Delivery anlamına geliyor. Bu kavramların her ikisi de bir pipeline’ın sonraki aşamalarını otomatikleştirmek ile ilgilidir. Continuous Delivery, genellikle uygulamadaki değişikliklerin otomatik olarak hata testinden geçirildiği ve daha sonra operasyon ekipleri tarafından üretim ortamına dağıtılabileceği bir havuza yüklendiği süreç anlamına geliyor. Bu durum, geliştirme ve iş ekipleri arasındaki iletişim sorununu çözme konusunda yararlı bir süreç olarak karşımıza çıkarken, kodu dağıtmak için minimum çaba sarf edilmesini de sağlıyor.

Continuous Deployment ise bir geliştiricinin yaptığı değişiklikleri, uygulamanın müşteriler tarafından kullanılabilir olduğu ortama otomatik olarak aktarılması anlamına geliyor. Bu da manuel süreçlerle operasyon ekiplerinin aşırı yüklenmesi sorunlarını gideriyor.

Cloud-Native CI/CD Nedir?

Cloud-native çok kapsamlı bir kavram olmakla birlikte CI/CD süreçlerindeki en önemli maddeleri, container altyapısına uygun olması, serverless olması ve DevOps ekiplerince bu altyapılara uygun şekilde tasarlanmış olmasıdır. Container altyapısında olması, Kubernetes tarafından orkestra edilen uygulamaları şekline uygun çalıştırabileceğiniz anlamına gelir. Serverless olması, merkezi bir CI motorun bakımına ihtiyaç duymadan, istekler üzerinde çalıştırılıp ölçeklendirilmesine olanak sağlarken, bu sırada DevOps ekipleriniz de mikroservis altyapısına uygun şekilde tasarımlar yaratabilir ve işlerin ekiplerce paylaşılabilir olmasını kolaylaştırır.

Openshift Pipelines ve Tekton

Pipeline yaratmak için Jenkins, JenkinsX ve Spinnaker gibi ürün seçenekleri mevcut fakat Openshift, bir operatör yardımıyla kurularak kullanılan, altyapısında cloud-native özellikte, güçlü ve esnek olarak tasarlanmış Tekton ürününü, kendi platformu üzerinde ayrıcalıklar ve ek platform özellikleri ile donatarak Openshift Pipelines çözümünü sunmaktadır.

Openshift Pipelines ve Tekton

Openshift Pipelines, build pipeline'larınızı oluşturmayı kolaylaştırır. Burada CRD’ler (Custom Resource Definitons) kullanarak, bir pipeline‘ı farklı projelerde yeniden kullanabilirsiniz. Tekton Step, Task, Pipeline, TaskRun ve PipelineRun gibi bileşenlerden oluşur.

Openshift Pipelines ve Tekton 2

Step, kodunuzda gerçekleştirdiğimiz işlemlerden biridir. Bu işlemler unit test olabilir, kodun mevcut kodlama standartlarına uygunluğunu kontrol işlemi olabilir, herhangi bir command veya script içeriyor olabilir. Yani stepler, Tekton'daki en temel görevlerdir.

Task’lar, stepler toplamıdır. Bu task’lar paylaşılabilir bir ortama sahip olmanızı sağlayan Kubernetes podlarında çalıştırır. Bir task’a bir volume mount eder ve bütün steplerde bunu kullanabilirsiniz. Tasklar, Custom Resource olarak tanımlanabilirler. Her task bir pod içerisinde çalışır, bu yüzden de standart kullanımda bir pipeline’a ait tasklar aralarında data paylaşmazlar. Data paylaşmaları için bunu ayrıca şu task kullanacak veya sen bir önceki task’ın çıktısını kullanacaksın diye ayrıca belirtmek gerekir.

Pipeline ise task’lar bütünüdür yani uç uca eklenmiş task’lar bir pipeline oluşturur. Bir pipeline içerisindeki task’lar art arda veya paralel çalıştırılabilirler. Tekton, geliştiricilere taskların nasıl ve ne zaman çalışması gerektiği konusunda esneklik sağlar, mesela kendinden sonrakini başlatmak için bir task’ın karşılaması gereken koşulları belirtebilirsiniz. Pipeline’lar da aynı şekilde Custom Resource olarak tanımlanabilirler.

Pipeline, girdileri ve çıktıları olan bir süreçtir. Her task ve pipeline’nın kendine özel girdi ve çıktıları olacaktır. Tekton pipeline’larının yeniden kullanılabilir olmasının güzel yanı, bir uygulama oluşturmak, test etmek ve paketlemek için yazdığınız o pipeline’ı, aynı işlem hattına sahip farklı bir girdi için de kullanılabilecek olmanızdır. Örneğin, pipeline için girdi olarak bir git deposu ve çıktı olarak da bir imaj istiyorsunuz ve gerekli ise bunu farklı kod tabanlı uygulamalarınız için yeniden kullanabiliyorsunuz. Buradaki git, registry veya diğer özellikli bilgiler PipelineRun sırasında önceden tanımladığınız CRD’ler veya çalıştırırken tanımladığınız parametreler olarak alınır ve kullanılırlar.

Tekton Pipeline Example

Dönüşümünüzü verimli kılmak için deneyimli Sekom SD-X & Cloud ekibimizle iletişime geçin!

SD-WAN’A GİRİŞ 3: Maliyetlerinizi Düşürün!

Hızlı olmak, pek çok konuda fark yaratan bir özellik olarak karşımıza çıkıyor...

Devamını Oku

SD WAN’A GİRİŞ 1: Daha Kolay Bir Ağ Yönetimi

Teknoloji, gündelik hayatımızı kolaylaştırmaya her geçen gün devam ederken kendisine...

Devamını Oku

Red Hat Openshift

Bulut teknolojilerinin en temel bileşenlerinden ‘Container’ların, dağıtım ve yönetimi...

Devamını Oku

Cisco SD-WAN: Yepyeni Bir WAN Deneyimi!

Cloud (bulut) uygulamalarının yaygınlaşması, görsel ve sesli iletişimin iş yaşamının vazgeçilmez...

Devamını Oku

Cloud Collaboration güvenli mi? Cloud mu On premise çözüm mü?

Bulut teknolojileri tabi ki özellikle bazı sektörler için güvenlik...

Devamını Oku

Neden Cisco İş Birliği Çözümleri?

Bugün dünyada bir kurumun tüm gerçek zamanlı iletişim...

Devamını Oku

Kariyer Fırsatları

En ileri teknolojilerle çalışırken,
yeni bakış açıları sunmaya hazır mısınız?

İletişim

Aklınıza takılan her konuda bizimle
iletişime geçebilirsiniz.

Mailiniz başarıyla gönderilmiştir en kısa sürede sizinle iletişime geçilecektir.

Mesajınız ulaştırılamadı! Lütfen daha sonra tekrar deneyin.