Hi @Pham Hoang Tuan ,
Providing a design for your three components sort of goes beyond the scope of Q&A platform. There are various approaches towards achieving image processing. I'm not well versed in Python, so I don't know which libraries, if any, that are best suited to achieve goals.
With regards to deploying to Azure however, I would advise reviewing the following guides. Quickstart: Deploy a Python (Django or Flask) web app to Azure App Service is a simple how-to to get started writing a Python app and getting it deployed to Azure; very basic but informative if you're just getting started. Configure a Linux Python app for Azure App Service is certainly important for ensuring any dependencies your app relies upon gets installed. This also demonstrates how to set your runtime, setting up the app entry point, and configuring any post build steps you may need. If you run into issues, there's a section on enabling and accessing logs to investigate the errors.
Mount Azure Storage as a local share in App Service is as a way to store the images you're processing to an Azure Storage account rather than having it stored within your App Service. I would recommend this route if intend to store data for long term use and to avoid any disk quota issues. If the processing is temporary i.e., user uploads an image, app processes it, and then show results, then this really isn't necessary. Continuous deployment to Azure App Service is a guide to configure continuous deployment options which I highly advise. With continuous deployment, you can leverage staging environments to rapidly create and test features before swapping them to production.
That's just a broad overview on how to get going with Python on Azure. However, if you have any specific questions, please feel free to comment down below.