더북(TheBook)

3.5 모든 관점 통합하기

클라우드의 마이크로서비스는 언뜻 보기에는 단순해 보인다. 하지만 성공하려면 아키텍트, 개발자, 데브옵스 엔지니어의 관점을 모아 종합된 비전을 달성하는 관점의 통합이 필요하다. 각 역할 관점의 핵심은 다음과 같다.

아키텍트: 비즈니스 문제의 자연스러운 윤곽을 찾는 데 집중한다. 비즈니스 문제 영역을 설명하고 스토리를 들어 본다면, 대상 마이크로서비스 후보가 드러날 것이다. 처음부터 세분화된 많은 서비스에서 시작하는 것보다 크게 나눈 마이크로서비스에서 시작해서 작은 서비스로 리팩터링하는 것이 낫다는 것도 기억하자. 대부분의 좋은 아키텍처와 마찬가지로 마이크로서비스도 창발적(創發的)6이며 사전에 세세히 계획되는 것은 아니다.

소프트웨어 엔지니어(개발자): 서비스가 작다고 해서 좋은 설계 원칙을 포기하라는 것은 아니다. 서비스 안의 각 계층마다 책임이 분리된 계층화된 서비스를 구축하는 데 집중하라. 코드에서 프레임워크를 만들려는 유혹을 피하고 완전히 독립적인 마이크로서비스를 지향하라. 성급하게 프레임워크를 설계하고 채택하면 애플리케이션 수명 주기(lifecycle) 후반에 막대한 유지 보수 비용을 초래할 수 있다.

데브옵스 엔지니어: 서비스는 외부와 단절된 것이 아니다. 서비스의 수명 주기를 조기에 수립하라. 데브옵스 관점에서 서비스 빌드와 배포를 자동화하는 방법뿐 아니라 서비스 상태를 모니터링하고 문제가 발생할 때 대응하는 방법에도 주목해야 한다. 대개 서비스를 운영하는 것은 비즈니스 로직을 작성하는 것보다 더 많은 작업과 고려가 필요하다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.