Sample cloud-native application with 10 microservices showcasing Kubernetes, Istio, gRPC and OpenCensus.

Overview

Online Boutique

Continuous Integration

Online Boutique is a cloud-native microservices demo application. Online Boutique consists of a 10-tier microservices application. The application is a web-based e-commerce app where users can browse items, add them to the cart, and purchase them.

Google uses this application to demonstrate use of technologies like Kubernetes/GKE, Istio, Stackdriver, gRPC and OpenCensus. This application works on any Kubernetes cluster, as well as Google Kubernetes Engine. It’s easy to deploy with little to no configuration.

If you’re using this demo, please ★Star this repository to show your interest!

👓 Note to Googlers: Please fill out the form at go/microservices-demo if you are using this application.

Looking for the old Hipster Shop frontend interface? Use the manifests in release v0.1.5.

Screenshots

Home Page Checkout Screen
Screenshot of store homepage Screenshot of checkout screen

Quickstart (GKE)

Open in Cloud Shell

  1. Create a Google Cloud Platform project or use an existing project. Set the PROJECT_ID environment variable and ensure the Google Kubernetes Engine and Cloud Operations APIs are enabled.
PROJECT_ID="<your-project-id>"
gcloud services enable container.googleapis.com --project ${PROJECT_ID}
gcloud services enable monitoring.googleapis.com \
    cloudtrace.googleapis.com \
    clouddebugger.googleapis.com \
    cloudprofiler.googleapis.com \
    --project ${PROJECT_ID}
  1. Clone this repository.
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
cd microservices-demo
  1. Create a GKE cluster.
ZONE=us-central1-b
gcloud container clusters create onlineboutique \
    --project=${PROJECT_ID} --zone=${ZONE} \
    --machine-type=e2-standard-2 --num-nodes=4
  1. Deploy the sample app to the cluster.
kubectl apply -f ./release/kubernetes-manifests.yaml
  1. Wait for the Pods to be ready.
kubectl get pods

After a few minutes, you should see:

NAME                                     READY   STATUS    RESTARTS   AGE
adservice-76bdd69666-ckc5j               1/1     Running   0          2m58s
cartservice-66d497c6b7-dp5jr             1/1     Running   0          2m59s
checkoutservice-666c784bd6-4jd22         1/1     Running   0          3m1s
currencyservice-5d5d496984-4jmd7         1/1     Running   0          2m59s
emailservice-667457d9d6-75jcq            1/1     Running   0          3m2s
frontend-6b8d69b9fb-wjqdg                1/1     Running   0          3m1s
loadgenerator-665b5cd444-gwqdq           1/1     Running   0          3m
paymentservice-68596d6dd6-bf6bv          1/1     Running   0          3m
productcatalogservice-557d474574-888kr   1/1     Running   0          3m
recommendationservice-69c56b74d4-7z8r5   1/1     Running   0          3m1s
redis-cart-5f59546cdd-5jnqf              1/1     Running   0          2m58s
shippingservice-6ccc89f8fd-v686r         1/1     Running   0          2m58s
  1. Access the web frontend in a browser using the frontend's EXTERNAL_IP.
kubectl get service frontend-external | awk '{print $4}'

Example output - do not copy

EXTERNAL-IP
<your-ip>

Note- you may see <pending> while GCP provisions the load balancer. If this happens, wait a few minutes and re-run the command.

  1. [Optional] Clean up:
gcloud container clusters delete onlineboutique \
    --project=${PROJECT_ID} --zone=${ZONE}

Other Deployment Options

Architecture

Online Boutique is composed of 11 microservices written in different languages that talk to each other over gRPC. See the Development Principles doc for more information.

Architecture of microservices

Find Protocol Buffers Descriptions at the ./pb directory.

Service Language Description
frontend Go Exposes an HTTP server to serve the website. Does not require signup/login and generates session IDs for all users automatically.
cartservice C# Stores the items in the user's shopping cart in Redis and retrieves it.
productcatalogservice Go Provides the list of products from a JSON file and ability to search products and get individual products.
currencyservice Node.js Converts one money amount to another currency. Uses real values fetched from European Central Bank. It's the highest QPS service.
paymentservice Node.js Charges the given credit card info (mock) with the given amount and returns a transaction ID.
shippingservice Go Gives shipping cost estimates based on the shopping cart. Ships items to the given address (mock)
emailservice Python Sends users an order confirmation email (mock).
checkoutservice Go Retrieves user cart, prepares order and orchestrates the payment, shipping and the email notification.
recommendationservice Python Recommends other products based on what's given in the cart.
adservice Java Provides text ads based on given context words.
loadgenerator Python/Locust Continuously sends requests imitating realistic user shopping flows to the frontend.

Features

  • Kubernetes/GKE: The app is designed to run on Kubernetes (both locally on "Docker for Desktop", as well as on the cloud with GKE).
  • gRPC: Microservices use a high volume of gRPC calls to communicate to each other.
  • Istio: Application works on Istio service mesh.
  • OpenCensus Tracing: Most services are instrumented using OpenCensus trace interceptors for gRPC/HTTP.
  • Cloud Operations (Stackdriver): Many services are instrumented with Profiling, Tracing and Debugging. In addition to these, using Istio enables features like Request/Response Metrics and Context Graph out of the box. When it is running out of Google Cloud, this code path remains inactive.
  • Skaffold: Application is deployed to Kubernetes with a single command using Skaffold.
  • Synthetic Load Generation: The application demo comes with a background job that creates realistic usage patterns on the website using Locust load generator.

Local Development

If you would like to contribute features or fixes to this app, see the Development Guide on how to build this demo locally.

Demos featuring Online Boutique


This is not an official Google project.

Comments
  • Kustomize build CI + Kustomize docs + `ServiceAccounts` variation

    Kustomize build CI + Kustomize docs + `ServiceAccounts` variation

    • Kustomize build CI for smoke tests as soon as files are updated in kustomize/ folder - Same approach as #1096 but for Kustomize
      • First, testing the default kustomization.yaml file in kustomize/
      • Second, testing each component individually under kustomize/components
      • Thirst, and last, testing a custom scenario with base and some components
    • Do not trigger current CI on each PR or merge in main if files are updated in kustomize/ folder to avoid charging the self-hosted runner as well as avoid building/deploying the containers, all of that not related to the Kustomize implementation in this repo as of now
    • Just one kubernetes-manifests.yaml in kustomize/base folder, like in release/
    • Update the release script/process to copy the release/kubernetes-manifests.yaml file in kustomize/base/kubernetes-manifests.yaml
    • Update the REDIS_ADDR value update for the Memorystore component (a Redis instance could have a port after the IP and it could also be a DNS instead of IP). Here, I'm proposing that any Kustomize component which needs to have value injection (sed) in their Kustomize component file is surrounded by {{...}}, in this case {{REDIS_ADDR}}. That's the only component for now having this, so that's kind of a token convention for future components which will need that in the future.
    • Add new ServiceAccounts variation via Kustomize
    • Lastly, update the docs for consistency between the Kustomize variations
    opened by mathieu-benoit 28
  • Problem with 3 microservices during app deployment

    Problem with 3 microservices during app deployment

    After clone this repository, deployed the sample app to the cluster using the command mentioned kubectl apply -f ./release/kubernetes-manifests.yaml

    But when I am running the command to check the status of the pod, observing that 3 services are not running: 1.cartservice 2.loadgenerator 3.recommendationservice

    Also to access the web frontend, when I run the command kubectl get service frontend-external, it is showing like this.

    Can you please suggest why the 3 services are not running and why the frontend-external service is not returning external ip please. Tnx

    image

    opened by sayom88 25
  • feat: Implement Terraform code to automate Online Boutique GKE quickstart

    feat: Implement Terraform code to automate Online Boutique GKE quickstart

    This Pull Request introduces a new Terraform module that automates Online Boutique's GKE quickstart process.

    Background

    Online Boutique (microservices-demo) is a sample web application that simulates a web-based e-commerce application for users to browse items, add them to cart, and purchase them. The sample application demonstrates using an 11-tier microservices application deployed using Kubernetes/GKE.

    Currently, the microservices-demo repo contains instructions in the Quickstart (GKE) section on how to deploy the sample application on your own GCP project. The process requires many intermediate steps with varying processing time in between each step. The usage of an incoming Terraform module will simplify all of the Quickstart steps into one Terraform command and combine the individual processing times into one waiting period for the user.

    Summary of Changes

    1. New File: main.tf This file contains the main Terraform script instructions. When running the script, the script will be executing the following actions:

    1. Enable the required Google APIs outlined in "Quickstart (GKE)"
    2. Create an autopilot GKE cluster and point kubectl at the new cluster (get-credentials)
    3. Apply the kubernetes manifest file in release/kubernetes-manifests.yaml
    4. Wait on all the Pods to be ready

    2. New File: variables.tf This file contains variables that may need customization in future projects. These variables include "apis", "cluster name", "cluster region", "Pods namespace", and "Kubernetes manifest filepath".

    3. New File: output.tf This file contains output variables that are shown after running the Terraform script. These variables include "location of the cluster" and "name of the cluster".

    4. New File: README.md This file contains detailed instructions on how to setup, run, and destroy the Terraform script.

    Testing Procedure

    Refer to the instructions in the terraform/README.md file. This file contains instructions of setting up and using the Terraform file. Link to README: https://github.com/GoogleCloudPlatform/microservices-demo/blob/7d2517ef8f1e9cfbfd110e855bc801081988eb45/terraform/README.md

    opened by jaspermai 23
  • Kustomize variation to deploy Online Boutique apps without the `grpc-health-probe` bin

    Kustomize variation to deploy Online Boutique apps without the `grpc-health-probe` bin

    • Support native gRPC Healthcheck for livenessProbe and readinessProbe since GKE 1.24.
    • Partially implementing #662 (following up on first experimental tests documented here #849)
      • "Partially" because it won't be yet by default, not all GKE versions support that, just 1.24+. So it will be an optional Kustomize variation that users would be able to leverage if they want.
    • Size of the images got -3.9MB (virtual) / -10.9MB (on disk)
    • loadgenerator and frontend are not impacted by that (not gRPC apis/apps)
    • Adding 3 more Kustomize variations related to this one:
      • container-images-registry (not needed, but similar to the one below)
      • container-images-tag (not needed, but similar to the one below)
      • container-images-tag-suffix (needed for this new Kustomize variation)
    • Review the setup of tokens to avoid issues with Kustomize and bash session
    • Update the release process (more precisely make-docker-images.sh) in order to build a second image next to the default/official one by adding a prefix -native-grpc-probes.
    • These -native-grpc-probes images are not built at every PR nor merge into main, they are only built during the release process.
    • Added those new Kustomize variations in the Smoke test in CI, with some sed examples too

    Tests realized on a GKE 1.24 now available on rapid channel:

    gcloud container clusters create tests \
        --zone=us-central1-b \
        --machine-type=e2-standard-2 \
        --num-nodes=4 \
        --release-channel=rapid
    

    Build the containers for all the Online Boutique apps with the -native-grpc-probes image tag, you can leverage the script here.

    Then, deploy this like:

    cd kustomize/
    SUFFIX=-native-grpc-probes
    sed -i "s/CONTAINER_IMAGES_TAG_SUFFIX/$SUFFIX/g" components/container-images-tag-suffix/kustomization.yaml
    kustomize edit add component components/container-images-tag-suffix
    kustomize edit add component components/native-grpc-health-check
    kubectl kustomize . | sed "s/$SUFFIX$SUFFIX/$SUFFIX/g" | kubectl apply -f
    

    Note: for this variation, kubectl apply -k . won't work because there is a known issue currently in Kustomize where the tagSuffix is duplicated. The command lines above are a temporary workaround.

    We won't make this the default configuration yet, GKE 1.24 is the default version for the rapid channel. We need to make the choice in the future when this configuration will be the default ones. GKE just got 1.24 in rapid channel in 2022-08-12 and is planned to have its end of life on 2023-09-30. So it's 1 year from now. Will it be a good time then, after 2023-09-30?

    opened by mathieu-benoit 21
  • cartservice crashes on start when Istio 1.1 proxy injection is enabled

    cartservice crashes on start when Istio 1.1 proxy injection is enabled

    Using Istio 1.1.0-rc.0 from dockerhub. When proxy injection is enabled, cartservice fails to start.

    Here is what I see in the cartservice logs, though I'm not sure if that's the real problem or some red herring:

     textPayload:  "StackExchange.Redis.RedisConnectionException: It was not possible to connect to the redis server(s); to create a disconnected multiplexer, disable AbortOnConnectFail. ProtocolFailure on PING
       at StackExchange.Redis.ConnectionMultiplexer.ConnectImpl(Func`1 multiplexerFactory, TextWriter log) in c:\code\StackExchange.Redis\StackExchange.Redis\StackExchange\Redis\ConnectionMultiplexer.cs:line 890
       at cartservice.cartstore.RedisCartStore.EnsureRedisConnected() in /app/cartstore/RedisCartStore.cs:line 79
       at cartservice.cartstore.RedisCartStore.InitializeAsync() in /app/cartstore/RedisCartStore.cs:line 60
       at cartservice.Program.<>c__DisplayClass4_0.<<StartServer>b__0>d.MoveNext() in /app/Program.cs:line 54
    
    area/istio 
    opened by davidebbo 21
  • Export traces to Jaeger if installed

    Export traces to Jaeger if installed

    (This came up in #108 and I believe some work is already happening.)

    I'd love to have the demo app export traces to a local Jaeger installation ideally with minimal to no config changes.

    I'm not sure how we can detect a jaeger installation uniformly and register it as an exporter (that works alongside with Stackdriver exporter) in multiple languages.

    cc: @rghetia

    area/monitoring what/improvement 
    opened by ahmetb 21
  • cleanup: add region tags to yaml and sh

    cleanup: add region tags to yaml and sh

    Background

    Adding region tags to our yaml and shell files. Allows for our team to leverage internal tools!

    Fixes

    n/a

    Change Summary

    Added region tags. Snippet-bot will add a comment below of the tags added (and where). Tags are gke_... and servicemesh_...

    Additional Notes

    Since there were no existing region tags in this repo, we don't have to worry about any internal references to tags (ie no existing code widgets!) Also please note that this update will take a couple hours or more to reflect internally.

    Testing Procedure

    n/a

    Related PRs or Issues

    n/a

    opened by xtineskim 20
  • Online Boutique's Helm chart

    Online Boutique's Helm chart

    Online Boutique's Helm chart - https://github.com/GoogleCloudPlatform/microservices-demo/issues/1319.

    You can render the hydrated/generated manifests of this Helm chart from its associated folder:

    cd helm-chart
    helm template .
    

    Or via the manually pushed remote Helm chart:

    helm template oci://us-docker.pkg.dev/online-boutique-ci/charts/onlineboutique
    

    You can do the same with both for installing it in your cluster:

    cd helm-chart
    helm upgrade onlineboutique . --install
    

    Or:

    helm upgrade onlineboutique oci://us-docker.pkg.dev/online-boutique-ci/charts/onlineboutique --install
    

    Action items:

    • [X] Create the Helm chart Online Boutique
    • [X] Manually push the Helm chart in Artifact Registry
      • cd helm-chart && helm package . && helm push onlineboutique-0.4.2.tgz oci://us-docker.pkg.dev/online-boutique-ci/charts
    • [X] Tests
    • [x] Reviews
    • [x] Script to push the Helm chart in GAR in the release process
    opened by mathieu-benoit 18
  • Docs: Update Online Boutique README files with Kustomize Changes

    Docs: Update Online Boutique README files with Kustomize Changes

    Background

    Recently there have been several PRs that have been merged into the Online Boutique sample app repository that introduce Terraform automated deployment, Kustomize, and other deployment variations.

    PR Links:

    • https://github.com/GoogleCloudPlatform/microservices-demo/pull/918
    • https://github.com/GoogleCloudPlatform/microservices-demo/pull/937
    • https://github.com/GoogleCloudPlatform/microservices-demo/pull/949

    With these new deployment options, there is a need for Online Boutique documentation to reflect the updated changes. This PR introduces the necessary documentation updates to relevant markdown files in the repo.

    Change Summary

    • README.md - Included an Automated Deployment section pointing users to terraform/README.md. These instructions introduce the Terraform (one-click) deployment for Online Boutique's vanilla Quickstart (GKE) process.
    • kustomize/README.md - Updated with general Kustomize information and deployment information. Included general deployment instructions and additional instructions required for Memorystore.
    • docs/cymbal-shops.md & docs/gcp-instrumentation.md - Included an Automated Deployment section pointing users to kustomize/README.md.
    • docs/memorystore.md - Updated docs to point users at the Automated Deployment steps in kustomize/README.md. Edited the existing manual deployment steps to an optional manual infrastructure steps section.
    opened by jaspermai 18
  • Add Cloud Armor in front of this deployed demo

    Add Cloud Armor in front of this deployed demo

    Document the way to setup Cloud Armor in front of the public endpoint of this demo onlineboutique.dev.

    What's in this PR:

    • Document the steps do deploy the release-cluster part with more automation with gcloud
    • Add BackendConfig to bind Cloud Armor to the Ingress
    • Add FrontendConfig to bind the SSL Policy and redirect http to https
    • Update Ingress's apiVersion from apiVersion: networking.k8s.io/v1beta1 to networking.k8s.io/v1 to avoid future breaking change because deprecation with GKE 1.22
    • Remove the frontend-nodeport.yaml because it's not anymore a requirement, the default ClusterIP one is sufficient/working now.
    • To avoid to have another Public IP, do a kubectl delete svc frontend-external in the process too
    • Not related, fix a typo in the Memorystore (redis) doc.

    Next steps:

    • [X] Test on a personal GKE cluster (see comment below with details information about the tests)
    • [x] Validate with the team about their thoughts and feedback
    • [x] If validated, apply this to onlineboutique.dev
    • [ ] Eventually, port this to BoA too, to be consistent
    opened by mathieu-benoit 18
  • Update UI for the Cymbal Shops Rebrand

    Update UI for the Cymbal Shops Rebrand

    See the "What needs to be done?" section of #574.

    Change Summary

    • This pull-request updates all pages of "Online Boutique".
    • This pull-request applies UI changes from the new Figma prototypes (only accessible to Googlers with a Figma subscription) for the new "Cymbal Shops" redesign.

    Additional Notes

    • Changes related to the Cymbal Shops logo and the product list update will happen in a different pull-request.
    • This designs from this pull-request will be reviewed by the Google Cloud Demos and Experiments team designers.
    cla: yes 
    opened by NimJay 18
  • chore(deps): update terraform google to v4.47.0

    chore(deps): update terraform google to v4.47.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | google (source) | required_provider | minor | 4.46.0 -> 4.47.0 |


    Release Notes

    hashicorp/terraform-provider-google

    v4.47.0

    Compare Source

    NOTES:

    • sql: fixed an issue where google_sql_database was abandoned by default as of version 4.45.0. Users who have upgraded to 4.45.0 or 4.46.0 will see a diff when running their next terraform apply after upgrading this version, indicating the deletion_policy field's value has changed from "ABANDON" to "DELETE". This will create a no-op call against the API, but can otherwise be safely applied. (#​13226)

    FEATURES:

    • New Resource: google_alloydb_backup (#​13202)
    • New Resource: google_filestore_backup (#​13209)

    IMPROVEMENTS:

    • bigtable: added deletion_protection field to google_bigtable_table (#​13232)
    • compute: made google_compute_subnetwork.ipv6_access_type field updatable in-place (#​13211)
    • container: added auto_provisioning_defaults.cluster_autoscaling.upgrade_settings in google_container_cluster (#​13199)
    • container: added gateway_api_config block to google_container_cluster resource for supporting the gke gateway api controller (#​13233)
    • container: promoted gke_backup_agent_config in google_container_cluster to GA (#​13223)
    • container: promoted min_cpu_platform in google_container_cluster to GA (#​13199)
    • datacatalog: added update support for fields in google_data_catalog_tag_template (#​13216)
    • iam: Added plan-time validation for IAM members (#​13203)
    • logging: added bucket_name field to google_logging_metric (#​13210)
    • logging: made metric_descriptor field optional for google_logging_metric (#​13225)

    BUG FIXES:

    • composer: fixed a crash when updating ip_allocation_policy of google_composer_environment (#​13188)
    • sql: fixed an issue where google_sql_database was abandoned by default as of version 4.45.0. Users who have upgraded to 4.45.0 or 4.46.0 will see a diff when running their next terraform apply after upgrading this version, indicating the deletion_policy field's value has changed from "ABANDON" to "DELETE". This will create a no-op call against the API, but can otherwise be safely applied. (#​13226)

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies 
    opened by renovate-bot 0
  • Clarify meaning of

    Clarify meaning of "Googler"

    Background

    • See https://github.com/GoogleCloudPlatform/microservices-demo/issues/1437.
      • A non-Googler was wondering why the link go/microservices-demo wasn't working for them.
    • We should clarify what "Googler" means (for non-Googlers).

    Fixes

    https://github.com/GoogleCloudPlatform/microservices-demo/issues/1437

    Change Summary

    • Clarify that "Googler" means "Googler employee".
    opened by NimJay 0
  • chore(deps): update dependency grpc.aspnetcore to v2.51.0

    chore(deps): update dependency grpc.aspnetcore to v2.51.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | Grpc.AspNetCore | nuget | minor | 2.50.0 -> 2.51.0 |


    Release Notes

    grpc/grpc-dotnet

    v2.51.0

    What's Changed

    Full Changelog: https://github.com/grpc/grpc-dotnet/compare/v2.51.0-pre1...v2.51.0


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies lang: dotnet 
    opened by renovate-bot 0
  • "Error: json: unknown field \"components\"\n"

    Describe the bug

    Get errors when run skaffold run, follows this document https://github.com/GoogleCloudPlatform/microservices-demo/blob/main/docs/development-guide.md

    To Reproduce

    do exactly the same as the document, using kind.

    Logs

    Starting test...
    running [kubectl --context  kustomize /home/ubuntu/microservices-demo/kubernetes-manifests]
     - stdout: ""
     - stderr: "Error: json: unknown field \"components\"\n"
     - cause: exit status 1
    
    

    Screenshots

    image

    Environment

    OS: Ubuntu 20.04 Kubernetes distribution, version: kind v0.17.0 go1.19.2 linux/amd64

    opened by phamquiluan 0
  • Unable to build adservice

    Unable to build adservice

    Describe the bug

    build [adservice] failed: exit status 1. Docker build ran into internal error. Please retry.

    To Reproduce

    Logs

    Generating tags...

    • productcatalogservice -> productcatalogservice:v0.5.0-30-gb2ef53f
    • recommendationservice -> recommendationservice:v0.5.0-30-gb2ef53f
    • shippingservice -> shippingservice:v0.5.0-30-gb2ef53f
    • checkoutservice -> checkoutservice:v0.5.0-30-gb2ef53f
    • paymentservice -> paymentservice:v0.5.0-30-gb2ef53f
    • currencyservice -> currencyservice:v0.5.0-30-gb2ef53f
    • cartservice -> cartservice:v0.5.0-30-gb2ef53f
    • frontend -> frontend:v0.5.0-30-gb2ef53f
    • adservice -> adservice:v0.5.0-30-gb2ef53f
    • loadgenerator -> loadgenerator:v0.5.0-30-gb2ef53f Checking cache...
    • emailservice: Not found. Building
    • productcatalogservice: Not found. Building
    • recommendationservice: Not found. Building
    • shippingservice: Found Locally
    • checkoutservice: Found Locally
    • paymentservice: Found Locally
    • currencyservice: Found Locally
    • cartservice: Found Locally
    • frontend: Found Locally
    • adservice: Not found. Building
    • loadgenerator: Found Locally Starting build... Found [minikube] context, using local docker daemon. Building [adservice]... Target platforms: [linux/amd64] #1 [internal] load build definition from Dockerfile #1 sha256:4fd7c5b169637ade6dc46fa79f5ebe497faea8466f82e301c0fc5d1799fe1763 #1 transferring dockerfile: 38B done #1 DONE 0.0s

    #2 [internal] load .dockerignore #2 sha256:3a3376a110bfc911c611e7778255bed1a6fcc5f12331b0f88bd3f8a17922905e #2 transferring context: 2B done #2 DONE 0.0s

    #4 [internal] load metadata for docker.io/library/eclipse-temurin:19@sha256:17e3d3b61ca4a7606490f596feb77f69980939fecacf91a1f13ea7b17147058f #4 sha256:fa4367848242f6486a2e5650a6e73e7b59134bc9cb3dc1bc2d5c9165b8260a0c #4 DONE 0.0s

    #3 [internal] load metadata for docker.io/library/eclipse-temurin:19.0.1_10-jre-alpine@sha256:1aa167ab4f1498130e04bed5d6a83fed23c1fd8e3df8589723bc876770dd6a3a #3 sha256:095a08a5e87c0f08ca7fe08671a1bd8b85fa3840a51991c36774312eb5e5a0c7 #3 DONE 0.0s

    #9 [builder 1/9] FROM docker.io/library/eclipse-temurin:19@sha256:17e3d3b61ca4a7606490f596feb77f69980939fecacf91a1f13ea7b17147058f #9 sha256:e6598a80b4806e6f96c6639d605cf4c6eca4174e9d77b4bae443fffb1f2dcc2c #9 DONE 0.0s

    #11 [internal] load build context #11 sha256:14ea7f78c196e3fc2a5c4cafe5ae47a5c9c8babae792578ef62a0fb5a60e3aaf #11 transferring context: 840B done #11 DONE 0.0s

    #13 [builder 4/9] COPY gradle gradle #13 sha256:fdaeb43ef35a139a2ecd1cead76d33dfdf08ec928d056377bb6d0e4fa7ba5adc #13 CACHED

    #10 [builder 2/9] WORKDIR /app #10 sha256:c8376895fb2b0a3b0283686ae8db694693504e2b0084b35d3dad35064057b43b #10 CACHED

    #12 [builder 3/9] COPY [build.gradle, gradlew, ./] #12 sha256:83c710fc667545608bfc816075122245e3b257bcc1277345bb9b3282cfe1fefe #12 CACHED

    #14 [builder 5/9] RUN chmod +x gradlew #14 sha256:1a500f6f159b665ab926871cb66d0e20677a0a5f0b055537bcd781f6c6395e61 #14 CACHED

    #5 [without-grpc-health-probe-bin 1/5] FROM docker.io/library/eclipse-temurin:19.0.1_10-jre-alpine@sha256:1aa167ab4f1498130e04bed5d6a83fed23c1fd8e3df8589723bc876770dd6a 3a #5 sha256:3ec4fd675030cb4080679827d76012c9836cfa8e143f949ed6cf49b3d748d907 #5 resolve docker.io/library/eclipse-temurin:19.0.1_10-jre-alpine@sha256:1aa167ab4f1498130e04bed5d6a83fed23c1fd8e3df8589723bc876770dd6a3a done #5 sha256:bfba53c59e931f5d57c41ba291b90b1ab7e3034d4df5a30ba2ff56f63583beef 0B / 161B 0.2s #5 sha256:1aa167ab4f1498130e04bed5d6a83fed23c1fd8e3df8589723bc876770dd6a3a 1.16kB / 1.16kB done #5 sha256:0fdafb034be2a2cb5ed98aa1b8116b05184efb869e1d7026bb395dc7f7be8f50 4.22kB / 4.22kB done #5 sha256:d8e5acd5897d762b9a83758d4ceae374df7b8b0367a48cc14b8a00e33998b3bf 0B / 12.02MB 0.2s #5 sha256:b231e5a3c8c25582f722e10270be76c230ecdb668b26782fe0b4cd29037021c6 0B / 49.14MB 0.2s #5 CANCELED

    #15 [builder 6/9] RUN ./gradlew downloadRepos #15 sha256:3997494df4830672a9af711404a7be3af2e05bafbda5e4154acd7d8958e0c28e #15 0.366 /bin/sh: 1: ./gradlew: not found #15 ERROR: executor failed running [/bin/sh -c ./gradlew downloadRepos]: exit code: 127

    [builder 6/9] RUN ./gradlew downloadRepos:


    executor failed running [/bin/sh -c ./gradlew downloadRepos]: exit code: 127 Building [productcatalogservice]... Target platforms: [linux/amd64] Build [productcatalogservice] was canceled Building [emailservice]... Target platforms: [linux/amd64] Build [emailservice] was canceled Building [recommendationservice]... Target platforms: [linux/amd64] Build [recommendationservice] was canceled build [adservice] failed: exit status 1. Docker build ran into internal error. Please retry. If this keeps happening, please open an issue..

    Screenshots

    Environment

    • OS: Windows 10 (Run on WSL 2)
    • Kubernetes distribution, version: minikube version: v1.28.0
    • Any relevant tool version: Docker Desktop v4.15.0

    Additional context

    Exposure

    type: bug priority: p2 
    opened by HarikiRito 0
Releases(v0.5.0)
  • v0.5.0(Dec 13, 2022)

    Online Boutique v0.5.0 is out. We’ve bumped the minor version (from v0.4.2 to v0.5.0) because Online Boutique now supports Online Boutique's default and advanced deployments via Helm.

    Notable Changes

    What's Changed

    • Online Boutique's Helm chart by @mathieu-benoit in #1353
    • More Online Boutique variations / Kustomize components by @mathieu-benoit in #1346
    • IPv6 support by @mathieu-benoit in #1340
    • make recommendation service optional by @katzio in #1332
    • Update guidance for contributors by @NimJay in #1301
    • Python 3.10 by @mathieu-benoit in #1316
    • Remove Google Cloud Debugger by @NimJay in #1281
    • Use digest instead of tag for container base images by @mathieu-benoit in #1312
    • Clarifyproduct-requirements.md by @NimJay in #1309
    • Remove latest tag by @vaishnavi-ramanujapuram in #1394
    • Vary Cymbal buttons' style based on state by @NimJay in #1304
    • Use --pull flag when building images for releases by @NimJay in #1293
    • Remove redundant COLLECTOR_SERVICE_ADDR by @NimJay in #1294
    • Change colour of logo from Cyan to Maroon by @NimJay in #1303
    • Renovate for container images in Kubernetes manifests by @mathieu-benoit in #1310
    • Renovate: update VERSION in Dockerfile vars by @mathieu-benoit in #1311
    • fix: Deploystack test enable test proejcts by @tpryan in #1367
    • adservice - Java 19 by @mathieu-benoit in #1132
    • Update GitHub action setup-dotnet@v3 in CIs by @mathieu-benoit in #1120
    • Update renovate.json for Kubernetes manifests (ignorePaths) by @mathieu-benoit in #1321
    • Update renovate.json - test ignorePaths for pinDigests by @mathieu-benoit in #1322
    • Fix Helm chart with advanced scenarios by @mathieu-benoit in #1385
    • loadgenerator - Python 3.11 by @mathieu-benoit in #1320
    • Update renovate.json - to avoid too much digests in manifests by @mathieu-benoit in #1325
    • Specify name of kustomize-build-ci job by @NimJay in #1338
    • Remove kustomization Kind in release/kubernetes-manifests.yaml in main branch by @mathieu-benoit in #1349
    • More docs by @mathieu-benoit in #1393
    • Use strings for severity of currencyservice log output by @NimJay in #1344
    • many dependency updates via @renovate-bot. Examples: #1391,#1307, #1354 https://github.com/GoogleCloudPlatform/microservices-demo/pull/1308

    New Contributors

    • @katzio made their first contribution in #1332
    • @vaishnavi-ramanujapuram made their first contribution in #1394

    Full Changelog: https://github.com/GoogleCloudPlatform/microservices-demo/compare/v0.4.2...v0.5.0

    Source code(tar.gz)
    Source code(zip)
  • v0.4.2(Dec 2, 2022)

    Highlights

    • 7 services now support OpenTelemetry-based distributed tracing. Thank you, @arbrown, for implementing this in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1167 and https://github.com/GoogleCloudPlatform/microservices-demo/pull/1180!
    • You can now use DeployStack to automatically deploy Online Boutique to a new Google Kubernetes Engine cluster (via Google Cloud Shell), on a Google Cloud project you specify. To try it out, click on the "Open in Google Cloud Shell" button inside the root README.md. Thank you, @tpryan, for implementing this in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1142!
    • Online Boutique now uses Skaffold 2.0. This only impacts users that run Online Boutique in development mode. See note about upgrading to Skaffold 2.0 on your local machine here. Thank you, @mmcloud, for addressing this!
    • As usual, this release comes with many dependency updates — some addressing severe CVEs.

    What's Changed

    • feat!: Add distributed tracing to Online Boutique by @arbrown in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1180
    • Add DeployStack integration by @tpryan in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1142
    • feat!: Add OpenTelemetry Collector by @arbrown in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1167
    • fix: Upgrade to skaffold/v3 by @mmcloud in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1227
    • Use kustomize for skaffold local development by @arbrown in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1232
    • Fix Enabling Workload Identity Link by @feitnomore in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1201
    • adservice - eclipse-temurin:18.0.2.1_1-jre-alpine by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1204
    • Fix various breaking changes in docs/kustomize by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1202
    • Force git pull in the release process by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1205
    • Simplify the grpc health probes kustomize overlay by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1208
    • loadgenerator - fix conflict between gevent and greenlet by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1223
    • feat: Add skaffold profile for NetworkPolicy Kustomize component by @mmcloud in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1228
    • cartservice - .NET 7 GA by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1257
    • granular right on spanner db instead of instance by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1262
    • Fix Renovate by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1280
    • fix: Correct minikube default CNI by @mmcloud in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1275
    • Remove requests and bump node to v 19 in currencyservice by @xtineskim in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1283
    • Fix skaffold network-policies Profile by @NimJay in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1247 https://github.com/GoogleCloudPlatform/microservices-demo/pull/1258
    • Bump the node version in paymentservice by @xtineskim in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1285
    • Use DeployStack in main /README.md by @NimJay in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1264
    • Update DeployStack to use main branch by @NimJay in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1225

    New Contributors

    • @feitnomore made their first contribution in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1201
    • @tpryan made their first contribution in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1142
    • @mmcloud made their first contribution in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1227

    Full Changelog: https://github.com/GoogleCloudPlatform/microservices-demo/compare/v0.4.1...v0.4.2

    Thank you to everyone that contributed!

    Source code(tar.gz)
    Source code(zip)
  • v0.4.1(Oct 21, 2022)

    Woo! Online Boutique v0.4.1 is out!

    Highlights

    What's Changed

    • cartservice - Spanner as database option by @mikrovvelle in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1109
    • Add Kustomize overlay/variation for Spanner by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1152
    • Kustomize variation to deploy Online Boutique apps without the grpc-health-probe bin by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1102
    • GRPC_HEALTH_PROBE_VERSION=v0.4.14 by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1184
    • a bunch of dependency updates by @renovate-bot (e.g., in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1138, https://github.com/GoogleCloudPlatform/microservices-demo/pull/1137, https://github.com/GoogleCloudPlatform/microservices-demo/pull/1139, https://github.com/GoogleCloudPlatform/microservices-demo/pull/1140, and plenty more)
    • redis-cart's port name update from tls-redis --> tcp-redis by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1143
    • Use /kustomize/ in /terraform/ by @NimJay in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1145
    • Upgrade containers base images by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1168
    • Fixing doc for Spanner Kustomize overlay by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1178
    • chore(deps): update dependency grpcio to v1.50.0 by @renovate-bot in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1183
    • adservice - fix jacksonVersion conflict with 2.13.4.2 by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1187
    • chore(deps): refresh pip-compile outputs by @renovate-bot in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1133
    • Add Cymbal branding to error page by @NimJay in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1186

    Full Changelog: https://github.com/GoogleCloudPlatform/microservices-demo/compare/v0.4.0...v0.4.1

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Oct 3, 2022)

    Online Boutique 0.4.0 is out! 🎉

    Highlights

    We've gone from 0.3.9 to 0.4.0 since this new version introduces new important features:

    • New ways of deploying Online Boutique and its deployment variations — with Kustomize and with Terraform.
    • All the apps are now running as unprivileged containers by default when deployed with the default Kubernetes manifests provided (securityContext)
    • The cartservice app can now store its data in Google Cloud Spanner (optional and not by default).
    • The frontend app can be configured (optional and not by default) to have a shared user-id across sessions, very convenient to share data stored in the shopping cart in a multi-cluster mode when using one shared database model (in-cluster or using an external database like Memorystore or Spanner)
    • The cartservice app is now in .NET 7
    • The recommendation and emailservice apps are now in Python 3.9
    • The adservice app is now packaged in an Eclipse temurin container instead of openjdk
    • OpenCensus/Jaeger have been removed from Online Boutique apps in order to anticipate the coming OpenTelemetry implementation, stay tuned!

    What's Changed

    • Feat: Integrate Kustomize and Components with Online Boutique by @jaspermai in https://github.com/GoogleCloudPlatform/microservices-demo/pull/937
    • Feat: Implement Memorystore (Redis) Deployment Variation with Online Boutique by @jaspermai in https://github.com/GoogleCloudPlatform/microservices-demo/pull/949
    • Fix: Added conditional requirement for all resources in memorystore.tf by @jaspermai in https://github.com/GoogleCloudPlatform/microservices-demo/pull/959
    • Docs: Update Online Boutique README files with Kustomize Changes by @jaspermai in https://github.com/GoogleCloudPlatform/microservices-demo/pull/952
    • Add a small Terraform CI by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1096
    • Kustomize build CI + Kustomize docs + ServiceAccounts variation by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1097
    • chore: Remove OpenCensus by @arbrown in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1088
    • Remove review requested by @ckim328 in https://github.com/GoogleCloudPlatform/microservices-demo/pull/940
    • Remove ci check by @ckim328 in https://github.com/GoogleCloudPlatform/microservices-demo/pull/941
    • cartservice - dotnet 6.0.8 by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/948
    • Grpc.AspNetCore - 2.48.0 by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/964
    • Remove pyyaml==6.0 as Direct Dependency by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/985
    • GRPC_HEALTH_PROBE_VERSION=v0.4.12 by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/983
    • cartservice - .NET 7 by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1008
    • Unpin the v4 version for uuid by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1015
    • Renovate - postUpdateOptions.gomodTidy by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1016
    • integrate new gradle wrapper 7.5.1 by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1019
    • Allow to have a unique user-id across sessions by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1023
    • cartservice - explicit non-root setup in Dockerfile by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1032
    • loadgenerator - securityContext for initContainer by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1046
    • adressing Remove semistandard #712 by @smeet07 in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1051
    • Update paymentservice uuid usage to v9 by @NimJay in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1071
    • [Docs] Removes Cleanup section from Kustomize README by @ahrarmonsur in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1077
    • Replace use of kustomize with kubectl by @NimJay in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1080
    • adservice - openjdk:18-slim --> openjdk:18-alpine by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1101
    • cartservice - Grpc.AspNetCore 2.49.0 by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1100
    • Port NetworkPolicy flavour to Kustomize by @NimJay in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1081
    • Renovate - npmDedupe + add lang: nodejs label by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1119
    • GRPC_HEALTH_PROBE_VERSION=v0.4.13 by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1122
    • adservice - eclipse-temurin:18-jre-alpine by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1124
    • Generate /kustomize/base/ YAMLs inside release automation by @NimJay in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1134
    • many dependency updates via @renovate-bot such as https://github.com/GoogleCloudPlatform/microservices-demo/pull/1004, https://github.com/GoogleCloudPlatform/microservices-demo/pull/1003, https://github.com/GoogleCloudPlatform/microservices-demo/pull/1006, https://github.com/GoogleCloudPlatform/microservices-demo/pull/1002, etc.
    • a few dependency updates via @dependabot in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1067, https://github.com/GoogleCloudPlatform/microservices-demo/pull/1066, https://github.com/GoogleCloudPlatform/microservices-demo/pull/1118, https://github.com/GoogleCloudPlatform/microservices-demo/pull/1129

    New Contributors

    • @smeet07 made their first contribution in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1051
    • @arbrown made their first contribution in https://github.com/GoogleCloudPlatform/microservices-demo/pull/1088

    Full Changelog: https://github.com/GoogleCloudPlatform/microservices-demo/compare/v0.3.9...v0.4.0

    Source code(tar.gz)
    Source code(zip)
  • v0.3.9(Aug 5, 2022)

    What's Changed

    • Add Terraform to automate Online Boutique deployment by @jaspermai in https://github.com/GoogleCloudPlatform/microservices-demo/pull/918
    • redis-cart service port name by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/846
    • Set up cartservice to run as unprivileged container by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/848
    • Harden containers with securityContext by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/887
    • Bump Python dependencies by @bourgeoisor in https://github.com/GoogleCloudPlatform/microservices-demo/pull/906
    • Update dotnet 6.0.6 for cartservice by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/881
    • Clarify port-forwarding step for local dev by @bourgeoisor in https://github.com/GoogleCloudPlatform/microservices-demo/pull/901
    • Prevent GH Actions on draft PRs by @ckim328 in https://github.com/GoogleCloudPlatform/microservices-demo/pull/926
    • Clean up Cloud Shell tutorial by @bourgeoisor in https://github.com/GoogleCloudPlatform/microservices-demo/pull/929
    • Fix minor typo by @jackdewan in https://github.com/GoogleCloudPlatform/microservices-demo/pull/933
    • Dozens of dependency updates by @renovate-bot in https://github.com/GoogleCloudPlatform/microservices-demo/pull/843, https://github.com/GoogleCloudPlatform/microservices-demo/pull/806, https://github.com/GoogleCloudPlatform/microservices-demo/pull/841, https://github.com/GoogleCloudPlatform/microservices-demo/pull/839, https://github.com/GoogleCloudPlatform/microservices-demo/pull/842, https://github.com/GoogleCloudPlatform/microservices-demo/pull/828, https://github.com/GoogleCloudPlatform/microservices-demo/pull/815, https://github.com/GoogleCloudPlatform/microservices-demo/pull/826, etc.

    New Contributors 🎉

    • @jaspermai made their first contribution in https://github.com/GoogleCloudPlatform/microservices-demo/pull/918
    • @jackdewan made their first contribution in https://github.com/GoogleCloudPlatform/microservices-demo/pull/933

    Full Changelog: https://github.com/GoogleCloudPlatform/microservices-demo/compare/v0.3.8...v0.3.9

    Source code(tar.gz)
    Source code(zip)
  • v0.3.8(Jun 3, 2022)

    What changed?

    • Improved cartservice’s Redis interaction by utilizing IDistributedCache (#838)
    • Fixed documentation (#821, #829, #835)
    • Updated various dependencies (#819, #823, #824, #830)
    • Bumped Renovate's prConcurrentLimit to 8 (#825)

    Full changelog: https://github.com/GoogleCloudPlatform/microservices-demo/compare/v0.3.7...v0.3.8

    Source code(tar.gz)
    Source code(zip)
  • v0.3.7(May 12, 2022)

    What changed?

    • Removed the false “free shipping” banner (#800)
    • Bumped cartservice to dontnet 6.0.5 (#817, #715, #803)
    • Upgraded Golang microservices to Go 1.18 (#790)
    • Added some region tags (#684)
    • Added NetworkPolicy samples (#778)
    • Fixed adservice’s gRPC stats collection (#706)
    • Configured and fixes RenovateBot (#700, #764, #772, #773, #774, #780)
    • Upgraded many, many dependencies (#707, #708, #710, #709, #711, #714, #717, #723, #726, #733, #735, #736, #748, #749, #743, #746, #755, #744, #745, #747, #760, #751, #784, #803, and many more…)
    • Tidied up some automation/continuous-integration (#718)
    • Updated docs about GCP instrumentation (#739)
    • Tweaked release bash scripts (#799)

    Full changelog: https://github.com/GoogleCloudPlatform/microservices-demo/compare/v0.3.6...v0.3.7

    Source code(tar.gz)
    Source code(zip)
  • v0.3.6(Feb 2, 2022)

    What changed?

    • Fixed "Deployment Details" Bug in non-GCP deployments #699
    • Added Cloud Armor to onlineboutique.dev #698 #689
    • Addressed Dependabot alerts for urllib3 in 3 services #695
    • Changed shipping fee to flat rate #694
    • Renamed default branch to main #686

    Full changelog: https://github.com/GoogleCloudPlatform/microservices-demo/compare/v0.3.5...v0.3.6

    Source code(tar.gz)
    Source code(zip)
  • v0.3.5(Jan 10, 2022)

    What changed?

    • Updated Log4j to 2.17.1 #679
    • Turned off GCP integration by default in #665
    • Migrated to Golang 1.17.5 in #670
    • Updated cartservice to .NET 6.0.1 in #669
    • Added Log4j advisory in README.md in #671
    • Added snippet-bot #680
    • Added SECURITY.md in #678
    • Added CODE_OF_CONDUCT.md in #677

    Full changelog: https://github.com/GoogleCloudPlatform/microservices-demo/compare/v0.3.4...v0.3.5

    Source code(tar.gz)
    Source code(zip)
  • v0.3.4(Dec 18, 2021)

  • v0.3.3(Dec 11, 2021)

    What's changed?

    • Patches a log4j security vulernability by upgrading adservice's log4j version to 2.15.0 - issue - https://github.com/GoogleCloudPlatform/microservices-demo/pull/656
    • Upgrades .NET Grpc version https://github.com/GoogleCloudPlatform/microservices-demo/pull/651
    Source code(tar.gz)
    Source code(zip)
  • v0.3.2(Dec 3, 2021)

    What's Changed

    • Memorystore, updated Redis to 6.x by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/618
    • Updated cartservice .NET to v6 by @mathieu-benoit in https://github.com/GoogleCloudPlatform/microservices-demo/pull/629
    • Updated the dotnet version in the main branch CI workflow by @Shabirmean in https://github.com/GoogleCloudPlatform/microservices-demo/pull/633
    • Updated issue templates by @ckim328 in https://github.com/GoogleCloudPlatform/microservices-demo/pull/627
    • Updated node from 12 to 16, grpc -> grpc-js by @askmeegs in https://github.com/GoogleCloudPlatform/microservices-demo/pull/630
    • Added cluster, pod and zonal details to the page footer by @Shabirmean in https://github.com/GoogleCloudPlatform/microservices-demo/pull/636

    Full Changelog: https://github.com/GoogleCloudPlatform/microservices-demo/compare/v0.3.1...v0.3.2

    Source code(tar.gz)
    Source code(zip)
  • v0.3.1(Nov 15, 2021)

    Big changes:

    • Fixed developer-blocking bug in Node.js services (#616).

    Small changes:

    • Documented release process.
    • Showcased skaffold's "Modules" feature.
    • .NET package upgrades.
    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Sep 29, 2021)

    Big changes:

    • Cymbal Branding: The UI and list of products now fit the branding of "Cymbal Shops", a fictitious company created by Google to be used in demo apps. A "CYMBAL_BRANDING" environment variable allows developers to use the "Cymbal Shops" logo and wording.

    Small changes:

    Source code(tar.gz)
    Source code(zip)
  • v0.2.4(Jul 15, 2021)

  • v0.2.3(May 18, 2021)

    • cartservice upgraded to dotnet 5.0.3
    • add Memorystore option for the in-cluster redis store
    • add productcatalog unit tests to Github Actions CI
    • Fix dotnet unit tests
    • Update ENV_PLATFORM env variable to auto-detect GCP
    • Dependency updates, eg. grpc
    Source code(tar.gz)
    Source code(zip)
Owner
Google Cloud Platform
Google Cloud Platform
Istio - An open platform to connect, manage, and secure microservices

Istio An open platform to connect, manage, and secure microservices. For in-dept

null 0 Jan 5, 2022
Online Boutique: a cloud-native microservices demo application

This is an application forked from the GCP Microservice demo. Online Boutique is

null 0 Jan 5, 2022
Automatic Service Mesh and RPC generation for Go micro services, it's a humble alternative to gRPC with Istio.

Mesh RPC MeshRPC provides automatic Service Mesh and RPC generation for Go micro services, it's a humble alternative to gRPC with Istio. In a nutshell

AstraNet Toolkit 69 Aug 22, 2022
goTempM is a full stack Golang microservices sample application built on top of the Micro platform.

goTempM is a full stack Golang microservices sample application built on top of the Micro platform.

null 30 Sep 24, 2022
Box is an incrementally adoptable tool for building scalable, cloud native, microservices.

Box is a tool for building scalable microservices from predefined templates. Box is currently in Beta so if you find any issues or have some ideas

null 1 Feb 3, 2022
Create production ready microservices mono repo pattern wired with Neo4j. Microservices for other languages and front end repos to be added as well in future.

Create Microservices MonoRepo in GO/Python Create a new production-ready project with backend (Golang), (Python) by running one CLI command. Focus on

GoChronicles 14 Oct 26, 2022
Elastic Stack Docker + Sample Go AppElastic Stack Docker + Sample Go App

?? Elastic Stack Docker + Sample Go App Test Elastic Stack which includes Elasticsearch, Kibana, Filebeat and Metricbeat. It comes with a very simple

Ruben Delgado 0 Jan 14, 2022
This is demo / sample / example project using microservices architecture for Online Food Delivery App.

Microservices This is demo / sample / example project using microservices architecture for Online Food Delivery App. Architecture Services menu-servic

Nurali Virani 1 Nov 21, 2022
Go-kit-microservices - Example microservices implemented with Go Kit

Go Kit Microservices Example microservices implemented with go kit, a programmin

Hao-Ming, Hsu 1 Jan 18, 2022
Dubbo2istio watches Dubbo ZooKeeper registry and synchronize all the dubbo services to Istio.

Dubbo2Istio Dubbo2istio 将 Dubbo ZooKeeper 服务注册表中的 Dubbo 服务自动同步到 Istio 服务网格中。 Aeraki 根据 Dubbo 服务信息和用户设置的路由规则生成数据面相关的配置,通过 Istio 下发给数据面 Envoy 中的 Dubbo p

Aeraki 33 Dec 1, 2022
Cloud-native and easy-to-use application management platform | 云原生且易用的应用管理平台

Website • Documentation What is NEW! August 24, 2020 ,Rainbond 5.2 Stable version is officially released View Release Rainbond Introduction Cloud nati

好雨科技 3.7k Dec 29, 2022
Todolist microservice with Istio

Todo 服务 环境依赖 docker-desktop >= 4.2.0 kubernetes >= 1.21.5 go >= 1.17 istioctl >= 1.11.4 protobuf >= 3.17.3 grpcurl >= 1.8.5 下载安装 Docker Desktop ,并启动内置

jxlwqq 3 Feb 20, 2022
Go microservices with REST, and gRPC using BFF pattern.

Go microservices with REST, and gRPC using BFF pattern. This repository contains backend services. Everything is dockerized and ready to

Oguzhan 152 Jan 4, 2023
TinyHat.Me: Microservices deployed with Kubernetes that enable users to propose hat pictures and try on hats from a user-curated database.

Click here to see the "buggy" version ?? The Scenario TinyHat.Me is an up and coming startup that provides an API to allow users to try on tiny hats v

Bit Project 5 Jun 17, 2022
gRPC to JSON proxy generator following the gRPC HTTP spec

The gRPC-Gateway is a plugin of the Google protocol buffers compiler protoc. It reads protobuf service definitions and generates a reverse-proxy server which translates a RESTful HTTP API into gRPC. This server is generated according to the google.api.http annotations in your service definitions.

gRPC Ecosystem 14.7k Jan 3, 2023
Sample full stack micro services application built using the go-Micro framework.

goTemp goTemp is a full stack Golang microservices sample application built using go-micro. The application is built as a series of services that prov

null 66 Dec 26, 2022
Example golang microservices deployed on kubernetes.

Tech Stack Golang RabbitMQ Docker K8S MongoDB Services There are two services which communicate via http(sync) and rabbitmq(async). Services opened to

Serkan 3 Sep 6, 2022
Trying to build an Ecommerce Microservice in Golang and Will try to make it Cloud Native - Learning Example extending the project of Nic Jackson

Golang Server Project Best Practices Dependency Injection :- In simple words, we want our functions and packages to receive the objects they depend on

Ujjwal Sharma 35 Nov 28, 2022
CudeX: a cloud native intelligent operation and maintenance engine that provides service measurement, index quantification

简介 CudgX是星汉未来推出的面向云原生时代的AIOps智能运维引擎,它通过各类服务的多维度、大数据量的数据收集及机器学习训练分析,对各种服务进行指标化、数字

Galaxy-Future 66 Oct 13, 2022