an example of deploying a multi-tier application using my ops stack
- Shell 41.3%
- HCL 30.2%
- JavaScript 25.9%
- Handlebars 2.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| api-app | ||
| deploy | ||
| ui-app | ||
| .gitignore | ||
| .gitmodules | ||
| readme.md | ||
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/orui-app/ - from the root of the project, run
./<app>/build-and-upload.shwhich 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