Skip to main content

Command Palette

Search for a command to run...

[ID] GCP Associate Cloud Engineer - Planning and configuring a cloud solution

Updated
•6 min read
[ID] GCP Associate Cloud Engineer - Planning and configuring a cloud solution
M
Started my IT career as a Technical Support at an Indonesian web hosting provider, then progressed through various roles as a Linux SysAdmin, Network Engineer, Product Designer, and DevOps Engineer. I moved to a SaaS company and since then I’ve built hands-on experience mainly with AWS and GCP and work daily with popular cloud native tools.
💡
Baca official exam guide di sini. Catatan ini adalah rangkuman dari buku dan official documentation dari Google. Jika ada saran atau koreksi, langsung comment aja ya.

GCP Cloud Services

Compute

💡
Objective: Paham bedanya Compute Engine, Kubernetes Engine, App Engine, dan Cloud Function. Tau layanan apa yang paling cocok digunakan dalam sebuah skenario.
  • Compute Engine: Ini layanan VM-nya GCP yang masuk kategori IaaS. Cocok digunakan jika kita ingin punya kontrol penuh atas resource ini. Misalnya seberapa besar resourcenya, pakai CPU apa, pilih OS sesuai kebutuhan, mau diinstall apa, kapan harus dibackup, kapan harus diupgrade, dan aktivitas lainnya. Downside-nya adalah karena layanannya masih cukup mentah, kita harus paham dengan hal seputar administrasi server.

    Kelebihan lainnya adalah adanya opsi Spot VM yang memberikan diskon 60-91% dari harga VM biasa. Konsekuensinya adalah VM tersebut bisa kapan saja distop atau didelete oleh GCP. Cocok untuk fault-tolerant workload dan batch processing yang mungkin cuma butuh waktu sebentar untuk bekerja.

  • Kubernetes Engine: Dipakai untuk ngejalanin banyak container diatas Kubernetes cluster yang berjalan diatas banyak VM. GCP akan nge-handle resource provisioning, node autoscaling, health check, dan replace unhealthy server secara otomatis. Intinya, nge-maintain Kubernetes cluster bakal lebih mudah kalau pakai GKE daripada langsung manage lewat Compute Engine. Sebenarnya GKE juga menggunakan Compute Engine di belakang layar sebagai worker nodenya.

  • App Engine: Ini layanan PaaS dari GCP. App Engine memudahkan developer untuk menjalankan aplikasinya tanpa ribet urusan server. Sebenarnya tetep pakai Compute Engine di balik layar, tapi urusan administrasi server, konfigurasi, dan network hardeningnya sudah dihandle GCP. Jadi pricingnya ngga jauh-jauh dari Compute Engine. AFAIK konsep kasarnya kayak Heroku atau Vercel yang sama-sama PaaS tapi versi lebih powerfull. Atau mirip kayak AWS ElasticBeanstalk. Ada 2 tipe App Engine:

    • Standard Environment: App yang udah kita buat akan dijalankan di dalam language-specific container yang disupport GCP seperti Java, Go, Node.js, PHP, Python, dan Ruby. Jadi kalo kita butuh selain itu, bisa pilih Flexible environment yang mendukung custom runtime. Standard Environment cocok dipakai jika app kita ngga butuh OS packages atau software tambahan untuk menjalankan appnya.

    • Flexible Environment: Beda dengan standard environment yang punya language constraint. Flexible environment bisa menjalankan Python, Java, Node.js, Go, Ruby, PHP, .NET, dan any software that can service HTTP requests (custom runtime). Bisa specify custom Dockerfile juga.

  • Cloud Function: Layanan serverless untuk menjalankan sebuah function yang melakukan satu. Cocok digunakan untuk event-driven processing, lightweight computing, atau execute short-running code. In my opinion, ini mirip kayak AWS Lambda. Salah satu use-case Cloud Function adalah ketika sebuah object diupload ke Cloud Storage, maka sebuah Cloud Function akan dipanggil untuk melakukan sesuatu. Misalnya membuat thumbnail, memproses object tadi, dan lain-lain. Function mensupport Node.js, Python, Go, Java, Ruby, PHP, dan .Net.

Storage

💡
Objective: Paham berbagai macam layanan storage, bedanya file dan object storage, dan kapan waktu yang tepat menggunakan layanan tersebut.

Block Storage itu storage mentah semacam hard drive di komputer yang masih kosong dan belum ada filesystemnya. Masih perlu diolah sebentar agar bisa digunakan. Karena masih mentah, kita bisa bebas pilih filesystem (misal ext4, xfs, dst.), diatur kayak gimana (misal partisi, size, dst.), dan dipakai untuk apa (misal diinstall OS, backup storage, dst.).

Object Storage itu layanan penyimpanan file yang udah siap pakai. Paling sering dipakai untuk menyimpan file yang diupload dari suatu aplikasi baik mobile, desktop, maupun web. Di sini file disebut dengan Object. Setiap Object akan dikumpulkan dalam suatu Bucket dan bisa diakses menggunakan suatu URL yang unik. Layanan ini Serverless, jadi gak perlu manage server dan software storagenya. Object Storage bisa diakses dari banyak VM.

File Storage itu layanan network shared file systems (sorry, agak bingung jelasin gampangnya gimana). Jadi pakai protokol NFS untuk nge-akses filenya. File Storage juga udah siap pakai. Tinggal memastikan sistem kita sudah support NFS. Tipe storage ini bisa diakses oleh banyak VM dalam waktu bersamaan.

  • Cloud Storage (GCS): Layanan Object Storage di GCP seperti layanan S3 di AWS. Hak akses ke file dan bucket bisa diatur lewat IAM. Cloud Storage cocok digunakan untuk menyimpan semua jenis file seperti gambar, video, dokumen, dan lain-lain. Contoh use-casenya adalah sebuah perusahaan dapat menggunakannya untuk menyimpan foto dan video yang sudah diupload oleh pengguna lewat aplikasi yang dibuat perusahaan itu.

  • Persistent Disk (PD): Layanan Block Storage di GCP. Ada pilihan SSD dan HDD. Yang menarik adalah PD bisa dipasang ke banyak VM sekaligus. Maksimal kapasitas PD adalah 64TB. Ukurannya bisa di-resize tanpa downtime seperti di artikel ini.

  • Cloud Storage for Firebase: Object storage khusus untuk aplikasi yang terintegrasi dengan Firebase. Cocok digunakan untuk upload dan download di aplikasi mobile yang jaringannya sering ngadat karena punya mekanisme recovery khusus. Sebenarnya pakai GCS di balik layar. Dia juga udah terintegrasi dengan Firebase Auth.

  • Cloud Filestore: Layanan File storage yang bisa diakses (read-write) di banyak VM sekaligus pakai protocol NFS. Maksimal kapasitas Filestore adalah 100 TB, throughputnya 25 GB/s, dan IOPS-nya 920K.

Database

💡
Database umumnya dibagi jadi Relational dan Non-Relational (disebut NoSQL). GCP banyak menyediakan layanan database serverless seperti Datastore, BigTable, Firestore, dan Memorystore.
  • Cloud SQL: Layanan RDBMS dari GCP. Support MySQL, PostgreSQL, dan SQL server. Banyak fitur untuk mengelola RDBMS seperti backup, patching, network configuration, monitoring, replication, failover, dan lain-lain. Cocok digunakan untuk mempermudah proses pengelolaan RDBMS dibanding menjalankannya di VM biasa.

  • Cloud Spanner: Layanan RDBMS tapi globally scalable dan support standar SQL ANSI 2011.

  • Cloud Bigtable: Layanan NoSQL jenis wide-column database yang didesain untuk mengelola database skala besar. Di soal latihan GCP ACE, biasanya dia dipakai untuk menerima dan menyimpan data dari ratusan sensor IoT dengan aktivitas write yang kecil-kecil tapi banyak banget. Atau bisa juga untuk real-time analytics.

  • Cloud Datastore: Layanan NoSQL jenis document database. Dia otomatis ngehandle sharding dan replikasi serta support transaction, index, dan query seperti SQL. Beberapa use-casenya adalah katalog produk yang menampilkan detail produk secara real-time dan user profile di suatu aplikasi yang personally customized berdasarkan aktivitas user dan preferensinya. Datastore beda dengan Bigtable dimana Bigtable lebih cocok digunakan untuk aktivitas read/write yang banyak dan bersamaan dengan latensi kecil.

  • Cloud Firestore: Next generation-nya Datastore dan Google lebih menyarankan menggunakan ini (beda dengan Filestore ya!). Firestore itu lebih modern dan scalable dibanding Datastore serta kompatibel dengan MongoDB.

  • Cloud Memor**y**store: Layanan serverless dan full-managed in-memory database seperti Redis, Valkey, dan Memcache. Datanya disimpen di memory (kayak RAM) jadi bisa diakses jauh lebih cepat dibanding dari hard drive. Cocok untuk nge-cache data yang sering diakses biar nggak membebani server databasenya. Full-managed itu artinya masalah scalability, high availability, patching, dan failover udah dihandle GCP sendiri.

Networking

  • Virtual Private Cloud (VPC): Layanan networking yang memungkinkan kita mendesain network data center kita sendiri seperti alokasi IP, subnetting, firewall, dan lain-lain.

  • Cloud Load Balancing: Mendistribusikan workload di dalam suatu region maupun globally antar region. Dia juga menyediakan fitur autoscaling dan auto-repair ketika ada server yang bermasalah. LB mendukung protokol HTTP, HTTPS, TCP, dan UDP.

  • Cloud Armor: Layanan network security berupa DDoS protection dan WAF.

  • Cloud CDN: Layanan Content Delivery Network (CDN) yang mempercepat akses suatu konten dari mana saja.

  • Cloud Interconnect: Layanan untuk menyambungkan jaringan kita ke data center GCP secara langsung. Jadi dipakai kalau kita punya data center sendiri dan ingin nyambung secara fisik (kabel nyambung) ke data center GCP. Ini sebutannya adalah Direct Interconnect. Nah kalau gak bisa nyambung secara fisik, maka pilih Partner Interconnect dimana akan ada ISP perantara yang menghubungkan kita dengan GCP. Interconnect cocok digunakan kalau kita butuh koneksi yang low latency & high bandwidth ke resource yang ada di GCP.

  • Cloud DNS: Ya layanan DNS sih, kayak Route53 di AWS. Memungkinkan kita untuk memanage record DNS dari domain yang kita kelola.

GCP

Part 1 of 1

More from this blog

Syaifuddin’s Growing Space

10 posts

A personal documentation of what I've learned. Mostly about tech-related stuff.