Posts tagged "gitlab" | DevSecOps 구축 컨설팅, 교육, 기술지원 서비스 제공

하이라이트

GitLab 15.1 릴리즈 노트: SAML 그룹 동기화와 SLSA 레벨 2 빌드 아티팩트 자격 증명과 함께 릴리즈

오늘 우리는 SAML 그룹 동기화, 빌드 아티팩트 자격 증명, CI/CD 구성이 포함된 링크, DORA 메트릭으로 Value stream에 대해 향상된 가시성 등을 포함 하는 GitLab 15.1 릴리즈를 발표하게 된 것을 기쁘게 생각합니다! 이는 이번 릴리즈의 30개 이상의 개선 사항 중 일부에 불과합니다. 아래에서 멋진 업데이트를 모두 확인하세요. DevOps를 기념하는 6월 23일에 함께 하세요! 다음 달 릴리즈의 내용을 미리 보려면 15.2 릴리즈 시작 비디오가 포함된 예정 릴리즈 페이지를 확인하십시오.

자세히 보기
HOME  /  BLOG

gitlab 태그 58개의 포스트

AWS EC2 Mac 인스턴스에 GitLab Runner 설치하기AWS EC2 Mac 인스턴스에 GitLab Runner 설치하기

iOS 앱을 개발하면서 코드사이닝, 버전 및 빌드 번호 변경, 테스트하여 TestFlight 및 App Store에 배포하는 일련의 과정은 번거로운 작업일 수 있습니다. Fastlane과 GitLab CI/CD 파이프라인을 사용하면 이러한 작업을 자동화할 수 있습니다. 개발자는 새로운 기능을 개발하거나 기존 기능을 개선한 후, 코드를 커밋하고 GitLab에 Push만 하면 됩니다. GitLab CI/CD 파이프라인이 개발자를 대신해 자동으로 빌드, 테스트하고 TestFlight 및 App Store에 앱을 배포합니다.

이번 글에서는 AWS EC2 Mac 인스턴스를 시작하고 Apple Remote Desktop(ARD)을 사용하여 인스턴스에 연결한 후, GitLab macOS Runner를 설치 및 구성하는 내용을 다루겠습니다. “GitLab과 Fastlane으로 iOS 앱 빌드 및 배포 자동화하기” 시리즈의 첫 번째 포스트입니다.

GitLab에서 iOS 앱을 빌드하고 배포하기 위해서는 macOS Runner가 필요합니다. 소규모 기업이나 팀에서는 Mac mini나 MacBook에 Runner를 설치하고 사무실 한편에 두고 사용할 수 있겠으나 보안, 안정성 및 확장성 향상을 고려한다면 AWS EC2 Mac 인스턴스를 사용하는 것도 방법입니다. 다만 AWS EC2 Mac 인스턴스 사용에 대한 비용은 고려해야 할 사항입니다.

AWS EC2 Mac 인스턴스 시작#

Mac1 인스턴스는 기본적으로 macOS 운영 체제를 지원합니다. Mac 미니 하드웨어에 구축되며 3.2GHz 인텔 8세대(Coffee Lake) Core i7 프로세서로 구동됩니다. 이러한 인스턴스는 iPhone, iPad, iPod, Mac, Apple Watch 및 Apple TV와 같은 Apple 디바이스용 애플리케이션의 개발, 구축, 테스트 및 서명에 적합합니다. SSH 또는 Apple Remote Desktop(ARD)을 사용하여 Mac 인스턴스에 연결할 수 있습니다.

EC2 Mac 인스턴스 상세 정보#

현재는 x86 기반 EC2 Mac 인스턴스만 사용 가능하고, M1 Mac 인스턴스는 preview 상태입니다.

Instance FamilyInstance SizeProcessorPhysical coresvCPUsMemory (GiB)Instance StorageNetwork Bandwidth (Gbps)EBS Bandwidth (Mbps)
Mac1mac1.metalIntel Core i761232EBS-Only108,000
Mac2mac2.metalApple M14 performance +4 efficiency cores1216EBS-Only108,000

가격#

Amazon EC2 Mac 인스턴스는 온디맨드 및 Savings Plan 요금 모델을 통해 전용 호스트로 구입할 수 있습니다. EC2 Mac 인스턴스에 대한 청구는 Apple macOS 소프트웨어 라이선스 계약을 준수하기 위해 24시간의 최소 할당 기간으로 초당 청구됩니다. 온디맨드를 통해 EC2 Mac 호스트를 시작하고 몇 분 안에 가동 및 실행할 수 있습니다. 24시간의 최소 할당 기간이 끝나면 호스트는 추가 약정 없이 언제든지 해제될 수 있습니다.

온디맨드 요금#
  • 아시아 태평양(서울) : 1.332 USD (1일 : 31.968 USD)
  • 아시아 태평양(도쿄) : 1.399 USD
  • 미국 (버지니아 북부, 오하이오) : 1.083 USD

콘솔을 사용하여 Mac 인스턴스 시작#

Mac 인스턴스는 전용 호스트에서 베어 메탈 인스턴스로만 사용할 수 있으며, 전용 호스트를 릴리스하기 전의 최소 할당 기간은 24시간입니다. 전용 호스트당 하나의 Mac 인스턴스를 시작할 수 있습니다. AWS 조직 내의 AWS 계정 또는 조직 단위나 전체 AWS 조직과 전용 호스트를 공유할 수 있습니다.

Amazon EC2 전용 호스트는 고객 전용의 EC2 인스턴스 용량을 갖춘 물리적 서버입니다.

다음 절차의 설명에 따라 AWS Management Console을 사용하여 Mac 인스턴스를 시작할 수 있습니다.

  1. EC2 콘솔의 좌측 탐색 창에서 인스턴스 > 전용 호스트를 선택합니다.
  2. 전용 호스트 할당 버튼을 클릭합니다.
  3. 다음 항목을 입력 또는 선택한 후 할당 버튼을 클릭합니다.
    • 이름 태그 : macOS GitLab Runner 입력
    • 인스턴스 패밀리 : mac1 선택
    • 인스턴스 유형 : mac1.metal 선택
    • 가용 영역 : 전용 호스트의 가용 영역 선택 (예 : ap-northeast-1a)
    • 수량 : 1 유지
  4. 목록에서 생성한 전용 호스트를 체크하고, 작업(Actions), 호스트에서 인스턴스 시작(Launch instances onto host)을 차례로 선택합니다.
  5. 다음 항목을 입력 또는 선택한 후 인스턴스 시작 버튼을 클릭합니다.
    • 이름 : macos-runner 입력
    • Amazon Machine Image(AMI) : macOS Monterey 12.3.1 선택
    • 인스턴스 유형 : mac1.metal 선택
    • 키 페어 : 미리 생성한 키 페어 선택
    • 네트워크 설정 섹션의 편집 버튼을 클릭하고 다음 항목 선택
      • VPC
      • 서브넷
      • 방화벽(보안 그룹)에서 기존 보안 그룹 선택을 체크하고 Runner 보안 그룹 선택
    • 스토리지 구성 : 100 GiB, gp2
  6. 성공 메시지 확인 후, 모든 인스턴스 보기 버튼을 클릭합니다.
  7. 인스턴스 화면에서 시작 상태를 볼 수 있습니다. 인스턴스를 시작하는 데 약간 시간이 걸립니다. 인스턴스를 시작할 때 초기 상태는 대기 중(pending)입니다. 인스턴스가 시작된 후에는 상태가 실행 중(running)으로 변경되고 상태 검사를 통과하면 인스턴스가 준비됩니다.

SSH를 사용하여 인스턴스에 연결#

  • 아래 명령을 실행하여 EC2 Mac 인스턴스에 연결합니다.
$ ssh -i "my-key-pair.pem" ec2-user@13.230.99.158
The authenticity of host '13.230.99.158 (13.230.99.158)' can't be established.
ED25519 key fingerprint is SHA256:J4yXPVW6l5n4WLridVLGwks/XcdpTQpe6HaUUtHuswg.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '13.230.99.158' (ED25519) to the list of known hosts.
┌───┬──┐ __| __|_ )
│ ╷╭╯╷ │ _| ( /
│ └╮ │ ___|\___|___|
│ ╰─┼╯ │ Amazon EC2
└───┴──┘ macOS Monterey 12.3.1
ec2-user@ip-10-20-101-35 ~ %
  • system_profiler SPSoftwareDataType SPHardwareDataType 명령을 실행하면 시스템의 소프트웨어와 하드웨어 정보를 확인할 수 있습니다.
% system_profiler --help
% system_profiler -listDataTypes
% system_profiler SPSoftwareDataType SPHardwareDataType
Software:
System Software Overview:
System Version: macOS 12.3.1 (21E258)
Kernel Version: Darwin 21.4.0
Boot Volume: Macintosh HD
Boot Mode: Normal
User Name: ec2-user (ec2-user)
Secure Virtual Memory: Enabled
System Integrity Protection: Disabled
Time since boot: 26 minutes
Hardware:
Hardware Overview:
Model Name: Mac mini
Model Identifier: Macmini8,1
Processor Name: 6-Core Intel Core i7
Processor Speed: 3.2 GHz
Number of Processors: 1
Total Number of Cores: 6
L2 Cache (per Core): 256 KB
L3 Cache: 12 MB
Hyper-Threading Technology: Enabled
Memory: 32 GB
System Firmware Version: 1731.100.130.0.0 (iBridge: 19.16.14243.0.0,0)
OS Loader Version: 540.100.7~23
Serial Number (system): H2WFR0U5JYVY
Hardware UUID: BAC422CE-02A5-55DD-BADD-EB7EC2E68249
Provisioning UDID: BAC422CE-02A5-55DD-BADD-EB7EC2E68249
Activation Lock Status: Disabled
  • 시스템의 디스크 정보를 확인합니다.
% df -h
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk2s4s1 100Gi 14Gi 78Gi 16% 500637 814981080 0% /
devfs 188Ki 188Ki 0Bi 100% 650 0 100% /dev
/dev/disk2s6 100Gi 20Ki 78Gi 1% 0 814981080 0% /System/Volumes/VM
/dev/disk2s2 100Gi 252Mi 78Gi 1% 770 814981080 0% /System/Volumes/Preboot
/dev/disk2s5 100Gi 256Ki 78Gi 1% 20 814981080 0% /System/Volumes/Update
/dev/disk2s1 100Gi 6.5Gi 78Gi 8% 156064 814981080 0% /System/Volumes/Data
map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /System/Volumes/Data/home

ARD를 사용하여 인스턴스에 연결#

Apple Remote Desktop(ARD)을 사용하여 인스턴스에 연결합니다.

로컬 컴퓨터에 ARD 클라이언트 또는 ARD를 지원하는 VNC 클라이언트가 설치되어 있는지 확인합니다.

macOS에서는 기본 제공되는 화면 공유 애플리케이션을 활용할 수 있습니다. 그렇지 않은 경우, 운영 체제의 ARD를 검색하여 설치합니다.

  • SSH를 사용하여 인스턴스에 연결한 후, passwd 명령을 사용하여 ec2-user 게정의 암호를 설정합니다.

    $ sudo passwd ec2-user
    Changing password for ec2-user.
    New password:
    Retype new password:
    ################################### WARNING ###################################
    # This tool does not update the login keychain password. #
    # To update it, run `security set-keychain-password` as the user in question, #
    # or as root providing a path to such user's login keychain. #
    ###############################################################################
  • Apple Remote Desktop 에이전트를 시작하고 다음과 같이 원격 데스크톱 액세스를 활성화합니다.

    $ sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
    -activate -configure -access -on \
    -restart -agent -privs -all
    Starting...
    Screen recording might be disabled. Screen Sharing or Remote Management must be enabled from System Preferences or via MDM.
    Screen control might be disabled. Screen Sharing or Remote Management must be enabled from System Preferences or via MDM.
    Activated Remote Management.
    Stopped ARD Agent.
    ec2-user: Set user remote control privileges.
    ec2-user: Set user remote access.
    Done.
  • 로컬 컴퓨터에서 아래 명령을 사용하여 인스턴스에 연결합니다.

    ssh -L 5900:localhost:5900 -i "my-key-pair.pem" ec2-user@13.230.99.158
  • Finder를 열고 화면 공유 애플리케이션을 시작합니다. (⌘cmd + k 키)

    화면 공유 애플리케이션 | 인포그랩 GitLab
  • 사용자 이름에  ec2-user을 입력하고 이전 단계에서 설정한 암호를 입력하여 로그인합니다.

    화면 공유 로그인 | 인포그랩 GitLab
  • 화면 공유 애플리케이션이 시작되면 다시 패스워드를 입력하여 로그인합니다.

    macOS 로그인 | 인포그랩 GitLab

macOS Runner 설치 및 구성#

Amazon EC2 Mac 인스턴스에 GitLab Runner를 설치하려고 할 때, SSH를 사용하여 인스턴스에 연결하여 설치하면 아래와 같은 오류가 발생할 수 있습니다. ARD로 연결한 후, GUI 상에서 Terminal을 열고 설치 및 구성을 진행해야 합니다.

"launchctl" failed: exit status 112, Could not find domain for

ARD로 연결한 Amazon EC2 Mac 인스턴스에서 Terminal을 열립니다.

Terminal | 인포그랩 GitLab

이후 Runner 설치 및 등록 절차는 로컬 컴퓨터에서 진행하는 것과 동일합니다.

  • macOS amd64용 바이너리를 다운로드합니다.

    % sudo curl --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64"
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 46.9M 100 46.9M 0 0 10.6M 0 0:00:04 0:00:04 --:--:-- 10.6M
  • 실행 권한을 부여합니다.

    sudo chmod +x /usr/local/bin/gitlab-runner
  • GitLab Admin Area에 접속한 후, Overview > Runners 페이지로 이동합니다.

    Shared Runners | 인포그랩 GitLab
  • Terminal에서 gitlab-runner register 명령을 실행하고 지침에 따라 아래 항목을 입력합니다.

    • Enter the GitLab instance URL : GitLab URL를 복사한 후, 터미널에 붙여 넣고 Enter 키를 누릅니다.

    • Enter the registration token : GitLab UI에서 Copy token 아이콘을 클릭하여 클립보드에 복사한 후, 터미널에 붙여 넣고 Enter 키를 누릅니다.

    • Enter a description for the runner : 러너에 대한 설명을 입력하고 Enter 키를 누릅니다. (예: aws-macos-runner-1)

    • Enter tags for the runner : amd64,monterey,ios를 입력하고 Enter 키를 누릅니다.

    • Enter optional maintenance note for the runner : 관리를 위한 설명을 입력합니다. (예: AWS macOS Runner)

    • Enter an executor : shell을 입력하고 Enter 키를 누릅니다.

      % gitlab-runner register
      Runtime platform arch=amd64 os=darwin pid=1254 revision=f761588f version=14.10.1
      WARNING: Running in user-mode.
      WARNING: Use sudo for system-mode:
      WARNING: $ sudo gitlab-runner...
      Enter the GitLab instance URL (for example, https://gitlab.com/):
      https://gitlab.infograb.net/
      Enter the registration token:
      Hzyo3pPTE9FJgH8KpHze
      Enter a description for the runner:
      [ip-10-20-101-35.ap-northeast-1.compute.internal]: aws-macos-runner
      Enter tags for the runner (comma-separated):
      amd64,monterey,ios
      Enter optional maintenance note for the runner:
      AWS macOS Runner
      Registering runner... succeeded runner=GR1348941GJpxXCKV
      Enter an executor: custom, docker, parallels, ssh, docker-ssh+machine, kubernetes, docker-ssh, shell, virtualbox, docker+machine:
      shell
      Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
  • vi .gitlab-runner/config.toml 명령을 실행하고 concurrent1에서 8로 수정합니다.

    concurrent = 8
    check_interval = 0
    [session_server]
    session_timeout = 1800
    [[runners]]
    name = "aws-macos-runner"
    url = "https://gitlab.infograb.net/"
    token = "Hzyo3pPTE9FJgH8KpHze"
    executor = "shell"
    [runners.custom_build_dir]
    [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  • GitLab Runner를 서비스로 설치하고 시작합니다.

    cd ~
    gitlab-runner install
    gitlab-runner start

맺음말#

지금까지 AWS 전용 호스트에서 EC2 Mac 인스턴스를 시작하고 Apple Remote Desktop(ARD)을 사용하여 인스턴스에 연결한 후, GitLab macOS Runner를 설치 및 구성하는 방법을 알아보았습니다. 다음 글은 iOS 프로젝트용 GitLab CI/CD 파이프라인을 구성하기 전에, Fastlane 및 CocoaPods를 설치하고 구성하는 방법에 대한 내용을 작성할 예정입니다.
다음 포스트도 기대해 주세요.

인포그랩은 GitLab 및 DevOps에 대한 맞춤 기술 지원을 제공합니다. GitLab과 Runner 구축 관련하여 지원이 필요하시면 문의하기로 연락 주십시오.

참고#

AWS Amazon EC2 Mac 인스턴스
Amazon EC2 Mac Instances
Install GitLab Runner on macOS

Jason Lee
Jason Lee | DevOps Architect
GitLab HA 구성하기 (GitLab Korea Meetup 발표 요약)GitLab HA 구성하기 (GitLab Korea Meetup 발표 요약)

GitLab으로 개발자의 업무시스템을 쓰신다고요? GitLab 서버가 장애로 Git 활동이나 MR 활동 못하면 협업에 지장이 생기고, 불편을 초래하게 되죠? 이를 방지 하기 위해 GitLab도 HA로 구성을 할 수 있습니다.

GitLab Reference Architecture에는 3000명 이상 사용자 부터 HA를 구성에 대한 가이드를 하고 있습니다. 이를 토대로 GitLab Korea Meetup에서 우리회사 Jason 께서 세션 발표를 짧게 진행해 주셨습니다.

발표에서 나온 인사이트들을 정리해 보았습니다.

Dexter
Dexter | DevOps Consultant
GitOps & GitLab:클라우드 네이티브, 멀티 클라우드, 레거시 환경을 위한 인프라 자동화 및 협업GitOps & GitLab:클라우드 네이티브, 멀티 클라우드, 레거시 환경을 위한 인프라 자동화 및 협업

안녕하십니까! 명절은 잘 보내셨나요? 2022년 새해를 맞아 인포그랩에 관심을 가지고 찾아와주신 독자님들께, 이번 포스팅에서는 GitLab의 모티브가 되는 프레임워크인 GitOps에 대한 설명과 GitOps를 지원하는 여러 가지 애플리케이션 중 GitLab이 가지는 특색을 설명해 드리고자 합니다.

Mark Park
Mark Park | DevOps Engineer
2022년 DevOps는 팀을 위해 무엇을 할까?2022년 DevOps는 팀을 위해 무엇을 할까?

지난 6개월 동안 GitLab은 팀과 개인 기여자에게 설문 조사를 통해 DevOps 플랫폼 관행을 평가하도록 요청했습니다. 현재까지 600명 이상의 사람들이 자신의 경험을 공유하여 오늘날의 DevOps에 대한 명확하고 다소 놀라운 스냅샷을 제공했습니다. 물론 기술적인 승리는 분명하지만 DevOps와 최신 소프트웨어 개발이 비즈니스 변화를 주도하는 방법을 엿볼 수도 있습니다.

Michael Shin
Michael Shin | Software Engineer
GitLab 14.7 릴리즈 노트: Streaming Audit Event와 그룹 액세스 토큰GitLab 14.7 릴리즈 노트: Streaming Audit Event와 그룹 액세스 토큰

Streaming Audit Events, 그룹 액세스 토큰 등이 포함된 GitLab 14.7 릴리즈를 발표하게 된 것을 기쁘게 생각합니다!

Michael Shin
Michael Shin | Software Engineer
GitLab 14.6 릴리즈 노트: 원활한 Geo 환경 추가와 SAST에서 .NET 6 지원GitLab 14.6 릴리즈 노트: 원활한 Geo 환경 추가와 SAST에서 .NET 6 지원

2021년의 마지막 릴리즈인 GitLab 14.6의 릴리즈를 발표하게 된 것을 기쁘게 생각합니다. 이 릴리즈는 전 세계에 분산된 팀이 가장 가까운 지리적 사이트를 자동으로 사용하여 Git 복제 또는 Git 풀 명령을 가속화하는 데 도움이 되는 단순화된 Geo 구성, 연결 및 토큰 상태와 같은 실시간 이벤트를 기록하는 GitLab 에이전트의 활동 목록, SAST 실행 정책 및 .NET 6 지원을 포함한 다양한 SAST 향상 제공합니다.

Michael Shin
Michael Shin | Software Engineer
돌아온 GitLab vs GitHub, GitLab과 GitHub을 비교해보자(decision Kit)돌아온 GitLab vs GitHub, GitLab과 GitHub을 비교해보자(decision Kit)

오랜만에 돌아온 GitLab과 GitHub 비교하기 시리즈입니다. 이번에 소개할 내용은 GitLab과 GitHub을 선택하는 기준이 될 Decision Kit입니다.

Mus Jung
Mus Jung | DevOps Engineer
GitLab.com에서의 암호화폐 채굴 어뷰징을 막는 방법GitLab.com에서의 암호화폐 채굴 어뷰징을 막는 방법

올해 굉장히 바쁜 시간을 보내다 보니, 정말 오랜만에 블로그 포스팅을 하게 되었습니다. 이번 블로그 주제는 SaaS 버전 GitLab.com에서 2021년 5월 중순부터 시행된 CI 파이프라인 정책입니다. 이 정책은 가상화폐와 관련된 내용입니다. 어떠한 일이 있었고, GitLab은 이를 어떻게 해결했으며, GitLab 사용자에게 어떤 변화가 있는지 알아봅시다.

Mus Jung
Mus Jung | DevOps Engineer
EFK Stack으로 GitLab 로그 대시보드 구축EFK Stack으로 GitLab 로그 대시보드 구축

EFK 스택을 구축하여 GitLab의 로그를 수집하면, 로그 데이터를 시각화하여 대시보드를 생성할 수 있습니다. 이를 활용하면 운영에 필요한 다양한 정보와 인사이트를 얻어, 데이터를 기반으로 의사결정을 내리는 데 도움이 됩니다.

Jason Lee
Jason Lee | DevOps Architect
COVID-19(코로나) 시대에서 원격 근무로 살아남기COVID-19(코로나) 시대에서 원격 근무로 살아남기

COVID-19(코로나)라는 국제적인 이슈가 발생한 지 오랜 시간이 지났습니다. 그로 인해 우리 주위에 근무환경도 많이 변했는데요, 특히 원격 근무에 대한 선호도가 눈에 띄게 증가했습니다. 이전에 원격 근무를 반대했던 기업들도 원격 근무를 도입하는 것에 대한 고민을 시작했습니다. 그렇다면 원격 근무를 잘하는 방법은 무엇이 있고, 어떠한 요건들이 충족되어야 하는지 알아봅시다.

Mus Jung
Mus Jung | DevOps Engineer
GitLab 14 릴리즈:GitLab 14.0 출시를 축하합니다!GitLab 14 릴리즈:GitLab 14.0 출시를 축하합니다!

GitLab 13.0 이후 올해 출시 된 모든 것들을 생각하면 커뮤니티와 팀이 더 이상 자랑스러울 수 없습니다. 하지만 이번 달에는 한발 물러서서 GitLab 14.0 출시를 축하하고 싶습니다.

Michael Shin
Michael Shin | Software Engineer
GitLab CI/CD vs GitHub Action 비교하기GitLab CI/CD vs GitHub Action 비교하기

지난 블로그(GitLab과 GitHub, 실무에서 어떤 차이가 있을까요?)에서 GitLab과 GitHub에 대해서 비교해 봤습니다. 결론적으로는 GitHub의 Git에 대한 노하우는 무시할 수 없지만, 서비스 혹은 전체 라이프사이클에 대한 여러 가지 비용적인 요소에서 GitLab이 우수하다는 것을 확인할 수 있었습니다. 이번 블로그에서는 DevOps 측면에서 GitLab CI/CD와 GitHub Action을 좀 더 면밀하게 살펴보겠습니다.

Mus Jung
Mus Jung | DevOps Engineer
GitLab 13.12 릴리즈 노트: 온디맨드 DAST 및 배포 빈도 차트GitLab 13.12 릴리즈 노트: 온디맨드 DAST 및 배포 빈도 차트

이번 달에는 팀의 생산성을 높이기 위해 노력하는 사용성 및 파이프 라인 관리 개선 사항, 배포를 더욱 안전하게 만드는 업데이트, DevOps 채택을 더욱 성숙하게 만드는 통찰력을 소개하게되어 기쁩니다. 이는 이번 릴리스의 44 개 개선 사항 중 몇 가지 하이라이트에 불과합니다.

Michael Shin
Michael Shin | Software Engineer
GitLab 13.11 릴리즈 노트: Kubernetes 에이젼트와 파이프라인 준수GitLab 13.11 릴리즈 노트: Kubernetes 에이젼트와 파이프라인 준수

지구의 날을 맞아 우리는 성장(Growth)에 대해 생각하고 있습니다. 우리 고객은 DevOps 프랙티스를 확장하고 있으며 성장에 따라 훨씬 더 높은 효율성과 자동화된 제어가 필요합니다. Gitlab.com에서 에이전트의 필요한 서버 측 구성 요소를 관리하는 동안, 당신의 클러스터 빠르며 풀 기반(Pull-based) 배포 혜택 도움을 주는 GitLab는 Kubernetes 에이전트를 이제 GitLab.com에서 사용할 수 있습니다. 규정을 준수하는 파이프라인 구성(Compliant Pipeline Configurations)을 사용하면 해당 규정 준수 프레임워크가 할당된 모든 프로젝트(사용자 지정 프레임워크 포함)에 대해 실행될 파이프라인을 정의할 수 있습니다. 또한 이번 릴리즈에 기능에는 파이프라인 효율성 및 측정을 개선해주는 On-call Scheduling과 훨씬 더 많은 보안 강화 기능을 포함합니다. 이는 이번 릴리즈에 포함된 50개 이상의 중요한 새 기능 및 개선 사항 중 일부에 불과합니다.

Mus Jung
Mus Jung | DevOps Engineer
CJ 올리브네트웍스 GitLab CI/CD Training 진행CJ 올리브네트웍스 GitLab CI/CD Training 진행

저희 인포그랩은 3~4월에 여러 교육을 진행하면서 바쁜 두 달을 지냈는데요, 그중에서 지난 3월 11일에 CJ 올리브네트웍스에서 진행했던 GitLab CI/CD 교육에 대해서 소개하겠습니다.

Mus Jung
Mus Jung | DevOps Engineer
GitLab Pages와 Hugo로 블로그 만들기GitLab Pages와 Hugo로 블로그 만들기

엔지니어들에게 문서 작업이란 결코 때어낼 수 없는 영역입니다. 문서를 정리하는 것 뿐만 아니라 작업을 어떻게 마무리 지었는지에 대한 개인 일지를 기록하기 위해 블로그를 이용하기도 합니다. 이 포스트에서는 GitLab Pages와 Hugo로 무료 블로그를 개설하고 글을 작성하기까지 과정을 정리하였습니다.

Michael Shin
Michael Shin | Software Engineer
GitLab CI/CD 파이프라인 기능 소개GitLab CI/CD 파이프라인 기능 소개

최근에 저희 Infograb에 GitLab에 대한 기술지원과 교육에 대한 문의 요청이 많아지고 있습니다. 그중에서도 CI/CD에 대한 고객들의 관심이 점점 증가하는 것을 느끼고 있습니다. 그래서 이번에는 GitLab CI/CD이 기본으로 제공하는 기능들을 소개를 해드리도록 하겠습니다.

Mus Jung
Mus Jung | DevOps Engineer
GitLab 13.10 릴리즈 노트: 관리 향상과 취약성 관리GitLab 13.10 릴리즈 노트: 관리 향상과 취약성 관리

GitLab 13.10이 출시되었습니다! 이번 달에는 보안을 강화하고 골칫거리를 줄이면서 더 빠르게 반복하고 혁신 할 수 있도록 제품 전반의 확장 성과 관리 효율성에 중점을 두었습니다. 13.10은 조직에서 DevOps를 확장하는 데 도움이되는 관리 향상 기능, 재해 복구를 개선하기위한 Geo 패키지 무결성 검증, 보안 프로세스에 효율성과 일관성을 적용하기위한 취약성 관리 자동화, 그리고 늘 그렇듯이 더 광범위한 커뮤니티에서 엄청난 기여를 했습니다. 이는 이번 릴리즈의 40 개 이상의 새로운 기능 및 개선 사항 중 일부에 불과합니다.

Michael Shin
Michael Shin | Software Engineer
GitLab에서 Jira 이슈 세부 내용 확인하기GitLab에서 Jira 이슈 세부 내용 확인하기

이번 13.10 업데이트로 GitLab에서 Jira 이슈의 세부 내용을 가져올 수 있게 되었습니다. 이전에도 Jira와의 통합(Integration) 방법이 있었는데 이전에 어떤 기능이 있었고 무엇이 추가되었는지 알아보도록 하겠습니다.

Mus Jung
Mus Jung | DevOps Engineer
GitLab 13.9 릴리즈 노트: 보안 경고 대시보드 및 Maintenance 모드GitLab 13.9 릴리즈 노트: 보안 경고 대시보드 및 Maintenance 모드

이제, GitLab 13.9를 사용하여 DevSecOps를 규모에 맞게 강화시킬 수 있으며, 보안 경고 대시보드를 통해 우선 순위가 높은 경고를 분류하고, 분산되 팀의 지속적인 지원을 위한 Maintenance 모드, DORA 메트릭에 대한 추가 지원을 포함한 가시성 향상, "더 나은 제품, 더 빠른" 제공에 도움이 되는 고급 자동화 기능을 제공합니다. 이번 릴리즈에서는 60개 이상의 중요한 새로운 기능 및 개선 사항이 포함되어 있습니다.

Michael Shin
Michael Shin | Software Engineer
GitLab을 이용해 Notion 컨텐츠 정기적으로 백업하기GitLab을 이용해 Notion 컨텐츠 정기적으로 백업하기

최근 Notion 측의 DNS 문제로 전세계 Notion 서버가 한동안 다운되는 심각한 문제가 발생했습니다. 많은 사용자들이 Notion에 자료를 모아두기 때문에 이러한 장애로 불안함을 느끼고, 백업을 하고자 합니다. 이번 시간에는 GitLab과 Notion의 api를 활용해 Notion Workspace를 매일 자동으로 백업하는 방법을 살펴보겠습니다.

Jake Shin
Jake Shin | Full-Stack Engineer
AWS Spot Instance로 Gitlab Runner 비용 절감하기AWS Spot Instance로 Gitlab Runner 비용 절감하기

GitLab에서 CI/CD 및 배포를 설정하려면 두 가지 옵션이 있습니다. 먼저, 기본적으로 GitLab에서 제공되는 GitLab shared runner를 사용하는 것입니다. 이 경우 한 달에 2,000분의 무료 CI 파이프라인을 사용할 수 있습니다. 다음으로는, 자신의 GitLab runner를 설정하는 것입니다. GitLab은 이미 GCP와 AWS와 잘 통합되도록 설정 할 수 있게 준비되어 있습니다. 설정 대시보드에서 간단히 Google Kubernetes 클러스터와 Amazon에 GitLab runner를 설정하고 배포 할 수 있습니다. 하지만 이럴 경우 runner를 몇 번 사용하지 않았음에도 불구하고 한 달 후에 받는 비용청구서의 금액은 상상한 것보다 많을 것입니다.

Michael Shin
Michael Shin | Software Engineer
GitLab과 GitHub, 실무에서 어떤 차이가 있을까요?GitLab과 GitHub, 실무에서 어떤 차이가 있을까요?

저희 인포그랩을 찾아주시는 여러분들 중 많은 분이 GitLab을 도입을 고민하고 계십니다. 깃 저장소를 도입하기 위한 선택지로 GitLab과 GitHub을 염두에 두셨을 것이고, GitLab과 GitHub의 기능 비교는 다른 여러 사이트에서 많은 콘텐츠를 통해 접하셨을 거라 생각합니다.

하지만, "이렇게 기능이 차이가 나는데 그래서 실무에서는 어떻게 다른 건데?", "우리는 뭐를 도입해야 하는 건데?"라는 의문들은 지우지 못하셨을 것이라 짐작됩니다. 그것은 회사마다, 업무환경마다 다를 것입니다.

이번 블로그에서는 실무관점에서 GitLab과 GitHub을 파헤쳐 보도록 하겠습니다.

Mus Jung
Mus Jung | DevOps Engineer
AWS와 GitLab, Hashicorp로 알아보는 HA 배포의 중요성AWS와 GitLab, Hashicorp로 알아보는 HA 배포의 중요성

고장나지 않는 서버는 사용자 경험과 안정적인 서비스 유지를 위해 필수 불가결한 요소입니다. 이번 시간에는 AWS에서 Terraform Cloud와 Hashicorp를 이용해 샘플 서비스의 고가용성 (HA) 서버를 구축하는 실습을 통해 HA가 왜 중요한지 알아봅니다. 또한 GitLab의 강력한 기능인 CI/CD 파이프라인을 활용해 배포 과정을 간단하게 구현하겠습니다.

Jake Shin
Jake Shin | Full-Stack Engineer
GitLab 13.8 출시!: 핵심은 파이프라인 에디터와 DORA 지표 지원GitLab 13.8 출시!: 핵심은 파이프라인 에디터와 DORA 지표 지원

이번 시간에 파이프라인 전용 에디터, 배포 빈도 대시보드, 그리고 매일 GitLab을 훨씬 더 즐겁게 사용하게 할 여러 편의점 개선사항을 소개합니다. 이번 릴리즈의 50가지가 넘는 개선 점들의 하이라이트를 살펴보세요.

Jake Shin
Jake Shin | Full-Stack Engineer
GitLab Merge Request로 협업하기GitLab Merge Request로 협업하기

Merge Request 가이드Merge Request로 협업하기 문서를 기반으로 쉽게 따라 할 수 있는 영상 가이드를 준비 했습니다.

Merge Request는 GitLab의 핵심 기능중 하나로 Git의 브랜치와는 가장 차별화되는 것입니다. 타겟 브랜치를 소스 브랜치로 merge하기 위한 단계로 코드 리뷰를 진행하고 완료가 된다면 승인하여 merge가 진행됩니다. 또한 CI/CD를 설정해 놓았다면 Pipeline에 성공해야 merge가 완료가 됩니다. Merge Request 이후에 배포가 가능하고 변경점을 리뷰앱을 통하여 확인 가능합니다. GitHub의 풀 리퀘스트와 유사한 기능이라고 생각하면 됩니다.

Mus Jung
Mus Jung | DevOps Engineer
GitLab 13.7 출시!: 핵심은 머지 리퀘스트 리뷰어GitLab 13.7 출시!: 핵심은 머지 리퀘스트 리뷰어

2020년은 정말 멋진 한 해였습니다! 13.7 릴리즈의 45개 이상의 새로운 기능과 개선점을 휴가 기간에 딱 맞춰 알려드리게 되어 기쁩니다!

먼저 GitLab의 모든 사람을 대표하여 여러분의 기여와 긍정적인 영향에 대해 커뮤니티의 모든 분들에게 감사드립니다. 여러분이 없었다면 GitLab은 오늘날과 같지 않았을 거에요.

역경과 전례 없는 시간에도 불구하고 2020년을 놀라운 해로 만들도록 도와준 여러분과 우리 팀 구성원 모두에게 감사합니다. 부디 이번 휴가 시즌에도 안전하고 행복하고 건강하게 지내시길 바랍니다.

Jake Shin
Jake Shin | Full-Stack Engineer
GitLab Web UI로 혼자 개발하기GitLab Web UI로 혼자 개발하기

그룹 혹은 팀 프로젝트에 참여하지 않고 개인 프로젝트를 진행할 경우가 있습니다. GitLab은 개발자 친화적인 UI를 갖고 있기 때문에 대부분의 작업을 Web UI에서 할 수 있습니다. 개인 프로젝트를 GitLab의 Web UI를 이용하여 시작하는 방법을 알아 보겠습니다.

Mus Jung
Mus Jung | DevOps Engineer
GitLab을 활용한 금융권 DevSecOps 사례GitLab을 활용한 금융권 DevSecOps 사례

GitLab을 활용한 금융권 DevSecOps 사례 웨비나12월 11일 금요일 GitLab 한국 엔지니어인 유인철님과, 한화생명의 윤상배님 그리고 인포그랩의 신철호가 발표하였고, 발표 중에서 국내 사례 내용을 요약해보았습니다.

규제가 진입 장벽으로 작동해서 지켜주는 시장이라면 중요하지 않을 수 있습니다. 하지만 현재는 다른 인터넷 서비스와 금융도 경쟁 해야 합니다. 즉 고객이 원하는 기능을 탐색하고 요구사항이 기능 중심으로 만들어져서, 코드로 만들고 배포하는데 하루인 기업과 기능 배포가 가능한지부터 걱정해야 하는 기업의 경쟁력의 격차를 생각해보시죠. DevSecOps는 선택이 아닌 필수입니다. GitLab 으로 하면 쉽습니다.


(윤상배님 발표 내용 중)
Dexter
Dexter | DevOps Consultant
GitLab을 사용해서 AWS에 배포하기: Lambda, Fargate, EC2, EKS와 ECS를 위한 단일 애플리케이션GitLab을 사용해서 AWS에 배포하기: Lambda, Fargate, EC2, EKS와 ECS를 위한 단일 애플리케이션

AWS(Amazon Web Services)는 2019년 기준으로 전 세계 클라우드 인프라 시장의 33%를 차지하는 업계의 리더입니다. 2020년 1월 현재, AWS는 컴퓨팅, 스토리지, 데이터베이스, 분석, 네트워킹, 모바일, 개발자 도구, 관리 도구, IoT, 보안 및 엔터프라이즈 애플리케이션을 포함하여 160개에 이르는 클라우드 기반의 제품을 전 세계에 제공하고 있습니다. 스타트업, 대기업 및 정부 기관을 포함한 수백만 고객사들이 AWS의 클라우드 서비스를 이용하여 사업을 강화해 나가고 있습니다.

Jake Shin
Jake Shin | Full-Stack Engineer
2020년 유료에서 오픈소스화된 기능들2020년 유료에서 오픈소스화된 기능들

벌써 한참지난 2020년 3월 CEO Sid는 블로그 글을 통해 DevOps 7가지 단계중 18가지 기능을 오픈소스화 한다고 발표 했습니다. GitLab이 무료로 제공하는 가치가 충분히 넓지만, 더 많은 범위를 오픈소스로 활용할 수 있게 되었습니다. 커뮤니티가 활성화 되고, DevOps 전체를 위한 단일 도구로서 GitLab 의 가능성을 좀더 넓이기 위한 목적으로 보입니다. GitLab을 이용해서 어플리케이션을 기획하고 개발하고 빌드하고 배포하고 보안성을 유지하는데 필요한 기능들이 점점 이전보다 좋아지고 있습니다.

Michael Shin
Michael Shin | Software Engineer
DevSecOps 성숙도 자가진단DevSecOps 성숙도 자가진단

우리 조직의 DevSecOps 성숙도를 체크 해보세요!

GitLab에서 만든 DevSecOps 자가진단 가이드는 DevSecOps 운영상의 성숙도를 파악하고, 개선이 필요한 부분을 찾아내는 데에 도움을 드리기 위해 제작되었습니다. DevSecOps 수행에 중요한 20가지 역량 체크리스트를 통해 자가 진단을 진행하시고, 뒤에 이어지는 정의를 참조하세요. 해당 역량이 왜 중요한지 확인하세요. 그리고 무엇을 더 고려하고 발전시켜야 할 지에 대해 저희와 같이 검토해보세요.

평가가 완료되면 각 역량 충족으로 얻는 이상적인 프로세스를 확인하실 수 있습니다. 문의사항으로 연락 주시면 인포그랩에서 맞춤형으로 성숙도 진단지를 만들어서 진단하시는 것을 도와드립니다.

맞춤형 진단은 인포그랩에서 컨설팅시 제공하는 개발팀의 성숙도 체크를 참고하세요.

Mus Jung
Mus Jung | DevOps Engineer
GitLab 13.6 출시!: 핵심은 EC2 자동 배포와 사용 트렌드 대시보드GitLab 13.6 출시!: 핵심은 EC2 자동 배포와 사용 트렌드 대시보드

지난 11월 22일에 GitLab 13.6이 릴리즈되었고, 바로 23일에 13.6.1 패치 버전이 나왔습니다. 어떤 기능의 변화가 생겼을까요? 현재 운영중인 서버를 13.6으로 업그래이드를 해야할까요? 인포그랩은 개발자들의 생산성과 만족도를 높이기 위해 GitLab 버전별 기능을 통해 신규 릴리즈 되는 GitLab의 변경에 대한 상세한 내용을 검색 해 볼 수 있는 기능을 제공하고 있습니다.

GitLab 13.6 릴리즈는 Deployment 에 대한 성과를 높이는 부분이 포커싱 되어 있습니다. 주요 기능들과 이번 릴리즈에 포함된 60가지 이상의 새로운 기능 및 개선사항을 검토해보세요. 그리도 이번에 업그래이드를 하실지도 같이 확인 해야겠죠? 13.6 릴리즈 및 하위 버전들의 몇 가지 문제와 버그를 수정하는 13.6.1 패치를 소개합니다.

Jake Shin
Jake Shin | Full-Stack Engineer
CI/CD 모범사례: GitLab 하나로 끝내는 CI/CDCI/CD 모범사례: GitLab 하나로 끝내는 CI/CD

CI/CD(Continuous Integrationand Delivery)는 소프트웨어 구축 및 테스트, 배포 방법을 완전히 변화시키고 있습니다. CI/CD툴은 이러한 프로세스를 자동화하여 오류 발생률을 줄이고 워크플로우를 최적화합니다. 각 개발 단계를 거치는 동안 프로세스 전반에 걸친 자동화된 테스트를 통해 코드의 오류를 포착하고 롤백을 시키기까지 합니다.

Mus Jung
Mus Jung | DevOps Engineer
형상관리 모범사례: Git 형상관리 이렇게 하세요!형상관리 모범사례: Git 형상관리 이렇게 하세요!

산업의 급격한 변화와 새로운 기능에 대한 고객의 요구 증가로 인해 팀은 서로 단절되고 고립된 업무 환경에 처하게 될 수 있습니다. 애플리케이션 개발에는 반복되는 빠른 작업이 요구되며, 비즈니스에 가치를 제공하기 위해서는 유기적인 협업이 필요합니다. 팀은 버전 관리를 통해 효율적으로 협업하고 정보의 고립(silo)을 해소할 수 있습니다.

본 블로그에서는 개발팀이 Git을 사용하여 반복되는 새로운 기능 개발을 효율적으로 수행하고 비즈니스 가치 전달에 도움을 줄 수 있도록 협업 강화를 위한 5가지 모범 사례를 소개합니다.

Mus Jung
Mus Jung | DevOps Engineer
Auto DevOps 개선: k8s 1.16 및 Helm 3Auto DevOps 개선: k8s 1.16 및 Helm 3

GitLab의 Auto DevOps는 내재한 베스트 실습과 자동화를 통해 CI/CD 도입을 더욱더 쉽게 만들어주도록 설계되었습니다. 여러분이나 여러분의 팀이 DevOps를 처음 접한다면, 이것이 매우 좋은 시작점이 될 것입니다. Auto DevOps에 대한 새로운 개선 사항과 향후 개선 사항을 공유해 드리기에 앞서 다음의 사항들을 유념해 주시기 바랍니다.

Jake Shin
Jake Shin | Full-Stack Engineer
GitLab DR, 재해복구 시스템 만들기GitLab DR, 재해복구 시스템 만들기

GitLab 에는 중요한 비즈니스 자산 데이터가 저장되어 있습니다. 제일 중요한 소스 코드를 포함해서 말이죠.

GitLab DR (Disaster Recovery). 즉 재해 복구는 자연재해와 사람에 의한 재난! 에 의해 GitLab 을 사용할 수 없는 경우에 복구 할 수 있는 프로세스에 따라 연속성을 갖고 GitLab을 사용 할 수 있도록 해주는 재해 복구 기능을 가지고 있습니다.

GitLab 엔터프라이즈 버전인 Premium 이상에서 사용 가능합니다. 보통의 엔터프라이즈 회사들은 이 기능 때문에 라이센스를 구입 하게 됩니다. 자체적으로 DR을 구축하는 비용 vs GitLab DR(Geo) 비용 따져보면 싸기 때문이겠지요?

GitLab 은 Geo 노드를 별도로 만들어서 재해 상황에 조치 할 수 있습니다. 재해 복구 솔루션을 설정하려면 투자가 필요합니다. 아직 GitLab 은 모든 것들을 복제하지 않습니다. 시스템 관리자는 Geo로 복제가 자동으로 되는 부분과 아닌 부분이어서 백업이 필요한 내용을 알고 있어야 합니다. 그럼 지금 부터 GitLab DR에 대해 알아볼까요?

Dexter
Dexter | SAFe & DevOps Consultant
Gitaly를 통해 Git 레파지토리 안정적인 운영하기Gitaly를 통해 Git 레파지토리 안정적인 운영하기

GitLab 13.0에서는 Git 스토리지에 대한 설정에 HA와 복제(Redundancy: 시스템 장애 상황을 대비해서 중요한 시스템 구성요소를 복제)가 가능합니다. GitLab은 조직에 중요한 시스템이기 때문에, 다운타임으로 인해 소프트웨어 개발 및 CI/CD 파이프라인으로 피해가 발생 되지 않도록 해야합니다. GitLab HA는 피해를 줄 일 수 있는 방법입니다. 그렇다면 Git Repository 를 어떻게 안정적으로 운영 할 수 있는지 Gitaly 를 클러스터링 하는 방법으로 간단히 설명합니다.

Dexter
Dexter | DevOps Consultant
GitLab으로 코드리뷰 더 잘하는 방법GitLab으로 코드리뷰 더 잘하는 방법

팀 협업 중에 코드 품질 때문에 이슈가 발생하는 경우가 있나요? 소프트웨어 개발 문화가 성숙할수록 코드리뷰 활동도 성숙해집니다. 다른 사람이 작성한 코드를 보고 개선을 위한 의견을 주고 받는 활동을 합니다. 코드 리뷰는 코드로 협업하는 개발팀이 리뷰를 통해 잠재적인 이슈를 해결하고 개선해 나가는 과정입니다. 소프트웨어 개발 라이프사이클에서 소프트웨어 품질 보증 활동의 시작은 코드 리뷰 활동입니다.

그렇다면, GitLab으로 코드 리뷰를 더 잘하는 방법은 어떨까요?

항상 처음 보다 더 나은 상태로 코드를 만들어 놓고 떠나라

  • Robert C. Martin (Uncle Bob) , 보스카웃룰 패러디
Dexter
Dexter | DevOps Consultant
DevSecOps에서 보안을 코드로 구현하는 것이 중요한 이유DevSecOps에서 보안을 코드로 구현하는 것이 중요한 이유

DevSecOps에서 보안을 코드로 구현하는 것이 중요한 이유는 무엇일까요?

Jake Shin
Jake Shin | Full-Stack Engineer
GitLab의 릴리즈 정보는 어디서 확인할까요?GitLab의 릴리즈 정보는 어디서 확인할까요?

GitLab은 얼마나 자주 새로운 버전을 릴리즈할까요? 릴리즈마다 추가되는 새로운 기능은 어디서 확인할까요? 그리고 이런 릴리즈마다 매번 업그레이드를 실행해야 할까요? 이 포스트에서는 GitLab의 릴리즈 정책과 릴리즈 내용을 확인하는 방법을 알아보고 어떻게 최신 버전의 안정적인 GitLab을 유지할 수 있는지 알아보겠습니다.

Michael Shin
Michael Shin | Software Engineer
GitLab과 JFrog, 어떤것을 선택해야 할까요?GitLab과 JFrog, 어떤것을 선택해야 할까요?

Full 라이프사이클 단일 애플리케이션 GitLab과 2019년 2월 Shippable 인수를 통해 아티팩트 저장소에서 CI/CD 기능을 포함하는 DevOps 플랫폼으로 전환한 JFrog, 어떤 것이 더 좋은지 알아봅시다.

Mus Jung
Mus Jung | DevOps Engineer
DevOps 컨설턴트와 DevOps 엔지니어 무슨 차이가 있을까요?DevOps 컨설턴트와 DevOps 엔지니어 무슨 차이가 있을까요?

DevOps를 시작하려고 하는데, 누구와 함께 일해야 할까요? DevOps 컨설턴트와 DevOps 엔지니어는 누구인지, 또 우리에게 어떤 도움을 줄 수 있을지 알아봅시다.

Mus Jung
Mus Jung | DevOps Engineer
조직에서 Agile기반 DevOps가 필요한 이유는 무엇일까요?조직에서 Agile기반 DevOps가 필요한 이유는 무엇일까요?

최근 DevOps에 대한 관심이 증가하고 있는데, 왜 Agile 기반 DevOps가 필요할까요? DevOps가 무엇인지, 또 DevOps를 통해서 어떤 것을 얻을 수 있는지 알아봅시다.

Mus Jung
Mus Jung | DevOps Engineer
포스코 ICT SW 분석/설계 강의 회고포스코 ICT SW 분석/설계 강의 회고

2020년 10월 19일(월), 판교에 위치한 포스코ICT에서 SW공학프로세스과정으로 SW 분석/설계 과정을 진행했습니다. 이 블로그 포스팅에서는 해당 과정에 대한 경험을 공유합니다.

Mus Jung
Mus Jung | DevOps Engineer
Git Flow가 가진 문제점과 솔루션: GitLab FlowGit Flow가 가진 문제점과 솔루션: GitLab Flow

때때로, 좋은 게 너무 많아서 문제일 때도 있습니다. 소프트웨어 개발 워크플로우로 잘 알려진 Git Flow의 경우가 그렇습니다. Git Flow는 좋은 기능이 많지만, 역효과가 있을 때도 있습니다.

GitLab은 복잡성을 줄이고 개발 프로세스의 효율을 높이고자 GitLab Flow를 개발했습니다. GitLab Flow는 Git 워크플로우에 이슈트래킹을 연동함으로써 프로세스를 단순화하고 혼란을 줄입니다. 지금부터 Git Flow의 문제점과 이를 해결하는 GitLab Flow를 알아봅니다.

Jake Shin
Jake Shin | Full-Stack Engineer
GitLab과 Ansible을 사용하여 코드로서의 인프라스트럭쳐 구성하기GitLab과 Ansible을 사용하여 코드로서의 인프라스트럭쳐 구성하기

코드로서의 인프라스트럭처(IaC, Infrastructure as code)에서 실행되는 Ansible 플레이 북 데모를 통해 GitLab CI의 강력한 기능을 살펴보세요.

GitLab CI는 코드로서의 인프라스트럭처와 GitOps를 포함하여 여러 가지 용도로 사용할 수 있는 강력한 도구입니다. GitLab 은 특정 툴에 구애받지 않지만 본 데모에서는 Ansible 을 사용합니다. 왜냐하면, 개발자가 코드로서의 인프라스트럭처에 일반적으로 사용되는 언어이기 때문입니다. 여기에서는 Ansible 네트워크 강좌two-router 데모를 사용합니다.

Jake Shin
Jake Shin | Full-Stack Engineer
GitLab Commit SF 2020 현장리뷰GitLab Commit SF 2020 현장리뷰

뉴욕, 런던을 거쳐서 세 번째 GitLab Commit이 샌프란시스코에서 개최되었습니다. 약 400명 이상의 등록 고객과 13곳의 기업 스폰서, 그리고 3개 트랙에서의 24개의 세션이 진행되었습니다. GitLab 사용 고객들이 직접 전하는, 어떻게 GitLab 활용해서 제품 개발 시간을 절감하고 보다 효율적으로 개발 자원들을 활용할 수 있었는지에 대한 노하우를 확인해보세요!

Mus Jung
Mus Jung | DevOps Engineer