FastAPI Backend Development Bootcamp · Pelajaran

Penerapan dengan Gunicorn dan Uvicorn

Pahami cara menerapkan FastAPI di lingkungan produksi menggunakan Gunicorn sebagai pengelola proses dengan pekerja Uvicorn.

Pelajaran 2 dari 411 langkah

Penerapan dengan Gunicorn dan Uvicorn adalah pelajaran FastAPI Backend Development Bootcamp gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar FastAPI Backend Development Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus FastAPI Backend Development Bootcamp mencakup 4 pelajaran total.

Dari Pengembangan ke Produksi

Saat mengembangkan aplikasi FastAPI, Anda biasanya menjalankannya menggunakan perintah sederhana seperti uvicorn main:app --reload.

Ini cocok untuk pengembangan karena server akan dimulai ulang secara otomatis saat Anda melakukan perubahan. Namun, cara ini tidak cocok untuk lingkungan produksi.

Mengapa? Satu proses tidak tangguh dan tidak dapat diskalakan. Jika proses tersebut mengalami kerusakan, seluruh API Anda berhenti! Produksi memerlukan stabilitas, kinerja, dan toleransi terhadap kegagalan.

Uvicorn: Inti ASGI

FastAPI adalah kerangka kerja ASGI. ASGI merupakan singkatan dari Asynchronous Server Gateway Interface, yaitu standar bagi server web Python untuk berkomunikasi dengan aplikasi web asinkron.

Uvicorn adalah implementasi server ASGI yang sangat cepat. Uvicorn memungkinkan aplikasi FastAPI menangani permintaan secara asinkron dan efisien.

Anggap Uvicorn sebagai mesin yang menggerakkan mobil FastAPI Anda. Uvicorn cepat, tetapi jika berdiri sendiri hanya memiliki satu pengemudi (proses).

Menjalankan Uvicorn Secara Langsung

Berikut aplikasi FastAPI dasar. Untuk menjalankannya langsung dengan Uvicorn, seperti yang mungkin Anda lakukan dalam pengembangan, Anda perlu menggunakan perintah di terminal.

Perintah uvicorn main:app --host 0.0.0.0 --port 8000 memberi tahu Uvicorn untuk menjalankan objek app dari file main.py, sehingga objek tersebut dapat diakses melalui semua antarmuka jaringan pada porta 8000.

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello from FastAPI!"}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

Kekurangan Uvicorn dalam Produksi

Meskipun Uvicorn sangat baik, menjalankannya secara langsung, terutama dengan --reload, tidak ideal untuk produksi karena:

  • Satu Proses: Uvicorn biasanya berjalan sebagai satu proses, sehingga hanya dapat menggunakan satu inti CPU.
  • Tanpa Pengelolaan Pekerja: Jika proses tersebut mengalami kerusakan, API Anda berhenti sepenuhnya.
  • Tanpa Pengawasan Proses: Uvicorn tidak memulai ulang pekerja yang mengalami kerusakan secara otomatis atau mengelola beberapa instans untuk penyeimbangan beban.

Untuk produksi, kita memerlukan sesuatu yang dapat mengelola pekerja Uvicorn.

Gunicorn: Pengelola yang Tangguh

Perkenalkan Gunicorn (Green Unicorn)! Gunicorn adalah server HTTP WSGI yang siap digunakan dalam produksi dan juga dapat mengelola aplikasi ASGI, seperti FastAPI, dengan menggunakan kelas pekerja tertentu.

Tugas utamanya adalah bertindak sebagai pengelola proses. Gunicorn membuat dan mengawasi beberapa proses pekerja, lalu membagi permintaan yang masuk di antara proses-proses tersebut.

Anggap Gunicorn sebagai kepala kru pit yang memastikan semua mesin Uvicorn Anda berjalan lancar dan menggantinya jika salah satunya gagal.

Duo Andalan: Gunicorn & Uvicorn

Cara yang direkomendasikan untuk menerapkan FastAPI di lingkungan produksi adalah menggabungkan Gunicorn dengan pekerja Uvicorn.

Berikut cara kerjanya:

  • Gunicorn (Proses Utama): Mendengarkan permintaan masuk dan mendistribusikannya. Gunicorn juga mengawasi para pekerjanya.
  • Uvicorn (Proses Pekerja): Gunicorn membuat beberapa instans Uvicorn. Setiap pekerja Uvicorn menjalankan aplikasi FastAPI Anda.

Konfigurasi ini memberikan kinerja yang lebih baik, toleransi terhadap kesalahan, dan pemanfaatan sumber daya yang efisien.

Gunicorn & Uvicorn Beraksi

Untuk menjalankan aplikasi FastAPI yang sama menggunakan Gunicorn dengan pekerja Uvicorn, Anda dapat menggunakan perintah seperti berikut. Konfigurasi ini jauh lebih tangguh untuk lingkungan produksi.

Di sini, -w 4 berarti 4 proses pekerja, sedangkan -k uvicorn.workers.UvicornWorker menentukan bahwa Gunicorn harus menggunakan pekerja Uvicorn.

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello from FastAPI!"}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

Mengoptimalkan Jumlah Pekerja

Menentukan jumlah pekerja Gunicorn yang akan digunakan sangat penting bagi kinerja. Pedoman umum untuk aplikasi yang terikat CPU adalah (2 * CPU_CORES) + 1.

Misalnya, pada server dengan 4 inti CPU, Anda dapat memulai dengan (2 * 4) + 1 = 9 pekerja. Dengan demikian, sebagian pekerja dapat menangani operasi I/O sementara pekerja lainnya memproses tugas yang intensif CPU.

Selalu pantau penggunaan sumber daya server Anda (CPU, RAM) untuk menyempurnakan jumlah ini sesuai beban aplikasi Anda.

Mengamankan Konfigurasi Anda

Di lingkungan produksi, jangan pernah menulis informasi sensitif seperti kredensial basis data atau kunci API secara langsung di dalam kode Anda.

Sebagai gantinya, gunakan variabel lingkungan. Dengan cara ini, rahasia Anda tidak tercantum dalam basis kode dan aplikasi Anda menjadi lebih portabel serta aman.

FastAPI dan Pydantic (yang digunakan FastAPI) memiliki dukungan yang sangat baik untuk memuat pengaturan dari variabel lingkungan, sering kali melalui BaseSettings milik Pydantic.

Pemeriksaan Penerapan

Mari uji pemahaman Anda tentang peran Gunicorn dan Uvicorn dalam penerapan FastAPI di lingkungan produksi.

Rangkuman: Penerapan yang Tangguh

Anda telah mempelajari cara menerapkan aplikasi FastAPI untuk lingkungan produksi menggunakan kombinasi Gunicorn dan Uvicorn yang andal.

  • Uvicorn adalah server ASGI yang menjalankan aplikasi FastAPI Anda.
  • Gunicorn adalah pengelola proses yang mengawasi beberapa pekerja Uvicorn.
  • Konfigurasi ini memberikan skalabilitas, toleransi terhadap kesalahan, dan pemanfaatan sumber daya yang lebih baik.

Ingatlah untuk mengoptimalkan jumlah pekerja dan selalu menggunakan variabel lingkungan untuk konfigurasi sensitif. Selanjutnya, Anda dapat mempelajari strategi penerapan di cloud!

Gratis untuk memulai

Belajar FastAPI Backend Development Bootcamp dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
21
Pelajaran
84

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penerapan dengan Gunicorn dan Uvicorn” gratis?

Ya — teks lengkap “Penerapan dengan Gunicorn dan Uvicorn” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus FastAPI Backend Development Bootcamp, upgrade ke CoddyKit PRO. Kursus FastAPI Backend Development Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Penerapan dengan Gunicorn dan Uvicorn”?

Pahami cara menerapkan FastAPI di lingkungan produksi menggunakan Gunicorn sebagai pengelola proses dengan pekerja Uvicorn. Kamu berlatih FastAPI Backend Development Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai FastAPI Backend Development Bootcamp?

Tidak diperlukan pengalaman sebelumnya. FastAPI Backend Development Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Penerapan dengan Gunicorn dan Uvicorn” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran FastAPI Backend Development Bootcamp ini?

Ya. Setiap pelajaran FastAPI Backend Development Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membuat Aplikasi FastAPI Menjadi Kontainer Docker
  2. Penerapan dengan Gunicorn dan Uvicorn
  3. Strategi Penerapan Cloud
  4. Mengelola Variabel Lingkungan dan Rahasia
← Kembali ke FastAPI Backend Development Bootcamp