Koşucuları keşfedin

Tamamlandı

GitHub çalıştırıcıları, GitHub Actions iş akışlarınızı yürüten işlem ortamlarıdır. Runnersları anlamak, performansı optimize etmek, maliyetleri yönetmek ve CI/CD işlem hatlarınızda güvenliği sağlamak için çok önemlidir.

Çalıştırıcı türlerine genel bakış

GitHub, her birinin farklı senaryolar için uygun olduğu iki farklı runner seçeneği sunar:

GitHub'da barındırılan koşucular

  • GitHub tarafından yönetiliyor: GitHub tarafından tam bakım ve güncelleştirme
  • İsteğe bağlı ölçeklendirme: Her iş için otomatik olarak sağlanır
  • Birden çok ortam: Ubuntu, Windows ve macOS kullanılabilir
  • Yerleşik araçlar: Yaygın geliştirme araçlarıyla önceden yüklenmiş
  • Kullanım tabanlı faturalama: Yalnızca kullandığınız kadar ödeme yapın

Kendi sunucunuzda barındırılan işlemler

  • Sizin tarafınızdan yönetiliyor: Ortam ve yapılandırma üzerinde tam denetim
  • Özel ortamlar: Gereken yazılım veya donanım yapılandırmasını yükleme
  • Özel altyapı: Kendi makinelerinizde veya bulut örneklerinizde çalışır
  • Zaman sınırı yok: İşler gerektiği kadar çalışabilir
  • Sabit maliyetler: Kurulumdan sonra dakika başına ücret alınmaz

Güvenlikle ilgili dikkat edilmesi gerekenler

Önemli

Kendinden barındırmalı runner'ları hiçbir zaman genel depolarla kullanmayın. Bu, kötü niyetli aktörlerin çekme istekleri aracılığıyla altyapınızda kod çalıştırabileceği ciddi bir güvenlik açığı oluşturur.

Güvenli kullanım desenleri:

  • Şirket içinde barındırılan çalıştırıcıları yalnızca özel depolarla kullanma
  • Düzgün ağ yalıtımı ve izleme uygulama
  • Runner yazılımını ve bağımlılıklarını düzenli olarak güncelleştirme
  • Hassas veriler içermeyen ayrılmış makineleri kullanma

GitHub'da barındırılan koşucular

GitHub'da barındırılan çalıştırıcılar, iş akışlarınızı çalıştırmak için sıfır bakım çözümü sağlar. GitHub tüm altyapı yönetimini işleyerek sunucu yönetimi yerine kodunuz üzerinde odaklanmanızı sağlar.

Kullanılabilir ortamlar

GitHub, farklı belirtimlere sahip çeşitli runner türleri sunar:

Çalıştırıcı Türü İşletim Sistemi Sürümü Processor RAM Storage
ubuntu-latest Ubuntu 22.04 4 çekirdekli CPU 16 GB 14 GB SSD
windows-latest Windows Sunucusu 2022 4 çekirdekli CPU 16 GB 14 GB SSD
macos-latest macOS 14 4 çekirdekli CPU 14 GB 14 GB SSD
macos-13 macOS 13 4 çekirdekli CPU 14 GB 14 GB SSD

Önceden yüklenmiş yazılım

Her runner kapsamlı bir geliştirme araçları kümesiyle birlikte gelir:

Tüm platformlardaki yaygın araçlar:

  • Git, Docker, Node.js, Python, Java, .NET
  • Paket yöneticileri (npm, pip, Maven, NuGet)
  • Araçlar ve derleyiciler oluşturma
  • Test çerçeveleri

Platforma özgü araçlar:

  • Ubuntu: apt, snap, çeşitli Linux yardımcı programları
  • Windows: PowerShell, Visual Studio Derleme Araçları, Windows SDK
  • macOS: Xcode, Homebrew, CocoaPods

Tavsiye

Runner images deposunda yazılım envanterinin tamamını denetleyin veya iş akışı günlüklerinizde "İşi ayarlama" bölümünü görüntüleyin.

Kullanım sınırları ve dikkat edilmesi gerekenler

Bu sınırları anlamak, iş akışlarınızı etkili bir şekilde planlamanıza yardımcı olur:

  • İş zaman aşımı: İş başına en fazla 6 saat
  • İş akışı zaman aşımı: En fazla 35 gün (bekleme süresi dahil)
  • Eşzamanlı işler: GitHub planına göre değişir (Ücretsiz 20, Pro için 180)
  • Depolama: İş başına 500 MB yapıt depolama alanı

Önkoşullar

GitHub'da barındırılan çalıştırıcıları kullanmadan önce, kullanıcıların GitHub Actions kullanarak iş akışlarını tanımlayacakları bir GitHub deposuna sahip olmaları gerekir. Runners, GitHub Actions erişimi olan tüm GitHub kullanıcıları tarafından kullanılabilir.

Kurulum

Kendi kendine barındırılan runner'lardan farklı olarak GitHub tarafından barındırılanlar, tek bir iş akışının yürütülmesi sırasında otomatik olarak yapılandırılır. Kullanıcılar iş akışlarını GitHub depolarındaki .github/workflows dizininde depolanan YAML biçimli dosyalar olarak tanımlar. İş akışı yapılandırmasında kullanıcılar, işletim sistemi ve yazılım bağımlılıkları dahil olmak üzere istenen çalıştırıcı ortamını belirtir. İş akışı tetiklendiğinde uygun belirtimlere sahip çalıştırıcılar talep üzerine ayarlanır ve her görev için bir çalıştırıcı kullanılır. Tetikleyiciler, kod gönderme, çekme istekleri veya depo gönderim olayları gibi olaylara bağlı olarak el ile veya otomatik olabilir.
GitHub'da barındırılan çalıştırıcılar, GitHub Actions tarafından sağlanan belirteçleri veya kimlik bilgilerini kullanarak GitHub ile kimlik doğrulaması yapar. GitHub platformuyla iletişim kurmak ve iş akışı yapıtlarını indirmek için yerleşik bağlantıya güvenirler.

Bakım

GitHub, GitHub tarafından barındırılan çalıştırıcıların güncelleştirmelerini ve bakımlarını yöneterek en son yazılım sürümleri ve güvenlik düzeltme ekleriyle up-togüncel kalmalarını sağlar. Koşuculara dahil edilen yazılım araçları haftalık olarak güncelleştirilir. Runner etkinlikleri izlenir ve günlüğe kaydedilir, böylece iş akışı yürütmelerinin takibini ve sorun giderme işlemlerini kolaylaştırır.

Lisanslama ve Maliyet

GitHub'da barındırılan çalıştırıcılar GitHub Actions fiyatlandırmasında yer alır ve ücretsiz katmanın ötesindeki iş akışı dakikaları için kullanım tabanlı faturalama sağlanır. GitHub, çalıştırıcıları talebe bağlı olarak otomatik bir şekilde sağladığı ve serbest bıraktığı için kullanıcılar otomatik ve uygun maliyetli ölçeklendirmeden yararlanıyor.

Kendi sunucunuzda barındırılan işlemler

Kendinden barındırılan çalıştırıcılar, yürütme ortamınız üzerinde tam denetim sağlar. Belirli donanımlara, yazılım yapılandırmalarına ihtiyacınız olduğunda veya yüksek hacimli iş akışları için maliyetleri azaltmak istediğinizde idealdir.

Kendi kendine barındırılan runners ne zaman kullanılır?

Mükemmel:

  • Belirli donanım gereksinimleri: GPU hızlandırma, yüksek bellek veya özel işlemciler
  • Özel ağ erişimi: İç veritabanlarına, API'lere veya hizmetlere bağlanma
  • Özel yazılım: Önceden yüklenmiş özel araçlar veya belirli yazılım sürümleri
  • Maliyet iyileştirme: Dakika başına faturalandırmanın pahalıya dönüştüğü yüksek hacimli iş akışları
  • Uyumluluk gereksinimleri: Verilerin altyapınızda kalması gerekir

Aşağıdakiler için önerilmez:

  • Genel depolar (güvenlik riski)
  • Ara sıra veya düşük hacimli iş akışları
  • Altyapı yönetimi deneyimi olmayan ekipler

Dağıtım seçenekleri

Şirket içinde barındırılan koşucuları çeşitli platformlarda çalıştırabilirsiniz:

  • Fiziksel sunucular: Şirket içi donanım
  • Sanal makineler: VMware, Hyper-V veya diğer hiper yöneticiler
  • Bulut örnekleri: AWS EC2, Azure VM'leri, Google compute Engine
  • Kapsayıcılar: Docker kapsayıcıları (sınırlamalarla)
  • Kubernetes: Eylemler Çalıştırıcı Denetleyicisini Kullanma

Kurulum işlemi

Kendi sunucunda barındırılan bir çalıştırıcının ayarlanması şu önemli adımları içerir:

  1. GitHub'ın çalıştırıcı deposundan çalıştırıcı uygulamasını indirin
  2. Çalıştırıcıyı kimlik doğrulama belirteçleriyle yapılandırın
  3. Hizmet olarak yükleme (üretim için önerilir)
  4. Etiketleri yapılandırın ve iş akışlarında belirli çalıştırıcıları hedefleyin

Ağ gereksinimleri:

  • GitHub.com'a giden HTTPS (443) erişimi
  • objects.githubusercontent.com dışa HTTPS (443) erişimi
  • Gelen bağlantı gerekmez

Çalıştırıcı modülleri ve yönetimi

Şirket içinde barındırılan koşucular farklı kuruluş düzeylerinde kaydedilebilir:

Scope Erişim Düzeyi Kullanım Örneği
Repository Yalnızca tek depo Geliştirme/test ortamları
Organizasyon Kuruluştaki tüm kod depoları Paylaşılan ekip kaynakları
Şirket Kuruluştaki tüm birimler Merkezi altyapı yönetimi

İş akışlarında kural yürütücülerini belirleme

Hangi "runner"ın görevinizi yürütmesi gerektiğini belirtmek için etiketleri kullanın.

jobs:
  build:
    runs-on: [self-hosted, linux, x64, gpu]
    steps:
      - name: Build with GPU acceleration
        run: ./build-with-cuda.sh

Bakım sorumlulukları

Runner sahibi olarak şunlardan siz sorumlusunuz:

  • Güvenlik güncelleştirmeleri: Çalıştırıcı uygulamasını ve işletim sistemini güncel tutun
  • Yazılım yönetimi: Gerekli geliştirme araçlarını yükleme ve koruma
  • İzleme: Koşucu sağlığı ve performans ölçümlerini izleme
  • Kapasite planlaması: İş akışı taleplerine göre koşucuları ölçeklendirme
  • Yedekleme ve kurtarma: Çalıştırıcı yapılandırmalarının yedeklenmiş olduğundan emin olun

Maliyetle ilgili dikkat edilmesi gerekenler

Kendiniz barındırdığınız koşucular GitHub Actions süreleri ücretlerine tabi olmasa da şu maliyetleri göz önünde bulundurmalısınız:

  • Altyapı: Sunucular, bulut örnekleri veya kapsayıcı düzenleme
  • Bakım: Güncelleştirmeler, izleme ve sorun giderme için harcanan süre
  • Güvenlik: Güvenli yürütücü yönetimi için ek araçlar ve işlemler
  • Güç ve soğutma: Şirket içi dağıtımlar için

Maliyet iyileştirme ipuçları:

  • Bulut tabanlı çalıştırıcılar için otomatik ölçeklendirmeyi kullanma
  • Birden çok depo için runner havuzlama uygulaması
  • Runners'ı çalışma saatleri dışında kapatılacak şekilde zamanlama
  • Kaynak kullanımını doğru boyutta örneklere izleme