👨‍💻
Mike's Notes
  • Introduction
  • MacOs Setup
    • System Preferences
    • Homebrew
      • Usage
    • iTerm
      • VIM
      • Tree
      • ZSH
    • Visual Studio Code
    • Git
    • SSH Keys
  • DevOps Knowledge
    • SRE
      • Scaling Reliably
        • Splitting a Monolith into Microservices
      • Troubleshooting Common Issues
      • Service Level Terminology
      • Toil
      • Monitoring
      • Release Engineering
      • Best Practices
      • On-Call
      • Alerting
    • Containers
      • Docker
        • Best Practices
          • Image Building
          • Docker Development
        • CLI Cheat Sheet
      • Container Orchestration
        • Kubernetes
          • Benefits
          • Cheat Sheet
          • Components
          • Pods
          • Workload Resources
          • Best Practices
    • Developer Portal 👨‍💻
      • Solution Overview 🎯
      • System Architecture 🏗️
      • Implementation Journey 🛠️
      • Cross-team Collaboration 🤝
      • Lessons & Future 🎓
    • Provisioning
      • Terraform
        • Installation
        • Usage
    • Configuration Management
      • Ansible
        • Benefits
        • Installation
    • Build Systems
      • Bazel
        • Features
  • Security
    • Secure Software Engineering
    • Core Concepts
    • Security Design Principles
    • Software Security Requirements
    • Compliance Standards and Policies
      • Sarbanes-Oxley (SOX)
      • HIPAA and HITECH
      • Payment Card Industry Data Security Standard (PCI-DSS)
      • General Data Protection Regulation (GDPR)
      • California Consumer Privacy Act (CCPA)
      • Federal Risk and Authorization Management Program (FedRAMP)
    • Privacy & Data
  • Linux Fundamentals
    • Introduction to Linux
    • Architecture
    • Server Administration
      • User / Groups
      • File Permissions
      • SSH
      • Process Management
    • Networking
      • Diagrams
      • Browser URL Example
      • Network Topologies
      • Signal Routing
      • DNS (Domain Name System)
      • SSL (Secure Sockets Layer)
      • TLS (Transport Layer Security)
  • System Design
    • Process
    • Kafka
      • Advanced Topics
    • URL Shortener
Powered by GitBook
On this page
  • Infrastructure Overview
  • CI/CD Deployment Pipeline 🔄

Was this helpful?

  1. DevOps Knowledge
  2. Developer Portal 👨‍💻

System Architecture 🏗️

Intro

PreviousSolution Overview 🎯NextImplementation Journey 🛠️

Last updated 3 months ago

Was this helpful?

Infrastructure Overview

In this section, I will delve into an example implementation of Backstage using a combination of Google Cloud Platform (GCP) services, Okta for Single Sign-On (SSO) authentication and authorization, and GitHub integration to access organization data.

Here's a preliminary glimpse into the system's structure:

  • Backstage Layer

    • Backstage deployed on Cloud Run

      • Traffic outside of work hours is very low to none

      • ✅ Cost savings from going serverless and scaling to 0 instances when not in use

        • ⚠️ Tradeoff was cold starts. The first request needs to wait for a new container, causing a delay (10-15s).

  • Storage Layer

    • Cloud SQL: User, project and organization metadata

    • Cloud Storage: API documentation stored (swagger/openAPI)

    • Secret Manager: App secrets fetched and used as environment variables during build and runtime

  • Integration Layer

    • Okta: Authentication/Authorization

    • GitHub: Repository and organization data management

    • Third-party tools: Monitoring via Cloud Logs and Google Analytics.

  • Nice-to-Have (But Not Achieved)

CI/CD Deployment Pipeline 🔄

Pipeline Components

  • Trigger: Cloud Build trigger listening for merge to default branch events

  • Build Process:

    • Pull latest Backstage image from Artifact Registry (build cache)

    • Build new Docker image with latest changes

    • Push updated image to Artifact Registry

    • Deploy new instance to Cloud Run

  • Nice-to-Have (But Not Achieved):

    • Staging environment

    • Canary rollout

      • Small percentage -> monitor metrics -> increase traffic if stable

Key Benefits

  • Efficient Builds: Docker layer caching reduces build time

  • GitOps Deployment: Zero-touch deployment process

  • Rollback Capability: Easy rollback to previous versions

Cloud Run has , meaning that you don't necessarily need to put a load balancer in front!

Leveraging stores (Redis, etc.) to improve performance

autoscaling
cache