App Engine - MappingSystem/Tutorial-Buka-Toko GitHub Wiki
Prinsipnya GAE adalah layanan untuk membangun dan menggunakan aplikasi sehingga dapat fokus hanya pada penulisan kode tanpa khawatir mengelola infrastruktur yang mendasarinya.
App Engine secara otomatis berskala tergantung pada lalu lintas aplikasi Anda dan hanya gunakan sumber daya saat kode Anda berjalan.
GAE sedia bahasa populer seperti Java, PHP, Node.js, Python, C #, .Net, Ruby dan Go. Di GAE ini kita akan pilih dengan bahasa Python, untuk kenal lebih jauh Anda bisa simak GAE Python - Tutorial.
- Sebagai Fungsi Web: App Engine menyediakan lingkungan standar, yang memungkinkan Anda menjalankan aplikasi di lingkungan yang aman dan mendistribusikan permintaan di beberapa server, dan mengukur server untuk memenuhi permintaan lalu lintas.
- Sebagai Backend Aplikasi Mobile: Aplikasi Anda berjalan di lingkungannya sendiri yang aman dan andal yang tidak tergantung pada perangkat keras, sistem operasi, atau lokasi fisik server.
GAE memberikan dua jenis layanan yaitu Standard dan Flexible. Kedua lingkungan menyediakan Anda dengan infrastruktur penerapan, penyajian, dan penskalaan App Engine.
Perbedaan utama adalah cara lingkungan menjalankan aplikasi Anda, bagaimana aplikasi Anda mengakses layanan eksternal, bagaimana Anda menjalankan aplikasi Anda secara lokal, dan bagaimana skala aplikasi Anda.
Anda juga dapat merujuk memilih lingkungan untuk ringkasan tingkat tinggi dari perbedaan-perbedaan ini.
Di jenis standard kita bisa jalankan Aplikasi secara kuota harian gratis. Jenis standard terdiri dari dua generasi dimana generasi kedua banyak dilakukan peningkatan layanan.
Selain Python library secara umum kita bisa pasang Aplikasi Saleor dengan pustaka lebih untuk jalankan maupun kembangkan. Namun lingkungan standar tidak support untuk bisa kelola spesifikasnya dengan file Pipfile dan Pipfile.lock.
Untuk memberi Anda lebih banyak opsi, App Engine menawarkan lingkungan yang fleksibel. Saat Anda menggunakan lingkungan yang fleksibel, aplikasi Anda berjalan pada mesin Compute Engine yang dapat dikonfigurasi, tetapi App Engine mengelola lingkungan hosting untuk Anda.
Ini berarti bahwa Anda dapat menggunakan runtimes tambahan, termasuk runtimes khusus, untuk pilihan bahasa pemrograman lainnya. Anda juga dapat memanfaatkan beberapa fleksibilitas yang ditawarkan Compute Engine, seperti memilih dari berbagai Opsi CPU dan memori.
Lingkungan yang fleksibel dimaksudkan untuk melengkapi lingkungan standar. Jika Anda memiliki aplikasi yang sudah berjalan di lingkungan standar, biasanya tidak perlu untuk memigrasi seluruh aplikasi ke lingkungan yang fleksibel.
Alih-alih, identifikasi bagian-bagian aplikasi Anda yang membutuhkan lebih banyak CPU, lebih banyak RAM, perpustakaan atau program pihak ketiga khusus, atau yang perlu melakukan tindakan yang tidak mungkin dilakukan dalam lingkungan standar.
Setelah Anda mengidentifikasi bagian-bagian ini dari aplikasi Anda, buat layanan App Engine kecil yang menggunakan lingkungan fleksibel untuk menangani hanya bagian-bagian itu. Layanan Anda yang ada yang berjalan di lingkungan standar dapat memanggil layanan lain menggunakan HTTP, Cloud Tasks (beta), atau Cloud Pub / Sub. Untuk detilnya bisa Anda disimak disini.
Sebelum memasang aplikasi sebaiknya Anda pelajari terlebih dahulu tentang biaya penagihan (billing). Billing bisa diestimasi via Google Cloud Pricing Calculator sbb:
- Standard
- Tagihan mengikuti tabel GAE Standar
- Batas biaya tagihan harian bisa disetel via Spending Limit
- Free Daily Quota: 28 jam type F1 plus 9 jam type B1 (RAM 128MB)
- Total Estimasi Tagihan Type F2/B2 (RAM 256MB) per bulan: USD 30.44
- Bisa setel Automatic/Manual/Basic: Stop via Idle /
_ah/stop
/idle_timeout
.
- Flexible
- Tagihan mengikuti tabel GAE Flexible
- Batas biaya tagihan harian tidak bisa disetel
- Mesin default 2 vCPUs 3.75 GiB VMs n1-standard-1
- Konfigurasi core/CPUs tidak bisa di pecah via app.yaml
- Total Estimasi Tagihan minimum per bulan: USD 83.42
- Tidak bisa setel stop otomatis. Minimum 1 Instance Running
- GCE
- Tagihan mengikuti tabel Instance Pricing
- Mesin default 1 vCPUs 3.75 GiB n1-standard-1
- Total Estimasi Tagihan minimum per bulan: USD 24.27
- Tersedia Always Free type f1-micro dan 30 GB Standard
- Cara pasang ikuti Tutorial Remote Access MySQL dan Postgres
- Cloud SQL
- Tagihan mengikuti tabel Instance Pricing
- Mesin default 1 vCPUs 3.75 GiB db-n1-standard-1
- Total Estimasi Tagihan minimum per bulan: USD 51.01
- Type shared (db-f1-micro and db-g1-small) tidak tersedia
- Cara pasang dan koneksi ikuti Dokumentasi MySQL dan Postgres
Untuk Aplikasi Saleor opsi penyimpanan dilakukan di Amazon S3. Karena kita pilih pasang di Google Cloud maka dalam proyek ini Google Cloud Storage akan digunakan via Django File Api.
Harga Cloud Storage didasarkan pada komponen-komponen berikut:
- Penyimpanan data: menyimpan data dalam buckets.
- Penggunaan jaringan: mengakses dan memindahkan data dalam buckets.
- Penggunaan operasi: melakukan tindakan dalam Penyimpanan Cloud.
- Biaya pengambilan dan penghapusan awal: hanya berlaku untuk data yang disimpan di kelas Penyimpanan Nearline atau Coldline Storage.
Karena semua opsi bisa dilakukan maka Anda bisa mulai bekerja dengan budget minim sekalipun. Namun tentu saja akan ada konsekuensi terhadap kerentanan layanan.
Actual total biaya harian bisa Anda cek di Status Penagihan via Dasbor Aplikasi. Namun dikarenakan oleh cara penghitungan perkiraannya, jumlah biaya resource individual mungkin tidak sama persis dengan jumlah total yang ditampilkan.
Jika ada hal yang Anda ingin tanyakan tentang hal layanan anada bisa kontak ke Support:
Kasus yang Anda tanyakan akan diberi konfirmasi tentang rekam kasus dan berapa lama waktu yang diperlukan:
Berikutnya akan kita ulas cara memasang Aplikasi Saleor dengan opsi seperti berikut:
- Opsi 1: Pasang Aplikasi di GAE Flexible dengan Opsi Database diterapkan di GCE.
- Opsi 2: Pasang Aplikasi di GAE Standard dengan Opsi Database diterapkan di GCE.
- Opsi 3: Pasang Aplikasi di GAE Flexible dengan Opsi Database diterapkan di Cloud SQL.
- Opsi 4: Pasang Aplikasi di GAE Standard dengan Opsi Database diterapkan di Cloud SQL.
Dilain pihak jika bisnis Anda berkembang besar maka opsi di atas juga akan mengalami kerentanan sehingga perlu ditingkatkan guna melayani beban layanan tinggi dengan cara:
- Pasang aplikasi kedalam Cluster di GKE
- Topang oleh Skala via Memory Redis
- Atur beban dengan Load Balancing