DevOps 두 번째 발표

Jin·2022년 4월 18일
0

DevOps

목록 보기
8/25

DevOps(위키피디아 정의)

DevOps(Devops = Development + Operations)라는 합성어로 소프트웨어 개발자들과 IT 종사자들 사이의 의사소통, 협업, 융합을 강조한 소프트웨어 개발 방법론이며, 소프트웨어 개발과 IT 운영간의 상호 의존관계에 대한 산물이다.
DevOps는 조직에서 소프트웨어 상품과 서비스를 신속히 생산하는 것에 도움이 되는 것을 목적으로 한다.

프로세스 자동화와 이상적인 협업을 돕는 것이 DevOps라 생각하면 될듯하다. DevOps에서는 모든 사람이 모든 일을 하는 것이 아니다.


Dev팀의 목표는 계속적인 배포와 업데이트, 애플리케이션을 통해 쉽고 빠른, 새로운 기능을 제공하는 것에 있다. 반면에, Ops팀의 목표는 프로덕션 앱(고객이 사용할 수 있는 안정적인 공식 버전)의 안정성, 애플리케이션이 아닌 인프라 관리와 모니터링 및 제어에 우선을 두고 있다. 이렇듯 두 팀의 우선순위, 목표가 다르기 때문에 상충되는 부분도 존재할 수 밖에 없다.

개발팀은 계속해서 새로운 것을 도입하고 싶어하며 변화를 추구한다. 반면, 운영팀은 안정적인 가동을 최우선으로 여긴다. 개발팀은 생산성을 향상하기 위해 시도할 것이고, 운영팀은 개발팀의 시도에 안정성이 보장되지 않아 원하지 않을 것이다. '변화' 대 '안정적 유지'가 두 팀의 상충되는 부분이라고 생각한다.


DevOps를 실현 가능하게 하기 위해 기술이 필요한 부분/문화로 풀어야 할 부분.
CI/CD파이프라인에 근거하여.

CI/CD 파이프라인
plan -> code -> build -> test -> release -> deploy -> operate

CI -> code → build → test
CD -> release → deploy → operate

CI/CD의 목적은 품질 저하 없이 사용자에게 소프트웨어를 전달하는 데 걸리는 시간을 줄이는 것이다. 일단 기술로 풀 부분은 개발자의 영역이다. code(개발자가 코드를 코드 저장소에 push한다)와 build(코드 저장소로부터 코드를 가져와서 유닛 테스트 후 빌드한다.)라고 생각한다.

기술이 아닌 문화로 풀 부분: DevOps의 중심에는 ‘우리’라는 의식이 존재한다. 공통의 책임, 상호 신뢰 및 소통의 문화가 있는데, test(code와 build의 결과물이 다른 컴포넌트와 잘 통합되는지 확인한다), release(배포 가능한 소프트웨어 패키지-artifact를 작성한다), deploy(프로비저닝-사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것-을 진행하고,서비스를 사용자에게 노출한다), operate(서비스에 생길 수 있는 현황을 파악하고 문제를 감지한다)부분이 기술말고도 문화가 필요한 부분이라고 생각한다.

각 팀이 우선적으로 여기는 목표가 다를 수 있지만, 결국엔 두 팀이 긴밀히 연계하고 다양한 방법과 문화를 도입하여 상품이나 서비스 개선에 걸리는 시간을 단축하며, 신속하게 비즈니스 요구에 대응하는 것이 가장 바람직하다고 생각한다.

(레퍼런스:위키피디아,www.jetbrains.com/ko-kr/teamcity/,AWS-글 전체를 몽땅 긁어온것은 없고 질문에 맞춰 자료를 찾아 제 나름대로 썼기 때문에 하나하나 링크 참조는 없습니다.. 가장 많이 따온것은 유어클래스…;;)

profile
Today I Learned..

0개의 댓글