One of the most crucial procedures of every organization in need for DevOps adoption is the production pipeline. Specifically, most critical part is the integration of software artifacts into a single product, using a stable, clear and concise process. Testing, installation and deployment against a multitude of environments (development, QA, production etc.) are additional requirements which increase the complexity of the integration problem.
Continuous Integration software tools give us the ability to achieve these goals and ultimately solve the problem for us. It is needless to mention that someone has to know all the aspects of the problem before jumping into a CI installation.
Jenkins is one of the most well-known open source CI software tools in the market and it is used by thousands of companies and millions of developers throughout the globe. Jenkins is the de facto tool someone must have seen before implementing any kind of Continuous Integration pipeline.
During this code.learn program, we will use Jenkins to explore all aspects of a Continuous Integration design from bottom all way to the top. We will start with the design of a workflow on paper and gradually, iteratively we will add more tools and ideas until it becomes a complete Continuous Delivery solution. Participants will formulate teams in which they will try in a few days to design, explore and implement a full CI solution.
- This specific Code.Learn program lasts 2 weeks (2 Fridays & 2 Saturdays) with 24 hours of lectures and hands-on exercises.
Key Objectives – Curriculum
This program will present, explore and adequately cover with extended hands-on sessions & real-life case studies the following areas:
- Continuous Integration – Continuous Delivery
- CI/CD concepts and goals
- Continuous Integration/Delivery design plan
- Design a CI/CD workflow on paper (workshop – 1st step)
- Jenkins setup and deploy concepts. Plugins, Authentication, High Availability
- Interaction of Jenkins with SCM, Infrastructure as Code, Build and Artifact Repositories tools (eg. Git, Terraform, Ansible and Artifactory)
- Create a range of artifacts using above tools (workshop – 2nd step)
- Containers in a nutshell. Core concepts and advantages of use
- Jenkins and Containers
- Set up docker to deliver containers as artifacts (workshop – 3rd step)
- Jenkins Pipelines
- Jenkins Pipelines explained
- Create a full CI/CD workflow with Jenkins pipelines and Docker containers
- Transfer Design on actual VMs (workshop – 4th step)
- Integrate Tests (workshop – 5th step)
- Continuous Deployment
- Investigation for a Continuous Deployment solution
- Design a full Continuous Deployment solution using previous steps (workshop – 6th step)
- Discussion and Benefits
- Multiple development languages support
- H-A, Monitoring, Backups
- Transition from traditional workflows
- Key points and pain points
- Open Discussion and workshop
- Case Studies
The lessons can be carried out:
- Inside a physical classroom with an instructor,
- In an online environment as a virtual classroom, with live connection with the instructor through video conferencing; or lastly,
- A combination of both physical and online.
The method of teaching will depend on the current conditions, and also on the participants’ preferences.
Regarding online, the instructor provides the taught material through screen sharing, live broadcast, or by working on the cloud where attendees can see and interact with everything in real-time. Attendees themselves can seamlessly and actively participate and ask questions, as they would in a physical classroom. Additionally, they can collaborate in team projects and deliver assignments and hands-on projects that the instructor can see and provide feedback easily and without delays.
System administrators, devops engineers, computer scientists, software engineers and developers that want to boost their career are welcome to participate to this code.learn program and unlock the full potentiality of the topics taught by upskilling their future career.