Porównanie
CRACI vs Azure Pipelines
Azure Pipelines buduje i wdraża z Azure DevOps i sprzedaje moc obliczeniową za równoległe zadanie. CRACI to runner dla GitHub Actions rozliczany za minutę, który rejestruje każdy build, więc SBOM, polityka sieciowa i dane o pochodzeniu pochodzą z samego buildu.
Zaktualizowano
Krótka odpowiedź
Azure Pipelines to część CI/CD w Azure DevOps. Buduje i testuje w systemach Linux, Windows i macOS, współpracuje z Azure Repos i GitHub oraz wdraża na maszyny wirtualne, do kontenerów, na serwery on-premises i do chmury. Jeśli śledzenie pracy, repozytoria i wydania znajdują się w Azure DevOps lub potrzebują Państwo buildów Windows i macOS w ramach jednej umowy z Microsoftem, dobrze się sprawdzi.
CRACI obejmuje węższy obszar i sięga w nim głębiej. To runner dla GitHub Actions: w trakcie każdego zadania rejestruje każdą zewnętrzną zależność pobraną przez build, egzekwuje politykę ruchu wychodzącego w sieci buildu i na podstawie tego zapisu tworzy SBOM-y i dane o pochodzeniu oraz prowadzi monitorowanie podatności. W Azure Pipelines te dowody pochodzą z zadań i narzędzi, które dodaje się do każdego pipeline'u.
Najpierw jedna kwestia praktyczna. CRACI obsługuje dziś wyłącznie GitHub Actions, a GitLab CI i Jenkins są w planach rozwoju. Azure Pipelines nie jest obsługiwane, więc aby pipeline działał na CRACI, trzeba go przenieść do workflow GitHub Actions.
W skrócie
| Funkcja | CRACI | Azure Pipelines |
|---|---|---|
| Czym jest | Bezpieczny runner dla GitHub Actions. | Część CI/CD w Azure DevOps. |
| Jak powstaje SBOM | Rejestrowany na podstawie tego, co pobrało każde zadanie, ze stanem kompletności | Zadania lub narzędzia dodane do pipeline'u |
| Polityka ruchu wychodzącego buildu | Domyślna odmowa lub zezwolenie, weryfikowana przed zadaniem, blokuje w razie błędu | Do zbudowania samodzielnie, na agentach self-hosted |
| Monitorowanie podatności | Monitorowane SBOM-y stale ponownie oceniane | Dodane zadania lub narzędzia |
| Systemy CI | Dziś GitHub Actions; GitLab CI i Jenkins w planach rozwoju | Azure Pipelines, z Azure Repos i GitHub |
| Hostowane maszyny | Linux na x86-64 i ARM64, od 1 do 32 vCPU. Windows i macOS w planach rozwoju. | Jeden rozmiar na system: Linux i Windows z 2 rdzeniami i 7 GB, macOS z 3 rdzeniami i 14 GB. |
| Działa na Państwa maszynach | Runnery hostowane u klienta, Enterprise | Agenty self-hosted oraz Azure DevOps Server |
| Wdrożenia | CRACI obejmuje build | Maszyny wirtualne, kontenery, cele on-premises i w chmurze |
| Sposób rozliczania | $0.004 za minutę ($0.002 za minutę vCPU), naliczane co sekundę. Bez opłaty miesięcznej i bez opłat za SBOM. | Za równoległe zadanie: jedno hostowane zadanie z 1800 bezpłatnymi minutami miesięcznie, potem $40 miesięcznie za hostowane zadanie z nielimitowanymi minutami lub $15 za zadanie self-hosted (stan na październik 2026). |
- W zestawie
- Częściowo
- Brak
- W planach rozwoju
Co Azure Pipelines robi dobrze
Jedna platforma z Azure DevOps. Pipeline'y działają obok śledzenia pracy, Azure Repos i Azure Artifacts, więc zadania robocze, kod, buildy i pakiety są w jednym miejscu. Azure Pipelines buduje też kod hostowany w GitHub.
Każdy system operacyjny. Agenty hostowane przez Microsoft działają w systemach Linux, Windows i macOS, a jedno równoległe zadanie uruchamia każdy z nich w tej samej cenie. Agenty self-hosted rozszerzają to na Państwa własne maszyny, a Azure DevOps Server przenosi całą platformę on-premises.
Nielimitowane minuty na zadanie. Płatne równoległe zadanie nie ma miesięcznego limitu minut, a każde uruchomienie może trwać do 360 minut. Zespół, którego zadania są zajęte przez cały dzień, płaci stałą cenę niezależnie od długości buildów.
Wbudowane wdrożenia. Pipeline'y prowadzą buildy aż do wdrożenia na maszynach wirtualnych, w kontenerach, na serwerach on-premises i w chmurze.
Czym różni się CRACI
SBOM pochodzi z buildu
W Azure Pipelines SBOM pochodzi z dodanego zadania lub kroku skanera, który zwykle odczytuje manifesty i lockfile po fakcie. Buildy często robią więcej, niż mówią te pliki: skrypty instalacyjne pobierają kod, skrypty buildu pobierają zasoby w trakcie buildu, a cache przywraca pakiety, których nie wymienia żaden lockfile. CRACI widzi ten ruch, ponieważ jest runnerem. Proxy rozpoznające pakiety rejestruje, co każde zadanie pobiera ze źródeł pakietów, obejmując npm, PyPI, RubyGems, Cargo, Go, Nix, OCI, apt, apk i źródła Git, a dowody zależności są przenoszone razem z cache CI. Każdy SBOM w formacie CycloneDX lub SPDX określa, na ile jest kompletny, dla każdego zadania i każdego cache.
Polityka w sieci buildu
Na agentach hostowanych przez Microsoft nie decydują Państwo, dokąd build może się łączyć; na agentach self-hosted to infrastruktura sieciowa, którą trzeba zbudować i utrzymywać. CRACI nakłada politykę ruchu wychodzącego na każde zadanie: domyślna odmowa lub domyślne zezwolenie, z 24 wbudowanymi presetami źródeł oprogramowania i typowanymi źródłami niestandardowymi, weryfikowana przed startem zadania. W razie błędu polityki blokują ruch, a naruszenia wysyłają alert.
Monitorowanie wydanego oprogramowania
API zwraca SBOM-y, ślady sieciowe i dane o pochodzeniu. CRACI agreguje podatności z wielu buildów i repozytoriów, stale ponownie ocenia monitorowane SBOM-y w miarę pojawiania się biuletynów i pokazuje, które wcześniejsze buildy zawierały podatną zależność, dzięki czemu wiedzą Państwo, w jakim okresie byli narażeni.
Płatność za minutę, a nie za równoległe zadanie
Azure Pipelines sprzedaje współbieżność: każdy build, który ma działać równocześnie z innymi, wymaga własnego hostowanego zadania za $40 miesięcznie, w jednym rozmiarze: 2 rdzenie i 7 GB. Przy obciążeniu przez 8 godzin w każdym z 22 dni roboczych zadanie kosztuje około $0.0038 za minutę, nieco mniej niż $0.004 za 2 vCPU w CRACI. Przy obciążeniu przez połowę tego czasu to około $0.0076. Buildy przychodzą falami, więc zadania kupione na najbardziej obciążoną godzinę przez resztę dnia stoją bezczynnie.
CRACI pobiera opłaty wyłącznie za minuty buildu: $0.002 za minutę vCPU ($0.004 za domyślny runner 2 vCPU), naliczane co sekundę, bez opłaty miesięcznej i bez opłat za SBOM. Zadanie, które potrzebuje większej mocy, może korzystać z maksymalnie 32 vCPU. Pełne porównanie zawiera strona ceny runnerów CI.
Które rozwiązanie wybrać
- Proszę pozostać przy Azure Pipelines, jeśli śledzenie pracy, repozytoria i wydania znajdują się w Azure DevOps, jeśli potrzebują Państwo buildów Windows lub macOS, jeśli wdrażają Państwo z tych samych pipeline'ów lub jeśli zadania są zajęte przez cały dzień.
- Proszę wybrać CRACI, jeśli Państwa kod jest w GitHub lub tam się przenosi i chcą Państwo, by każdy build tworzył zapis tego, co trafiło do wydania, z ceną za minutę buildu.
- Proszę używać obu podczas stopniowej migracji: wybór dotyczy pojedynczego pipeline'u, więc buildy Linux mogą przejść do GitHub Actions na CRACI, a pipeline'y Windows, macOS i wdrożeniowe pozostać na miejscu.
Warto jasno określić, z czego Państwo rezygnują, wybierając CRACI. Nie wdraża oprogramowania, uruchamia dziś wyłącznie zadania Linux (Windows i macOS są w planach rozwoju), a runnery hostowane u klienta są w planach rozwoju dla Enterprise.
Produkty regulowane
Regulacje takie jak unijny Cyber Resilience Act oczekują, że producenci będą wiedzieć, co znajduje się w każdym wydaniu, i obsługiwać jego podatności, z obowiązkami zgłoszeniowymi od września 2026. W Azure Pipelines te dowody pochodzą z zadań i skanerów, które podłączą Państwo do każdego pipeline'u. CRACI tworzy je z zapisu buildu i eksportuje SBOM-y w formatach CycloneDX lub SPDX. Automatyzuje znaczną część widoczności łańcucha dostaw oprogramowania i dowodów, których firma potrzebuje w szerszym procesie CRA; żadne z tych narzędzi samo w sobie nie zapewnia zgodności produktu.
Przeniesienie pipeline'u do CRACI
Własne narzędzie GitHub, GitHub Actions Importer, konwertuje pipeline'y Azure DevOps na workflow GitHub Actions. GitHub zakłada, że 80% każdego workflow zostanie przekonwertowane automatycznie, i zaleca sprawdzenie każdego przekonwertowanego workflow przed uruchomieniem produkcyjnym, więc warto zaplanować trochę pracy ręcznej. Gdy pipeline działa już jako workflow GitHub Actions, uruchamia się na CRACI dzięki jednej linii:
runs-on: craci
Uruchomienia nadal widać w interfejsie GitHub. Więcej o generowaniu SBOM w czasie buildu, alternatywach dla Azure Pipelines, porównaniu platform CI/CD oraz cenach.
Proszę uruchomić jeden prawdziwy build i porównać
Proszę przenieść jeden pipeline do workflow GitHub Actions na CRACI i zestawić jego SBOM oraz ślad sieciowy z tym, co dziś pokazuje Azure Pipelines.
Umów demo