outcomes
- low cognitive overhead for the team
- fast delivery for the org
- reliable service for the org
- safety for our customers
strategy
- fewest moving parts possible
- most boring tools possible
- one-click, engineer-driven deployments
outcomes
strategy
I hereby claim:
To claim this, I am signing this object:
import boto3, logging, os | |
from datetime import datetime | |
from gpiozero import MotionSensor | |
from picamera import PiCamera | |
logging.basicConfig(level=logging.INFO) | |
camera = PiCamera() | |
pir = MotionSensor(4) |
halt |
package main | |
import ( | |
"encoding/json" | |
"log" | |
"time" | |
"code.google.com/p/goauth2/oauth/jwt" | |
bigquery "github.com/google/google-api-go-client/bigquery/v2" | |
) |
package main | |
import ( | |
"bufio" | |
"crypto/tls" | |
"fmt" | |
"log" | |
"net/url" | |
"strconv" | |
"strings" |
#!/usr/bin/env ruby | |
require 'aws-sdk' | |
metadata = { | |
image_id: 'ami-9aaa1cf2', | |
instance_type: 't2.micro', | |
subnet: 'subnet-a55587fc', | |
key_name: 'ops' | |
} |
What follows is a description of how one might reasonably manage the core configuration of a stateless service platform.
input
- initial inputs that help describe a desired state. includes information such as allowed amis, application manifests, etccompiler
- reads inputs, produces cloudformation templates along with other top-level metadata. (important to note that there could even be multiple compilers)metadata
- top-level, global data that describes ideal state of the platformWhat follows is a brief description of what comprises a general stateless service platform. It assumed that all stateful services live elsewhere (Heroku Postgres, AWS, etc).
This document aims to show you that a service platform can be built from a few simple ideas without need of anything highly complex or a lot of moving parts.
{
"name": "core",
"ami_id": "ami-123456",
"env": "s3://cloudfuckery/envs/1-abcdef.json",
"slug": "s3://cloudfuckery/slugs/1-12345.tgz",
"formation": {
"web": {
"cmd": "bundle exec bin/web",
"quantity": 3,