Service Discovery Microservice Architecture에서 각각의 서비스들은 마이크로서비스로 분리되어 있고 IP와 Port로 구분할 수 있습니다. 클라이언트의 요청에 알맞은 서비스를 제공하기 위해 구분된 서비스 정보들을 저장하고 관리하는 관리자 역할을 Service Discovery가 수행합니다. Spring Cloud Netflix 넷플릭스는 MSA로의 전환을 통해 많은 경험을 가지게 되었는데 이 경험을 OSS(Open Source Software)로 공개했습니다. 클라우드 환경에 특화된 프레임워크인 Spring Cloud에도 많은 넷플릭스 OSS가 통합되어 있는데 그 중 Spring Cloud Netflix Eureka에 대해서 알아보고자 합니다. Spring Cloud Net..
클라우드 네이티브 아키텍처의 도입을 위해 애플리케이션은 기본적으로 마이크로서비스 아키텍처의 형태로 개발이 진행되어야 합니다. 그 이유는 클라우드 컴퓨팅 모델의 확장성과 유연함을 잘 살릴 수 있고 유지보수나 변경점을 적용하는 데 있어 훨씬 유리하기 때문입니다. 마이크로서비스 아키텍처가 무엇인지, 해당 아키텍처의 도입이 꼭 필요한지, 필요하다면 어떤 조건을 확인해야 하는지 정리하고자 합니다. Architecture Monolith 초기 애플리케이션의 아키텍처 구조는 하나의 커다란 소프트웨어에 애플리케이션에 필요한 모든 요소를 포함했습니다. 클라이언트에게 보여지는 프론트 로직, 데이터를 담당하는 DB 로직, 실질적인 비즈니스 로직 등 모든 요소가 단 하나의 소프트웨어에 존재하였습니다. 사진에서 확인할 수 있듯..
과거 IT 시스템에서는 하드웨어가 중심이었기 때문에 시스템을 확장하기 위해서는 추가적인 하드웨어 구매가 필요했고 비용적인 측면에서 부담으로 다가왔다. 그렇기에 소프트웨어 변화가 어려웠고 깨지기 쉬운 시스템이 많이 존재했다. 기술의 발전으로 인해 하드웨어의 가격은 안정화되었고 초점을 소프트웨어로 돌리기 시작했다. 이로 따라 안정적이고 성능 높은 서비스를 개발하기 위해 큰 노력을 하게 되었고 시스템 분산화가 등장하게 된다. 최근에는 시스템을 로컬 환경에서 운영하는 것이 아닌 클라우드로 이전하게 되었고 탄력적인 시스템을 구축할 수 있게 되었다. 그렇다고 비용이 증가한 것인가? 비용 또한 직접 저렴하게 사용할 수 있다. 이러한 시스템 아키텍처를 클라우드 네이티브 아키텍처라고 한다. 앞으로도 지속해서 발전하고 상..