Deployment Aplikasi Python

Sebelum melakukan deployment aplikasi python, ada beberapa hal yang harus anda siapkan, yaitu:

  • Akun Awanio
  • ssh public key yang sudah didaftarkan di halaman dahsboard Awanio
  • git url endpoint yang akan digunakan untuk push code. Formatnya adalah git@awan.io:TEAM/APP_NAME.git
  • file awan.yml yang diletakan pada top folder aplikasi

Setelah semua ini terpenuhi, berikutnya anda bisa memulai pembuatan aplikasi berdasarkan dari starter-kit yang bisa di-clone dari https://github.com/awanio/python-starter-kit

Isi file awan.yml yang harus anda isikan adalah:

version: '1.0'
web:
  type: python
  version: 3
  run: gunicorn --log-level debug --access-logfile - -b :$PORT --workers=2 my_web:app

Pada konfigurasi ini, aplikasi web python akan menggunakan gunicorn sebagai runtime. Untuk itu anda harus mendeklarasikan gunicorn di dalam file requirements.txt seperti contoh berikut:

gunicorn
whitenoise

Package whitenoise dibutuhkan berbarengan dengan gunicorn sebagai middleware untuk serve static content.

Contoh file aplikasi bisa dilihat pada file my_web.py

Contoh lainnya anda juga bisa menggunakan Twisted sebagai web runtime. Contoh file awan.yml untuk konfigurasi ini adalah:

version: '1.0'
web:
  type: python
  version: 3
  run: python3 my_twisted.py

Dalam kondisi ini, anda harus mendeklarasikan twisted di dalam file requirements.txt

Twisted>=17.9.0rc1

Adakalanya aplikasi kita memerlukan sebuah worker proses yang dijalankan sebelum atau berbarengan dengan aplikasi web, contohnya pada aplikasi Django yang memerlukan migration dan process_tasks. Maka contoh file awan.yml-nya adalah:

version: '1.0'
web:
  type: python
  version: 3
  run: python src/manage.py migrate & python src/manage.py process_tasks & gunicorn --log-level debug --access-logfile - -b 0.0.0.0:$PORT --workers=2

Setelah aplikasi siap, tambahkan git remote Awanio ke dalam project:

git remote add awan git@awan.io:TEAM/APP_NAME.git

Setelah aplikasi siap, maka silahkan commit dan push ke git server Awanio

git push awan master