더북(TheBook)

2.4 데브옵스 이야기: 혹독한 런타임 구축



데브옵스(DevOps) 엔지니어에게 마이크로서비스 설계란 양산(실운영) 이후의 서비스 관리에 관한 설계다. 코드 작성은 흔히 쉬운 부분에 속한다. 계속 동작하게 만드는 것이 어렵다.

데브옵스는 다양하며 새롭게 부상하는 IT 분야이지만, 책에서는 다음 네 가지 원칙으로 마이크로서비스 개발을 시작하고 실행해 볼 것이다.

1. 마이크로서비스는 단일 소프트웨어 산출물(artifact)을 사용해 여러 서비스 인스턴스를 시작하거나 제거할 수 있도록 자체 완비형(self-contained)이며 독립적으로 배포 가능(independently deployable)해야 한다.

2. 마이크로서비스는 구성 가능(configurable)해야 한다. 서비스 인스턴스가 시작될 때 구성에 필요한 데이터를 중앙에서 읽어 들이거나 환경 변수로 전달된 구성 정보를 받아야 한다. 서비스를 구성하는 데 사람의 개입은 필요하지 않다.

3. 마이크로서비스 인스턴스는 클라이언트가 위치를 알지 못하도록 투명해야(transparent) 한다.6 클라이언트는 서비스의 정확한 위치를 알고 있어서는 안 된다. 그 대신 마이크로서비스 클라이언트는 마이크로서비스 인스턴스의 물리적 위치를 모르더라도 애플리케이션이 알 수 있도록 서비스 디스커버리 에이전트(service discovery agent)와 통신해야 한다.

4. 마이크로서비스는 자신의 상태(health)전달해야 한다. 이는 클라우드 아키텍처에서 매우 중요한 부분이다. 마이크로서비스 인스턴스들은 고장 날 수 있으며 클라이언트는 잘못된 서비스 인스턴스를 피해 라우팅해야 한다.


6 역주 분산 시스템의 투명성(transparency) 특징 중 위치 투명성(location transparency)을 의미하며 분산된 자원의 물리적 위치를 모르더라도 접근할 수 있는 특성이다.

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