MSA (1)
by BBarkji
MSA(Micro Services Architecture) (1) - MSA의 장점 외
MSA 개념정도. 정확히 말하자면 사전적 정의 정도로만 이해하고 있었다. 대충… 프로그램을 잘게 쪼개서 만드는건가? 그러면 뭐가 좋지? 근데 어떤식으로 하는 거지? 실제 업무는 어떤식으로 달라질까? 등에 대해 물음표만 던지고 딱히 답은 찾지 않고 있었…
그러던중 팀장님이 큰 곳에 가려면 MSA (docker 쿠버네티스 k8n 오케스트레이션 배포) 는 꼭 알고 있어야 해요!!! 라고 또!!! 말씀하셨고. 말이 나온김에 차근차근 공부해보려고 한다. 근데 어떻게 공부를 해야하는거야~ 하고 해야지 해야지 말만 하고(언젠가 일하면서 알게되겠지? 정도? 근데 요즘은 모르면 안뽑아준다며?) 있었는데 이번에는 아예 강의도 신청해서 들어보려 한다.
오늘은 일단 인터넷 서치를 통해 얻은 개념 정리 정도만. 아마 2편은 강의 요약이 되지 않을까?
왜 MSA로 개발할까? (모놀리틱 vs MSA)
[모놀리틱의 단점]
- 일부 기능만 수정(or 추가)하더라도 전체 시스템을 재배포 해야한다.
- 개발을 하면 할수록 어플리케이션은 무거워진다.
- 일부분에 장애가 발생하면 전체 시스템에 영향을 준다.
[MSA의 장점]
- 서비스들이 상호 독립적이기때문에 일부분만 유지보수 & 배포가 가능하다. (간편함)
- 일부 서비스에 장애가 발생해도 전체 시스템에 영향을 주지 않는다.
- 서비스를 나누어 개발하기 편리하고, 각 서비스를 독립적인 언어로 개발도 가능하다.
- 새로운 기능이 필요하면 새로운 서비스를 만들어서 배포하면된다. (확장성 Good)
MSA는 어떻게 운영할까?
MSA는 하나로 관리했던 어플리케이션을 여러개로 나누어 개발하고 관리하는 것. 그렇다면 운영은 어떻게 해야할까? 더 번거로워지는 것 아니야?
그래서 필요한 것이 Docker 컨테이너. Docker 관리의 편의성을 위해 필요한 것이 쿠버네티스.
[쿠버네티스의 주요 기능]
- 여러 개의 컨테이너를 한 번에 띄워준다.
- 여러 개의 컨테이너를 한 번에 삭제해준다.
- 특정 컨테이너에 장애가 발생하면 자동 복구해준다.
- 이전 버전으로 롤백 가능
- 컨테이너 업데이트는 Rolling update 방식(=다운 타임 없이 배포 업데이트 가능. 참고: https://kubernetes.io/docs/tutorials/kubernetes-basics/update/update-intro/)
- 동일한 컨테이너를 여러 개 띄우는 경우 자동으로 로드 밸런싱
여기까지 적고나니 나는 도커도 잘 모른다는 사실을 깨달았다. 2편은 일단 도커에 대해 학습하는 것부터 시작해야겠다. 무튼 이 연재를 내가 docker, msa 를 이해하고 또 실제로 사용하는 그 날까지 꾸준히 하는 것도 작은 목표! :tw-1f603: :tw-1f64f:
Subscribe via RSS