Gambaran Umum: Menyebarkan aplikasi web Python di Azure Container Apps

Tutorial ini menunjukkan kepada Anda cara membuat kontainer aplikasi web Python dan menyebarkannya ke Azure Container Apps. Contoh aplikasi web akan dikontainerisasi dan gambar Docker disimpan di Azure Container Registry. Azure Container Apps dikonfigurasi untuk menarik gambar Docker dari Container Registry dan membuat kontainer. Aplikasi sampel tersambung ke Azure Database for PostgreSQL untuk menunjukkan komunikasi antara Container Apps dan sumber daya Azure lainnya.

Ada beberapa opsi untuk membangun dan menyebarkan aplikasi web Python asli cloud dan kontainer di Azure. Tutorial ini mencakup Azure Container Apps. Container Apps baik untuk menjalankan kontainer tujuan umum, terutama untuk aplikasi yang mencakup banyak layanan mikro yang disebarkan dalam kontainer. Dalam tutorial ini, Anda akan membuat satu kontainer. Untuk menyebarkan aplikasi web Python sebagai kontainer ke Azure App Service, lihat Aplikasi web Containerized Python di App Service.

Dalam tutorial ini Anda akan:

Setelah tutorial ini, Anda akan disiapkan untuk Integrasi Berkelanjutan (CI) dan Penyebaran Berkelanjutan (CD) dari aplikasi web Python ke Azure.

Gambaran umum layanan

Diagram layanan yang mendukung tutorial ini menunjukkan bagaimana lingkungan lokal Anda, repositori GitHub, dan layanan Azure digunakan dalam tutorial.

A screenshot of the environments and services used in the Tutorial - Deploy a Python App on Azure Container Apps.

Komponen yang mendukung tutorial ini dan ditunjukkan pada diagram di atas adalah:

  • Azure Container Apps

    • Azure Container Apps memungkinkan Anda menjalankan layanan mikro dan aplikasi dalam kontainer pada platform tanpa server. Platform tanpa server berarti Anda menikmati manfaat menjalankan kontainer dengan konfigurasi minimal. Dengan Azure Container Apps, aplikasi Anda dapat menskalakan secara dinamis berdasarkan karakteristik seperti lalu lintas HTTP, pemrosesan berbasis peristiwa, atau beban CPU atau memori.
    • Container Apps menarik gambar Docker dari Azure Container Registry. Perubahan pada gambar kontainer memicu pembaruan ke kontainer yang disebarkan. Anda juga dapat mengonfigurasi GitHub Actions untuk memicu pembaruan.
  • Azure Container Registry

    • Azure Container Registry memungkinkan Anda bekerja dengan gambar Docker di Azure. Karena Container Registry dekat dengan penyebaran Anda di Azure, Anda memiliki kontrol atas akses, sehingga memungkinkan untuk menggunakan grup dan izin Microsoft Entra Anda untuk mengontrol akses ke gambar Docker.
    • Dalam tutorial ini, sumber registri adalah Azure Container Registry, tetapi Anda juga dapat menggunakan Docker Hub atau registri privat dengan modifikasi kecil.
  • Azure Database untuk PostgreSQL

    • Kode sampel menyimpan data aplikasi dalam database PostgreSQL.
    • Aplikasi kontainer terhubung ke PostgreSQL melalui variabel lingkungan yang dikonfigurasi secara eksplisit atau dengan Azure Service Koneksi or.
  • GitHub

    • Kode sampel untuk tutorial ini ada dalam repositori GitHub yang akan Anda fork dan kloning secara lokal. Untuk menyiapkan alur kerja CI/CD dengan GitHub Actions, Anda memerlukan akun GitHub.
    • Anda masih dapat mengikuti tutorial ini tanpa akun GitHub, bekerja secara lokal atau di Azure Cloud Shell untuk membangun gambar kontainer dari repositori kode sampel.

Revisi dan CI/CD

Untuk membuat perubahan kode dan mendorongnya ke kontainer, Anda membuat gambar Docker baru dengan perubahan Anda. Kemudian, Anda mendorong gambar ke Container Registry dan membuat revisi baru aplikasi kontainer.

Untuk mengotomatiskan proses ini, langkah opsional dalam tutorial menunjukkan kepada Anda cara membangun alur integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) dengan GitHub Actions. Alur secara otomatis membangun dan menyebarkan kode Anda ke Aplikasi Kontainer setiap kali penerapan baru didorong ke repositori GitHub Anda.

Autentikasi dan keamanan

Dalam tutorial ini, Anda akan membuat gambar kontainer Docker langsung di Azure dan menyebarkannya ke Azure Container Apps. Aplikasi Kontainer berjalan dalam konteks lingkungan, yang didukung oleh Azure Virtual Networks (VNet). VNet adalah blok penyusun dasar untuk jaringan privat Anda di Azure. Container Apps memungkinkan Anda mengekspos aplikasi kontainer ke web publik dengan mengaktifkan ingress.

Untuk menyiapkan integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD), Anda akan mengotorisasi Azure Container Apps sebagai Aplikasi OAuth untuk akun GitHub Anda. Sebagai Aplikasi OAuth, Container Apps menulis file alur kerja GitHub Actions ke repositori Anda dengan informasi tentang sumber daya dan pekerjaan Azure untuk memperbaruinya. Alur kerja memperbarui sumber daya Azure menggunakan kredensial perwakilan layanan Microsoft Entra (atau yang sudah ada) dengan akses berbasis peran untuk Aplikasi Kontainer dan nama pengguna dan kata sandi untuk Azure Container Registry. Kredensial disimpan dengan aman di repositori GitHub Anda.

Terakhir, contoh aplikasi web tutorial menyimpan data dalam database PostgreSQL. Kode sampel terhubung ke PostgreSQL melalui string koneksi. Selama konfigurasi Aplikasi Kontainer, tutorial memandul Anda menyiapkan variabel lingkungan yang berisi informasi koneksi. Anda juga dapat menggunakan azure Service Koneksi or untuk mencapai hal yang sama.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda memerlukan:

Aplikasi sampel

Aplikasi sampel Python adalah aplikasi ulasan restoran yang menyimpan restoran dan meninjau data di PostgreSQL. Di akhir tutorial, Anda akan memiliki aplikasi ulasan restoran yang disebarkan dan berjalan di Azure Container Apps yang terlihat seperti cuplikan layar di bawah ini.

A screenshot of the sample app created from the Python containerized web app used in the Tutorial - Containerized Python App on Azure.

Langkah selanjutnya