/learn-devops

🚧 Learn the craft of "DevOps" (Developer Operations) to Deploy your App and Monitor it so it stays "Up"!

Primary LanguageShellGNU General Public License v2.0GPL-2.0

Learn DevOps

Learn the craft of "DevOps" (Developer Operations) to reliably deploy your App and keep it Up!

devops-process

Why?

You should learn more "advanced" DevOps if:

  • You / your team have "out-grown" Heroku (e.g: your Heroku bill is more than $100/month)
  • You want "more control" over your infrastructure e.g: to run a specific version of software or database.
  • Your client/boss has instructed you to use a specific "cloud" provider.
  • Curiosity to extend your "back end infrastructure" knowledge to be a more "well-rounded" developer.

What?

"DevOps integrates developers and operations teams in order to improve collaboration and productivity by automating infrastructure, automating workflows and continuously measuring application performance." from: "What is DevOps?" by RackSpace

Who?

Everyone that wants to seriously consider/call themself a "Full Stack" Developer must know how to deploy, secure and monitor their app on their chosen infrastructure.

How?

Over the years we @dwyl have deployed/managed Apps, both our own and those of our clients, on a wide variety of infrastructure and platform providers.

Most of our Apps have been deployed to Amazon Web Services ("AWS") e.g: https://www.sciencemuseum.org.uk
We have several clients who use (and love) Heroku e.g: https://www.ellenmacarthurfoundation.org
For the National Health Service (NHS) in England, (who have a major contract with Microsoft) we deployed to Microsoft Azure.
We have clients who still own their own "Bare Metal" Servers.

Provider-Specific Guides

We have produced a guide for each of our most-used infrastructure/platform providers:

Gogs Git Server

We needed to run a our own Git server for one of our projects. So we deployed Gogs both locally and to Fly.io and documented it: /gogs

Node.js

If you would like to see a guide for a different service provider, please open an issue with your suggestion(s): https://github.com/dwyl/learn-devops/issues

Testing, Continuous Integration & Delivery

Deployment is what you do with your app once you have built, tested and documented it.

If you are unfamiliar with Test-Driven Development (TDD), please see: https://github.com/dwyl/learn-tdd

Next you should be proficient with Continuous Integration. For that we recommend using Travis-CI, see: https://github.com/dwyl/learn-travis

https://github.com/dwyl/learn-travis/blob/master/encrypted-ssh-keys-deployment.md

Resources

Videos

Background Reading

Linode-specific How-tos

Using a Different Cloud Infrastructure Provider?

While this tutorial has focussed on using Linode, we @dwyl have experience of using several infrastructure providers:

if you have a question specific to using Linode or one of the other "cloud" providers, please open an issue and we will attempt to help!


Thanks for learning with us! Your feedback/questions is always welcome.

contributions welcome HitCount