From 1263da2172f9f6100dfb1a148d7f60e0e15183a0 Mon Sep 17 00:00:00 2001 From: Colin Nelson Date: Wed, 26 Sep 2018 09:18:23 -0700 Subject: [PATCH 1/4] Reduced loadgenerator's image size (#52) Reduce loadgenerator's image size from ~972MB to ~117MB * Changed loadgen.sh to execute with `/bin/sh` as opposed to `/bin/bash` * Changed dockerfile to a multi stage build * Changed base image to `python:3-alpine` as opposed to `python:3.6` --- src/loadgenerator/Dockerfile | 18 ++++++++++++++++-- src/loadgenerator/loadgen.sh | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/loadgenerator/Dockerfile b/src/loadgenerator/Dockerfile index a90c23e..b0004cf 100644 --- a/src/loadgenerator/Dockerfile +++ b/src/loadgenerator/Dockerfile @@ -1,7 +1,21 @@ -FROM python:3.6 +FROM python:3-alpine as base + +FROM base as builder + +RUN apk add --update --no-cache \ + gcc \ + linux-headers \ + make \ + musl-dev \ + python-dev \ + g++ COPY requirements.txt . -RUN pip install -r requirements.txt + +RUN pip install --install-option="--prefix=/install" -r requirements.txt + +FROM base +COPY --from=builder /install /usr/local COPY . . ENTRYPOINT ./loadgen.sh diff --git a/src/loadgenerator/loadgen.sh b/src/loadgenerator/loadgen.sh index 514174e..2a68db7 100755 --- a/src/loadgenerator/loadgen.sh +++ b/src/loadgenerator/loadgen.sh @@ -1,4 +1,4 @@ -#!/bin/bash -eu +#!/bin/sh -eu # # Copyright 2018 Google LLC # From 7ced638e2f30dc5fb84bb1c0613ebf8de69dcde6 Mon Sep 17 00:00:00 2001 From: Colin Nelson Date: Wed, 26 Sep 2018 10:58:33 -0700 Subject: [PATCH 2/4] paymentservice: Docker image size optimization (#53) Reduced docker image size to ~153MB (was ~781MB). * Uses alpine linux and multi stage builds. * Changed `CMD` to `ENTRYPOINT` --- src/paymentservice/Dockerfile | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/paymentservice/Dockerfile b/src/paymentservice/Dockerfile index abe0eba..5785d35 100644 --- a/src/paymentservice/Dockerfile +++ b/src/paymentservice/Dockerfile @@ -1,7 +1,13 @@ -FROM node:8 -RUN GRPC_HEALTH_PROBE_VERSION=v0.1.0-alpha.1 && \ - wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ - chmod +x /bin/grpc_health_probe +FROM node:8-alpine as base + +FROM base as builder + +# Some packages (e.g. @google-cloud/profiler) require additional +# deps for post-install scripts +RUN apk add --update --no-cache \ + python \ + make \ + g++ WORKDIR /usr/src/app @@ -9,8 +15,18 @@ COPY package*.json ./ RUN npm install --only=production +FROM base + +RUN GRPC_HEALTH_PROBE_VERSION=v0.1.0-alpha.1 && \ + wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ + chmod +x /bin/grpc_health_probe + +WORKDIR /usr/src/app + +COPY --from=builder /usr/src/app/node_modules ./node_modules + COPY . . EXPOSE 50051 -CMD [ "node", "index.js" ] +ENTRYPOINT [ "node", "index.js" ] From 3be5c82c73ff5e3343fe2926938fb52ec97f2033 Mon Sep 17 00:00:00 2001 From: Ahmet Alp Balkan Date: Wed, 26 Sep 2018 12:22:51 -0700 Subject: [PATCH 3/4] skaffold: add gcb timeout (default is too low) Signed-off-by: Ahmet Alp Balkan --- skaffold.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/skaffold.yaml b/skaffold.yaml index bd04f86..9bf9d46 100644 --- a/skaffold.yaml +++ b/skaffold.yaml @@ -66,3 +66,4 @@ profiles: googleCloudBuild: diskSizeGb: 300 machineType: "N1_HIGHCPU_32" + timeout: 4000s From c61a8aea4ce316307c81d8e433fad67fd7fe6329 Mon Sep 17 00:00:00 2001 From: sebright Date: Wed, 26 Sep 2018 19:33:52 -0700 Subject: [PATCH 4/4] adservice: upgrade grpc-java to 1.15.0 (#54) Upgrading grpc-java fixed an error that I encountered when I tried modifying the adservice to write logs to Stackdriver with google-cloud-logging ("`com.google.cloud.logging.LoggingException: io.grpc.StatusRuntimeException: UNAUTHENTICATED: Credentials require channel with PRIVACY_AND_INTEGRITY security level. Observed security level: NONE`"). --- src/adservice/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/adservice/build.gradle b/src/adservice/build.gradle index 47653ac..2c6bce7 100644 --- a/src/adservice/build.gradle +++ b/src/adservice/build.gradle @@ -26,7 +26,7 @@ group = "adservice" version = "0.1.0-SNAPSHOT" // CURRENT_OPENCENSUS_VERSION def opencensusVersion = "0.15.0" // LATEST_OPENCENSUS_RELEASE_VERSION -def grpcVersion = "1.10.1" // CURRENT_GRPC_VERSION +def grpcVersion = "1.15.0" // CURRENT_GRPC_VERSION def prometheusVersion = "0.3.0" tasks.withType(JavaCompile) {