Setting up Productive Dev-Instance using Docker-Compose
Leela Vadlamudi (~leela) |
Modern application development has become complex with many moving parts. Typical applications contains lot of services to manage like Database, caching, offline tasks, storage(ex:S3), backend services, frontend etc. All of these need to be up and running at the same time for the developers to do their job. Setting up the development instance itself becoming complex and time consuming process.
We will see how we can simplify this using Docker Compose . We will use a sample Python web application that recognises human faces from the digital image using Python OpenCV library. for this we use S3 to store uploaded images, RQ to process the images in the background and FastAPI for web API's. We will see how we can easily manage such a fairly complicated application using docker-compose.
When docker compose was introduced into our projects, everyone in the team including tester, data scientists could be able to run their own application instance on their workspace with hardly any help from developers.
This setup can make on-boarding developers productive in less than an hour, where usually it takes few days. Testers can spin up their instances in almost no time and can start their testing quickly.
- Modern web development and its complexities (3 Mins)
- Why is it complex
- How it affects productivity
- Understand with a Python Web Application - An example (5 Mins)
- Explain the application and services involved in it
- How typical development instance looks like
- Inconsistencies and issues arises
- Transformation with Docker (10 Mins)
- How to configure Docker
- How to work with Docker application
- What we gain with Docker
- Dive into Docker and Docker Compose (4 Mins)
- Tips and Tricks to improvise (3 Mins)
- Q&A (5Mins)
- Basic understanding of Python and Web development.
- Knowledge of web frameworks is useful
Leela comes with over 10 years experience in Python working for small startups to large businesses building web applications to implementing high frequency crypto trading. Most recently she was building simplified and scalable warehouse application for a startup. She is currently working as a Part time developer at Algoshelf. She worked in GainCredit, Churndata, PowerToFly before.