O Google Cloud Construir - como fazer um build/deploy para Firebase com um recipiente com monitoração de estado que "gira" para 0 (como nuvem de execução)

Nós temos a maioria, mas não todos os nossos construir artefatos em um repositório Git (Bitbucket).

A nossa actual construir este aspecto, e leva mais de 30 minutos para criar/implantar a Firebase, gostaríamos de reduzir o tempo para construir.

Não estamos usando o Google Cloud Construir no momento, mas antes de descer o caminho, eu quero saber se isso fosse frutífera.

Temos todo o código clonados a partir do repositório git (Bitbucket), para um GCE VM.

E, em seguida, 1 TB de dados estáticos, em seguida, é copiado para um diretório sob o repositório git área, artefatos que são necessários para as implementar.

Não queremos verificar em que 1 tb de dados em um repositório git, é de uma parte 3ª, raramente é atualizada, e seria demasiado pesado de um diretório para puxar para desenvolvedor de ambientes em sua IDE, é inútil fazer isso.

Lançamos um script de compilação do GCE VM para criar o código, e implantar a Firebase (bash script), demora cerca de 30 minutos.

Queremos que as compilações para ir mais rápido, e o possível uso de nuvem construir.

Com este:

  1. um repositório git
  2. arquivos externos que precisam permanecer em um recipiente com monitoração de estado, e não copiado de cada vez, devido ao tempo que levaria

como podemos criar um recipiente com monitoração de estado que só exigem um git atualização (pull origin master) e, em seguida, para disparar uma build/deploy para Firebase?

Queremos evitar o ingresso de tráfego para a Firebase implantar usando externa de criar serviços onde o 1 tb de dados que permanece a mesma de cada um e de cada vez que é enviado para Firebase, onde seria cobrado.

Nuvem de Execução recipientes não são stateful. GCE VM são stateful, mas isso requer que nós mantê-los indo 24x7x365, de modo que qualquer desenvolvedor em qualquer lugar pode executar uma compilação, e que pode levar apenas 30 minutos de qualquer dia, e não sabemos quando isso vai ser, então, deixando 24x7x365 é, principalmente, um desperdício.

Queremos evitar a construção de um estado de recipiente onde o código está com check-out fresco a cada momento, um git pull origin master vai fazer, e tem que copiar o 1 tb de artefatos para o recipiente de cada um e de cada vez que a tomada de tempo.

Nós apenas queremos fazer:

  1. git pull origin master
  2. Disparar a construir como o próximo passo no script
  3. girar o recipiente, tem que salvá-lo do estado para o próximo construir, minimizando o tempo, a cada tempo, salvando o anterior 'git pull origin master' atualizado artefatos, e preservar a 1 TB arquivos copiados para o recipiente.

A situação ideal seria ter um recipiente com monitoração de estado, que gira para baixo quando não estiver em uso, e "gira", ou é do ativo para utilização, quando precisamos fazer uma compilação.

Iria reter o anterior git atualização (git pull origin master), e gostaria de manter todos os artefatos fora do repositório git que temos de copiar. Precisamos também de acesso a shell para o recipiente (ssh, scp), etc.

Um stateful 'Nuvem Executar" opção seria o ideal, mas eu não sei de uma coisa (stateful recipientes com as BPC que podemos executar e somente será cobrado por um tempo/tempo de computação)

+1
2019-09-17 08:22:11
origem
0 respostas

Veja mais perguntas por marcas