GoogleCloudPlatform / GoogleCloudPlatform/pubsec-declarative-toolkit
Use Case: POC Serverless Canary Application (frontend/backend/persistence) as a Profile 3 LZ workload with PSC, PSA and VPC-SC
- Dominant language
- Shell
- Stars
- 36
- Forks
- 26
- PR merge metrics
- No merged PRs in 30d
Description
# 202401 update
- https://cloud.google.com/architecture/serverless-blueprint
- HCLS specific
# Use Cases
- the uc/customer-app drives the lz architecture subset. In this case we will start with 1 or more serverless use cases around profile 3.
- docai, biometric telemetry, GPS tracking, event stream, live video ML/AI intelligence
- see #220 for DocAI use case - https://github.com/GoogleCloudPlatform/pubsec-declarative-toolkit/tree/canary/solutions/document-processing/gcloud
- See LZ V1 traffic generation app https://github.com/GoogleCloudPlatform/pbmm-on-gcp-onboarding/blob/main/docs/google-cloud-landingzone-traffic-generation.md
- See earlier V1 architecture discussions https://github.com/GoogleCloudPlatform/pubsec-declarative-toolkit/blob/dev/solutions/landing-zone/architecture.md
- See V2 architecture diagrams at https://docs.google.com/presentation/d/1Ztqn7G2rWFlssVwC7r5Xl-WFSFCbVo6MoHJffrXScmw/edit#slide=id.g25262d569c1_0_198
- See GCP network-patterns share at https://docs.google.com/presentation/d/13sjT2tJ4yLIYGRREE3wBrylB1OvcEMpKdquVuJB_nX4/edit?resourcekey=0-N3DruQaiutFvZ98HTT7-vQ#slide=id.g1154b3b950f_2_3458
- see Guardrails V1 https://github.com/canada-ca/cloud-guardrails/blob/master/EN/00_Applicable-Scope.md#applicability-of-guardrails-to-cloud-usage-profiles
- see Guardrails V2 https://github.com/CloudLandingZone/cloud-guardrails-v2
# Serverless Reference Architecture
# Requirements: LZ workload Canary for Profile 3
- P3 specific - we run a selected subset of all packages (armor yes, IDS/NGFW perimeter and extensive hub/spoke - no) for example
- a VPC Service Control egress perimeter is involved
- - 2+ microservices/containers - to exercise ingress/egress tracking
- VPC Serverless Connector
- No NGFW for east-west traffic
- Armor attached to an LB (off the GFE)
- SWP - Secure Web Proxy
- External Cloud Load Balancer - https://cloud.google.com/load-balancing/docs/https
- Artifact Registry and cloud build pipelines will work with the vpc-sc
- hierarchical firewall policies at the 5 org/folder/vpc/region levels
- the ALB in cloud run is not the Global LB
- cloud run will use either a SQL proxy or vpc connector for private IP based cloud SQL connections
- Ideally Guardrails V2 over V1
- https://github.com/canada-ca/cloud-guardrails-v2/tree/main/EN
- https://github.com/canada-ca/cloud-guardrails/blob/master/EN/00_Applicable-Scope.md#applicability-of-guardrails-to-cloud-usage-profiles
# Design
Reference
# Implementation
- add to https://github.com/GoogleCloudPlatform/pubsec-declarative-toolkit/tree/main/solutions/experimentation
# Package Coverage Required
- https://github.com/GoogleCloudPlatform/pubsec-declarative-toolkit/tree/main/solutions/core-landing-zone
- https://github.com/GoogleCloudPlatform/pubsec-declarative-toolkit/tree/main/solutions/client-landing-zone
or
- https://github.com/GoogleCloudPlatform/pubsec-declarative-toolkit/tree/main/solutions/experimentation/client-landing-zone
- https://github.com/GoogleCloudPlatform/pubsec-declarative-toolkit/tree/main/solutions/experimentation/client-project
-
# Package Coverage Optional
-
# Design Issues
- watch CR https://github.com/GoogleCloudPlatform/k8s-config-connector/issues/832
- lightweight JS frontend - minimal jquery/ajax - either encapsulated in container 1 or separate cloud functions knative app
- container 1 : backend spring boot REST api (may contain javascript frontend as well)
- container 2: backend Relational or key/value DB - may use Cloud SQL or Spanner
Template
[Introduction](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Introduction)
• [Deliverables](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Deliverables)
• [MVP - Immediate Minimum Viable Product](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-MVP-ImmediateMinimumViableProduct)
• [Quickstart](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Quickstart)
• [Artifacts](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Artifacts)
• [Requirements](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Requirements)
• [Features](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Features)
• [Analysis](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Analysis)
• [API](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-API)
• [Architecture](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Architecture)
• [Use Cases](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-UseCases)
• [Design](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Design)
• [Design Issues](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-DesignIssues)
• [DevOps](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-DevOps)
• [Deployment](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Deployment)
• [Testing](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Testing)
• [Security](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Security)
• [Monitoring](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Monitoring)
• [Releases](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Releases)
• [Documentation](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Documentation)
• [Development Log](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-DevelopmentLog)
• [Keywords](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Keywords)
• [References](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-References)
• [Links](http://wiki.obrienlabs.cloud/display/DEV/_template#id-_template-Links)
reference as well https://github.com/ssc-spc-ccoe-cei/gcp-tier34-template
Contributor guide
Assessment
This issue has not been assessed yet.