https://en.wikipedia.org/wiki/DevOps
https://en.wikipedia.org/wiki/Cross-functional_team
위의 사이트에서 발췌 + 첨언
MSA의 궁극적인 목적인 독립성과 시장환경에 민첩하게 대응하기 위해서는 DevOps를 도입하면 보다 효과적일것이다.
DevOps
넓은 의미로는 개발 Dev과 운영 Ops을 결합한 문화, 조직 재 정비 등을 의미하고
좁은 의미로는 CI/CD, 즉 빌드, 테스트 및 배포를 자동화하여 Rapid, Frequent, Reliable 배포가 가능하다.
기존에는 (대략의 개발 프로세스)
업무 전문가 조직(현업)에서 요구사항을 내면,
개발팀에서 분석/설계/개발하고,
테스트팀에서 (수동) 테스트후,
관리자가 승인하면,
운영팀에의해 배포된다.
DevOps라는 문화, 조직, 새로운 프로세스를 도입하면
위와 같은 기존의 Silo 조직으로 인한 Communication의 어려움이 줄어들어
Dev Lifecycle이 짧아지고, 협업 방식도 훨씬 유리해지고, DevOps는 팀은 보다 응집력있게 일할 수 있게될 것이다.
2015년 데브옵스 현황 보고서(State of DevOps Report)의 조직 문화와 가장 강력한 상관 관계를 가진 상위 7개 측정값
- 조직 투자
- 팀 리더의 경험과 효율성
- 지속적 전달(CD)
- 서로 다른 분야(개발, 운영 및 정보보안)가 WIN-WIN을 달성할 수 있는 능력
- 조직 성과
- 배포 문제
- 린 관리 방식
DevOps팀 구성 - Cross functional team(다기능팀, 교차기능팀)
서비스를 독립적으로 관리할 수 있는 역할자를 한팀으로 구성
- 도메인(업무) 전문가 : Full/Part time, 전담 담당자 지정, 정례 Communication 등 다양한 방법으로 지속적인 소통 필요
- 분석설계자
- 개발자
- SWA, DBA, QA, UI Designer 등 Architect
위의 역할자들이 한 팀에 모여
요구사항 접수 > 분석 > 설계 > 개발 > 테스트 > 배포 > 운영까지 (운영시 Pain Point가 다시 설계/개발에 반영)
담당 서비스를 책임진다.
DevOps팀 구성
One service per team 라는 말 처럼 하나의 DevOps팀별 담당 서비스가 명확해야할 것이다. (DevOps팀 R&R)
반대로 말하면 하나의 서비스를 여러팀에서 담당하게 된다면 팀을 합하든 서비스를 쪼개든 두 조직간의 Communication을 최소화하려는 노력이 필요하다.
각 팀별 서비스를 책임관리, (이상적으로 각 팀에는 하나의 서비스 one service per team)
'MSA해설 > MSA 관련 개념' 카테고리의 다른 글
MSA, 준비된 조직만이 성공할 수 있다 (0) | 2022.07.14 |
---|---|
Do Not Use MSA - 마이크로서비스 아키텍처가 꼭 필요한가요? (0) | 2022.07.07 |
MSA 정의 (0) | 2022.06.19 |
MSA 등장, 용어정의 (0) | 2022.06.15 |
A pattern language for microservices (0) | 2022.04.08 |