An open API service indexing awesome lists of open source software.

https://github.com/dwyl/learn-devops

🚧 Learn the craft of "DevOps" (Developer Operations) to Deploy your App and Monitor it so it stays "Up"!
https://github.com/dwyl/learn-devops

automation aws azure deployment dev-infra devops devops-tools digitalocean docker dokku heroku linode

Last synced: 19 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# Learn DevOps

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

![devops-process](https://user-images.githubusercontent.com/194400/28494977-ce74a632-6f36-11e7-9f86-f48abde49479.png)

## Why?

You should learn more "advanced" DevOps if:

- You / your team have _out-grown_
[**Heroku**](https://github.com/dwyl/learn-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
**backend infrastructure knowledge** to be a more
_well-rounded_ engineer.

## 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**?"](https://youtu.be/_I94-tJlovg) 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:

- AWS:
[dwyl/learn-amazon-web-services](https://github.com/dwyl/learn-amazon-web-services)
- AWS Lambda:
[dwyl/learn-aws-lambda](https://github.com/dwyl/learn-aws-lambda)
- Azure:
[dwyl/learn-microsoft-azure](https://github.com/dwyl/learn-microsoft-azure)
- Heroku:
[dwyl/learn-heroku](https://github.com/dwyl/learn-heroku)
- Fly.io:
[fly-phoenix-setup.md](https://github.com/dwyl/learn-devops/blob/master/fly-phoenix-setup.md)
- Linode:
[linode-setup.md](https://github.com/dwyl/learn-devops/blob/master/linode-setup.md)
- DigitalOcean:
[nodejs-digital-ocean-centos-dokku.md](https://github.com/dwyl/learn-devops/blob/master/nodejs-digital-ocean-centos-dokku.md)

### `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`](gogs/README.md)

### Node.js

- Node.js with Dokku:
[nodejs-digital-ocean-centos-dokku.md](https://github.com/dwyl/learn-devops/blob/master/nodejs-digital-ocean-centos-dokku.md)
- Node.js "Zero Downtime" Production Deployment with PM2:
[nodejs-pm2-zero-downtime.md](https://github.com/dwyl/learn-devops/blob/master/nodejs-pm2-zero-downtime.md)

> 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)

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

## Resources

### Videos

- What is DevOps:
[youtu.be/I7vHqXY22gg](https://youtu.be/I7vHqXY22gg)
- What is DevOps? - In Simple English:
[youtu.be/_I94-tJlovg](https://youtu.be/_I94-tJlovg)
(_good info but last minute is a RackSpace pitch_)
- DevOps for Beginners Course Introduction:
[youtu.be/v7ZcZfGBFcU](https://youtu.be/v7ZcZfGBFcU)

### Background Reading

- [wikipedia.org/DevOps](https://en.wikipedia.org/wiki/DevOps)
- [theagileadmin.com/what-is-devops](https://theagileadmin.com/what-is-devops)
- [newrelic.com/devops/what-is-devops](https://newrelic.com/devops/what-is-devops)
- [logit.io/blog/post/what-is-devops](https://logit.io/blog/post/what-is-devops)

### Linode-specific How-tos

- SSH with Public Keys:
https://www.linode.com/docs/security/use-public-key-authentication-with-ssh
- Using Vagrant for Environment Management:
https://www.linode.com/docs/applications/configuration-management/vagrant-linode-environments

### Using a Different Cloud Infrastructure Provider?

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

- Amazon Web Services: https://github.com/dwyl/learn-amazon-web-services
- Azure: https://github.com/dwyl/learn-microsoft-azure
- Digital Ocean: https://github.com/dwyl/DigitalOcean-Setup
- Heroku: https://github.com/dwyl/learn-heroku

if you have a question specific to using Linode or one of the _other_
"cloud" providers, please
[**open an _issue_**](https://github.com/dwyl/learn-devops/issues)
and we will attempt to help!



Thanks for learning with us!
Your feedback/questions is always welcome.
Please star if you found this useful. ⭐ 🙏

[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat-square)](https://github.com/dwyl/learn-devops/issues)
[![HitCount](http://hits.dwyl.com/dwyl/learn-devops.svg)](http://hits.dwyl.com/dwyl/learn-devops)