Giter Club home page Giter Club logo

gcp-solutions-builder's Introduction

Google Cloud Solutions Builder

A solution framework to generate a new project with built-in structure and modules to accelerate your project setup.

TL;DR

Solutions Builder is a boilerplate template for building repeatable solutions with the best practices in architecture on Google Cloud, including GKE clusters, Cloud Run, Test Automation, CI/CD, as well as development process.

This template provides built-in and ready-to-ship modules including:

  • Easy-to-deploy Terraform boilerplate modules
  • Container-based microservices, can be deployed to a Kubernetes cluster or Cloud Run.
  • Unified deployment using Skaffold.
  • Automatically generated API documentation with Swagger UI.
  • CI/CD deployment (with GitHub Actions).
  • Cloud Run templates.

Roadmap

Please see Feature Requests in the GitHub issue list.

Prerequisite

Tool Required Version Installation
Python >= 3.9
gcloud CLI Latest https://cloud.google.com/sdk/docs/install
Terraform >= v1.3.7 https://developer.hashicorp.com/terraform/downloads
Skaffold >= v2.4.0 https://skaffold.dev/docs/install/

[Optional] If you plan to deploy services on a GKE cluster, please install the following:

Tool Required Version Installation
Kustomize >= v5.0.0 https://kubectl.docs.kubernetes.io/installation/kustomize/

Installing Solutions Builder CLI

With pip:

pip install solutions-builder

With pipx:

pip install --user pipx
pipx install solutions-builder

Quick Start

This quick start steps will do the following:

  • Create a new GCP project and initialize Cloud foundation.
  • Add a RESTful API service for managing Todo list.
  • Deploy the service to Cloud Run.

Set up GCP project

export PROJECT_ID=my-solution-gcp-id

# (Optional) Create a new GCP project. You can also use an existing GCP project.
gcloud projects create $PROJECT_ID

# Set gcloud CLI to the GCP project.
gcloud config set project $PROJECT_ID

Generate a new solution folder.

sb new my-solution

This will prompt options and variables:

๐ŸŽค What is your project name? (Spaces are allowed.)
   my-solution
๐ŸŽค What is your Google Cloud project ID?
   my-solution-gcp-id
๐ŸŽค What is your Google Cloud project number?
   12345678
๐ŸŽค Which Google Cloud region?
   us-central1
๐ŸŽค Use GCS Bucket for Terraform backend?
   Yes

Go to the newly created project folder

cd my-solution
sb infra apply 1-bootstrap

Initialize Cloud infrastructure

  • Option 1: (Recommended) Log in to the jump host and run the following command(s) in the solution folder.
  • Option 2: Run the following commands in your local machine.
sb infra apply 2-foundation

Add a RESTful API service with Todo data model to this solution.

sb components add restful_service

Fill details in the prompt:

  • Component name: todo_service
  • Resource name: todo-service
  • Relative path: todo-service
  • GCP region: us-central1
  • Data model name: todo
  • Add Cloud Run to deployment methods: yes
  • Create network endpoint group (NEG) for serverless ingress: yes
  • Default deploy method? (cloudrun or gke): Cloud Run

Add an HTTP Load Balancer for Cloud Run service(s)

sb add component terraform_httplb_cloudrun
sb infra apply 3-httplb-cloudrun

Build and deploy

sb deploy

CLI Usage

For more information on how to use the CLI, please refer to the CLI_USAGE.md.

Additional Documentations

You can find more documentations in docs folder. In a nutshell, it covers the following:

In the docs/components folder, it contains a few more guidance based on each component/feature available in this template.

  • gke.md covers the overall development guidance on Google Kubernetes Engine.
  • cloudrun.md covers the guidance if you want to deploy microservice to Cloud Run.

FAQ

  • Who are the target audience/users for this Solutions Builder?

    • A: Any engineering team to start a new solution development project.
  • Can I choose to deploy microservice just to Cloud Run?

  • Can I use this template for non-Google or multi-Cloud environments?

    • A: We design this Solutions Builder to work 100% out of the box with Google Cloud products. However, you could customize the solution to meet your needs on multi-Cloud environment. See Why Google Cloud for details.

Troubleshoot

See TROUBLESHOOTING Guide for details.

gcp-solutions-builder's People

Contributors

jonchenn avatar dhodun avatar lavjain avatar lila avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.