Google Cloud Bauen - wie man eine build - /deploy auf FB mit einer stateful-container, die "spins down", um 0 (wie cloud laufen)

Wir haben die meisten, aber nicht alle unsere build-Artefakte in ein Git-repo (Bitbucket).

Unsere aktuellen build sieht so aus und dauert 30+ Minuten zu bauen/bereitstellen auf FB, wir möchten die Zeit verringern, die, um zu bauen.

Wir sind nicht mit Google Cloud Bauen, in dem moment, aber bevor Sie auf diesem Weg möchte ich herausfinden, ob das würde sogar fruchtbar sein.

Wir haben alle den code geklont aus dem git repo (Bitbucket), zu einem GCE-VM.

Und dann 1 TB statische Daten werden dann in ein Verzeichnis kopiert, unter dem git repo-Bereich, Artefakte, die erforderlich sind, bereitstellen.

Wollen wir nicht check-in, die 1 TB Daten in das git-repo, es ist von einem 3rd party, es wird nur selten aktualisiert wird, und zu schwer sein würde, ein Verzeichnis zu ziehen in Entwickler-Umgebungen auf Ihrem IDE ' s, es ist sinnlos, so zu tun.

Wir starten ein build-script auf die GCE VM um den code zu erstellen, und die Bereitstellung auf FB (bash-Skript), es dauert etwa 30 Minuten.

Wir wollen, dass die builds schneller gehen, und möglich zur Nutzung von cloud bauen.

Mit dabei:

  1. ein git-repo
  2. die externen Dateien, die müssen bleiben in einer stateful container, die nicht kopiert jeder Zeit, durch die Zeit, die es dauern würde

wie schaffen wir eine stateful container, die nur erfordern ein git update (pull origin master), und dann das Feuer aus einem build - /deploy auf FB?

Wir wollen vermeiden, ingress-traffic auf der FB bereitstellen, mit externen build-services, wo die 1 TB von Daten, bleibt die gleiche und jedes mal wird geschickt auf FB, wo wir würden in Rechnung gestellt werden.

Cloud Ausführen Behälter sind nicht stateful. GCE-VM ist stateful, aber es erfordert, dass wir halten Sie und gehen, 24x7x365, so dass alle Entwickler, die überall ausgeführt werden können, erstellen, und das kann dauern nur 30 Minuten und jeden Tag, und wir wissen nicht, Wann das sein wird, so verlassen, bis 24x7x365 ist meist Verschwendung.

Wir wollen vermeiden, Aufbau einer stateless container, in dem der code ausgecheckt ist frisch und jedes mal ein git pull origin master tun, und kopieren Sie die 1 TB von Artefakten in den Behälter jedes mal die Zeit nehmen.

Wir wollen einfach nur zu tun:

  1. git pull origin master
  2. Feuer aus dem zu bauen, wie der nächste Schritt im Skript
  3. spin-down der container, müssen Sie es speichern, es Stand für den nächsten build, die Minimierung der Zeit, und jedes mal speichern der vorangegangenen "git pull origin master" aktualisiert Artefakte, und die Erhaltung der 1TB-Dateien kopierten wir auf den container.

Die ideale situation wäre ein container, der zustandsbehaftet ist, dass die spins nach unten, wenn nicht in Gebrauch ist, und "hoch dreht", oder aktiv für verwenden, wenn wir tun müssen, um eine zu bauen.

Es würde beibehalten des vorherigen git update (git pull origin master), und würde behalten alle Artefakte außerhalb des git-repo, die wir kopieren. Wir müssen auch shell-Zugriff auf den container (ssh, scp) etc.

Eine stateful "Cloud Ausführen' option wäre ideal, aber ich weiß nicht, so eine Sache (stateful Container mit GCP, den wir ausführen können, und nur in Rechnung gestellt-Laufzeit/Rechenzeit)

+1
2019-09-17 08:22:11
Quelle
0 Antworten

Sehen Sie sich andere Fragen zu Tags an