
Deploy a Jenkins server on an AWS EC2 instance to run a Petclinic pipeline with multiple jobs, each linked to its own GitHub repository and Jenkins file.
Highlight a Jenkins driven, multi-job pipeline on AWS that builds jars from GitHub repo, packages and tests spring boot petclinic app, and provisions EC2 with Terraform using a packer image.
Discover devops ci/cd practices with Jenkins, Packer, Jmeter and TerraForm on AWS, guided by Norma with over 20 years in software and certifications in AWS and devops.
Explore DevOps fundamentals and rapid start to pipelines with hands-on Jenkins installation and configuration, plus an introduction to continuous integration and delivery using AWS and GitHub.
Describe continuous integration and configure Jenkins for jobs and builds, create Jenkins pipelines, and integrate Jenkins with Packer, Terraform, and JMeter to automate image building, provisioning, and tests.
Acquire essential prerequisites for the course, including basic software development and testing knowledge. Prepare with AWS EC2, a GitHub account, and a terminal on Mac or Windows using Git Bash.
Define the two main DevOps goals, automate software delivery and infrastructure changes, and improve collaboration among developers, integrators, and operations.
Explore the DevOps lifecycle from planning and requirements prioritization to decoration (coding and configuration), verification, packaging with artifacts for staging, release, provisioning, deployment, and monitoring with feedback.
Explore the DevOps tools landscape, learn how to select the right tools for your project, and identify who should participate in the decision, across collaboration, build, testing, deployment, and monitoring.
Define continuous integration and continuous delivery, showing how continuous integration builds from a shared repository and how continuous delivery automates testing and release through a production-like pipeline in DevOps.
Learn Jenkins characteristics, features, and build infrastructure, install and configure Jenkins on an EC2 instance, then explore the GUI and create freestyle jobs.
Jenkins is an open source automation server that orchestrates build automation and pipelines, breaking large work into phases like builds, packaging, testing, and deployment.
Create an EC2 instance role for the Jenkins server, grant administration access, name the role Jenkins admin, and prepare to configure an associated security group in the next lab.
Create and configure a security group for an EC2 instance by adding inbound rules for 8080 (jenkins), 80/85 (java app), and ssh, using the same group to simplify setup.
Launch Amazon Linux t2 medium ec2 instance to run a Jenkins server, assign the Jenkins security group and instance role, configure a key pair for ssh, and verify ip addresses.
Connect to your EC2 instance using the Jenkins bin file via SSH, learn about IP changes after restarts, and preview Jenkins setup in the next lab.
Increase lab snapshot readability by zooming Google Sheets to 150–200%, and use the Google Word documents outline view to jump between steps; post issues in the forum.
Install Jenkins on an EC2 instance by provisioning Java, adding the Jenkins repo and keys, installing and starting Jenkins, retrieving the admin password, and setting up plugins and admin user.
Configure Jenkins global tools by adding the JDK with a valid Java home and installing Maven from Apache version 3.63, using the uppercase alias M three for pipelines.
Install git on the Jenkins server and add the GitHub.com host to the known hosts as Jenkins user, ensuring smooth checkout from GitHub.
Stop an EC2 instance without terminating it, verify it is stopped, then restart it and adapt to the new public IP for SSH access.
Learn a high-level tour of the Jenkins dashboard, logging in, connecting to GitHub, creating pipelines and freestyle projects, and managing plugins, credentials, and system settings.
Configure Jenkins jobs to build upstream and downstream pipelines using freestyle jobs, post build actions, and build triggers, and integrate these actions with Jenkins files.
Recreate three Jenkins jobs, including a freestyle job and two copied-from-option jobs, in this section's step-by-step labs, then create downstream and upstream jobs.
Organize your Jenkins jobs with views to group test, build, deployment, and packaging tasks, using regular expressions and naming conventions to display freestyle jobs for quick status checks.
Create a Jenkins view that includes all your freestyle jobs with a step-by-step tutorial, and post any issues on the forum for help.
Explore Jenkins pipelines and implement the phase one job of the multi-job pipeline in section three.
Define Jenkins pipelines by stages, steps, and post actions, and manage them as code using Jenkins files in Git repositories.
Create your first GitHub repository from your local machine, run the application locally, and then run it from your Jenkins server.
Create your first Jenkins workflow by initializing a local git repo, configuring SSH access to a new GitHub repository, and pushing the pet clinic spring project after key setup.
Run the Spring Petclinic app locally by packaging with Maven, launching the jar, and verifying it runs on localhost:8085 before integrating with Jenkins.
Learn to run the pet clinic application from a Jenkins pipeline, configure credentials and deployment keys, connect Jenkins to GitHub, and troubleshoot build issues with console output.
Explore how a Jenkinsfile orchestrates a multi-stage pipeline for a petclinic spring demo, declaring Maven and POM properties, tracking artifacts, and sharing build info via a properties file.
Create a base image with the latest packages and Java version for the Petclinic app. Then build an AMI-based RMI image from the Java jar from phase one using Packer.
Learn how Packer creates fully baked AMI images for AWS EC2, using templates, variables, builders, and provisioners to automate base images with Java 11 and the Petclinic app.
Install Packer on your Jenkins EC2 instance by downloading the executable, unzipping it, moving it to /usr/local/bin, and verifying the 1.8 version.
Download, unzip, and curate the petclinic package files, then initialize a git repo and push to a new private GitHub repository as the package source for building the ami.
Create a base image with ubuntu, java 11, and updated packages using packaging configuration, then pair it with the pet clinic image in a packer-driven devops pipeline.
Launch and prepare an Ubuntu EC2 micro instance, install Java, update packages, and create a base AMI for Java apps, then plan to use the AMI with Packer and Jenkins.
Learn to build a Packer image by copying the pet clinic jar into a base image, validating and building it on AWS, then launching and terminating the instance.
Explore the petclinic package demo repo and how Jenkins and Packer automate building an Amazon AMI from a base Ubuntu image, with provisioners, scripts, and a Petclinic service.
Copy the packer file to the Jenkins server, SSH in, unzip, move it to /usr/local/bin, and verify the installation.
Add the packer job to Jenkins by installing the copy artifact plugin and configuring a Git-based packaging pipeline that builds an ami and copies artifacts between jobs.
Add the Petclinic packaging job to a Jenkins multi-job pipeline using the Blue Ocean plugin, creating a visual build and packaging flow for the Petclinic app.
Build the phase three deployment using Terraform and AWS to provision an EC2 instance from a Packer image and run Petclinic tests.
Define and manage infrastructure as code with TerraForm using a declarative language. Integrate TerraForm into DevOps pipelines to automate provisioning, configuration, and destruction across multiple providers.
Explore Terraform's role in DevOps pipelines and cloud environments. Learn Terraform language concepts: data types, providers, resources, variables, file extensions (tf, tfvars), state, and commands init, plan, apply.
Explore Terraform language as a high-level, non-procedural tool that decouples resources via IDs and providers. Master data sources, resources, variables, and the init, plan, apply, destroy workflow.
Install Terraform on an Ubuntu workstation by downloading the zip, unzipping it, moving the binary to /usr/local/bin, and verifying version 1.37.
Install and configure the pet clinic exploratory repo by creating a private GitHub repo, generating SSH keys, linking via deploy keys, and pushing files for Jenkins-driven testing.
Run and validate Terraform infrastructure locally, provisioning an EC2 instance with a fully baked AMI and petclinic, while integrating manual scripts into a Jenkins pipeline for automation.
Install Terraform on the Jenkins server via scp from your local machine to the EC2 host, extract, and place it in /usr/local/bin to enable exploratory jobs.
Update Jenkins file with your GitHub repo URL, credentials ID, and main branch; replace VPC ID, install Terraform, and configure your EC2 key pair to run the petclinic project.
Pull the exploratory testing repo from GitHub into Jenkins, configure credentials and deploy keys, and add the exploratory job to the Petclinic pipeline while validating Terraform provisions for EC2.
Add the Petclinic exploratory job to a Jenkins multi-job pipeline, integrating build, packaging, and exploratory testing into a complete automated workflow with Open Blue Ocean visualization.
Learn how to integrate Jenkins with JMeter to automate API testing on AWS, deploying EC2 instances with Terraform, collecting results, and running multiple tests concurrently in a multi-job pipeline.
Explore JMeter, an open source tool to simulate heavy loads, test performance and API testing, using thread groups, controllers, listeners, timers, and assertions, and learn its integration into DevOps pipelines.
Install jmeter on a Windows local machine by downloading the zip, extracting it, navigating to the bin folder, and running the jmeter.bat file while keeping the command window open.
Install JMeter on your ubuntu workstation or terminal, copy the downloaded zip, unzip, reorganize into a JMeter directory, and place it in /usr/local/bin for easy access, then test the script.
Set up the PetClinic API repo on GitHub by creating the API directory from the downloaded zip, initializing a local git repository, committing, and pushing via SSH keys.
Create a JMeter API test and demonstrate automatic execution in DevOps pipelines, using a test plan with variables and HTTP requests for GET and POST on Petclinic.
Create a JMeter API test from scratch by configuring a test plan, variables, HTTP request samplers for GET and POST, and assertions for responses.
Run API tests from a Jenkins pipeline using JMeter on a local PC, automate test plan execution, collect CSV results, and generate an HTML report for the Petclinic API.
Explore Jenkins pipeline for api testing that provisions an ec2 with Terraform, updates the JMeter test plan with the ip, runs tests, and generates html reports before destroying the environment.
Install JMeter on the Jenkins server by securely copying the JMeter zip from Windows, unzip, rename the directory to jmeter, and move it to /usr/local/bin, then verify with jmeter -h.
Migrate the petclinic api job to a Jenkins pipeline, configure credentials and ssh keys, update jmeter tests for the ip, deploy and run api tests, and generate html reports.
Add the Petclinic API Java to a Jenkins multi-job pipeline, configure parallel API and exploratory tests after packaging, and manage executor capacity to run multiple jobs concurrently.
Integrate jmeter performance tests into a Jenkins-driven devops pipeline using Terraform to provision AWS infrastructure. Modify API tests for performance and run three phase three jobs in parallel.
Create a pet clinic performance test repository and configure a jmeter-based performance test with 100 users, initialize git, commit, and push to GitHub, managing SSH keys and deployment keys.
Modify existing API tests with JMeter to create a performance test by simulating 100 users for 30 seconds. Save and move the test plan for Jenkins integration.
Review the Petclinic performance demo repo; run a 100-user, 30-second test, update the Jenkins url and VPC ID, replace Jenkins keys, and ensure jmeter and Terraform are installed.
Set up and run a Jenkins-based performance test by creating a pipeline, configuring SSH deploy keys, linking GitHub, and deploying with Terraform to generate and validate a Petclinic performance report.
Add the performance test as the final job in a Jenkins multi-job pipeline, enabling three jobs to run in parallel and observe deployment, testing, and performance results.
Are you struggling to land a DevOps job because you lack hands-on experience? My step-by-step DevOps course teaches you how to build and architect your own pipelines from scratch, so you can finally break into the DevOps field.
This step-by-step DevOps course is intentionally designed for you to build your own DevOps pipelines from scratch because there’s no better way to truly learn than by doing. Research shows that actively creating something engages multiple areas of your brain, helping you not only learn faster but also retain the information more effectively. By constructing the pipeline from the ground up, you’ll develop a deeper understanding of each component and its role in the overall process, making the knowledge more intuitive and practical.
This approach goes beyond rote memorization—it trains you to think critically and adapt the principles you’ve learned to new scenarios. The process of problem-solving, troubleshooting, and making decisions while building a pipeline helps reinforce neural pathways, strengthening your long-term memory and understanding. By the end of the course, you’ll have built a fully functional pipeline that automatically builds, packages, and tests the Java Spring Boot Application – PetClinic.
Having built the pipeline yourself will prepare you for job interviews in a unique way. You’ll feel confident discussing your hands-on experience and be ready to answer technical questions with real-world examples. Knowing you’ve successfully implemented the pipeline yourself will not only boost your confidence but also help you stand out to potential employers as someone who can independently create and manage DevOps systems. This experience equips you with the skills and mindset to excel in any DevOps role.
What Past Students Are Saying
I liked this course on DevOps, because at work, we are in the process of establishing a DevSecOps and going through this course gave me hands-on experience, and I appreciate that very much.
- Derick
The best part was demystifying several DevOps tools and getting real experience using them. Having hands on access to the tools instead of watching someone else do it was good also.
-Shahram N Vaziri
The best part of the class is the various aspects of DevOps and the CI/CD pipeline. I learned a lot. Thank you!
-Kuowen
Just an outstanding instructor. Keenly knowledgeable in a cutting-edge field, yet available for consultation and approachable across the range of coding experience amongst a wide range of experience in the student group. The course is exceedingly well-organized, and gives great "bang-for the buck".
- Rafa
This class was fantastic for me! It helped to fill in gaps in my experience - I was familiar with some of the tools and practices, but not all, and putting together the final project facilitated my understanding of the mechanisms of a working CI/CD pipeline.
-Todd
I really liked that the course focused on the hands-on learning (labs) evenly with the theoretical. For this topic especially, the hands-on learning is critical and is something that is missing in other courses.
- Rick
Norma is an expert in the field of DevOps. She has a pleasant personality also. Whenever we encountered any problems, she would try to address it.
- Jacob
I really liked the approach the instructor took to help and assist my learning and development throughout the course. The instructor was very friendly and approachable. She has immense amount of knowledge and experience in DevOps and it shows. I will keep in touch with her for further coursework for myself as well as my team. I appreciate her hardwork and great attitude!
- Alex
The best part of the course is all the various aspects of DevOps and the CI/CD pipeline. I learned a lot!
- Rukhsana Matin
I like the hands on experience.
-Vidya Rangaswamy
I like the class materials - format in both videos and step by steps instructions.
-Tyng Kao
What you will learn:
In this course, you will learn techniques, processes, and tools to achieve continuous delivery by connecting and automating all phases of software delivery, including configuration management, automated acceptance testing, dependency management, and the creation and management of testing environments. These techniques are widely applicable to all sorts of different software projects—big, small, highly technical, or short sprints to early value.
Using a practical approach, the course covers the DevOps tools, strategies, and concepts that will allow you to complete your own DevOps Project in your own AWS Environment. You will provision your own EC2 instance, install your own Jenkins Server and create your own Jenkins Pipelines to build, test and deploy jobs as well as integrate Jenkins with other DevOps tools such as Maven, JUnit, GitHub, JMeter, Packer, and Terraform on AWS.
Prerequisites: Knowledge of AWS Environment is desirable but not required. Students should have knowledge of basic System Integration and Test methods, tools, and terms.
Software:
AWS account
PDF Reader / Google Word Access
Open-source software (download links will be provided)
Hardware:
A personal computer terminal
Instructor Teaching & Software Experience:
648 - Number of students taught using this course material in a Virtual Instructor Led Training (VILT) course
5+ Years Teaching at Private Technical Companies and UCSD University
25+ Years of working in the Software Industry
Instructor Education & AWS Certifications
BS in Computer Science (SDSU)
AWS Architecture Certification
AWS Developer Certification
AWS System Integration Certification
AWS DevOps Professional Certification