PY-CI

Implementing CI/CD in a Python project

CD pipeline development on a Python project, deploying to Docker and Kubernetes at the end
Form of participation
Form of training
Length of training
  • 3 day (3×8 Lessons)
  • daily 9:00 - 17:00
Available languages
  • Hungarian
Dates

Training price

374 000 Ft
+ VAT/person
Please choose the date and form of participation!
Would you like a custom made solution, group training on this topic?
Find out more about our customised training services here.

Description

The aim of the training is to introduce the concepts of Continuous Integration, Continuous Delivery. As a practical exercise, a pipeline will be created for a Python project. The source code will be stored on GitHub. During the training we will also build a library and an application. A Docker image will be created for the application and deployed to a Kubernetes environment. The CI tool is Jenkins. The source code quality control is done by SonarQube. The artifacts will be published to Nexus repository.

It is also possible to provide customised training, during which the tools can be exchanged for others.

Outline

  • The related steps of a software development lifecycle and release process: version control, development, build, unit and integration testing, code quality control, release-ready artifact creation, deploy to different environments, etc.
  • Introduction to Continuous Integration and the problems it solves
  • Introduction to Continuous Delivery and the problems it solves
  • Introduction to Continuous Deployment
  • Reasons for the emergence of CI/CD
  • The concept of Pipeline
  • Version Management
  • Library and application
  • Python project structure,setup.cfg,pyproject.toml
  • Dependency management, pip,requirements.txt
  • Running unit tests, test coverage (pytest, coverage)
  • Integration tests, database schema versioning
  • Release, wheel
  • Feature branching
  • Feature flags
  • Semantic version control
  • Docker
  • E2E tests (Postman/Newman) with Docker compose
  • Jenkins architecture, pipeline(Jenkinsfile), Blue Ocean graphical interface, using build number, using Docker
  • Static code analysis (pylint, flake8, mypy) , SonarQube, test coverage, Quality Profile, Quality Gate
  • Nexus Repository usage, deploying Python artifacts (twine) and Docker images, proxy and private repositories
  • Documentation generation
  • Deployment in Kubernetes environment
Outline (PDF)

Prerequisites

Secure operating system and command line use. Participation in development projects.

As some of the course material is in English, a basic level of English at document reading level is required. The training is in Hungarian, based on Hungarian slides.