설계/Infrastructure

    무중단 배포 방식 (Rolling Update, Blue/Green, Canary)

    무중단 배포 무중단 배포는 말그대로 중단하지 않고 배포를 진행하는 것을 의미합니다. 보통은 애플리케이션을 업데이트 한 뒤, 배포를 하게 될 경우 애플리케이션을 중단시키고 배포하게 됩니다. 이럴경우 사용자는 배포가 완료되는 시간 동안 애플리케이션 사용에 제한이 생기게 됩니다. 이렇게 서비스가 중단되는 시간을 다운타임(Downtime)이라고 하며, 이러한 다운타임을 없애고자 생긴것이 무중단 배포입니다. 무중단 배포를 하기 위해서는 두대 이상의 서버가 필수적으로 필요합니다. 실제로 서비스 중인 서버 한대와 새롭게 배포한 서버 한대를 사용하여 무중단 배포를 할 수 있습니다. 최근에는 서비스를 더 작게 만들고 더 자주 배포하는 방식으로 변화하고 있습니다. 그만큼 변경 사항이 생겼을 때 더 빠르게 반영할 수 있지만..

    MSA에서 BFF(Backend for Frontend) 패턴

    MSA (Micro Service Architecture) MSA는 큰 서비스를 잘게 쪼개어 개발/운영 하는 아키텍처입니다. 하나의 큰 서비스는 수십~수백개의 작은 서비스로 나뉘어집니다. 또한 PC뿐만 아니라 다양한 모바일 장치를 비롯해 다양한 클라이언트를 고려해야 합니다. 또한 데이터 처리를 위해 여러 API를 조합하거나 처리하는 과정이 필요합니다. 실제 프로덕트에서 MSA를 이용한 어플리케이션을 구축할 때 여러가지 문제에 직면하게 됩니다. 만약 여러 API를 클라이언트(FE)단에서 전부 호출하게 된다면 어떤 일이 발생할까요? 만약 이를 클라이언트에서 서비스를 직접 호출하는 형태라면 다음과 같은 문제가 발생할 수 있습니다. 각각의 서비스마다 인증/인가 등 공통된 로직을 구현해야하는 번거로움이 있습..