JFrog 개요

JFrog는 2019년 2월 Shippable 인수를 통해 아티팩트 저장소에서 CI 및 CD 기능을 포함하는 DevOps 플랫폼으로 전환했습니다. 최근 2020년 3월, JFrog는 pre-integrated 솔루션인 'JFrog Platform'이라는 DevOps 플랫폼 출시를 발표했습니다. JFrog Pipelines, JFrog X-Ray 및 JFrog Source Composition Analysis 제품에서 공통 UI를 사용합니다. 이 솔루션은 이러한 개별 제품 간의 정보 통합을 용이하게 하는 공통 메타데이터 모델에 의해 지원됩니다. JFrog Artifactory, JFrog Pipelines 및 JFrog Xray의 세 가지 주요 제품 외에도 JFrog Distribution, JFrog Mission Control 및 JFrog Container Registry와 같은 다른 제품도 제공됩니다.

JFrog Artifactory는 배포 및 배포에 사용하기 위해 빌드 프로세스의 바이너리 출력을 저장하도록 설계된 도구입니다. Artifactory는 다양한 패키지 형식을 지원합니다. JFrog Artifactory는 빌드 아티팩트에 대한 단일 소스를 제공하고 JFrog Distribution과 함께 작동하여 엔터프라이즈 전체에 대규모 아티팩트를 효율적으로 배포합니다.

JFrog Pipelines은 Artifactory 저장소와 잘 작동하는 CI/CD 제품입니다. JFrog 파이프라인은 기본 단계(bash로 빌드된 높은 순서의 집합)와 리소스(기본 단계에 대한 입력 또는 출력, 빌드, 통합 등과 같은 모든 유형일 수 있음)의 조합을 통해 작동합니다. JFrog 파이프라인은 기능적인 CI/CD 제품이지만 엔터프라이즈급 제품에는 일반적으로 제공되는 몇 가지 기능이 없습니다.

JFrog Xray는 JFrog 파이프라인 내 다양한 ​​단계에 내장될 수 있는 보안 제품입니다. Xray는 모든 종속 코드에서 보안 취약점 감지를 지원하고 라이선스 준수 기능도 제공합니다.

photo | 인포그랩 GitLab | 인포그랩 GitLab

JFrog Artifactory

Artifactory는 Maven, Debian, NPM, Helm, Ruby, Python 및 Docker와 같은 다양한 패키지 형식을 지원합니다. Artifactory는 또한 아티팩트를 만드는 데 사용된 모든 구성 요소의 전체 맵을 저장합니다. 이 정보는 JFrog Xray와 같은 다른 제품에 공급됩니다. JFrog Distribution을 사용하여 아티팩트를 원격 사이트에 효율적으로 배포할 수 있습니다.

GitLab은 또한 패키지를 저장하고 배포하는 기능을 제공하지만, 현재는 Maven, Docker, NPM과 같은 Artifactory보다 패키지 유형 호환성이 낮습니다. GitLab의 강점은 전체 DevOps 라이프사이클 동안 단일 제품을 제공하는 것입니다. 또한 GitLab CI/CD 및 보안 기능은 더 나은 기능을 제공하며 엔터프라이즈급 기능을 제공합니다.

JFrog Artifactory 강점

  • 아티팩트 저장소로서의 강력한 시장 입지
  • Maven, Debian, NPM, Helm, Ruby, Python 및 Docker와 같은 패키지 형식과 같은 패키지 형식을 광범위하게 지원

GitLab과 JFrog Artifactory의 차이(JFrog Artifactory의 단점)

JFrog Artifactory는 카테고리에서 업계 선두 주자이지만 GitLab과 큰 격차가 없습니다.

JFrog Pipelines

Shippable을 인수한 JFrog Pipelines는 기능적인 CI/CD 제품입니다. JFrog Pipelines는 'Native Steps'를 구축하여 CI-CD를 더 간단하게 만들려고 합니다. Yaml에서 설명할 수 있는 CI/CD 프로세스의 미리 빌드된 구성 요소 또는 단계와 유사하여 사용자에게 낮은 수준의 복잡성을 드러내지 않습니다. 기본 단계의 몇 가지 예는 Docker 빌드, Docker 푸시, NPM 빌드, NPM 게시 및 XrayScan입니다. JFrog Pipelines에는 몇 가지 강점과 약점이 있습니다. JFrog Pipelines의 주된 약점은 긴 빌드 시간과 협업의 어려움입니다.

JFrog Pipelines 강점

  • JFrog Artifactory와의 긴밀한 통합
  • 기본 단계를 사용자 지정 코드와 혼합 및 일치시킬 수 있는 기능-즉석 작업을 줄이면서 사용자 지정할 수 있는 유연성을 제공
  • 모두 재사용할 수 있는 단계(기본 및 사용자 지정), 리소스, 파이프라인의 핵심 개념으로 잘 설계됨

GitLab과 JFrog Pipelines의 차이(JFrog Pipelines 단점)

  • 코드를 인식하고 파이프라인을 미리 빌드하는 기능인 AutoDevOps와 같은 엔터프라이즈급 기능이 부족
  • 병합 요청 또는 여러 개발자가 쉽게 공동 작업할 수 있는 개체와 같은 컨테이너 개념이 없음
  • 제출 대기열이 만들어지면 빌드 및 파이프라인을 자체 최적화할 수 없음
  • 테스트와의 긴밀한 통합 부족-즉 테스트를 수행하는 기본 단계가 없음
  • 병렬로 실행할 수 있는 상위-하위 파이프라인의 혁신적인 사용을 통해 빌드 프로세스 동안 테스트의 확장성이 부족

JFrog Pipelins와 GitLab의 유사점

기능설명
YAML 기반파이프라인은 YAML Syntax 사용합니다.
단계 재사용단계를 데이지 체인으로 연결하고 여러 다른 컨텍스트에서 단계를 재사용할 수 있습니다. 기본 또는 기본 제공 단계는 작은 단위입니다.
수평적 확장수평으로 확장합니다. 확장함에 따라 시스템에 노드를 추가할 수 있습니다. 수평으로 확장하여 1,000개의 앱을 지원합니다. 모든 OS, 탄력적 빌드 노드를 위한 하나의 도구입니다.
제품군 내 통합최근 JFrog Platform 제품은 잘 통합되어 있습니다. Pipelines는 Artifactory 및 Xray와 통합합니다.

JFrog 파이프라인에서 누락된 GitLab 기능

기능설명
Merge RequestMerge Request는 변경을 유도하는데 필요한 모든 메모, 작업 및 활동을 용이하게 캡처하는 구성 엔터티입니다. 또한 개발자는 변경 사항에 대해 협업합니다. JFrog Pipelines에서 이 기능이 없기 때문에 고객은 이러한 격차를 해소하기 위해 타사 제품에 의존해야 합니다.
Merge TrainsMerge Trains를 통해 사용자는 빌드를 예약, 관리 및 최적화할 수 있습니다. 이 기능은 많은 분산 개발자가 동일한 프로젝트에 코드를 제공할 때 매우 유용합니다.
Auto DevOpsAuto DevOps는 소스 코드 언어를 인식하고 빌드 및 배포에 필요한 파이프라인을 자동으로 설정합니다. 이를 통해 파이프라인을 구축하고 유지하는 시간을 절약할 수 있습니다. 이와 같은 스마트 기능은 JFrog에는 없습니다.
부모 자식 파이프라인부모-자식 파이프라인 기능은 여러 병렬 빌드를 가능하게 합니다. 이러한 빌드는 자체 조정되며 테스트 병렬화, 조건 매트릭스 빌드 및 테스트 등과 같은 여러 기능을 사용할 수 있습니다. JFrog에는 이 중요한 기능이 없습니다.
Review App리뷰 앱을 사용하면 개발자가 변경 사항을 빠르게 검토하고 승인할 수 있습니다. 이렇게 하면 전통적으로 값비싼 개발 테스트 주기가 필요하지 않습니다. 또한 분산된 팀이 변경 사항을 검토하고 조치를 할 수 있도록 합니다. 이 기능은 GitLab CI-CD 솔루션의 표준 부분으로 제공됩니다. JFrog는 리뷰 앱을 지원하지 않습니다. 고객은 JFrog를 사용할 때 추가 소프트웨어와 인프로가 필요합니다.
기능 플래그기능 플래그를 사용하면 Blue-Green 배포와 같은 다양한 배포 모델이 널리 사용되기 전에 변경 사항을 테스트할 수 있습니다. 이 기능은 JFrog에서 누락되었으며 추가 타사 소프트웨어 라이선스를 구매해야 합니다.
개발자 생산성 기능개발자 생산성은 DevOps를 채택하는데 가장 큰 요인입니다. GitLab은 Merge Requests의 주석을 통해 빌드를 시작하는 등의 기능을 통해 개발자 생산성을 높입니다. 이러한 기능은 현재 JFrog에서 누락되었습니다.
테스트 및 보안에 통합GitLab의 보한 소프트웨어 및 테스트 통합은 원활합니다. JFrog는 개별 제품을 단일 플랫폼에 통합했습니다. UX는 GitLab만큼 매끄럽지 않습니다.

JFrog X-Ray

JFrox Xray는 VulnDB 데이터베이스 취약성에 대해 애플리케이션 구성 요소를 스캔하여 정적 애플리케이션 테스트 기능을 제공합니다. Xray는 또한 보안 정책 시행 및 라이선스 준수를 모니터링하는 기능을 제공합니다. 또한 Xray는 보안 정책 시행 및 라이선스 준수를 모니터링하는 기능을 제공합니다. Xray는 Intellij와 같은 IDE와 통합되어 개발자가 개발환경에서 보안 문제를 볼 수 있도록 합니다.

요약

기능GitLabJFrog Xray
SAST
Dependency Scanning
Container Scanning
License Compliance
Auto Remediation
DASTx
Secrets Detectionx
API Fuzzingx
Coverage Fuzzingx
IASTxx

JFrog X-Ray 강점

  • 개발하는 동안 혹은 바이너리 빌드가 끝난 후에 보안 스캔
  • 라이선스 또는 보안 정책을 준수하지 않는 것으로 간주하는 아티팩트의 다운로드를 제한하는 기능

GitLab과 JFrog X-Ray의 차이(JFrog XRay 단점)

  • DAST : Xray는 배포 후 단계로 확장되지 않음
  • 코드 내 secrets detection이 안됨
  • 개발자는 보안을 관리하기 위해 IDE에서 Xray UI를 왔다 갔다 해야 함

JFrog X-Ray와 GitLab의 유사점

기능설명
SASTXray는 SAST 기능을 제공하고 다른 IDE와 통합됩니다. 보한 취약점 정보를 위해 VulnDB를 사용합니다.
Container ScanningXray는 종속성 정보의 압축을 풀어 컨테이너와 바어너리를 스캔합니다.
Policy Enforcement보안 및 라이선스 정책을 정의할 수 있습니다. 정의된 기준으로 규칙이 추가됩니다. 조건이 충족되면 응답을 위해 웹훅을 트리거할 수 있습니다. R-Ray에는 정책을 위반하는 다운로드를 방지하는 기능도 내장되어 있습니다.
License Compliance소프트웨어 구성 요소에 대한 라이선스 정책. X-Ray는 알림/응답을 식별하고 트리거합니다.