Devops 개념 정리

Kyeonghee Ryu·2021년 11월 22일
0

1. Devops 란 무엇인가?

Development + Operations가 결합되어 일하는 문화

2. Devops 등장 배경

기존 방식에서 개발자와 운영자 역할 분리됨

개발: 요건 분석, 개발, 유지 보수
운영: 마이그레이션, 배포 관리, 모니터링, 서버 관리

개발자의 경우 새로운 시도 추구 <-> 운영자의 경우 안정추구
=> 개발과 운영이 분리되면 고객의 신규 요구사항을 받아들이지 못함

3. Devops의 목적과 장점

목적

: 위의 문제들을 해결하며, 시장 진입까지 도달하는 비용과 시간 줄이는 것(-> 시장에서 효과적으로 경쟁 가능)

장점

  • 작업 속도가 빨라져서 더 빠르게 혁신, 시장 변화에 잘 적응
  • 릴리스의 빈도와 속도를 개선하여 제품을 좀 더 빠르게 혁신하고 개선 가능
  • 최종 사용자에게 지속적인 긍정적인 경험 제공(CI/CD와 와 같은 방식을 사용하며, 모니터링을 통해 실시간으로 성능에 대한 정보를 얻을 수 있기 때문
  • 규모에 따라 인프라와 개발 프로세스를 운영 및 관리하기 때문에 확장성있음
  • 개발자와 운영팀이 많은 책임을 공유하며 workflow 결합함(-> 비효율성 줄이고 시간 절약)

4. Devops tool chain

: devops 적용을 위해 모든 과정에 필요한 도구의 묶음

5. Devops 엔지니어란?

지속적인 피드백과 문제 해결이 원활하게 이루어질 수 있도록 개발 cycle 전 과정에 걸쳐 참여하는 커뮤니케이터이자 엔지니어

6. Devops 엔지니어의 업무

“관찰&커뮤니케이션 > 의견과 조율 > 구축 > 피드백 > 개선” 업무의 순환

1) CI/CD

CI = Continuous Integration = 지속적 통합 :

자동화된 빌드 및 테스트가 수행된 후 개발자가 코드 변경사항을 중앙 리포지토리에 정기적으로 병합하는 소프웨어 개발 방식

목표 : 빌드 결과물 관리를 통한 릴리즈(=재품을 새롭게 만드는 것) 준비 시간 단축

CD(Continuous Delivery=지속적 전달/제공

or Continuous Development=지속적 배포)

  • Continuous Delivery
    : CI과정을 거친 소스코드를 레포지토리에 자동으로 반영하는 단계
  • Continuous Development
    : production 레벨까지 자동으로 Deploy(프로그램을 기기에 설치하여 작동가능하도록 함)

목표 : 프로덕션 환경으로 배포할 준비가 되어있는 코드베이스를 확보하는 것(신뢰도), 테스트 환경에 배포하여 추가적인 여러 사용자 차원에서 테스트를 검증할 수 있는 단계

2) Infrastructure as code

: 인프라 구성을 마치 소프트웨어 프로그래밍하는 것처럼 처리하는 방식

3) Monitoring

: 어플리케이션, 인프라 모니터링
어플리케이션 로그 포맷 정의와 로그 중앙 수집

profile
https://github.com/kyeonghee-ryu

0개의 댓글