2016-11-27 3 views
1

좋아, devops에서 멍청한 녀석이지만 나와 함께 견뎌야한다. 나는 내 처지를 설명하기 위해 최선을 다했다.Heroku에서 Docker 플랫폼으로 전환 Cycle.io 문제

이제 GitHub에서 볼 수있는 코드가있는 Java 애플리케이션 (현재 heroku에서 호스팅 됨)이 있습니다. 그러나 보이는 코드는 직접 배치 할 수 없습니다. 확실한 보안상의 이유로 GitHub에 올려 놓을 수없는 두 개의 다른 Auth 파일 등이 포함 된 applications.properties과 같은 2-3 개의 권한있는 파일이 있습니다. 또한 Heroku가 제공 한 ClearDB 플러그인에서 제공하는 MySQL 데이터베이스를 사용하고 있습니다.

이제 해결 방법은 이러한 파일이 Heroku git 리모컨에만 있고 이동하도록 설정되어 있다는 것입니다. 우리는 배포를 원할 때마다 Heroku 리모콘으로 전환하고 마스터에서 코드 변경 사항을 가져 와서 자동 배포합니다.

이제 Heroku에서 Cycle.io 또는 Amazon Web Services으로 이동합니다. AWS를 설정하는 것은 꽤 힘들 겠지만 Cycle.io는 고정 이미지를 사용합니다. 여기에 몇 가지 질문이있었습니다.

  1. Cycle.io는 배포를 제공하며 제공되는 데이터베이스에 대해서는 언급하지 않습니다. 우리는 어디에서 DB를 얻을 수 있습니까? 우리의 선택은 무엇입니까? Cycle.io를 사용하면 Environments을 만들 수 있습니다. 견적하려면

환경에서는 사용자가 관련 컨테이너 그룹을 구성 할 수 있습니다. 환경이 만들어지면 Cycle이 자동으로 개인 네트워크를 만들어 내부의 컨테이너를 연결합니다.

이 설정은 MySQL 데이터베이스를 설치할 수있는 일종의 Linux 환경을 설정합니까? MySQL 이미지 용 도커 이미지를 설정하고 코드 이미지가이 이미지와 통신 할 수 있도록 허용해야합니까?

  1. cycle.io에 Docker 이미지를 사용하는 것이 가장 좋은 워크 플로우는 무엇입니까? 이게 뭔가?

    • 빌드 고정 표시기 허브와 통합 cycle.io는
  2. 거기에서 그것을 선택할 수 있도록 개인 저장소에 도커 허브에
  3. 푸시를 작동하고 내 시스템에 고정 표시기 이미지 단순히를 끌어 :

    주기

는 두 가지 간단한 단계로 컨테이너를 배포 말한다 0 Docker Hub 또는 Git repo에서 생산 준비 완료 이미지를 가져온 다음 이미지 가져 오기를 클릭하십시오.

GitHub에서 도커 이미지를 호스트하는 방법은 어떻게됩니까? GitHub에서 실제로 파일을 호스팅하지 않아야한다는 의미입니까? Docker Hub가 더 의미가 있습니다. 아니면 코드를 가져 와서 도커 이미지로 컴파일한다는 뜻입니까?

  1. 영웅과 같이 '사적인'git branch를 갖는 가장 좋은 방법은 무엇입니까? 개인 리모컨을 추가하고 싶지만 어떻게해야합니까? 방금 공개 지사에 비공개 파일의 비공개 보관함처럼 보관해야합니까?

답변

0
  1. db를 "가져 오는"방법에는 여러 가지가 있습니다. 가장 간단한 방법은 관리되는 솔루션을 사용하는 것입니다. mysql에는 여러 가지 옵션이 있습니다. 가장 인기있는 옵션은 Google에서 제공하는 클라우드 SQL과 AWS의 RDS입니다. MySQL DB를 컨테이너로 설치할 수도 있지만 Cycle.io에서 해당 서비스를 제공하는지 여부는 알 수 없습니다. 최선의 방법은 Cycle.io에 해당 질문으로 접근하여 어떤 MySQL 솔루션이 제품과 가장 잘 통합되는지 물어 보거나 AWS (탄성 beanstalk는 도커 컨테이너를 실행하기위한 훌륭한 서비스이며 데이터 인스턴스로 mysql 인스턴스를 제공 할 수 있음)를 선택하는 것입니다.
  2. 제안하신 흐름이 효과적입니다. 더 나은 흐름에는 코드를 github에 푸시하면 AWS/cycle.io에 배포하는 것보다 이미지를 자동으로 빌드 할 수있는 일종의 CI/CD 파이프 라인이 포함됩니다. 우리는 CircleCI를 사용하고 있습니다. CircleCI는 작은 빌드를 위해 1 개의 무료 컨테이너를 제공하며 이러한 목적에 적합합니다.
  3. gutub에 실제 고정 이미지를 두지 마십시오. 당신이해야 할 일은 repo에 dockerfile을 추가하는 것입니다. 이미지는 그 이미지로 만들어집니다. Cycle.io가이 옵션을 제공한다고 생각합니다. 자동으로 repo에 넣은 dockerfile에서 이미지를 빌드합니다. 이것은 우리가 CirclCI로 이미지를 구축하는 방식입니다.
  4. 배포 키는이 용도로 유용합니다. 하나를 만들고 권한이 부여 된 서비스 만 해당 키를 사용하여 repo와 통신 할 수 있습니다.
+0

감사합니다. 그러나, 나는 여전히 내 개인 파일 (application.properties 하나)에 대한 해결책이 없습니다. 저장소에서 이것을 가질 수 없으며 이것을 어떻게 자동 빌드에 통합합니까? – tsaebeht

+1

이 방법은 비밀 관리로 알려져 있으며이를 위해 특별히 지정된 몇 가지 도구가 있습니다. hashicorp의 Vault에서 이러한 도구의 예를 확인할 수 있습니다. - https://www.vaultproject.io/ –

+0

제 팀원이 여기에 관한 질문을 http://softwareengineering.stackexchange.com/questions/336959/에 올려 놓았습니다. 통합 - 개인 파일 - 오픈 소스 - 응용 프로그램 코드 -에서 - devops - 파이프 라인 – tsaebeht