Vagrant의 도
원문은 Mitchell Hashimoto님이 에 게재했습니다. 이 블로그 구독하기
Vagrant를 설치하거나 작동 방식을 살펴보기 전에, 실제 작업 환경에서 Vagrant의 전반적인 워크플로를 이해하는 것이 중요하다. 이러한 원칙들을 통틀어 “Vagrant의 도(Tao of Vagrant)”라 부른다. 다음은 Vagrant: Up and Running에서 발췌한 내용이다.
Vagrant가 있는 세상에서는 개발자가 버전 관리 시스템에서 어떤 저장소든 체크아웃한 뒤 vagrant up을 실행하는 것만으로 별도의 수작업 없이 완전히 동작하는 개발 환경을 갖출 수 있다. 개발자는 여전히 자신의 머신에서 익숙한 에디터와 브라우저, 각종 도구를 그대로 사용하며 작업을 이어간다. 개발자 입장에서는 Vagrant의 존재가 의식되지 않을 만큼 투명하며 중요하게 느껴지지도 않는다. Vagrant는 일관되고 안정적인 개발 환경을 만들어내는 일꾼이다.
시스템 운영 엔지니어 역시 자신의 머신에서 익숙한 에디터와 도구를 사용해 시스템 자동화 스크립트를 작성한다. 스크립트를 테스트할 준비가 되면 vagrant up을 실행해 프로덕션과 동일한 완전한 샌드박스 환경을 갖추고, 실제 운영 시나리오와 시스템 자동화를 테스트할 수 있다.
시스템 운영 엔지니어가 개발한 자동화는 프로덕션에서만 쓰이는 것이 아니라 개발 과정에서도 활용된다. vagrant up을 실행할 때마다 개발자는 프로덕션을 구축하는 데 사용되는 것과 동일한 스크립트로 완전히 프로비저닝된 개발 환경을 얻게 된다. 이렇게 하면 개발자는 프로덕션을 최대한 충실히 모방한 환경에서 작업할 수 있다.
문제가 발생하거나 깨끗한 상태에서 다시 시작하고 싶을 때, 개발자와 운영 엔지니어는 vagrant destroy를 실행하면 머신에서 해당 개발 환경의 흔적을 모두 제거할 수 있다. 이후 다시 vagrant up을 실행하면 순식간에 동일하고 완전히 동작하는 개발 환경이 다시 만들어진다.
하루 일과가 끝나면 Vagrant로 개발 환경을 일시 중단하거나, 정지하거나, 제거해 전체 시스템을 깔끔하게 유지할 수 있다. 더 이상 개발자가 떠도는 서버 프로세스를 종료하는 것을 잊어버려 소중한 컴퓨팅 리소스를 낭비하는 일도 없다. 필요할 때 vagrant up을 실행하면 단 몇 분 만에 바로 사용할 수 있는 개발 환경이 다시 준비된다.
이 모든 것의 가장 큰 장점은 이러한 지식이 모든 프로젝트에 그대로 적용된다는 점이다. 프로젝트 A에서든 프로젝트 B에서든, 심지어 회사 A에서든 회사 B에서든 Vagrant의 도를 따르기만 하면 워크플로는 완전히 동일하다. 그 결과 생산성은 높아지고 “내 컴퓨터에서는 잘 되는데”라는 버그는 사라진다.
물론 Vagrant를 사용하기 위해 Vagrant의 도에 담긴 모든 원칙을 하나하나 따를 필요는 없다. Vagrant는 범용 도구이며 환경에 맞게 자유롭게 변형해 사용할 수 있다. 하지만 Vagrant가 지향하는 더 큰 비전을 보고 이해하는 것은 중요하다.
글을 무작위로 읽기
댓글
로그인하고 댓글 남기기