99클럽 35일차 TIL: DevOps

2024. 5. 8. 17:04개발 공부

728x90
반응형

#1. 오늘의 학습 키워드

DevOps에 대해

  • 개인 프로젝트 때 AWS Ec2 서비스를 사용하여 서버를 배포한 적이 있다.
  • 또한 현재 회사에서는 쿠버네티스를 사용하고 있다.
  • 코드는 github action 을 통해 배포를 하고 있다
    • develop 브랜치에 머지 될 때마다 자동으로 dev 서버에 배포되는 방식
  • 개발과 서비스 제공 프로세스를 관리해주는 모델
    • DevOps 에 대해 알아보자

#2. 공부한 내용

1. DevOps

- DevOps는 서비스를 빠른 속도로 제공할 수 있도록 도와주는 방식, 도구의 조합
  • Development + Operation 의 약자.
  • 즉 개발과 운영을 결합하여 탄생한 개발 방법론
    • 개발자와 운영 담당자 사이의 협업, 통합 및 자동화를 강조하는 소프트웨어 개발 방법론
  • 개발팀과 운영팀이 DevOps 모델 하에서는 때로 단일팀으로 병합된다.
    • 개발자가 테스트, 배포, 운영 등 개발에 한정되지 않고 광범위한 기술 개발에 참여한다.
    • 따라서 기존 방식에서는 개발자가 다른 팀의 도움으로 코드 배포, 인프라 구축 같은 작업을 수행했다면, 해당 모델 하에서는 독립적으로 수행할 수 있다.
  • 일부 DevOps 모델에서는 품질 보증팀과 보안팀도 개발 운영과 긴밀하게 통합된다.
    • 이 중 팀이 보안에 초점을 두는 경우, DevSecOps로도 불린다.
  • 전 포스트 때 다뤘던 애자일 방법론과 지속적인 통합 (CI) 등 개념과도 관련이 있다.

1) 장점

  • 속도
    • 개발팀에서 코드 변경이 이뤄짐과 동시에 릴리즈를 자동으로 할 수 있어서 빠르게 프로덕트를 개선할 수 있다.
  • 신속한 제공
    • 릴리즈 시 공수가 많이 소요되지 않기에, 릴리즈의 빈도와 속도를 개선하여 제품을 더 빠르게 개선 및 전달할 수 있다.
  • 안정성
    • 자동화 된 테스트가 가능하다.
    • 또한 모니터링과 로깅을 통해 성능에 대한 정보를 실시간으로 얻을 수 있다.
  • 확장
    • 자동화 및 일관성이 지원되므로, 시스템의 변화에 대하여 효율적으로 관리할 수 있다.
  • 협업 강화
    • DevOps 모델 하에는 개발팀과 운영팀 간 긴말한 협력이 요구된다.
  • 보안
    • 규정 준수 정책 또한 자동화가 될 수 있다.

2) 방식

  • CI
    • Continuous Integration, 지속적인 통합
    • 배포와 코드 통합에 의해 소스 코드의 상태가 중단 되지 않고 실행 가능 상태로 유지시키는 것.
      • 배포 시간을 줄일 수 있다.
  • CD
    • Continuous Delivery, 지속적인 전달
    • 프로덕션에 릴리스하기 위한 코드 변경이 자동으로 준비되는 소프트웨어 개발 방식
      • 테스트 자동화도 가능하기에, 고객 배포 전 여러 차원에서 검토 가능
  • MSA
  • 코드형 인프라
    • 소프트웨어 개발 기술을 통해 인프라를 구축 및 관리하는 방식


#3. 오늘의 회고

  • DevOps 를 개념적으로 접근했을 때 알 수 있다시피, DevOps 엔지니어는 개발과 운영 둘 다 가능해야한다.
    • 즉 개발 능력과 인프라에 대한 지식과 운영 능력을 다 갖추어야 한다.
  • 소프트웨어 프로덕트 개발은 더 이상 비즈니스를 지원하는 것에 그치지 않고, 비즈니스 자체의 구성 요소가 되었다.
    • 애자일 방식에 대해 공부를 하며 깨달았다시피, 그만큼 요즘에는 고객과 상호 작용하는 것이 중요하다.
    • DevOps 는 안정적이고 신속한 전달을 통해 고객의 니즈를 빠르게 충족시킬 수 있고, 따라서 요즘 DevOps 가 선택 받는 개발 및 인프라 관리 프로세스가 되겠다.
728x90
반응형