2018년 7월 5일 목요일

코드로 인프라 관리하기, 왜?

http://www.aladin.co.kr/shop/wproduct.aspx?ItemId=103384462

이런 책이 있다. 꽤 마음에 드는 내용이었다.

가상화 이후에 컨테이너 시대가 되었는데 흔히 거론되는 장점은 확장성이나 배포의 편리, 구동 환경을 동일하게 유지한다거나, 테스트를 실서버에서처럼 한다 같이 인프라를 대체하는 수준의 얘기인데, 그런 장점을 취하지 않더라도 (규모가 작아서 서버 한 대 안에서 다 돌릴 수 있더라도) Docker 류의 기술을 도입할 장점이 충분히 있다고 생각한다.


서비스 하나를 구성하는 데는 여러 데몬이 개입하게 된다. 흔하게는 DB, 혹은 캐시. 무슨 서비스가 어떤 설정으로 돌아가고 있는지 알아야 서비스를 구성할 수 있고, 어느 하나라도 같이 돌지 않으면 서비스에 지장이 생긴다.

그럼 서비스를 만들 때 그런 주변 요소들도 같이 고려할 수 있어야 한다. 가상머신이든 컨테이너든  미리 청사진을 준비하고 그 청사진에 맞춰 서비스를 구성하면 된다. 청사진 자체를 코드로 관리할 수 있으면 코드의 변화와 함께 청사진도 바꿀 수 있기도 하다.

이런 면에서 Docker 류를 설명하는 얘기도 자주 보이면 좋겠다.