#7 테스트/운영 환경의 통일
제 컴에선 되는데요
개발자 커뮤니티나 개발자들간의 대화에서 자주 듣게 되는 변명 아닌 변명이다. 많은 사용자들이 이용하는 서비스를 개발하다보면 정말 같은 코드 임에도 불구하고 귀신같이 에러가 날때가 있다. 이럴때는 디버깅 도구를 이용한다 해도 버그를 찾기란 쉽지 않다. 심지어 테스트 코드까지 잘 짜여있고 각종 inspection도구를 거쳤다 하더라도 이런 문제는 언제든지 발생할 수 있다.
그래서 이런 문제를 해결하기 위해 퍼퓸그라피는 Docker를 도입하여 개발/테스트/운영 을 같은 환경에서 진행하고 있다. 새로운 것을 배워야된다는 부담감때문에 Docker를 도입하기 주저할 이유가 전혀 없다. 만약 AWS에서 우분투 14.04로 환경을 설정한다고 가정하자.
apt-get install nginx
apt-get install vim ...
등 명령어 뭉치를 쭉 실행하면서 환경을 설정할 것이다. 이러한 것들을 미리 설정해놓고 필요할 때마다 이용하는 것이다. 배포 환경을 소스 코드처럼 버젼관리를 한다고 생각하면 쉽다. 자세한 설정법 및 정보는 아래 링크의 책을 참고하면 된다. 동일 저자가 쓴 '아마존 웹 서비스를 다루는 기술' 도 참조한다면 AWS에서 Elastic beanstalk, ECS 등 Docker를 이용한 서비스를 구축하는데 많은 도움이 된다.
http://pyrasis.com/private/2014/11/30/publish-docker-for-the-really-impatient-book
코드가 에러나면 코드를 비판(코드 작성자를 비난)하면 되고 서비스의 가용성이 좋지 않으면 서버의 Scalability를 증대시키면 된다. 잘 되는 코드가 배포시 문제가 된다면 개발/운영/테스트을 Immutable 상태로 만들어보자. 단순히 스쳐지나가는 신기술이 아니라 안정적인 개발 프로세스를 가져가기 위해서는 꼭 추천하는 바이다.
이 포스트들은 스타트업에 종사하시는 현업 개발자 분들, 스타트업을 하고자 하는 학생분들과 경험을 나누고자 쓰고자 합니다. 저의 얇은 경험으로부터 교훈을 얻는 초기 창업자분들, 한 수 가르쳐주시려는 분들이 읽어주면 보람찰 것 같습니다. 잘못된 점은 말씀해주시면 독자 여러분들과 의논하여 수정하도록 하겠습니다.
퍼퓸그라피 CTO
마경욱