CircleCI (Self-Hosted) Nedir ve Nasıl Kullanılır?

Berkehan Bendivar
4 min read6 days ago

--

CircleCI (Self-Hosted), CircleCI’nin kendi sunucularınızda barındırabileceğiniz bir sürümüdür ve yazılım geliştirme süreçlerini otomatikleştirmenizi sağlar. Bu versiyon, özelleştirilmiş CI/CD süreçleri oluşturmanıza imkan tanırken, verilerinizi kontrol altında tutmanıza olanak verir. CircleCI (Self-Hosted), yüksek performanslı pipeline’lar, esnek entegrasyonlar ve özelleştirilmiş yapılandırmalar sunarak, geliştirme ve dağıtım süreçlerinizi hızlandırır. Kullanıcılar, kendi altyapılarında CircleCI’yi kurarak, özel ihtiyaçlarına uygun otomatikleştirilmiş iş akışları oluşturabilir ve mevcut sistemleriyle entegre edebilir. Bu, özellikle güvenlik, gizlilik ve altyapı kontrolüne önem veren organizasyonlar için ideal bir çözümdür.

CircleCI (Self-Hosted) Nedir?

CircleCI (Self-Hosted), popüler bir sürekli entegrasyon (CI) ve sürekli teslim (CD) platformudur. Self-hosted versiyonu, CircleCI’nin kendi altyapınızda barındırılmasını sağlar. Bu çözüm, verilerinizi kontrol altında tutmanız gereken projelerde veya özel bir ağ ortamında çalışırken idealdir.

Öne Çıkan Özellikler

  • Veri Kontrolü: Tüm veriler şirket içi altyapınızda tutulur.
  • Ağ İzolasyonu: İnternet bağlantısı olmadan CI/CD süreçlerini yönetme imkanı sağlar.
  • Özelleştirme: Kendi araç ve yazılımlarınıza uygun yapılandırma yapabilirsiniz.
  • Performans Yönetimi: Kaynak kullanımını doğrudan kontrol ederek CI/CD süreçlerinizi optimize edebilirsiniz.
  • Kapsamlı Entegrasyonlar: Docker, Kubernetes, GitHub, GitLab ve Bitbucket gibi araçlarla uyumlu çalışır.

CircleCI (Self-Hosted) Hangi Uygulamalarda Kullanılır?

CircleCI (Self-Hosted) aşağıdaki durumlar için idealdir:

  1. Veri Gizliliği Gereksinimleri: Hassas verilerin bulut yerine şirket içi bir altyapıda tutulması gerektiği projeler.
  2. Ağ İzolasyonu: Özel ağlarda çalışan CI/CD süreçleri için uygundur.
  3. Karmaşık Yapılar: Mikroservis tabanlı büyük projelerde paralel iş çalıştırma yeteneklerinden faydalanabilirsiniz.
  4. Yüksek Özelleştirme Gereksinimleri: Özel yazılımlar ve araçlarla entegre edilmesi gereken projelerde kullanılabilir.

CircleCI (Self-Hosted)’in Avantajları

1. Veri Kontrolü

Tüm veriler şirket içi altyapıda kalır, bu da güvenlik ve gizlilik sağlar.

2. Özelleştirme

Kendi altyapınıza uygun yapılandırmalar yapabilirsiniz.

3. Performans Yönetimi

Kaynak kullanımını doğrudan kontrol ederek süreçlerinizi optimize edebilirsiniz.

4. Bulut Alternatifine Erişim

Gerekirse bulut tabanlı CircleCI ile aynı iş akışlarını paylaşabilirsiniz.

5. Kapsamlı Entegrasyonlar

Docker, Kubernetes, GitHub, GitLab ve Bitbucket gibi popüler araçlarla uyumlu çalışır.

CircleCI (Self-Hosted) Kullanırken Nelere Dikkat Edilmeli?

  1. Kaynak Yönetimi
    Kendi sunucularınızda çalıştırdığınız için donanım ve kaynak yönetimi önemlidir.
  2. Bakım ve Güncellemeler
    Self-hosted çözümlerde platformun bakım ve güncellemelerinin sizin tarafınızdan yapılması gerekir.
  3. Ağ Ayarları
    Güvenlik duvarı ve proxy ayarlarını yapılandırmanız gerekebilir.
  4. Öğrenme Eğrisi
    Bulut versiyonuna kıyasla daha fazla teknik bilgi gerektirir.

CircleCI (Self-Hosted) Nasıl Kullanılır?

1. Temel Bileşenler

Self-hosted CircleCI şu temel bileşenlerden oluşur:

  • Nomad Server: İşlerin planlanmasını ve yönetimini sağlar.
  • CircleCI Server: Platformun API ve web arayüzünü sağlar.
  • Builders (Executor): CI/CD işlerini çalıştırır (ör. Docker, VM).
  • PostgreSQL ve MongoDB: Veritabanı ihtiyaçlarını karşılar.
  • Vault: Gizli bilgilerin güvenli yönetimi için kullanılır.

2. CircleCI (Self-Hosted) Kurulumu

Adım 1: Docker ve Docker Compose Kurulumu

sudo apt update && sudo apt install docker docker-compose -y

Adım 2: Kurulum Dosyalarını İndirme

CircleCI’nin resmi dokümanlarından gerekli kurulum dosyalarını indirin.

Adım 3: Yapılandırma Dosyasını Oluşturma

Aşağıdaki gibi bir yapılandırma dosyası hazırlayın (config.yml):

database:

host: postgres

username: circleci

password: password

mongo:

uri: mongodb://mongo:27017

vault:

address: http://vault:8200

Adım 4: Docker Compose ile Çalıştırma

docker-compose up -d

Adım 5: Web Arayüzüne Erişim

Tarayıcınızda şu adresi açın:

http://<circleci_server_ip>:8080

3. CircleCI Workflow Tanımlama

Self-hosted ortamda bir pipeline tanımlamak için projenizin kök dizininde .circleci/config.yml dosyasını oluşturun.

Örnek Yapılandırma

version: 2.1

executors:

docker-executor:

docker:

- image: circleci/node:14

jobs:

build:

executor: docker-executor

steps:

- checkout

- run:

name: Install Dependencies

command: npm install

- run:

name: Run Tests

command: npm test

workflows:

version: 2

main:

jobs:

- build

Açıklamalar:

  • executors: İşlerin nasıl çalıştırılacağını tanımlar.
  • jobs: CI/CD sürecindeki görevleri tanımlar.
  • workflows: İş akışlarını belirler.

4. Kullanım Örnekleri

Örnek 1: Python Projesi için Pipeline

version: 2.1

executors:

python-executor:

docker:

- image: circleci/python:3.9

jobs:

test:

executor: python-executor

steps:

- checkout

- run:

name: Install Dependencies

command: pip install -r requirements.txt

- run:

name: Run Tests

command: pytest

Örnek 2: Docker İmajı Oluşturma

version: 2.1

executors:

docker-executor:

docker:

- image: docker

jobs:

build:

executor: docker-executor

steps:

- checkout

- setup_remote_docker

- run:

name: Build Docker Image

command: docker build -t myapp:latest .

- run:

name: Push Docker Image

command: docker push myapp:latest

CircleCI (Self-Hosted) Kullanırken Dikkat Edilmesi Gerekenler

  1. Kaynak Yönetimi
    Paralel iş çalıştırırken donanım kaynaklarınızı izleyin ve optimize edin.
  2. Gizli Bilgi Yönetimi
    Vault gibi araçları kullanarak hassas bilgileri güvenle yönetin.
  3. Güncellemeler
    Self-hosted çözümleri düzenli olarak güncel tutarak güvenlik ve performansı sağlayın.
  4. RBAC Kullanımı
    Kullanıcı ve proje bazlı erişim izinlerini dikkatlice yapılandırın.

CircleCI (Self-Hosted), veri gizliliği ve özel altyapı gereksinimleri olan projeler için güçlü bir CI/CD çözümüdür. Kendi altyapınızda CircleCI kullanarak hem esneklik hem de tam kontrol sağlayabilirsiniz.

Farklı dillerde ve platformlarda projelerinizi hızlı ve güvenilir bir şekilde oluşturabilir, test edebilir ve dağıtabilirsiniz. CircleCI’nin güçlü özellikleriyle yazılım geliştirme süreçlerinizi daha verimli hale getirebilirsiniz.

Bir sonraki makalede farklı bir konuyu ele alacağız. Sorularınız veya önerileriniz varsa yorum yapmayı unutmayın! 😊

--

--

No responses yet