Categories: Linux administration, Networking, Virtualization
Engineers are required to build, test and deploy applications in a reliable and repeatable manner. During this training, the participant will acquire basic knowledge related to modern solutions for continuous software development and deployment (CI / CD). One of the tools available to facilitate this process is the Jenkins Automation Server. It is a completely free (open source) tool offering powerful capabilities. The rich feature set is constantly growing thanks to a very active community. A very extensive ecosystem of external extensions (plug-in) gives unlimited possibilities of adapting the solution to your own needs.
During the training, the participant will learn various methods of configuration and active use of the Jenkins server. Various ways of testing the application will also be discussed, as well as the processes enabling acceleration of software development. The participant will learn how to implement the solution in her/his current environment and how to integrate it with other solutions and services (such as Git, Maven, AWS, Docker and many more).
Upon completing the course, participants will have the following skills/knowledge:
#reducing the time needed to implement new software features or releases #implementation of CI / CD solutions in the company #knowledge of the risks and problems that accompany software development (and methods of solving those) #knowledge of a wide range of software testing methods #ability to setup, use and manage the Jenkins automation server #understanding alternative solutions for automation environments #knowledge of the various processes and mechanisms related to CI / CD #ability to automate repetitive tasks
Duration
2 days
Agenda
- Introduction and basic concepts
- common problems related to software development
- a brief overview of the available solutions
- comparison of alternative approaches: cloud versus on-premises software
- foundations of the modern software development cycle
- Basic CI / CD solutions
- continuous building / integration
- continuous inspection
- continuous deployment
- Jenkins Automation Server
- installation and configuration of the tool
- architecture and key elements
- jobs and views
- building a typical project
- increasing possibilities through extensions (plug-ins)
- Pipeline as Code using Jenkinsfile
- archiving and backups
- automation of administrative tasks through custom scripting
- Git integration
- integration with external services (GitHub, BitBucket, etc.)
- security – authentication and authorization
- feedback loop and notifications
- Automatic testing
- purpose of automated testing
- unit and integration testing
- functional / acceptance testing
- performance testing
- manual testing of the applications
- integration of testing tools with the Jenkins server
- Automatic testing
- procedures and additional tools
- modes and workflows in version control systems (git)
- managing changes (migrations) in databases
- use of containers (Docker) in CI / CD processes
- Procedures and additional tools
- modes and workflows in version control systems (Git)
- managing changes (migrations) in databases
- containers (Docker) in CI / CD processes
- Alternative cloud CI / CD solutions based on CircleCI
- introduction to CircleCI (setup, flow)
- comparisons to a Jenkins-based solution
Audience and prerequisites
The training is aimed at programmers, architects, team-leaders, software testers and people responsible for creating application environments (such as administrators and DevOps).
The course program assumes basic knowledge of the Linux environment, using the shell (Bash) command line. The participant should also have a basic knowledge of source control (Git). Experience in software development (in any environment: Java / JavaScript / Python / PHP / Ruby / C ++ / .NET, etc) will be a great help for the participant.
Certificates
Course participants receive completion certificates signed by ALX.