Business Agility

아마존, 넷플릭스, 우버 등 성공한 유니콘 기업들의 공통점은 자신만의 특화된 서비스를 제공하기 위해 빠르게 실행하며 사용자들의 피드백을 반영해 끊임없이 개선한다는 점이다. 이러한 특징을 비지니스 민첩성(business agility)이라고 한다.

아마존의 배포 속도

비지니스는 계속 변경되므로 이에 따라 시스템도 계속 배포되어야 한다. 빠른 배포 주기는 비지니스의 민첩성을 간접적으로 보여주는 지표이다.

국내 한 쇼핑몰은 시스템 배포 주기가 1주이며, 긴급 배포를 포함하면 3일정도이다. 즉, 비지니스 개선 주기가 3일인 셈이다. 반면 아마존은 초당 1.5번 배포를 진행한다. 즉, 아마존의 서비스는 0.66초마다 진화한다.

클라우드

AWS, 마이크로소프트사의 Azure, 구글 클라우드 플랫폼, 오라클 클라우드 등 클라우드 인프라의 등장으로 손쉽게 개발 시스템 인프라를 마련할 수 있게 되었으며, 클라우드 인프라가 강력하게 비지니스 개발의 민첩성을 촉진시켜준다.

클라우드 인프라를 사용하면 사용량에 따라 비용을 유연하게 조정할 수 있다.

AWS 의 경우, 무턱대고 사용하면 막대한 비용이 들기도 한다. 특정 행동 하나가 비용과 직결되기 때문이다. 수많은 돈과 관련된 Trap 이 설치되어있다.

Scale up, Scale out

  • 스케일 업(Scale up)
    • 수직 확장
    • 전체 시스템의 트래픽 최대치를 계산하여 대용량 처리가 가능하도록 시스템 용량을 증설하는 방식
    • 그럼에도 예상 트래픽을 초과하면 시스템이 다운된다.
  • 스케일 아웃(Scale out)
    • 수평 확장
    • CPU 나 Memory 의 트래픽 양이 한계 수치에 도달하면 시스템의 인스턴스를 복제해서 증가시킨다.
    • 배달의 민족을 예로 들면, 매주 금요일 가장 많은 트래픽이 발생한다고 해보자. 그러면 가장 트래픽이 많은 날에만 스케일 아웃을 하면 될 것이다. 하지만 모든 서비스에 대해서 스케일 아웃을 할 필요는 없다. 주문 서버라던지 트래픽을 많이 받아야 하는 서비스에 대해서만 스케일 아웃을 하면 된다.
    • 이처럼, 특정 서비스에 대해서만 스케일 아웃을 하기 위해서 해야할 일은, 애플리케이션 서비스를 작은 조각으로 분리하는 것이다.

Cloud Friendly, Cloud Native

전체 시스템을 하나의 덩어리로 만들어서 클라우드 인프라에 올라갈 수 있게한 애플리케이션(Monolith)을 Cloud Friendly Application 이라고 하며, 독립적으로 분리되어 배포될 수 있는 조각으로 구성된 애플리케이션(Micro Service)을 Cloud Native Application 이라고 한다.

References

  • 도메인 주도 설계로 시작하는 마이크로서비스 개발 / 한정헌, 유해식, 최은정, 이주영 저 / 위키북스