Skip to content

Instantly share code, notes, and snippets.

@kellishouts
Last active August 3, 2016 18:08
Show Gist options
  • Save kellishouts/eddce0796b1ecc6a0e66ace28f67efc9 to your computer and use it in GitHub Desktop.
Save kellishouts/eddce0796b1ecc6a0e66ace28f67efc9 to your computer and use it in GitHub Desktop.
Deployment

Deployment

Prerequisites

This material should come after XXX and before XXX. Students should already be familiar with XXX.

Class Format / Time to Allow for Subject

This material usually takes XXX to introduce and up to XXX of exercises and reinforcement.

Topics & Expected Outcomes

Levels of Understanding

Students will have one of three levels of understanding about each topic upon completion of this module.

  • grok: fully understand the topic in order to replicate code, communicate, and explain concepts without referring to any notes.
  • explain: understand enough about the topic to describe concepts without referring to notes.
  • know about: understand enough to look up further documentation when asked about the subject.

  • Students should be able to explain XXX
  • Students should know about XXX
  • Students should fully grok XXX

Suggested Format for Delivery

The following format is meant to be a guideline for effective delivery. Instructors can present material in another way if it is more effective for the students.

  1. Discuss the role of servers in web application architecture
  2. What is DevOps?
  3. What is deployment?
  4. What happens when a user visits google.com?
  5. Talk on linux security
  6. Linux security, users (root and creation)
  7. Linux security, File permissions
  8. Linux security, User Group ownership
  9. Ports
  10. Talk on network security
  11. Create admin user
  12. ssh keys
  13. Deploy static site
  14. Deploy node app
  15. Talk on automation
  16. Talk on high availability
  17. Deploy your app!

Instructor Notes for Each Topic

What is DevOps?

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

  1. Security
  2. Deployment
  3. Automation
  4. Availability
  5. Scalability

What is deployment?

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

  1. Different deployment envs
    1. local developmnt
    2. private alpha staging
    3. public beta uat
    4. public production
  2. making your app available to one of these set of users
  3. initial set up of server
  4. developing a strategy for updating codebase
    1. manual, scp
    2. manual, git
    3. automated, git
    4. automated CD

What happens when a user visits google.com?

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

  1. DNS resolution as a client
  2. Browser request cycle
    1. concurrency limit
  3. Setting up DNS
    1. registrar
    2. ns records
    3. dns records

Talk on linux security

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

  1. never run as root
  2. limiting access, deny all by default, allow

Linux security, users (root and creation)

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

Linux security, File permissions

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

Linux security, User Group ownership

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

Ports

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

Talk on network security

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

Create admin user

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

Notes for Instructor:

  • login to personally provisioned ubuntu container (see SoftCoreOS)
  • XXX? run this part as a workshop
  • create admin user

SSH Keys

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

Deploy a Static Site

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

Deploy a Node App

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

Talk on Automation

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

Talk on High Availability

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

Deploy your App!

At the end of this lecture, students should know about / fully grok / be able to explain XXX.

SoftCoreOS

SoftCoreOS is the XXX set up on the subdomain XXX. All docker commands and notes are on the server in ~/NOTES file.

Additional Resources

Basic VPS Deployment Resources

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment