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"!
- Host: GitHub
- URL: https://github.com/dwyl/learn-devops
- Owner: dwyl
- License: gpl-2.0
- Created: 2017-05-15T09:40:01.000Z (almost 8 years ago)
- Default Branch: main
- Last Pushed: 2025-03-25T12:15:21.000Z (about 1 month ago)
- Last Synced: 2025-03-30T10:35:05.636Z (26 days ago)
- Topics: automation, aws, azure, deployment, dev-infra, devops, devops-tools, digitalocean, docker, dokku, heroku, linode
- Language: Shell
- Homepage:
- Size: 182 KB
- Stars: 431
- Watchers: 16
- Forks: 175
- Open Issues: 41
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Learn DevOps
Learn the craft of DevOps (Developer Operations)
to _reliably_ deploy your App and keep it Up!
## 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-tddNext 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-herokuif 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. ⭐ 🙏[](https://github.com/dwyl/learn-devops/issues)
[](http://hits.dwyl.com/dwyl/learn-devops)