2014-03-19 8 views
7

Go에 REST API 끝점이 기록되어 있으며이를 배포하는 가장 좋은 방법이 무엇인지 궁금합니다. Google App Engine을 사용하면 배포와 관련하여 내 인생이 편할 것이라고 생각합니다. 그러나 이것을 AWS에 배포하고 싶다고 가정 해보십시오. 어떤 옵션/프로세스/절차가 있습니까? 가장 좋은 방법은 무엇입니까? 내가 직접 SCP를 만들고 실행하기 위해 자신의 작업을 작성해야합니까?Go App 배포

하나의 옵션은 패브릭을 사용하여 배포 작업을 만드는 것입니다.

답변

7

오늘 우리가 얘기 한 Mountain West DevOps에서 돌아 오면 로트입니다. (구체적으로는 아니지만 일반적으로)

간결하게 말하면 내가 말할 수있는 것은 다음과 같습니다.

높은 사용률을 얻지 못하는 간단한 응용 프로그램의 경우 수동으로 인스턴스를 회전시키고 그 위에 바이너리를 올려 놓은 다음 실행하면 완료됩니다. (프로덕션 플랫폼에서 개발하지 않는 경우 Go 바이너리를 크로스 컴파일 할 수 있습니다.)

약간 더 자동화하려면 최신 이진 파일을 업로드하여 EC2 인스턴스로 실행하는 Python 스크립트를 작성해야합니다 boto/ssh 사용).

Go 프로그램은 일반적으로 매우 안전합니다 (특히 test 인 경우). 안정성을 높이기 위해 바이너리를 서비스 (daemonize) 할 수 있으므로 어떤 이유로 든 다시 작동합니다.

더욱 자율성을 위해 Jenkins 또는 Travis와 같은 CI 유틸리티를 사용하십시오. 특정 분기에 코드를 적용하거나 태그를 적용 할 때 배포 스크립트를 자동으로 실행하도록 구성 할 수 있습니다.

더 강력한 자동화를 위해 다른 노치를 사용하고 Packer 또는 Chef과 같은 도구를 사용할 수 있습니다. 나는 당신의 요구가 정말로 과격하지 않다면 Packer로 시작할 것입니다. Packer 개발자는 오늘 그것에 대해 이야기했고 간단하고 강력 해 보입니다. 요리사는 여러 회사에서 일하지만 과장 될 수 있습니다.

Go 프로그램의 기본 개념은 프로덕션 서버에 바이너리를 복사하고 실행해야한다는 것입니다. 그것은 간단합니다. 요구 사항 및 선호하는 워크 플로우에 따라이를 자동화하거나 안정적으로 수행하는 방법은 귀하의 책임입니다.

추가 읽기 : http://www.reddit.com/r/golang/comments/1r0q79/pushing_and_building_code_to_production/ 구체적으로는 https://medium.com/p/528af8ee1a58

관련 문제