Red Hat Openshift Pipelines

Red Hat Openshift Pipelines

02 Haz 2022

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.

Sekom | Red Hat Openshift Pipelines

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.

Sekom | Red Hat Openshift Pipelines

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.

Sekom | Red Hat Openshift Pipelines

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.

Sekom | Red Hat Openshift Pipelines

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



Diğer Yazılarımız

Splunk MLTK ile Müşteri Verisini Stratejik Avantaja Dönüştürmek


Splunk Mission Control ile Güvenlik Operasyonlarında Yeni Bir Dönem


Gerçek Zamanlı Web Uygulamalarının Arkasındaki Güç


Tüm yazıları gör

Diğer Yazılarımız

Sekom | Red Hat Openshift Pipelines
Splunk MLTK ile Müşteri Verisini Stratejik Avantaja Dönüştürmek

Splunk MLTK müşteri verisini stratejik avantaja dönüştürün. Makine öğrenimi anomali tespiti, güvenlik ve Splunk Enterprise Security.

Devamını Oku
Sekom | Red Hat Openshift Pipelines
Splunk Mission Control ile Güvenlik Operasyonlarında Yeni Bir Dönem

SOC operasyonlarını tek ekranda yönetin, tehditlere hızlı müdahale edin. Splunk Mission Control ile güvenlikte hız, görünürlük keşfedin!

Devamını Oku
Sekom | Red Hat Openshift Pipelines
Modern Sistemleri Anlamak: Splunk Observability ile Uçtan Uca Görünürlük

Splunk Observability, AppDynamics ve ITSI ile modern sistemlerde uçtan uca görünürlük, kök neden analizi ve kullanıcı deneyimi sunar.

Devamını Oku
Sekom | Red Hat Openshift Pipelines
Splunk Machine Learning Toolkit (MLTK) ile Akıllı Log Analizi

Splunk Machine Learning Toolkit (MLTK) ile log verinizi dönüştürün. Anomali tespiti, tahmine analiz, kümeleme ve analitiğiyle karar verin.

Devamını Oku
Sekom | Red Hat Openshift Pipelines
Jira Worklog Verilerini Python ile Dışa Aktarın ve E-posta ile Ekibinize Gönderin

Python ve Jira API kullanarak iş kayıtlarını Excel’e aktarın, e-posta ile gönderin. Zaman kazandıran detaylı rehber ve hata çözümleri burada!

Devamını Oku
Sekom | Red Hat Openshift Pipelines
Python ile Jira Zaman Takibi Otomasyonu: Günlük API ve Cron Tabanlı Çözüm

Python, Jira REST API ve cron kullanarak günlük zaman takibini otomatikleştirin. Resmî tatile duyarlı, e-posta ve Teams bildirimleri rehberi!

Devamını Oku

“Building Digital Future”

Sekom olarak, müşterilerimizin ve çalışanlarımızın memnuniyetini her zaman ön planda tutan, uzman, köklü ve güvenilir bir dijital dönüşüm entegratörüyüz.

Keşfet