
This video will give you an overview about the course.
To work with any technology, it is crucial and mandatory to have a detailed understanding of the concepts and terminologies associated with it.
Jenkins is a release engineering tool and there are few terminologies which need to be clarified with respect to Jenkins and release engineering.
To carry out even the most basic development support tasks with Jenkins, some essential tools need to be prepared such as softwares, repositories, storage and others.
To use Jenkins, an installation is required first. Jenkins is not bound to a specific method and can be installed using different procedures and on different infrastructure platforms.
After installation, Jenkins is accessible in form which is not very user-friendly. Some configurations and steps are needed to make it available for first time use and to users.
Preparation, installation and configuration of Jenkins is a long process and even more tedious if needed to perform repeatedly for different environments and in case of failures. It needs automation.
The primary function of Jenkins is to let users configure jobs and run builds from them. Although they can be done from the user interface, for more large and complex deployments, they need to be done from the command line or by using scripts.
With the growing number of projects in a Jenkins deployment, it is crucial to make sure that it withstands failures without any downtime. A highly available infrastructure tries to achieve this objective.
Jenkins data, be it build history, information or configuration files, it is a good production practice to back them up so that they can be restored in event of a failure.
Without proper monitoring of the Jenkins infrastructure and its various components, it would be impossible to know about arising problems and fix them in time.
With bigger deployments, comes bigger risk of data and permission abuse including accidental actions causing widespread damage. The only way to check these situations is by implementing correct security measures and role-based access control.
The Jenkins user interface is quite good and very helpful in performing tasks. However, for the more automation savvy people, it is just not enough. They need solutions which can be scripted to achieve the same objectives but much faster.
No matter how much we scale a Jenkins master vertically, it simply would not be enough to support an ever-growing deployment. At some point of time, a distributed approach will need to be adopted.
An efficient way to run a Jenkins deployment is to offload build tasks to slave nodes while keeping the administrative tasks to the master. The most traditional way of running slaves is by adding dedicated Jenkins slave nodes.
With cloud platforms running a huge part of the global infrastructure, testing is another function we can add to it. Dynamic EC2 instances are an excellent and cost-effective way of running Jenkins slaves.
Containers are the newest revolution to take over the infrastructure space. With launch times of few seconds and flexible architecture, they are a great choice for running disposable Jenkins slaves.
Although standalone containers are quite good for running Jenkins slaves, an even more efficient workflow can be achieved by using container orchestration and clustering platform such as Kubernetes.
To achieve continuous deployment, one of the most important methods of release engineering, an efficient code deployment design is required. With the numerous tools available for deployments, it is crucial that we choose the right one for the complexity and size involved.
For complex integration and release scenarios, jobs are not just enough. Jobs need to work together to create a sequenced workflow called pipeline. In the new model, Jenkins pipelines are a game changer with all features of pipelines integrated in itself.
The new pipeline model of Jenkins has its core in the Jenkisfile. It is the source of all configurations related to the pipeline and involves a domain specific language with its own syntax. With detailed documentation, it needs some exploring.
With knowledge of the Jenkinsfile syntax, the next step is to create the pipelines following the different methods available. Also automating the creation and update of pipeline jobs are necessary.
Almost all projects have multiple branches for efficient integration practices and the general pipeline is only able to handle one branch. Multi-branch pipelines are essential for automating projects involving multiple branches.
Although Jenkins has been solving release engineering problems for long, for some users, the learning curve is a bit high. With Blue Ocean, even the least technical users are able to view and use Jenkins pipelines with ease.
To achieve continuous integration, efficient branching and code commits are not enough. There needs to be a process to automatically trigger and run pipelines to process builds continuously. Github support is essential for this process.
In modern day software development, its not just enough to write code. Efficient and optimized coding practices are essential and continuous code inspection and analysis becomes an integral part of the process.
With the numerous programming languages available in the software ecosystem, there arises the need for packaging of each type of software. It is critical that the software is packaged efficiently and made available to end users for use.
With continuous integration, problems are identified readily and can be fixed early in the process. However, problems can differ in complexities and need efficient tracking throughout the process of fixing. JIRA integrates in an excellent manner and achieves the same objective.
With large environments and numerous projects and pipelines, identifying problems and getting readily notified about them becomes essential. In addition to emails, instant notifications come handy when concerned people need to be updated.
This video will give you an overview about the course.
This video describes what Jenkins is and how it used for.
This video shows how to install Jenkins on Windows.
This video shows how to install Jenkins on macOS.
This video shows how to install Jenkins on Linux.
This video shows how to install Jenkins with Docker.
This video gives an overview of the Jenkins dashboard and admin console and introduces key concepts and terminology.
This video explores configuration options in a job.
This video is a step-by-step guide to create your first Jenkins job.
This video shows how to extend the job created in video 2.3.
This video explains what Continuous Integration, Continuous Delivery, and Continuous Deployment are, how they compare, and which benefits they bring
This video shows the CI workflow, introduces the Maven build tool, and implements the first phase of the CI workflow.
This video explains the different types of tests and implements the testing part of the CI workflow.
This video shows the different types of notifications, introduces the information radiator and extreme feedback, and implements the notification part of the CI workflow.
This video explains what Pipeline as Code means, how pipelines are implemented in Jenkins 2, and what are the benefits of using Pipelines.
This video explains what a Jenkinsfile is, shows the differences between declarative and scripted pipelines, and creates and runs simple pipeline jobs.
This video gives an overview of the CD pipeline, shows the web application deployed via the CD pipeline, and introduces Docker.
This video shows the Dockerfile used by the CD pipeline, the Python code of the web application, and Docker commands to build an image and run a container.
This video shows how to create a pipeline job in Jenkinsfile and how to create a Jenkinsfile with steps to build a web application and de-ploy it to a development environment.
This video adds unit tests for the Python code, deploys the application to a staging environment, and tests the deployments with user acceptance tests.
This video completes the CD pipeline with a step to manually approve the deployment and deploy to the live environment and shows additional resources to write pipeline scripts.
This video explains what is Blue Ocean, which advantages it brings, and its main features.
This video installs Blue Ocean and shows how to access it.
This video shows how to create, configure, and run a multibranch pipeline using Blue Ocean’s visual editor.
This video explains what a pull request is and shows how to create and debug a pull request in a multibranch pipeline.
This video gives an introduction to AWS, explains the master/slave architecture on Jenkins, and illustrates the outcome of this section’s practical part.
This video introduces AWS resources and jargon and shows how to create a VPC and security group and launch an EC2 instance.
This video shows how to assign an Elastic IP address to an EC2 instance, access an EC2 instance via ssh, and install Jenkins on AWS.
This video introduces AWS concepts like IAM policy, IAM user, and AMI, and shows how to add AWS credentials to Jenkins and install and configure the EC2 plugin.
This video shows how to configure and run a job on a slave node.
This video provides an overview of the entire course.
In this video, we will prepare our demo setup and machine.
This video will help you learn how to AWS works and what services we are going to use.
In this video, you will see what how Ansible can be used on AWS and how they can help.
This video will show how easy it is to use Beanstalk to setup production ready application.
In this video, you will see what how slaves can be used on AWS and how they can help.
In this video, you will learn how Kubernetes works.
This video explores how Deployment takes place on Kubernetes and how we can use it within Jenkins.
In this video, you will see how slaves can be used on Kubernetes and how they can help.
In this video, you will see how easy it is to move from private environment to public one.
This video explains Jenkins X and why it’s useful.
In this video, we will prepare our demo setup and machine.
This video explores how to GitFlow works and how it can be used in Jenkins.
In this video, you will see how multiple branches can be used with the Jenkins Pipeline plugin.
In this video, you will learn how important it use to think of security.
Jenkins is one of the most popular Continuous Integration servers on the market today. It is designed to maintain, secure, communicate, test, build, and improve the software development process. Setting up Jenkins and running build jobs is not enough for a production infrastructure.
For optimal performance and results, architecting, designing, and implementing a production-grade Jenkins deployment is essential. In agile development practices, developers need to integrate their work to fix bugs or to create a new feature or functionality. Jenkins is used for continuous integration, helping to enforce the principles of agile development.
This comprehensive 3-in-1 course is a step-by-step approach to get you up-and-running with Jenkins and then quickly moves on to implement a scalable and production-grade infrastructure. Implement a scalable, stable, and robust production grade infrastructure. Combine multiple services to create optimal code delivery workflows and pipelines. Discover the process of using Jenkins to build, test, and package Java applications. Create a Git repository and Docker images using a local development environment, and other DevOps configuration tools. Get equipped to deploy a modern Jenkins System by provisioning slave nodes to the cloud with Ansible and Docker.
Contents and Overview
This training program includes 3 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Practical Jenkins, covers automation of Jenkins deployment in no time!. Get up and running with Jenkins and deliver an optimal Jenkins deployment. Explore and configure features such as high availability, security, monitoring, and backing up/restoring data, which are basically all of the things you need to implementing a scalable and production grade infrastructure. Learn how to implement distributed builds, automate build pipelines, and integrate your Jenkins deployment with external services, thus showing you how to increase your team's productivity with pipeline as a code building advanced pipelines faster and easier. By the end of this video course, you will be able to automate, implement, secure, and manage your Jenkins deployment in no time.
The second course, Hands-On Continuous Integration and Automation with Jenkins, covers building, testing, and packaging applications with Jenkins in this hands-on video course supported by practical real-world examples. Delve into the installation of the required software dependencies and libraries and demonstrates the workflow you'll need to follow to perform continuous integration for a sample application. Learn how to integrate code repositories and build tools in order to build code pipelines to implement both continuous integration and continuous delivery. Finally, you will also learn to automate deployment to a cloud platform such as AWS.
The third course, Deploying Jenkins to the Cloud with DevOps Tools, covers professional practices, techniques, and solutions for using Jenkins in cloud environments. Explore different AWS services and use them for Continuous Integration. Customize and configure your Jenkins master automatically on boot-up with Groovy code in order to achieve the build process we want. This includes adding secrets to the credentials store, installing and configuring plugins, and setting some basic values within the Jenkins main configuration. Once we are able to interact with Gitlab, we will then configure a way to run Jenkins nodes on Kubernetes so that we can actually build our software. When everything looks good in our development environment, we will then see what an almost production-ready CI system in the cloud looks like, especially with regard to security aspects.
By the end of the course, you’ll implement and manage your production - grade Jenkins deployments to build, test, and package applications, supported by practical real-world examples.
About the Authors