LogoLogo
GovStack Home
1.0
1.0
  • Enter the Sandbox
  • Access Demos
    • Social Cash Transfer - Tech Demo
    • Construction Permit - UX Demo
    • High School Certificate - Methodology Demo
  • Follow Methodology
    • Learning Paths
    • Do It Yourself
      • GovStack Design Sprint
        • Overview
        • Preparation
        • Day 1 - Sharing
        • Day 2 - Mapping
        • Day 3 - Ideating
        • Day 4 - Testing
        • Day 5 - Learning
      • DIY Wireframes
      • DIY Dynamic Frontend
        • Frontend Recommendations
      • DIY Minikube
      • DIY Full-Stack
      • Get Deployment Support
    • Service Design Best Practice
      • Phase 0 - Empathy
      • Phase 1 - Research
      • Phase 2 - Design
      • Phase 3 - Test
      • Phase 4 - Deliver
      • Templates
  • Explore Stack
    • Architecture
    • Use Case Frontend
    • Use Case Backend
    • Building Blocks
      • Emulators
    • DevOps
    • Infrastructure
  • Version History
Powered by GitBook
On this page
  • What do we use to build it?
  • Where do we demo it?
  • Which conceptual decisions do we follow?
  • Further documentation

Was this helpful?

  1. Explore Stack

Infrastructure

Was this helpful?

The infrastructure component has the purpose to efficiently run and manage the upper stack components. It is designed in a way to lower the dependency on specific cloud providers. At the same time, the component is designed to easily be deployed and scaled.

What do we use to build it?

Name
Purpose

Terraform

Infrastracture-as-code tool

Terragrunt

Terraform Wrapper

AWS EKS

Managed Kubernetes Service

AWS ECR

Container Registry Service

Where do we demo it?

In all use case demos (except the DIY-Version), the same build is being used.

Github Repository
Used in...

Which conceptual decisions do we follow?

The Sandbox Infrastructure provides the foundation of the Sandbox — an environment for deploying and running compatible building block implementations.

Naturally the abstraction is leaky, and it is good to keep in mind that in a real-world implementation the building block applications would be separated and isolated into different environments, which might not even be a Kubernetes cluster. However, a goal of the Sandbox is to make it reasonably easy an efficient to deploy a set of building blocks and start exploring and developing. Therefore, we developed and provide scripting to easily setup new Kubernetes cluster. It focuses on the building blocks and does not try to be a full production environment.

Further documentation

The main reason for using Kubernetes is to have a useful abstraction of networking and compute resources to build upon, so that compatible building block applications can remain portable (see also the ). In some sense, the Sandbox Kubernetes cluster simulates a "miniature Internet": Pods are hosts, services running on the "hosts" have names (leveraging the cluster-internal DNS service) and communicate using the same protocols as in the Internet.

The reference implementation leverages AWS Elastic Kubernetes Service (EKS). More information about the implementation, which uses Terraform and Terragrunt to automate the setup, is available in .

DevOps chapter
the Sandbox infrastructure repository
Sandbox Infrastructure
Unconditional Social Cash Transfer (USCT) Demo

Sandbox infrastructure diagram

Infrastructure Repository

Documentation of the sandbox infrastructure component

Cover