Devops

블루·2022년 11월 1일
0

데브옵스(Devops)란

  • 개발(Development)와 운영(Operation)이 결합해 탄생한 용어로, 시스템 개발자와 운영을 담당하는 전문가 사이의 소통, 협업, 통합, 자동화를 바탕으로 어플리케이션 개발과 고객에게 제공되는 서비스를 빠른 속도로 제공될 수 있도록 조직의 역량을 향상시키는 소프트웨어 개발론이다
  • 개발과 운영의 경계를 허물고 하나의 팀으로서 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 뜻한다

데브옵스 엔지니어 : 운영과 개발 사이에서 지속적 전달과 지속적 통합을 진행할 수 있도록 데브옵스 환경을 조성하는 사람이다


데브옵스 적용 시 장점

  1. 속도 향상
    • 마이크로 서비스 아키텍처(단일 어플리케이션을 작은 서비스의 집합으로 구축하며, 각 프로세스는 자체 프로세스에서 실행되고 잘 정의된 인터페이스를 통해 다른 서비스와 연결되는 설계기법) 및 CD(Continuous Delivery)등을 사용하여 팀에서 서비스를 주도적으로 운영하여 수정된 코드들을 더 빠르게 릴리즈 할 수 있다
  2. 신속한 제공
    • CI(Continuous Integrity) 및 CD(Continuous Delivery) 등을 통해 빌드에서 배포까지 자동화시켜 릴리즈의 빈도와 속도를 개선하여 제품을 빠르게 업데이트 할 수 있다. 새로운 기능 및 버그 수정속도가 빨라 고객의 요구에 더 빠르게 대응할 수 있게 된다
  3. 안정성
    • CI/CD 등을 통해 변경사항을 안전하게 작동하는지 업데이트마다 테스트 해주어 애플리케이션에 안전성 및 인프라 변경의 품질을 보장해준다
  4. 확장성
  5. 협업 강화
  6. 보안

데브옵스 방법

  • 지속적 통합
  • 지속적 전달
  • 마이크로 서비스
  • 코드형 인프라
  • 모니터링 및 로깅
  • 협업

CI란

  • 빌드/테스트 자동화 과정이다
  • 개발자를 위한 자동화 프로세스인 지속적인 통합을 의미한다
  • 어플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다

CD란

  • 배포 자동화 과정이다
  • CD는 지속적인 서비스 제공 또는 지속적인 배포를 의미한다
  • 지속적 배포는 빌드, 테스트 및 배포 단계를 자동화하는 DevOps 방식을 논리적 극한까지 끌어올린다. 코드 변경이 파이프라인의 이전 단계를 모두 성공적으로 통과하면 수동 개입 없이 해당 변경 사항이 프로덕션에 자동으로 배포된다.
  • 간단한 코드 변경이정기적으로 마스터에 커밋되고, 자동화된 빌드 및 테스트 프로세스를 거리며 다양한 사전 프로덕션 환경으로 승격되며, 문제가 발견되지 않으면 최종적으로 배포된다. 강력하고 신뢰할 수 있는 자동화 배포 파이프라인을 구축하면 하루에도 여러 번 이루어지는 릴리즈가 특별하지 않은 일상이 된다

CI/CD 종류

  • Jenkins
  • CircleCI
  • TravisCI
  • Github Actions

CI/CD를 적용하기 전

  1. 개발자들이 개발하여 코드를 수정한다
  2. 각자의 feature 브랜치에 코드를 push한다
  3. 각자의 코드를 git에 올리고 통합한다
  4. 에러가 발생했지만 어느 부분에서 에러가 났는지 모르므로 다시 어디 부분에서 에러가 있는지 디버깅하고 코드를 수정한다
  5. 위 과정을 반복한다
  6. 많은 시간을 할애하여 에러가 해결되었으면 배포를 시작한다. 하지만 배포과정 또한, 개발자가 직접 배포 과정을 거치므로 많은 시간을 소요한다

CI/CD를 적용한 후

  1. 개발자들이 개발하여 feature브랜치에 코드를 push한다
  2. git push를 통해 Trigger되어 CI서버에서 알아서 Build, Test, Lint를 실행하고 결과를 전송한다
  3. 개발자들은 결과를 전송받고 에러가 난 부분이 있다면 에러 부분을 수정하고 코드를 master 브랜치에 merge한다
  4. master 브랜치에 코드를 merge하고 Build, Test가 정상적으로 수행이 되었다면 CI서버에서 알아서 Deploy 과정을 수행한다



참고 자료

profile
개발 일지를 작성합니다

0개의 댓글