거버넌스(Governance) 모델 정리

|

조대협님의 “대용량 아키텍처와 성능 튜닝”중 거버넌스 모델을 공부하고 생각을 정리하는 차원에서 요약해봅니다.
정확한 정보및 개념은 “대용량 웹서비스를 위한 마이크로 서비스 아키텍쳐의 이해:http://bcho.tistory.com/948” 를 참고하세요.

거버넌스(Governance)란?

  • 시스템을 개발하는 조직구조 / 프로세스를 정의한 것.

중앙 집중형 거버넌스 모델

  • 중앙에서 표준 프로세스 및 규약, 정책을 내려줌.
  • 모두 동일하게 개발하기 때문에 유지보수 편함.

분산형 거버넌스 모델

  • 각 서비스에서 자체 규약으로 개발.
  • 표준 API만 외부로 노출.

분산형 거버넌스 모델을 수행하기 위한 팀구조의 특징은 아래와 같습니다.

Cross functional team

  • 필요한 모든 역활의 인원을 한 팀으로 묶음.
  • 타팀에 대한 의존성이 낮아지기 때문에 빠름 개발 가능.

DevOps

  • 개발 + 운영
  • 피드백에 따른 서비스 개선
  • 인프라까지 조절할 수 있어 개선에 따른 저항은 줄어들었으나 난이도는 높아짐

Project(X), Product(O)

  • 프로젝트별로 팀원 투입이 아닌 프로덕트별 구성.
  • 팀원이 해당 프로덕트에 영속됨으로써 지속적인 서비스 개선과 재교육에 대한 비용을 줄임.

위 모든 조건이 가능해지면 자체적으로 기획/개발/운영이 가능해지는 Self-oranized team 모델이 됨.

주의점 : Alignment

  • 팀 간의 수준 격차를 맞춰야 함 : 특정 서비스는 개발속도를 못따라옴
  • 최소한의 표준이 필요

Conclusion

MSA를 실현하기 위한 조직 구조로 분산형 거버넌스 모델운영에 대해 가이드를 하신것 같습니다.
빠른 서비스 개발및 런칭을 위한 것이 cross functional team인 것 같고, 그 이후 지속적인 개선과 운영을 위한 조직으로 devops를,
이를 효과적으로 운영하기 위해 팀원을 Project가 아닌 Product별로 배치하도록 하며, 주의점으로 팀간 수준을 맞추거나 최소한의 표준정책등을 지정하여 효율적인 운영을 할 수 있다고 요약하면 될 것 같습니다.

Comments