Jenkins ile Tam Bir 3 Katmanlı Uygulamanın Dağıtımı: Kapsamlı Bir Kılavuz
Merhaba! Bu makalede, Jenkins kullanarak bir 3 katmanlı uygulamayı nasıl dağıtacağınızı adım adım ele alacağız. 3 katmanlı mimari, uygulamaların ayrı ayrı katmanlar halinde yapılandırılmasını sağlar. Bu katmanlar, sunum, iş mantığı ve veritabanı gibi görevleri ele alır. Bu yaklaşım, sürdürülebilirliği, bakımı ve ölçeklenebilirliği artırır. Jenkins, otomasyon görevlerini, özellikle sürekli entegrasyon/sürekli dağıtım (CI/CD) süreçlerini yönetmek için güçlü bir araçtır.
3 Katmanlı Mimari ve Jenkins
3 katmanlı uygulamalar, genellikle aşağıdaki katmanlardan oluşur:
- Sunum Katmanı: Kullanıcı arayüzünü (UI) sağlar, kullanıcı etkileşimlerini işler ve iş mantığı katmanına istekler gönderir.
- İş Mantığı Katmanı: Uygulamanın iş kurallarını ve işlevselliğini içerir. Veritabanı katmanıyla etkileşim kurar ve sunum katmanına yanıtlar döndürür.
- Veritabanı Katmanı: Uygulama verilerini depolar ve alır. İş mantığı katmanıyla etkileşim kurar.
Jenkins, bu katmanların dağıtımını otomatikleştirerek CI/CD sürecini kolaylaştırır. Uygulama kodunun derlenmesi, test edilmesi, paketlenmesi ve ilgili katmanlara dağıtılması gibi görevler Jenkins iş akışları aracılığıyla otomatikleştirilebilir.
Adım Adım Dağıtım Süreci
Şimdi, Jenkins’i kullanarak bir 3 katmanlı uygulamayı dağıtmak için adım adım bir kılavuza geçelim:
1. Jenkins Kurulumu
Jenkins’i kurmanız gerekecektir. Bunun için çeşitli yöntemler mevcuttur:
- Paket Yöneticileri: Linux veya macOS sistemlerinde paket yöneticilerini kullanarak Jenkins’i kurabilirsiniz. Örneğin, Debian/Ubuntu’da “sudo apt install jenkins” komutunu kullanabilirsiniz.
- Docker: Docker kullanarak Jenkins’i kolayca çalıştırabilirsiniz. “docker run -d -p 8080:8080 jenkins/jenkins:lts” komutu Docker’da Jenkins’i başlatacaktır.
- War Dosyası: Jenkins’i war dosyasını web sunucusu (Tomcat, Jetty gibi) üzerinde çalıştırarak kurabilirsiniz.
2. Jenkins Yapılandırması
Jenkins’i kurduktan sonra, bazı yapılandırmalar yapmanız gerekir. Bunlar şunları içerir:
- Kullanıcı Oluşturma: Güvenlik için Jenkins’e bir kullanıcı hesabı oluşturun.
- Eklenti Yükleme: Jenkins’in çeşitli işlevleri sağlayan eklentiler yükleyin. Örneğin, Git eklentisi Git depolarından kod çekmek için kullanılır.
- İş Akışı Oluşturma: Jenkins’te bir iş akışı oluşturun. Bu iş akışı, uygulamanın dağıtım aşamalarını otomatikleştirecektir.
3. Dağıtım İş Akışı
Jenkins’te bir dağıtım iş akışı oluşturduktan sonra, adımları yapılandırmanız gerekir:
- Kod Alma: Jenkins, Git gibi bir sürüm kontrol sisteminden uygulamanın kaynak kodunu almalıdır.
- Derleme ve Paketleme: Jenkins, uygulamayı derlemeli ve bir dağıtım paketi (örneğin, WAR dosyası) oluşturmalıdır.
- Test Otomasyonu: Jenkins, uygulamanın düzgün çalıştığını doğrulamak için otomatik testler çalıştırmalıdır.
- Dağıtım: Jenkins, derlenmiş ve paketlenmiş uygulamayı ilgili sunuculara dağıtmalıdır.
4. Dağıtım Ortamı
Uygulamayı farklı ortamlara (geliştirme, test, üretim) dağıtmanız gerekebilir. Jenkins, bu ortamları yapılandırmanıza ve farklı ortamlara farklı dağıtım adımları uygulayabilmenize olanak tanır.
5. Sürekli İzleme
Jenkins, dağıtılmış uygulamanın performansını ve sağlığını izlemek için kullanılabilir. Bu, hata ayıklama ve sorun giderme için önemlidir.
Ornek Dağıtım Senaryosu
Bir 3 katmanlı web uygulamasını dağıtmak için bir örnek senaryo ele alalım:
- Sunum Katmanı: Angular veya React gibi bir ön uç çerçevesi kullanılarak oluşturulan bir web uygulaması.
- İş Mantığı Katmanı: Spring Boot veya Node.js gibi bir çerçeve kullanılarak oluşturulan bir RESTful API.
- Veritabanı Katmanı: PostgreSQL veya MySQL gibi bir ilişkisel veritabanı yönetim sistemi (RDBMS).
Jenkins, bu katmanların dağıtımını otomatikleştirmek için kullanılabilir. Jenkins iş akışı şunları içerebilir:
- Sunum Katmanı: Angular veya React uygulamasını derleyin ve bir statik dosya paketi oluşturun.
- İş Mantığı Katmanı: Spring Boot veya Node.js uygulamasını derleyin ve bir WAR veya JAR dosyası oluşturun.
- Veritabanı Katmanı: Veritabanı şemalarını dağıtmak ve verileri yapılandırmak için SQL betiklerini çalıştırın.
- Dağıtım: Ön uç paketini, REST API’yi bir uygulama sunucusuna ve veritabanı şemalarını veritabanına dağıtın.
Sonuç
Jenkins, 3 katmanlı uygulamaların dağıtımını otomatikleştirmek için çok güçlü bir araçtır. CI/CD süreçlerini uygulayarak, geliştirme süreçlerinizi hızlandırabilir, hata risklerini azaltabilir ve uygulamalarınızın daha hızlı bir şekilde piyasaya sürülmesini sağlayabilirsiniz. Bu makalede bahsedilen adımları uygulayarak, Jenkins’i kullanarak kendi 3 katmanlı uygulamalarınızı başarıyla dağıtabilirsiniz.
Daha fazla bilgi için, fatihsoysal.com web sitesini ziyaret edebilirsiniz.
#Etiketler
3 katmanlı uygulama, Jenkins, CI/CD, Dağıtım, Otomasyon, DevOps, Web Uygulaması, Sunum Katmanı, İş Mantığı Katmanı, Veritabanı Katmanı, Angular, React, Spring Boot, Node.js, PostgreSQL, MySQL