깃랩(GitLab)은 온프레미스(on-premise) 설치형 깃 호스팅으로 유명하다. 깃헙처럼 웹서비스형태로도 사용이 가능하긴한데, 웹서비스형태로서의 사용은 깃헙이 선점하다시피 하고있다. 깃랩의 장점은 다음과 같다. 온프레미스 형태로 사용이 가능하다. CI/CD 지원이 뛰어나다. Web IDE를 지원한다. 유료 플랜을 사용할 경우, 깃랩에서 모든걸 처리할 수 있게끔 쿠버네티스 관리 보드를 지원한다. 깃랩의 CI/CD는 도커 컨테이너 위에서 돌아가고, 연결된 쿠버네티스에 배포된다. 프로젝트 루트에 gitlab-ci.yml 파일이 있는 상태에서 푸시가 들어오면 해당 파일에 명시된 파이프라인(task 묶음)이 실행된다. 일반적인 파이프라인의 구성은 다음과 같다. Test : 유닛 테스트, 통합 테스트, E2E..
AWS CloudFormation은 IaC를 위한 도구이다. 기본적으로 무료로 제공하지만, Advanced한 기능을 사용하려면 유료버전을 사용해야한다. AWS CloudFormation은 다음과 같은 순서를 가진다. 서버, 스토리지, 네트워크와 같은 인스턴스들을 어떤 식으로 구성해서 프로비저닝할지를 JSON/YAML 형식의 파일로 정의한다. AWS CloudFormation이 해당 외부의 정의 파일을 읽어들여 거기에 맞게 프로비저닝한다. { "AWSTemplateFormatVersion": "version date", "Description": "JSON String", "Metadata": { template metadata }, "Parameters": { }, "Mappings": { }, "Con..
젠킨스는 소프트웨어 개발 시 지속적인 통합 서비스를 제공하는 툴이다. CI( Continuous Integration ) 툴이라고도 부른다. 다수의 개발자들이 하나의 소프트웨어를 개발할 때 각자 작업한 내용을 Git과 같은 버전관리시스템에 업로드함으로 지속적인 통합이 가능하게 해준다. 젠킨스와 같은 CI 툴이 등장하기 전에는 일정시간마다 빌드를 실행하는 방식이 일반적이었다. 보통 개발자들이 당일 작성한 코드들의 커밋이 끝난 심야 시간대에 타이머에 의해 빌드를 하는 식이었다. ( nightly-build ) 젠킨스는 SVN, Git과 같은 버전관리시스템과 연동되어 코드의 커밋을 감지하여 자동적으로 자동화 테스트 + 빌드를 진행한다. 여기서 빌드를 진행하기 위해 프로젝트에서 사용하는 Gradle과 같은 빌드..