Komunitas Cloud Indonesia

Penanggulangan Kelemahan Google App Engine

Penulis :   |   July 26, 2012

Setelah membahas tentang keunggulan Google App Engine, dalam artikel kali ini kami akan membahas tentang kelemahan-kelemahan App Engine berserta beberapa cara menanggulangi kelemahan tersebut.

Bahasa Pemrograman yang Didukung Terbatas

Google App Engine hanya mendukung tiga bahasa pemrograman: Java, Python, dan Go. Dukungan untuk bahasa pemrograman lain seperti PHP, Perl, atau Ruby merupakan fitur-fitur yang paling banyak diminta oleh para developer App Engine, tapi sampai sekarang Google belum berencana untuk menambah bahasa pemrograman lain dalam App Engine.

Salah satu cara penanggulangan terbatasanya bahasa pemrograman yang didukung App Engine, developer bisa memanfaatkan fleksibilitas Java Virtual Machine yang digunakan dalam bahasa pemrograman Java. Berbagai bahasa pemrograman yang berbasis JVM bisa juga dijalankan di atas Google App Engine, meski tanpa dukungan resmi dari tim developer App Engine. Para developer bisa menjalankan Scala atau JRuby di atas platform App Engine, misalnya.

Fitur Bahasa Pemrograman yang bisa Digunakan Terbatas

App Engine dengan sengaja memberikan batasan terhadap kelas-kelas atau fitur bahasa pemrograman yang bisa kita gunakan dalam aplikasi jaringan yang kita bangun. Untuk developer yang menggunakan bahasa pemrograman Java, misalnya, App Engine membatasi kelas-kelas Java yang bisa digunakan. Biasanya kelas atau fitur yang tidak diperbolehkan untuk digunakan dalam App Engine terkait dengan penulisan ke file eksternal atau komunikasi melalui network socket. Selain kelas-kelas tersebut, khusus untuk aplikasi Java, Google juga melarang aplikasi jaringan dalam App Engine Java untuk menciptakan thread baru.

Google menetapkan batasan-batasan di atas karena menurut Google, aplikasi jaringan yang bergantung dengan kelas-kelas atau fitur-fitur di atas tidak bisa menjalani scale out dengan baik. Sebagai alternatifnya, Google menyediakan banyak layanan pengganti yang bisa digunakan oleh para developer Java, yang jika digunakan dengan baik akan menghasilkan aplikasi jaringan yang lebih handal dan scalable. Tabel berikut menyajikan layanan pengganti fitur-fitur Java yang dibatasi oleh Google App Engine.

Kelas/Fitur yang Dibatasi Layanan Pengganti di App Engine Komentar
Penulisan ke file eksternal. Datastore API
Google Cloud SQL
Google Cloud Storage
Penyimpanan data menggunakan layanan-layanan tersebut tersebar dan bisa diakses dari mana saja, tidak lokal seperti penulisan data ke file eksternal.
Komunikasi melalui network socket. URL Fetch API
Task Queue API
URL Fetch API hanya bisa menggunakan protokol HTTP atau HTTPS. Nomor port yang bisa dihubungi terbatas. Task Queue API hanya bisa digunakan untuk komunikasi internal aplikasi jaringan.
Penciptaan thread baru. Task Queue API Karena manajemen konkurensi thread relatif lebih rumit, prinsip Google adalah scale out dengan memperbanyak jumlah proses, bukan dengan memperbanyak jumlah thread. Task Queue API bisa digunakan untuk mendistribusikan pekerjaan ke proses-proses lain dari aplikasi jaringan kita.

Kinerja Datastore Terdistribusi Lebih Lambat

Dibandingkan dengan basis data on-premise yang terletak pada jaringan lokal, datastore App Engine yang sifatnya terdistribusi memiliki kinerja yang lebih lambat. Seperti yang bisa dilihat di halaman status App Engine, sebuah operasi query memiliki latensi sekitar 80-100 milidetik. Pada basis data lokal, sebuah operasi query bisa memiliki latensi kurang dari beberapa milidetik. Karena datastore App Engine merupakan key-value datastore, operasi get-by-key bisa menghasilkan latensi yang lebih kecil, sekitar 20-30 milidetik, dibanding operasi query.

Meskipun kinerja datastore App Engine lebih lambat, satu hal yang patut dipertimbangkan adalah Google menjamin bahwa angka latensi ini konstan terlepas dari seberapa banyak data yang kita simpan dalam datastore tersebut. Selain itu, latensi ini juga konstan terlepas dari jumlah query paralel yang aplikasi kita lakukan.

Dengan kata lain, dengan memparalelkan query ke datastore ke dalam beberapa proses yang berjalan secara konkuren, throughput datastore yang dihasilkan bisa jauh lebih besar dibanding throughput basis data lokal.

Waktu Pemrosesan Dibatasi 60 Detik

Google merancang App Engine sebagai platform untuk aplikasi jaringan yang melayani pemrosesan sederhana tapi dalam frekuensi yang sangat besar. Salah satu batasan yang ditetapkan oleh Google adalah semua pemrosesan harus selesai dalam waktu 60 detik sejak sebuah request masuk ke aplikasi jaringan kita. Jika sampai 60 detik, aplikasi jaringan kita masih sibuk melakukan pemrosesan request yang masuk, App Engine akan mematikan proses tersebut secara paksa.

Batasan ini hanya berlaku untuk pemrosesan yang dilakukan oleh server tipe Frontend. Jika kita menggunakan server tipe Backend, pemrosesan yang kita lakukan tidak dibatasi waktu sama sekali. Sebagai alternatif, kita bisa juga meneruskan request yang kita terima ke Task Queue dengan menggunakan Push Task Queue API, untuk kemudian diproses secara asynchronous oleh aplikasi jaringan kita. Pemrosesan request melalui Task Queue memiliki batas waktu pemrosesan sebesar 10 menit.

Pada artikel berikutnya, kami akan membahas lebih dalam mengenai penggunaan Task Queue API tingkat lanjut untuk aplikasi jaringan di atas Google App Engine.

  1. Jakarta Cloud Computing Meetup 09.2016
  2. Big Data dengan Google Cloud
  3. Cloud Computing dan Big Data : Sebuah Kombinasi Ideal
  4. Keynote CEO Oracle mengenai Transformasi Cloud Computing
  5. Cloud Computing sebagai Skill yang Paling Dicari di Dunia Kerja

Penulis :

Ibrahim Arief received his Bachelor of Engineering on Informatics from Institut Teknologi Bandung, Indonesia, in 2008. He obtained his Master of Science in 2011 from the Erasmus Mundus Color in Informatics and Media Technology. Professionally, he architects and develops high-performance distributed transactional systems, ranging from traditional on-premise server cluster systems to highly scalable cloud-based systems. He currently works in a Dutch company as software engineer, developing intelligent logistical management SaaS for high profile corporate clients and running on top of Google App Engine PaaS.

Komentar

One thought on “Penanggulangan Kelemahan Google App Engine
  1. rifan

    halooo mas ibrahim, saya mau tanya sesuatu tentang google apps. saya kan pake yang gratis yang menurut informasi hanya bisa 50 user tapi saya kok bisa nambah terus sampe 140 user. kok bisa ya?
    sebelummya terima kasih

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *