Home

Awesome

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:

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 <br /> We have several clients who use (and love) Heroku e.g: https://www.ellenmacarthurfoundation.org <br /> For the National Health Service (NHS) in England, (who have a major contract with Microsoft) we deployed to Microsoft Azure. <br /> 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 <br />

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

<!-- ### _First_ Upgrade Deployment Build Upgrade based on the version currently on Staging: ``` mix edeliver build upgrade --auto-version=git-revision --from=$(1.0.3) --to=$(git rev-parse HEAD) --verbose --branch=continuous-delivery ``` Get the version that was created and use it as the `--version` in the next command: ``` mix edeliver deploy upgrade to production --version=1.0.3+3a4f948 --verbose ``` > _**NOTE**: We have an **Open issue** for deploying an **UPGRADE** via Continuous Integration:_ https://github.com/dwyl/learn-devops/issues/19 <br /> > _We requested help on:_ https://github.com/edeliver/edeliver/issues/234 <br /> > _But sadly, no reply, yet ..._ _if you have time to help please comment on the issue!_ -->

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!

<!-- ## <sup>1</sup>Why Not "_Just Use Heroku_"? Heroku is great for _most_ use-cases. But it gets _expensive_ very quickly! The moment you start to pay for an app it's $7/month (_which may not sound "expensive" on the surface_) But it's the _Database_ that's the _expensive_ part! ### Heroku Database _Extortion_ The moment you go beyond the "_hobby_" plan: ![heroku-hobby-dev](https://user-images.githubusercontent.com/194400/28563894-543876d8-711f-11e7-9b09-cb548e10ee84.png) ![heroku-hobby-basic](https://user-images.githubusercontent.com/194400/28563938-77966842-711f-11e7-9668-eaa694325a79.png) ![heroku-database-pricing](https://user-images.githubusercontent.com/194400/28563258-4e7628d2-711d-11e7-81e0-b3997d9d05ca.png) As you can see, from the pricing, the _resources_ do offer value-for money once the project's database goes above a certain size. --> <br /> Thanks for learning with us! Your feedback/questions is always welcome.

contributions welcome HitCount