Python DevOps – Code to Deploy
Atul Bagga (~atul19) |
Python is a productive language, and with its simplicity and elegant syntax it has become one of the most popular language for quickly getting started. According to data on PYPL, Python ranks first in the list of most popular language (Programming Language Index is created by analyzing how often language tutorials are searched on Google).
It is one thing to get started and another to maintain the code with multiple people working on it. As more people join the project the need for DevOps is a must and I am going to talk about how to use the commonly available python libraries and CI/CD solutions to create a pipeline, including automated tests in a CI setup and finally being able to deploy the code using 'Kubernetes' which is a buzzword in tech these days.
My talk will be based on the following topics -
- What is DevOps and Continuous Integration?
- How CI fits into DevOps?
- Tasks in a Python Project CI pipeline and their importance. Here I will touch on different libraries in Python which can be used in these tasks.
- Linting - Why linting is important? Which tools to use and why?
- Tests - Unittest and Pytest
- Platform coverage - Covering major OS platforms in build and tests and why there is a need for it?
- Python version coverage - Why to test your application with different python versions and which ones to cover?
- Demo/Code walkthrough the CI/CD pipeline on two major CI/CD providers in the market like TravisCI and Azure Pipelines.
- Basic programming experience in any language.
- Knowledge of Python is good to have but not compulsory since the concepts can be applied as is on any other language as well.
The talk is based on my learnings in maintaining the open source repository on GitHub. It is a CLI tool written in python to make it easier to automate your DevOps flows.
I am a software engineer working at Microsoft, Hyderabad. I have 8 years of experience working on preboot, encryption, security, Azure cloud. Currently I work with Azure DevOps team where I develop and maintain a DevOps CLI tool in an open source GitHub repository azure-devops-cli-extension.
The CLI based extension tool written in python got me started with Python and DevOps and I feel equally excited to talk about either.