Infrastructure Project - GeekZoneHQ/web GitHub Wiki

This page contains notes for the initial stages of web infrastructure for Geek.Zone. The hope is that this will be the foundation for all future infrastructure that we need to spin up.

Primary Goals

  1. To create a stable way to host the live Geek.Zone membership management system
  2. To make it easy for contributors to get their contributions live

Secondary Goals

  1. To make it easy for contributors to spin up their contributions on test environments
  2. To make it easy for Geek.Zone members to host new software and projects in the Geek.Zone infrastructure. A few examples:
    • Off the shelf software
    • Game servers
    • New software projects

Rough Priority Order

  • Create a reproducible deployment for the membership management repository.
    • This could be as simple as an EC2 with some basic shell scripting to start off with.
    • Ideally there would be a separate test environment
    • If there is a test environment it should be on a separate network (VPC) from live
    • Before going live there should be a secure way to deploy configuration to the service
  • Hook the deployment into the CI/CD pipeline
  • Ensure the service is monitored with metrics, alarms, and logs that are easy to access
    • This means someone should not have to SSH on to the box to view this information.
  • :nice-to-have: It would be nice if contributors could deploy their pull requests to a separate environment
  • :future: Allow other software to be deployed to the Geek.Zone AWS account
    • This means something generic like Kubernetes, Nomad, etc

Problems and Tools that should be explored

  • Automated provisioning of AWS services
    • Terraform
    • Cloudformation
    • Ansible, Chef, etc
  • Generic Infrastructure
    • Kubernetes, Nomad, etc
    • Rancher to setup Kubernetes?
  • Centralised logging
    • fluentd/td-agent (same thing but has two names)
    • TIG Stack
    • ELK stack
    • commercial offerings like Datadog?
  • Centralised metrics
    • Telegraf
    • commercial offerings like Datadog?
  • Alarms
    • Grafana Alarms
    • Cloudwatch Alarms?