Integrating Jenkins with Docker provides you with a robust CICD method for building and packaging runnable containers. Building and deploying your docker containers is only half the challenge. Once they are in production, you will want to monitor and assess their operational performance. Splunk can provide you with this capability, through its support for enterprise-grade monitoring, logging, and diagnostics collection.
In this lab, you will launch a Jenkins and Splunk CICD and monitoring environment using Docker containers on a provided EC2 instance. You will then configure a Jenkins build pipeline to build, compile, and package a sample Java servlet web application into a runnable Docker image. The Jenkins build process will create the Docker image using a Dockerfile. The build process integrates Splunk logging into the Docker image, by installing the Splunk Forwarding Agent at build time. At runtime, the docker container will then have the ability to publish runtime logging information into the Splunk service.
This lab is aimed at DevOps and CICD practitioners, and, in particular, build and release engineers interested in managing and configuring Jenkins together with both Docker and Splunk for enterprise-grade monitoring capabilities.
Upon completion of this lab, you will be able to:
You should:
This lab will start with the following AWS resources being provisioned automatically for you:
To achieve the Lab end state, you will be walked through the process of:
August 31st, 2023 - Updated instructions and screenshots to reflect latest Jenkins UI
February 9th, 2023 - Updated lab to output the URL needed to access Jenkins and Splunk
October 3rd, 2022 - Updated the instructions and screenshots to reflect the latest UI and updated lab to use EC2 Instance Connect
January 3rd, 2022 - Updated screenshots and instructions to reflect the latest Jenkins UI
Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.
Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).