an example of deploying a multi-tier application using my ops stack
This repository has been archived on 2026-09-29. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • Shell 41.3%
  • HCL 30.2%
  • JavaScript 25.9%
  • Handlebars 2.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jake Gaylor 8a4a0a9cbb tf fmt
2016-12-12 00:08:43 -07:00
api-app bump build scripts to not make garbage directories as chef expects now - properly 2016-12-11 16:35:00 -07:00
deploy tf fmt 2016-12-12 00:08:43 -07:00
ui-app bump build scripts to not make garbage directories as chef expects now - properly 2016-12-11 16:35:00 -07:00
.gitignore ignore dev artifacts 2016-12-08 00:30:59 -07:00
.gitmodules track chef as a submodule 2016-12-11 02:06:15 -07:00
readme.md add docs 2016-12-11 13:25:31 -07:00

Process

First Run: You need to make sure that you have the git submodule pulled in using git submodule update --remote

  • Dev on api-app/ or ui-app/
  • from the root of the project, run ./<app>/build-and-upload.sh which will create the artifact, stuff it onto s3
  • to make a new release (both apps get shipped as a single unit), run cd ./deploy/package/; ./build-ami.sh
  • to deploy, run terraform. it will see the new ami

Goals

Stretch CMDB

  • Pull out ansible into a shared repo
  • Make a node app cookbook
  • Make a static site cookbook
  • Deploy pathfinder using new common cookbooks
  • Deploy another hello world app using generalized chef and terraform code, proving that other node apps are just as easy to deploy
  • Make a java (spring boot?) app cookbook
  • Deploy a java app the same way.
  • chef RDBMS solution backed by ebs

Stretch Infrastructure

  • Pull out code for immutable-app into a module
  • Pull the code for immutable-app into a place where it can be shared
  • Use ASG not aws_instance
  • Make PoC HA deploy w/ an elb in front of private subnets
  • OpenVPN to my laptop to give access to private subnets

Ops

  • "build pipeline" that deposits release into s3
  • Deploy to aws
  • Deploy in a resilient fashion
  • Make a better service that will restart if it dies
  • Remove ansible provisioner in favor of packer
  • Deploy with nginx in front
  • make packer aware of the current version in package.json
  • Bring vars like region closer to the tf from the ansible once ansible provider is replaced or upgraded
  • Make service correctly start up when using terraform to start a service via a packer'd ami
  • TF managed ssh key pairs in core
  • convert ansible to chef-solo
  • Get a grasp on tar output folders and get to /opt/pct-ui/static (this was --strip-components x)
  • chef mongodb + ebs solution

Coding

  • Add ecmascript 2016
  • bundle js so jsx isn't shipped to the browser
  • Add a database
  • Migration plan for database schemas