jhulick / DevSecOps

:rocket: Sample automated workflows that automatically brings up services locally and in clouds

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This repo contains assets for a hands-on DevSecOps class which enables you to legitimately claim this on your resume:

"Automated with bash and python scripts an end-to-end CI/CD workflow, triggered by commits and pushes to a Git cloud repository, to instantiate utility services using Docker, then build, test, and deploy to several environments a 12 Factor app that uses Kubernetes to load-balance and auto-scale within a monitored Google cloud that has logging."

This is not a bunch of talk and fancy PowerPoint.

Our approach is that you manually follow our step-by-step instructions so you can see the scripts run, first-hand.

  1. How to write bash scripts to be "idempotent", so you can run them again and again.
  2. How to check for errors at each step so the script stops upon error.
  3. How to avoid using the wrong geographic zone (a mistake can can cost a lot of money).
  4. How to ensure that the same data is used by several commands.
  5. How to make sure that changes to a GitHub repository do not disrupt your script.
  6. How to automatically update a GitHub repository you forked to your own account.

Here is what you'll do:

Along the way, PROTIP comments highlight tips and tricks of the pros, such as:

If you get stuck, we provide one-on-one coaching and mentoring sessions while we share screens.

  1. Setup your laptop with the best and most popular tools and utilities the top pros use.

    • How to setup your laptop quickly (using dotfiles and brew/chocolatey).
  2. Sign up for accounts on Gmail, Google Cloud, GitHub, Docker, etc.

  3. Clone sample repositories on your own laptop.

  4. Generate based on Swagger OpenAPI specs file.

  5. Setup auto-detection of file changes to invoke local code scan.

  6. Add web hooks to your source code repository to recognize and act on changes.

  7. Define maven pom.xml file.

  8. Setup Jenkins server to fire off.

  9. Groovy scripts in a Jenkins server on Cloudbees cloud.

  10. Edit a NodeJs sample project with linting and functional testing automation

  11. Dockerize the app by defining a Dockerfile for the app.

  12. Setup SonarQube server and rules to scan source code.

  13. Define front-end load balancing in Kubernetes.

  14. Construct Selenium using JUnit to test Java coding.

  15. Construct Pact proxy to conduct automated integration testing.

  16. Define JMeter scripts to generate load which invoke auto-scaling

  17. cAdvisor to forward server metrics to InfluxDB

  18. InfluxDB database instance to hold and summarize monitoring statistics

  19. Graphana instance to display monitoring trends

With this course, you skip the fumbling around because we have already figured it out for you.

Now sign up and let's go.

Others

https://github.com/anirbanroydas/DevOps

About

:rocket: Sample automated workflows that automatically brings up services locally and in clouds

License:Creative Commons Zero v1.0 Universal


Languages

Language:Shell 87.9%Language:Python 4.7%Language:HTML 4.3%Language:Dockerfile 1.3%Language:TypeScript 1.2%Language:Ruby 0.2%Language:JavaScript 0.2%Language:Gherkin 0.1%Language:Java 0.1%Language:Smarty 0.0%Language:HCL 0.0%