Koşucuları keşfedin
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:
- GitHub'ın çalıştırıcı deposundan çalıştırıcı uygulamasını indirin
- Çalıştırıcıyı kimlik doğrulama belirteçleriyle yapılandırın
- Hizmet olarak yükleme (üretim için önerilir)
- 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