Terbangkan Java Website-mu ke Cloud dengan Google App Engine

Pada postingan kali ini, saya akan menjelaskan tentang pengembangan java website pada ekosistem Google App Engine, apa sih Google App Engine? Sebelumnya marilah kita berkenalan dahulu dengan App Engine.

Google App Engine atau biasa disebut dengan GAE atau App Engine adalah sebuah platform cloud-computing yang berbasiskan PaaS atau platform as a service. App Engine digunakan untuk mengembangkan dan hosting web application pada Google data-centers atau Google infrastructure. Aplikasi berjalan di dalam lingkungan sandbox dan dijalankan oleh lebih dari satu server. Yang menjadi andalan pada App Engine adalah kemampuannya untuk automatic scaling resources, yang berarti apabila aplikasi web-mu mempunyai request yang semakin bertambah, maka App Engine secara otomatis akan mengalokasikan resources lebih banyak untuk memenuhi permintaan-permintaan tersebut.

Google App Engine Logo

Google App Engine Logo

App Engine mulai diluncurkan pada tahun 2008, bahasa pemrograman yang didukung selain Java adalah, Phyton dan Go (sebuah bahasa pemrogaman eksperimental buatan Google). Saat ini App Engine ditawarkan secara gratis dalam batas quota tertentu per harinya. Contohnya untuk storage blobstore, ditawarkan free quota sampai 5GB, sedangkan untuk database ditawarkan ukuran sampai 1GB, bandwith untuk free quota sebesar 1GB per hari untuk bandwith-out, sedangkan untuk bandwith-in, kuotanya adalah unlimited. Untuk detail lebih lengkapnya, bisa langsung dicek di halaman ini.

Penerapan batas quota untuk layanan gratis tentunya merupakan keuntungan tersendiri bagi kita yang ingin belajar membangun website di App Engine, karena asalkan aplikasi yang kita buat tidak melebihi limit, kita bebas mengeksplorasi apapun. 😀 Bandingkan dengan cloud platform besutan Microsoft, Microsoft Azure yang ditawarkan secara free namun terbatas hanya dalam 90 hari. Well…

Java Web Application

Oke, sesuai judulnya, kita akan membuat sebuah Java Web. Kalo kalian belum mempunyai bayangan, di bawah ini ada sedikit bayangan tentan struktur java web application mengunakan konsep MVC(Model, View, Controller).

Java MVC

Java MVC

Pada java web application, JSP(Java Server Pages) dikombinasikan dengan HTML, CSS, AJAX dan lain-lain berperan sebagai View, sedangakan java servlet atau yang biasa disebut servlet berfungsi sebagai Controller, servlet sebenarnya juga bisa berperan sebagai Model tergantung jenisnya, namun untuk aplikasi yang lebih kompleks orang biasa menggunakan Enterprise Java Beans. Pada java web application juga menggunakan sebuah XML file, yang digunakan untuk memetakan(mapping) servlet dengan URLs. Dan juga ada lagi sebuah file bernama JSPF(JSP Fragments) yaitu sebuah potongan kecil file JSP yang bisa di-include kan ke halaman JSP manapun.

App Engine mendukung penuh pengembangan web aplikasi menggunakan Java, baik pada level enterprise maupun level biasa. Di bagian database, ada dua jenis database yang bisa kita pakai di App Engine, yaitu Google Datastore atau Google CloudSQL.

DataStore

Google Datastore, atau biasa disebut dengan datastore saja, adalah sebuah schemaless object datastore yang didasarkan pada teknologi BigTable buatan Google. Datastore menyediakan storage yang handal dan scalable, dengan dukungan atomic transactions, tidak adanya downtime, high availability untuk baca-tulis data dan berbagai kemampuan lainnya.

Datastore mempunyai paradigma NoSQL atau database non-relational, semua data object yang disimpan dianggap sebagai suatu entitas, dan setiap entitas mempunyai satu atau lebih properties/atribut. Untuk membedakan satu entitas dengan entitas lain digunakan sebuah parameter bernama kind(jenis), dan juga key sebuah atribut unik yang membedakan antar kind.

Datastore mempunyai query sendiri yang biasa disebut dengan GQL atau Google Query Language.

Cloud SQL

Sedangkan satu jenis database yang lain Google Cloud SQL, kebetulan saya sudah pernah mencobanya (dalam batas gratis tentunya) dan aplikasi MSSQ dibuat menggunakan Cloud SQL sebagai database-nya.

Seperti namanya Cloud SQL adalah sebuah web service yang memungkinkan kalian untuk membuat, menyetting dan menggunakan database relasional dengan aplikasi App Engine. Di mana hal ini juga merupakan jawaban Google atas tantangan Enterprise yang biasa menggunakan database relasional untuk menyimpan data mereka (cloud platform yang lain seperti Amazon Web Service, juga sudah mendukung relasional database di samping AWS juga mempunyai non-relasional database).

Google Cloud SQL saat ini hanya dibuka untuk limited preview dan daftar harganya juga belum diumumkan, sehingga sekarang bsia digunakan gratis untuk orang-orang terbatas. B-) Cloud SQL mempunya console sendiri yang seperti terminal, dan di sana kita bisa membuat database baru, mengedit data, create table dan mengeksekusi perintah SQL lainnya.

Cloud SQL menawarkan kemampuan dari database MySQL, layanan tersebut membuat kalian bisa dengan mudah memindahkan data, aplikasi dan service dari-dan-ke cloud. Hal ini membuat data kalian mempunyai portabilitas yang tinggi, dan dengan menggunakan JDBC dan/atau DB-API kalian bisa langsung memindahkan database yang sudah ada ke dalam aplikasi App Engine kalian.

Bagaimana dengan replikasi data? Jangan khawatir, Google Cloud SQL mereplikasi data ke berbagai wilayah geografis untuk menyediakan high data availability dan untuk “memastikan aplikasi-aplikasi kalian yang penting selalu berjalan.”

Kira-kira itulah sedikit informasi yang harus kalian ketahui ketika ingin membangun sebuah web application berbasiskan Java yang berjalan di App Engine Cloud. Daftarkan akun App Engine mu di sini, dan kalian akan diberikan 10 buah slot aplikasi gratis.

Jika kalian ingin mencicipi Google Cloud SQL, bisa mendaftar di sini. Tapi sebelum mendaftar kalian paling tidak harus sudah membuat sebuah aplikasi web terlebih dahulu.

Mungkin sampai sini saja info yang bisa saya bagi, maklum saya juga masih newbie, mari kita belajar bersama dan saling berbagi info. 😀 Semoga berguna, dan salam Java!

 

Leave a Reply

Do NOT follow this link or you will be banned from the site!