====== 마이크로 서비스 아키텍처 (MSA) ====== ===== MSA 목적 ===== 마이크로서비스 아키텍처(MSA)는 다음과 같은 장점들을 통해 시스템에 대한 개발 및 운영 복잡성을 효율적으로 낮출 수 있다.\\ * Microservice는 독립적으로 구성될 수 있으며, 상호 독립적으로 구축 및 운영될 수 있음 * 특정 서비스만 집중할 수 있고, 코드 규모가 작아 효율적인 유지보수가 가능 * Restful API와 같이 lightweight한 통신을 통해 효과적인 상호 연계가 가능 * 독립적인 서비스 단위 확장(scale-out)을 지원하기 때문에 효율적인 시스템 자원 활용 마이크로서비스 아키텍처는 서비스의 규모가 커지고 복잡도가 증가할수록 여러 가지 장점을 갖고 있다.\\ 서비스가 독립적으로 구성하기 때문에 변경이 용이하고 그 변경이 서비스 간 영향이 적다.\\ 아울러, 개별로 서비스 배포가 가능하기 때문에 수시로 필요에 따라 배포할 수 있다.\\ 비용적인 측면에서도 부하가 많은 서비스만 확장할 수 있어 불필요한 자원의 낭비를 줄일 수 있다.\\ 특히, 서비스의 특성에 따라서 자원(Memory, CPU)을 할당 할 수 있으며, 특정 서비스에 대한 집중적으로 요청되는 시기에 따라 가변적으로 리소스를 운영할 수 있다.