Categories: CI/CDDevops

Testimoni PaaS Google App Engine

https://logo-hunt.blogspot.com/2020/07/google-app-engine-logo-png.html

Untuk aplikasi yang tidak kompleks, NoOps bisa menjadi pilihan karena tidak perlu tenaga dedicated untuk mengurus infrastruktur. App Engine menawarkan solusi kita hanya tinggal upload code, app engine akan mengurus auto scaling, logging, monitoring, versioning, environment, dan lainnya. Dan juga di dalam app engine sudah dipaekt dengan storage, cached (memcached) yang terdapat free tiernya juga.

Terdapat 2 pilihan app engine, pertama standard yang kita hanya tinggal uplaod code. Scalingnya lebih cepat dan murah dengan menggunakan bahasa yang sudah di support google. Kedua flex yang memberikan kebebasan lebih (bisa samapai kita ssh ke VM nya), menggunakan runtime docker (kita memberi dockerfile kita), cocok untuk aplikasi yang tidak disupport di standard.

Lebih baik menggunakan standard, kecuali terpaksa paakai yang flex.

https://cloud.google.com/appengine/docs/the-appengine-environments

Ada batasan jumlah file pada standard environment

Sebenernya ini bukan masalah karena biasanya kode filenya banyak/besar hanya di dependency saja (maven/composer/dll). Namun masalahnya, kita tidak dapat menjalankan penginstallan dependency di app engine, melainkan harus dikerjakan di local laptop kita/server ci/cd lalu di upload. Tapi jika dependency sudah melebihi batas file, maka salah satu solusinya adalah menggunakan app engine flex (bukan standard)

https://stackoverflow.com/questions/6786921/maximum-code-size-for-google-app-engine

https://stackoverflow.com/questions/28419278/how-to-use-composer-in-php-google-app-engine

https://cloud.google.com/appengine/docs/standard/php7/specifying-dependencies

Proses deployment yang lama

Sebenernya proses deploy lama tidak masalah karena umumnya proses deploy tidak hanya deploy, melainkan otomasi testing di pipeline ci/cd terlebih dahulu. Namun saya coba langsung deploy, menghabiskan waktu 10 menit. Kelihatannya layer dockernya tidak bisa menggunakan cache. Yang jadi maslah lamanya adalah di “Updating service [default]” (setelah docker image selesai dibuat)

Tidak bisa menggunakan private subnet/ip private

Umumnya aplikasi menggunakan private subnet sehingga tidak memiliki ip publik. Yang di expose dan diakses publik adalah load balancer. Jadi dari load balncer baru di arahkan ke aplikasi (ataupun firewall, kemudian aplikasi). Walaupun di app Engine untuk keamanan bisa di set firewall security group nya.

PaaS lain seperti elastic beanstalk bisa melakkukan hal ini

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/vpc.html

https://cloud.google.com/appengine/kb

Dan kerennya lagi, elastic beanstalk harganya gratis, hanya perlu membayar resource yang dipaai saja (ec2, s3, rds)

https://aws.amazon.com/elasticbeanstalk/pricing/

Google app engine harganya beda dengan vm biasa, dan juga tidak bisa menggunakan diskon reserved instance.

Tulisan ini di post ulang di medium saya dalam bahasa inggris : https://herbertabdillah.medium.com/gcp-app-engine-short-review-706d0a3a9924

Herbert Abdillah

Test

Recent Posts

Disk 1 tb sisa 100 gb

Berikut ini detail breakdown nya Docker

7 months ago

Langchain JsonOutputParser Invalid json output Error

Sometimes json output from llm like this : {"key": "value"}``` that langchain JsonOutputParser regex cant…

8 months ago

Tontonan Bagus

https://www.youtube.com/watch?v=ZAqIoDhornk (more…)

8 months ago

Ada Apa Didalam Sistem Operasi (Linux). Apa yang membedakan distribusi Linux seperti Ubuntu, Redhat, Alpine?

#include <stdio.h> int main() { FILE *f_ptr; char f_content[256]; char output[512]; f_ptr = fopen("/tmp/1337", "r");…

11 months ago

Convert OpenSSL 1 in Ruby Gem to OpenSSL 3

Version 3 have different interface Example: https://github.com/herbertabdillah/fabric-gateway-ruby/commit/c7377aaf2e62de1e2ac309965a09b5c7c72a2c7e (more…)

2 years ago

Catatan Belajar Ruby on Rails dari aliran Java dan Php

Telah di edit. Sumber Asli : https://twitter.com/nateberkopec/status/1250603032523370496/photo/1 Ruby on Rails merupakan framework web MVC menggunakan…

3 years ago