GCP-Cloud Bucket
GCP-Cloud Bucket
APP ENGINE
Kita telah membahas tentang dua produk GCP yang menyediakan infrastruktur compute
untuk aplikasi: compute engine dan Kubernetes engine. Persamaan dari dua produk ini adalah
Anda memilih infrastruktur tempat aplikasi Anda dijalankan. Menurut mesin virtual untuk
compute engine dan container untuk Kubernetes engine. Tapi, bagaimana jika Anda tidak
berfokus ke infrastruktur sama sekali? Anda hanya ingin berfokus ke kode. Itulah fungsi App
Engine. Saya akan membahasnya lebih lanjut di modul ini. Mari mulai dengan PaaS. Ingatlah
bahwa PaaS adalah platform as a service. Platform App Engine mengelola insfrastruktur
hardware dan jaringan yang dibutuhkan untuk menjalankan kode Anda. Untuk menerapkan
aplikasi di App Engine, Cukup serahkan kode Anda ke engineer aplikasi, dan layanan App
Engine akan menangani sisanya. App Engine menyediakan layanan bawaan yang banyak
dibutuhkan oleh aplikasi web. Tidak ada database SQL, penyimpanan cache dalam memori, load
balancing, health check, logging, dan cara untuk mengautentikasi pengguna. Anda membuat
kode aplikasi Anda untuk memanfaatkan layanan ini dan App Engine menyediakannya. App
Engine akan otomatis menyesuaikan skala aplikasi sebagai tanggapan dari banyaknya traffic
yang diterima. Jadi Anda hanya membayar resource yang Anda gunakan. Tidak ada server yang
harus Anda sediakan atau pertahankan. Itulah mengapa App Engine cocok untuk aplikasi ketika
beban kerjanya sangat beragam atau tidak bisa diprediksi seperti aplikasi web dan backend
seluler. App Engine menawarkan dua lingkungan, standar dan fleksibel. Saya akan menjelaskan
tiap lingkungan ini dan cara memilihnya.
Dari dua Lingkungan App Engine, Standar adalah yang lebih sederhana. Standar
menawarkan pengalaman penerapan lebih sederhana daripada lingkungan Fleksibel dan
penskalaan otomatis yang lebih detail. Layaknya Lingkungan Standar, lingkungan ini juga
menawarkan kuota harian gratis untuk penggunaan beberapa layanan. Namun keistimewaan
Lingkungan Standar, yakni aplikasi dengan pemanfaatan rendah dapat beroperasi secara gratis.
Google menyediakan kit pengembangan software App Engine dalam beberapa bahasa. Sehingga
Anda dapat menguji aplikasi Anda secara lokal sebelum menguploadnya ke layanan App Engine
sebenarnya. SDK juga menyediakan perintah sederhana untuk penerapan. Mungkin Anda
penasaran, kode saya berjalan di mana? Maksud saya, apa yang dimaksud biner yang dapat
dijalanakan? Istilah App Engine untuk jenis biner ini adalah runtime. Dalam Lingkungan Standar
App Engine, Anda menggunakan runtime yang disediakan Google. Kita akan melihat pilihan
Anda sesaat lagi. Lingkungan Standar App Engine menyediakan runtime untuk versi khusus
Java, Python, PHP, dan Go. Runtime juga memiliki library yang mendukung App Engine API.
Dan untuk banyak aplikasi, mungkin Anda hanya memerlukan runtime dan library Lingkungan
Standar. Jika Anda ingin melakukan coding dalam bahasa lain, Lingkungan Standar bukan
pilihan tepat untuk Anda. Anda bisa memilih Lingkungan Fleksibel. Lingkungan Standar juga
menerapkan batasan terhadap kode Anda dengan menjalankannya di Sandbox. Ini adalah
konstruksi software yang tidak bergantung pada hardware, sistem operasi, atau lokasi fisik server
tempatnya beroperasi. Sandbox adalah salah satu alasan yang membuat Lingkungan Standar App
Engine dapat menyesuaikan skala dan mengelola aplikasi Anda dengan sangat detail. Layaknya
semua Sandbox, Sandbox ini menerapkan beberapa batasan. Misalnya, aplikasi Anda tidak dapat
menulis ke sistem file lokal. Aplikasi harus menulis ke layanan database jika ingin membuat data
bersifat tetap. Semua permintaan yang diterima aplikasi Anda juga memiliki waktu tunggu 60
detik, dan Anda tidak dapat menginstal software pihak ketiga arbitrer. Jika batasan ini tidak
cocok untuk Anda, Anda dapat beralih ke Lingkungan Fleksibel. Berikut diagram cara
penggunaan Lingkungan Standar App Engine.
Anda akan mengembangkan dan menjalankan versi uji coba aplikasi Anda secara lokal
dengan SDK App Engine. Lalu, jika sudah siap, Anda dapat menggunakan SDK untuk
menerapkannya. Setiap aplikasi App Engine beroperasi pada project GCP. App Engine otomatis
menyediakan instance server, menyesuaikan skala, dan melakukan load balancing. Sementara
itu, aplikasi Anda dapat membuat panggilan ke beberapa layanan menggunakan API khusus.
Berikut beberapa contohnya. Penyimpanan data NoSQL untuk membuat data bersifat tetap,
menyimpan data tersebut dalam cache dengan Memcache, menelusuri logging pengguna, dan
kemampuan untuk meluncurkan tindakan yang tidak dipicu oleh permintaan pengguna langsung
seperti task queue dan task scheduler.
Misalnya Anda memutuskan bahwa batasan model sandbox App Engine untuk
lingkungan standar tidak berfungsi untuk Anda, namun Anda masih ingin memanfaatkan App
Engine. Anda bisa memanfaatkan fungsi App Engine untuk lingkungan fleksibel. Berbeda
dengan sandbox, App Engine untuk lingkungan fleksibel memungkinkan Anda menentukan
container tempat App Engine dijalankan. Ya, container, aplikasi Anda dijalankan dalam
container Docker di Mesin Virtual Google Compute Engine, VM. App Engine mengelola mesin
Compute Engine ini untuk Anda. Kondisi mesin diperiksa, dipulihkan jika perlu, dan Anda dapat
memilih region geografis tempat mesin dijalankan, dan update kompatibel dengan versi yang
penting sebelumnya untuk sistem operasinya otomatis diterapkan. Semua ini dimaksudkan agar
Anda berfokus pada kode saja. Aplikasi App Engine untuk lingkungan fleksibel menggunakan
runtime standar, yang dapat mengakses layanan App Engine seperti penyimpanan data,
memcached, task queue, dan lain sebagainya. Berikut perbandingan secara berdampingan antara
lingkungan standar dan fleksibel.
Perhatikan bahwa lingkungan standar memulai instance aplikasi dengan lebih cepat,
namun Anda mendapatkan lebih sedikit akses ke infrastruktur tempat aplikasi dijalankan.
Misalnya, lingkungan fleksibel memungkinkan Anda menerapkan SSH ke mesin virtual tempat
aplikasi Anda dijalankan. Lingkungan ini memungkinkan Anda menggunakan disk lokal untuk
basis scratch, memungkinkan Anda menginstal software pihak ketiga, dan memungkinkan
aplikasi Anda melakukan panggilan ke jaringan tanpa melalui App Engine.
Di sisi lain, pembuatan lingkungan standar dapat menurun hingga nol untuk aplikasi
yang sepenuhnya tidak aktif. Seperti yang sebelumnya kita bahas bahwa App Engine
menggunakan container Docker, Anda mungkin penasaran tentang perbandingan antara App
Engine dan Kubernetes Engine. Berikut perbandingan secara berdampingan antara App Engine
dan Kubernetes Engine. App Engine untuk lingkungan standar ditujukan bagi mereka yang
menginginkan agar layanan mengontrol penerapan dan penskalaan aplikasinya secara maksimal.
Kubernetes Engine memberi pemilik aplikasi fleksibilitas Kubernetes secara maksimal. App
Engine untuk edisi fleksibel berada di antaranya. Selain itu, lingkungan App Engine
memperlakukan container sebagai sarana mencapai tujuan akhir, namun bagi Kurbenetes Engine,
container adalah prinsip pengelolaan dasar. Seperti yang telah saya sebutkan tentang Application
Programming Interface, API, beberapa kali dalam kursus ini. Mari kita pahami lebih lanjut apa
yang dimaksud dengan API. Penerapan layanan software bisa bersifat kompleks dan dapat
diubah. Bagaimana jika penggunaan layanan tersebut mengharuskan bagian software lainnya
mengetahui detail internal tentang cara kerjanya? Itu akan menyusahkan. Jadi, developer aplikasi
menyusun software yang mereka tulis agar software memberikan antarmuka yang rapi dan jelas
yang memisahkan detail yang tidak perlu, lalu developer mendokumentasikan antarmuka
tersebut. Begitulah pengertian API. Penerapan yang mendasarinya dapat diubah selama tidak
mengubah antarmuka, serta bagian software lain yang menggunakan API tidak perlu mengetahui
atau memerhatikannya. Terkadang Anda perlu mengubah API, misalnya menambahkan atau
menghentikan penggunaan fitur. Guna mengubah jenis API ini secara rapi, developer membuat
versi untuk API mereka. Versi dua dari API mungkin berisi panggilan yang tidak dimiliki oleh
versi satu. Program yang menggunakan API dapat menentukan versi API yang ingin digunakan
dalam panggilan mereka. Mendukung API adalah tugas yang sangat penting dan Google Cloud
Platform memberikan dua Management Tools API. Keduanya melakukan pendekatan terhadap
masalah terkait dengan cara yang berbeda dan setiap fitur memiliki keunggulan tertentu.
Misalnya saat mengembangkan layanan software dan salah satu backend GCP, Anda ingin
mengekspos API ini dengan mudah, memastikan bahwa layanan tersebut hanya digunakan oleh
developer lain yang Anda percaya, menggunakan cara yang mudah untuk memantau dan
mencatat penggunaannya. atau memastikan bahwa API memiliki satu cara yang koheren untuk
mengetahui pengguna akhir mana yang melakukan panggilan. Saat itulah Anda perlu
menggunakan Cloud Endpoints. Cloud Endpoints menerapkan kemampuan ini dan lainnya
menggunakan proxy yang mudah diterapkan di depan layanan software Anda, serta menyediakan
Konsol API untuk menggabungkan kemampuan tersebut dalam antarmuka yang mudah dikelola.
Cloud Endpoints mendukung aplikasi yang dijalankan di platform Compute GCP dalam bahasa
dan teknologi klien yang Anda pilih. Apigee Edge juga merupakan platform untuk
mengembangkan dan mengelola proxy API. Namun, platform ini memiliki orientasi yang
berbeda. Apigee Edge berfokus pada masalah bisnis seperti pembatasan kapasitas, kuota, dan
analisis. Banyak pengguna Apigee Edge menyediakan layanan software ke perusahaan lain dan
fitur tersebut sangat berguna. Karena layanan backend untuk Apigee Edge tidak harus berada di
GCP, engineer seringkali menggunakannya saat memisahkan aplikasi lama. Karena tidak bisa
menggantikan aplikasi monolitik dalam satu langkah berisiko, sebagai gantinya engineer bisa
menggunakan Apigee Edge untuk menghapus layanannya satu per satu, membuat layanan mikro
untuk menerapkannya satu per satu hingga aplikasi lama akhirnya bisa berhenti digunakan.