Containerizing Your Application is the solution
Shekhar Prasad Rajak (~Shekharrajak) |
What's a good way to Set up many development version(s) ? Developers need consistent isolated development environment, running exact same container(s) as what runs in production , automated test tools, package, ship & deliver. Let's touch features of docker to make it run for Python programs/web apps.
- First 5 minutes, I'll be talking about current developers need and present solution.
- Next 5 minutes, what is docker and how it can solve these problems.
- Next 10 minutes, I'll be demonstrating, how I use docker for in my Python development tasks (Python library, Python web app).
- After 20 minutes I will have delivered the enough knowledge for the docker, and next 5 minutes I will let the audience know about the some advance features in docker that they can learn from various resources, to get the maximum power of docker. Q/A along with this.
Basic terms of docker
- Docker Container
- Docker Image
- Docker Compose
- Docker Repository and Docker Hub
- Docker Daemon, Docker Client and Docker Engine
- Docker Swarm
- Docker Machine
Docker for Developers
- Reproducibility and Developer teams
- Environment Management
- Continuous Integration
Creating Custom Images and Containerizing Your Application
Sample Dockerfile to build an image of an small python program. We will run the image and play with this container. Using Docker Compose in development adds an important constraint: your services are not on the same machine anymore.
Learn how you can see or capture the logs of the container(s) and services.
Docker for Python developers
In this section I will demonstrate, how you can setup a development version of real world software. I will setup the development version. After creating an image and running it in a container, I will show volume sharing techniques as well. Audience will understand how I have created an consistent isolated container, integrated CI which is easy and fast to ship.
Docker for Python Web applications
Django and Flask web app will be run under the docker container, different environments in one system. We will learn how to use microservices and advantages of making services using docker-compose.
Advance and new features of docker
Now audience have understood the docker and they can learn many more powerful features of docker. I will share some good resources and let them know about docker swarm, docker machine, Dealing with Logs, etc .
Prior experience with docker is not a necessity but having some exposure to Python development, version control system, Unix System is recommended.
At the starting talk basic developers need, basic docker features will be covered. So starting point, anyone (entry/intermediate) can understand the docker concepts. Slowly moving to docker for developers, expert Python developers will get ideas to use docker in their development system and how they can solve most of the development conflicts because of using having multiple environments.
A guy who loves challenging stuffs and learning new technologies along with the 'Time'. Shekhar has learnt C, C++, Java in his college time and worked as student developer in Google Summer of Code (GSoC) 2016 (under SymPy organisation - Python language) and 2017 (under SciRuby organisation - Ruby language), also contributed to open source projects like bundler gem. Shekhar is mentoring 3 Projects in GSoC'18. Currently he is working in Benguluru India as Software developer (Full Stack Developer). Shekhar loves playing chess, cricket , watching and reading about ancient India, spirituality and travelling. Shekhar has given workshop in PyCon India 2017 Delhi and lightening talk in RubyConf India 2018 Bengalore .