GitLab
-
GitLab CI를 이용한 Kubernetes를 위한 CI/CD 파이프라인
현대 소프트웨어 개발은 빠른 배포 주기, 확장성 및 복원력을 요구합니다. Kubernetes는 확장 가능한 컨테이너화된 애플리케이션 관리가 가능하도록 하는 기본 오케스트레이션 플랫폼으로 자리 잡았습니다. GitLab CI/CD 파이프라인과 결합하면 Kubernetes 배포가 자동화되고 반복 가능하며 신뢰할 수 있게 됩니다. 이 기사는 GitLab CI를 사용하여 Kubernetes에 대한 CI/CD 파이프라인을 설정하는 기술적 세부 사항을 탐구합니다. 전제 조건 CI/CD 파이프라인을 구성하기 전에 다음 요구 사항이 충족되었는지 확인하십시오: GitLab 계정: CI/CD 파이프라인이 구성될 GitLab 리포지토리에 대한 액세스 권한이 필요합니다. Kubernetes 클러스터: Minikube(로컬 테스트용) 또는 Google Kubernetes Engine(GKE),…
-
Terraform, Ansible, GitLab로 IaC 플랫폼 구축
이러한 환경들을 다양하게 구축하는 동시에 표준화와 효율적인 모니터링을 보장する 것이 중요하며, 이러한 환경들을 안전하게 제공하는 것이 필수적입니다. 이를 위해, 환경을 코드로 제공하는 불변성 infrustructure 접근법을 채택하는 것이 필수적입니다. 이 글의目的是 GitLab의 구조를 사용하여 템플릿과 표준을 강제하고, Terraform을 사용하여 서버 간 표준을 적용하고 유지하며, Ansible을 사용하여 소프트웨어 제공과 구성을 수행하는 것을 통해 이를 실현하는 가능한 접근 방식을 보여주는 것입니다. 저장소 간 공유 역할 모델을 사용합니다. Terraform으로 기계의 상태를 관리하려면 MinIO를 사용합니다.因为这可以使이 구현을 사설으로 실행합니다. 아키텍처 디자인 단계 1 과정은 항상 표준화된…
-
Terraform 상태를 GitLab CI/CD로 마이그레이션하는 방법
인프라스트럭처를 코드로 다루는 소프트웨어 전문가로서, 당신은 아마도 많은 작업을 Terraform과 함께 진행할 것입니다. 새로운 고객을 도와 IaC를 사용하게 하려면 간단히 만드는 것이 일반적이지만, Terraform 상태 파일을 관리하는 것이 첫 번째 과제입니다. 기본적으로 Terraform 상태에는 민감한 정보가 포함되어 있으며, 소스 제어에 저장되어서는 안 되지만, 동시에 동일한 Terraform 상태에서 여러 사용자가 작업하는 경우 확장되지 않습니다. 그 해답은? 백엔드입니다. 핵심적으로, 해당 상태 파일을 S3 버킷에 저장하고 DynamoDB를 사용하여 잠금 상태를 관리할 수 있다는 점에 유의해야 합니다. 그러나 이러한 접근 방식은 추가 리소스를 생성하도록…
-
CI/CD GitLab을 사용하여 Cypress E2E 테스트 케이스 실행하기
사이프레스는 웹 애플리케이션을 테스트하는 데 사용되는 종단 간 테스트 프레임워크입니다. 이는 개발자가 웹 애플리케이션에 대한 자동화된 테스트를 간단하고 쉬운 방법으로 작성하고 실행할 수 있게 해주는 오픈 소스 JavaScript 기반 프레임워크입니다. 사이프레스는 웹 개발자들에게 빠르고, 신뢰할 수 있으며, 사용하기 쉬운 테스트 경험을 제공합니다. 개발자들은 JavaScript로 테스트를 작성할 수 있으며, 자동 테스트 리로드, 시간 여행 디버깅, 대화형 디버깅과 같은 강력한 기능을 포함하고 있습니다. 또한 테스트 결과와 인사이트를 볼 수 있는 대시보드도 제공합니다. GitLab은 CI/CD 파이프라인을 통해 사이프레스와 통합을 제공합니다. 개발자들은 GitLab을 구성하여…
-
Heroku 애플리케이션을 GitLab CI/CD로 스테이징 및 프로덕션 환경에 배포하기
이전 기사에서는 GitLab CI/CD를 사용하여 Heroku에 자동으로 배포하는 방법을 탐구했습니다. 그 설정은 우리가 main 브랜치에 코드를 푸시할 때마다 앱을 프로덕션 환경으로 배포했습니다. 이 기사에서는 약간 더 복잡한 접근 방식을 고려해 보겠습니다: 여러 환경이 있는 경우는 어떨까요? 대부분의 엔지니어링 조직은 적어도 세 가지 환경을 사용합니다: 로컬 개발 환경, 스테이징 환경, 그리고 프로덕션 환경. 또한, 일부 엔지니어링 팀은 Gitflow 브랜칭 전략을 따르며, dev 브랜치와 main 브랜치를 가지고 있습니다. 이 전략은 이제 인기가 사라지고 트렁크 베이스 개발로 대체되었지만, 여전히 이러한 관행을 따르는 조직을…
-
GitLab을 사용하여 작업 동시 실행하기 (Part 1)
이야기해보죠 GitLab. 웹 기반 DevOps 플랫폼인 GitLab은 소프트웨어 개발, 버전 제어, 지속적 통합, 전달(CI/CD), 그리고 협업을 위한 전체 도구 세트를 제공합니다. 잘 알려진 분산 버전 제어 시스템인 Git을 기반으로 하여 중앙집중식 저장소 관리 솔루션을 제공합니다. GitLab은 팀이 소프트웨어 개발 프로젝트를 효율적으로 관리하고, 변경 사항을 추적하며, 코드에 대한 협업을 수행할 수 있도록 해줍니다. 프로젝트 관리 도구뿐만 아니라 코드 저장소, 문제 추적, 코드 리뷰, 지속적 통합 및 배포 기능을 제공합니다. GitLab의 주요 기능 GitLab의 버전 제어 시스템은 Git을 기반으로 하여 개발자가 변경…
-
GitLab 페이지 미리보기
아파치 아피시스(APISIX)와 관련된 블로그 포스트를 작성할 때, 동료들이 먼저 리뷰할 수 있도록 하고 싶습니다. 하지만 이는 제 블로그이며, 개인적인 내용과 업무 관련 내용이 혼합되어 있기 때문에 저장소에서 이를 유지하려 합니다. 몇몇 사람들에게만 접근 가능한 미리보기, 마치 Vercel의 미리보기와 같은 것이 필요합니다. 저는 GitLab Pages를 사용 중이지만, 이런 기능은 기본적으로 제공되지 않습니다. I tried two methods: GitHub gists and PDFs. Both have issues. Gists는 최종 페이지처럼 멋지게 보이지 않습니다. 이 상황을 개선하기 위해 DocGist를 사용해보았습니다. 그것은 단지 만능이 아닐지라도 개선되었습니다. 또한,…
-
GitOps: Flux와 Argo CD 비교
GitOps는 배포 구성을 위한 진실의 원천으로 Git을 사용하는 소프트웨어 개발 및 운영 방법론입니다. 애플리케이션이나 인프라의 원하는 상태를 Git 저장소에 유지하고 Git 기반 워크플로를 사용하여 변경 사항을 관리 및 배포하는 것을 포함합니다. 기업이 자신의 Kubernetes 애플리케이션을 관리하기 위해 GitOps를 구현하는 데 도움이 되는 두 가지 인기 있는 오픈 소스 도구는 Flux와 Argo CD입니다. 이 기사에서는 이러한 도구와 그 장단점, 설정 방법에 대해 자세히 살펴보겠습니다. DZone의 관련 자습서인 Jenkins와 Kubernetes로 CI/CD 파이프라인을 자동화하는 방법을 읽어보세요. Flux와 Argo CD의 일반적인 사용 사례 Flux…
-
GitHub, GitLab, 또는 Bitbucket을 백업해야 하는 이유—데이터 손실의 위험
당신의 조직이 GitHub, GitLab, Bitbucket과 같은 버전 제어 시스템을 사용한다면, 코드를 지식 재산으로서 회사 내에서 가장 귀중한 자산이라는 것을 아마도 잘 알고 있을 것입니다. 당신과 당신의 팀은 수천 시간(그리고 돈)을 투자하여 프로젝트를 작성, 지원 및 개선하였습니다. CTO, IT 관리자, 소프트웨어 하우스 소유자 또는 팀 리더로서, 팀이 몇 달간 작업한 코드를 잃는 것이 얼마나 큰 비용인지 상상하실 수 있을 것입니다. 하지만 이것이 가능할까요? 데이터 유출, 시스템 다운타임, 정책 변경 등, 이러한 모든 요소들이 GitHub, GitLab, Bitbucket의 저장소에 대한 접근을 제한하고 지식…