Training As Code: Applying CI & CD to Training Development
Channel: Romén Rodríguez-Gil
Date: 05/01/2020

Recording from the talk delivered at DevOps World | Jenkins World Europe 2019, in Lisbon. Blog post: https://www.romenrg.com/blog/2019/12/31/everything-as-code/
Abstract: "At CloudBees we provide technical training for CloudBees customers and Jenkins users. Those training courses can be consumed both as instructor-led sessions or on demand, self-paced, through CloudBees University. We follow a training-as-code approach, having all our training sources as code. Our content is written in Asciidoctor, a lightweight markup language. We use custom tools to render them to PDF and HTML (adding RevealJS to achieve a better student experience). Apart from our content, we also provide highly technical hands-on labs, which include several tools such as Jenkins, Gitea, a web terminal and a database containing starting points for the different exercises.... borrowing software development best practices, we develop our training materials and tools in feature branches, which are later integrated into master via GitHub PRs, including both Peer Reviews and automatic checks defined in our CI pipelines (link verifications, syntax checks,...). These pipelines run in a CloudBees Core Team Master dedicated to the team. Once our changes are integrated into the master branch, the CD process deploys the new version of our training courses automatically (to AWS) and also generates the necessary new infrastructure configuration for the corresponding labs to run. We will also describe the new Kubernetes-native training platform that we are building to provide lab infrastructure for Kubernetes-based products (using Jenkins X for CI/CD, among other tools, and deploying in this case to GKE)"

Slides: https://www.slideshare.net/romenrg/dwjw2019-lisbon-trainingascode-applying-ci-cd-to-training-development