Page 48 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 48
48 | CI/CD Süreç Yönetimi
Canlı ortama kurulmuş olur. Canlı ortamdaki eski uygulama kapatılır. Olası hata durumlarında eski
uygulamaların versiyon numarası git kubernetes manifest deposuna geçilmek istenen eski versiyon
bilgisi girilir ve eski versiyonlara hızlı bir şekilde geçiş yapılabilir.
4.1. Konteynerleştirme (Docker)
Test otomasyonu düzenlemesi, birim(unit), işlevsel(integration) ve performans testi aşamalarını
içerir. Sürekli test yaklaşımı, istikrarlı bir kod tabanı, daha hızlı yanıt ve kolay karar verme avantajına
sahiptir. Bu otomasyon olmazsa olmazdır. Her zaman tekrar tekrar işletilir. Build oluşturma adımında,
diğer adıyla Sürekli Entegrasyonda en sık tercih edilen konteynerleştirme teknolojisi olan Docker
kullanır.
Geliştirme sırasında iş akışı karmaşıktır ve çoğu zaman bir deneme-yanılma sürecine dayanır.
Geliştirici bir CI ortamı oluşturduğu zaman tüm Docker konteyner oluşturma adımlarını uygulayabilir:
tanımlamaları düzenleme (örneğin, bir Docker dosyası), bir docker imajı oluşturma, beklendiği gibi
çalışıp çalışmadığını anlama, bir hatanın neden(ler)ini belirleme ve ilk adıma geri dönüp tanımlamaları
geliştirme. Docker, önbelleğe alma, özelleştirme, ölçekleme ve güvenlik gibi özellikler sağlar ve
platformlar arası çalışır. Docker’ın bir başka avantajı, özel kontroller kullanarak, genel yürütme
süresini azaltmak ve iş görevlerinde kesintileri önlemek için aynı anda çalışabilen birkaç Docker
konteynerine karar vermenin mümkün olmasıdır.
FROM openjdk:17-jdk-alpine
COPY ./target/demo-app-0.0.1-SNAPSHOT.jar demo-app.jar
CMD [“sh”, “-c”, “java -jar demo-app.jar”]
Yukarıda bir java uygulaması için örnek Dockerfile bulunmaktadır. Uygulamanın konteyner haline
getirilmesi için bu dosya kullanılır. Içindeki her satır bir komutu temsil eder. Ilk satırda base imaj
olarak uygulamanın çalışacağı java versiyonuna sahip alpine jdk 17 base imajı seçilir. Ikinci satırda
derlenmiş uygulamanın jar dosyası ana dizine kopyalanır. CMD ise her Dockerfile da sadece bir
tane olur. Docker imajının varsayılan çalıştırma komutunu değiştirmek için kullanılır. Bu Dockerfile
örneğinde de java uygulaması için çalıştırma komutu gösterilmiştir.