Pola hybrid bertingkat

Last reviewed 2025-01-23 UTC

Komponen arsitektur aplikasi dapat dikategorikan sebagai frontend atau backend. Dalam beberapa skenario, komponen ini dapat dihosting untuk beroperasi dari lingkungan komputasi yang berbeda. Sebagai bagian dari pola arsitektur hybrid bertingkat, lingkungan komputasi berada di lingkungan komputasi pribadi lokal dan di Google Cloud.

Komponen aplikasi frontend secara langsung diekspos ke pengguna atau perangkat akhir. Oleh karena itu, aplikasi ini sering kali sensitif terhadap performa. Untuk mengembangkan fitur dan peningkatan baru, update software dapat dilakukan secara berkala. Karena aplikasi frontend biasanya mengandalkan aplikasi backend untuk menyimpan dan mengelola data—dan mungkin logika bisnis dan pemrosesan input pengguna—aplikasi ini sering kali bersifat stateless atau hanya mengelola volume data dalam jumlah terbatas.

Agar dapat diakses dan digunakan, Anda dapat membuat aplikasi frontend dengan berbagai framework dan teknologi. Beberapa faktor utama untuk aplikasi frontend yang berhasil mencakup performa aplikasi, kecepatan respons, dan kompatibilitas browser.

Komponen aplikasi backend biasanya berfokus pada penyimpanan dan pengelolaan data. Dalam beberapa arsitektur, logika bisnis mungkin digabungkan dalam komponen backend. Rilis baru aplikasi backend cenderung lebih jarang dibandingkan rilis untuk aplikasi frontend. Aplikasi backend memiliki tantangan berikut untuk dikelola:

  • Menangani volume permintaan yang besar
  • Menangani volume data yang besar
  • Mengamankan data
  • Mempertahankan data saat ini dan yang diupdate di semua replika sistem

Solusi aplikasi web tiga tingkat adalah salah satu penerapan paling populer untuk membangun aplikasi web bisnis, seperti situs ecommerce yang berisi berbagai komponen aplikasi. Arsitektur ini berisi tingkat berikut. Setiap tingkat beroperasi secara independen, tetapi terkait erat dan berfungsi bersama.

  • Frontend web dan tingkat presentasi
  • Tingkat aplikasi
  • Tingkat akses data atau backend

Menempatkan lapisan ini ke dalam container akan memisahkan kebutuhan teknisnya, seperti persyaratan penskalaan, dan membantu memigrasikannya dengan pendekatan bertahap. Selain itu, Anda dapat men-deploy-nya di layanan cloud yang tidak bergantung pada platform dan dapat dipindahkan di berbagai lingkungan, menggunakan pengelolaan otomatis, dan menskalakan dengan platform terkelola cloud, seperti Cloud Run atau Google Kubernetes Engine (GKE). Selain itu, Google Cloud-database terkelola seperti Cloud SQL membantu menyediakan backend sebagai lapisan database.

Pola arsitektur hybrid bertingkat berfokus pada deployment komponen aplikasi frontend yang ada ke cloud publik. Dalam pola ini, Anda menyimpan komponen aplikasi backend yang ada di lingkungan komputasi pribadi. Bergantung pada skala dan desain spesifik aplikasi, Anda dapat memigrasikan komponen aplikasi frontend berdasarkan kasus per kasus. Untuk mengetahui informasi selengkapnya, lihat Bermigrasi ke Google Cloud.

Jika Anda memiliki aplikasi yang ada dengan komponen backend dan frontend yang dihosting di lingkungan lokal, pertimbangkan batas arsitektur Anda saat ini. Misalnya, saat aplikasi Anda diskalakan dan permintaan performa serta keandalannya meningkat, Anda harus mulai mengevaluasi apakah bagian aplikasi Anda harus difaktorkan ulang atau dipindahkan ke arsitektur yang berbeda dan lebih optimal. Pola arsitektur hybrid bertingkat memungkinkan Anda memindahkan beberapa workload dan komponen aplikasi ke cloud sebelum melakukan transisi lengkap. Anda juga harus mempertimbangkan biaya, waktu, dan risiko yang terlibat dalam migrasi tersebut.

Diagram berikut menunjukkan pola arsitektur hybrid bertingkat yang umum.

Aliran data dari frontend aplikasi lokal, ke frontend aplikasi di Google Cloud. Data kemudian mengalir kembali ke lingkungan lokal.

Dalam diagram sebelumnya, permintaan klien dikirim ke frontend aplikasi yang dihosting di Google Cloud. Selanjutnya, frontend aplikasi mengirimkan data kembali ke lingkungan lokal tempat backend aplikasi dihosting (sebaiknya melalui gateway API).

Dengan pola arsitektur hybrid bertingkat, Anda dapat memanfaatkan Google Cloud infrastruktur dan layanan global, seperti yang ditunjukkan dalam contoh arsitektur pada diagram berikut. Frontend aplikasi dapat dijangkau melalui Google Cloud. Frontend juga dapat menambahkan elastisitas dengan menggunakan penskalaan otomatis untuk merespons permintaan penskalaan secara dinamis dan efisien tanpa menyediakan infrastruktur secara berlebihan. Ada berbagai arsitektur yang dapat Anda gunakan untuk membangun dan menjalankan aplikasi web yang skalabel di Google Cloud. Setiap arsitektur memiliki kelebihan dan kekurangan untuk berbagai persyaratan.

Untuk mengetahui informasi selengkapnya, tonton Tiga cara menjalankan aplikasi web yang skalabel di Google Cloud di YouTube. Untuk mempelajari lebih lanjut berbagai cara memodernisasi platform ecommerce Anda di Google Cloud, lihat Cara membangun platform perdagangan digital di Google Cloud.

Aliran data dari pengguna ke server database lokal melalui Cloud Load Balancing dan Compute Engine.

Dalam diagram sebelumnya, frontend aplikasi dihosting di Google Cloud untuk memberikan pengalaman pengguna multi-regional dan dioptimalkan secara global yang menggunakan load balancing global, penskalaan otomatis, dan perlindungan DDoS melalui Google Cloud Armor.

Seiring waktu, jumlah aplikasi yang Anda deploy ke cloud publik mungkin meningkat hingga Anda dapat mempertimbangkan untuk memindahkan komponen aplikasi backend ke cloud publik. Jika Anda memperkirakan akan melayani traffic yang padat, memilih layanan terkelola cloud dapat membantu Anda menghemat upaya teknik saat mengelola infrastruktur Anda sendiri. Pertimbangkan opsi ini kecuali jika batasan atau persyaratan mengharuskan hosting komponen aplikasi backend di lokal. Misalnya, jika data backend Anda tunduk pada batasan peraturan, Anda mungkin perlu menyimpan data tersebut di lokal. Namun, jika berlaku dan sesuai, penggunaan Perlindungan Data Sensitif kemampuan seperti teknik de-identifikasi, dapat membantu Anda memindahkan data tersebut jika diperlukan.

Dalam pola arsitektur hybrid bertingkat, Anda juga dapat menggunakan Google Distributed Cloud dalam beberapa skenario. Distributed Cloud memungkinkan Anda menjalankan cluster GKE pada hardware khusus yang disediakan dan dikelola oleh Google dan terpisah dari Google Cloud pusat data. Untuk memastikan Distributed Cloud memenuhi persyaratan Anda saat ini dan di masa mendatang, ketahui batasan Distributed Cloud jika dibandingkan dengan zona GKE berbasis cloud konvensional.

Kelebihan

Berfokus pada aplikasi frontend terlebih dahulu memiliki beberapa keuntungan, termasuk hal berikut:

  • Komponen frontend bergantung pada resource backend dan terkadang pada komponen frontend lainnya.
  • Komponen backend tidak bergantung pada komponen frontend. Oleh karena itu, mengisolasi dan memigrasikan aplikasi frontend cenderung tidak terlalu rumit dibandingkan memigrasikan aplikasi backend.
  • Aplikasi frontend sering kali bersifat stateless atau tidak mengelola datanya sendiri, sehingga aplikasi tersebut cenderung tidak terlalu sulit untuk dimigrasikan dibandingkan backend.

Men-deploy aplikasi frontend yang sudah ada atau yang baru dikembangkan ke cloud publik menawarkan beberapa keuntungan:

  • Banyak aplikasi frontend yang sering mengalami perubahan. Menjalankan aplikasi ini di cloud publik akan menyederhanakan penyiapan proses continuous integration/deployment berkelanjutan (CI/CD). Anda dapat menggunakan CI/CD untuk mengirimkan update secara efisien dan otomatis. Untuk mengetahui informasi selengkapnya, lihat CI/CD di Google Cloud.
  • Frontend yang sensitif terhadap performa dengan beban traffic yang bervariasi dapat sangat diuntungkan dari kemampuan load balancing, deployment multi-regional, Cloud CDN caching, serverless, dan penskalaan otomatis yang didukung oleh deployment berbasis cloud (sebaiknya dengan arsitektur stateless).
  • Mengadopsi microservice dengan container menggunakan platform terkelola cloud, seperti GKE, memungkinkan Anda menggunakan arsitektur modern seperti microfrontend, yang memperluas microservice ke komponen frontend.

    Perluasan microservice biasanya digunakan dengan frontend yang melibatkan beberapa tim yang berkolaborasi pada aplikasi yang sama. Struktur tim semacam itu memerlukan pendekatan iteratif dan pemeliharaan berkelanjutan. Beberapa keuntungan menggunakan microfrontend adalah sebagai berikut:

    • Microfrontend dapat dibuat menjadi modul microservice independen untuk pengembangan, pengujian, dan deployment.
    • Microfrontend menyediakan pemisahan tempat tim pengembangan individual dapat memilih teknologi dan kode yang mereka sukai.
    • Microfrontend dapat mendorong siklus pengembangan dan deployment yang cepat tanpa memengaruhi komponen frontend lainnya yang mungkin dikelola oleh tim lain.
  • Baik mengimplementasikan antarmuka pengguna atau API, maupun menangani penyerapan data Internet of Things (IoT), aplikasi frontend dapat memanfaatkan kemampuan layanan cloud seperti Firebase, Pub/Sub, Apigee, Cloud CDN, App Engine, atau Cloud Run.

  • Proxy API terkelola cloud membantu:

    • Memisahkan API yang ditampilkan ke aplikasi dari layanan backend Anda, seperti microservice.
    • Melindungi aplikasi dari perubahan kode backend.
    • Mendukung arsitektur frontend berbasis API yang ada, seperti backend untuk frontend (BFF), microfrontend, dan lainnya.
    • Mengekspos API Anda di Google Cloud atau lingkungan lain dengan menerapkan proxy API di Apigee.

Anda juga dapat menerapkan pola hybrid bertingkat secara terbalik, dengan men-deploy backend di cloud sambil menjaga frontend di lingkungan komputasi pribadi. Meskipun jarang terjadi, pendekatan ini paling cocok diterapkan saat Anda menangani frontend yang berat dan monolitik. Dalam kasus seperti itu, mungkin akan lebih mudah untuk mengekstrak fungsi backend secara iteratif, dan men-deploy backend baru ini di cloud.

Bagian ketiga dari seri ini membahas kemungkinan pola jaringan untuk mengaktifkan arsitektur tersebut. Apigee hybrid membantu sebagai platform untuk membangun dan mengelola proxy API dalam model deployment hybrid. Untuk mengetahui informasi selengkapnya, lihat Arsitektur yang digabungkan secara longgar, termasuk arsitektur monolitik dan microservice bertingkat.

Praktik terbaik

Gunakan informasi di bagian ini saat Anda merencanakan arsitektur hybrid bertingkat.

Praktik terbaik untuk mengurangi kompleksitas

Saat Anda menerapkan pola arsitektur hybrid bertingkat, pertimbangkan praktik terbaik berikut yang dapat membantu mengurangi kompleksitas deployment dan operasional secara keseluruhan:

  • Berdasarkan penilaian model komunikasi aplikasi yang diidentifikasi, pilih solusi komunikasi yang paling efisien dan efektif untuk aplikasi tersebut.

Sebagian besar interaksi pengguna melibatkan sistem yang terhubung di beberapa lingkungan komputasi, maka konektivitas yang cepat dan berlatensi rendah di antara sistem tersebut sangatlah penting. Untuk memenuhi ekspektasi ketersediaan dan performa, Anda harus mendesain untuk ketersediaan tinggi, latensi rendah, dan tingkat throughput yang sesuai. Dari sudut pandang keamanan, komunikasi harus terperinci dan terkontrol. Idealnya, Anda harus mengekspos komponen aplikasi menggunakan API yang aman. Untuk mengetahui informasi selengkapnya, lihat Egress yang dibatasi.

  • Untuk meminimalkan latensi komunikasi antarlingkungan, pilih a Google Cloud region yang secara geografis dekat dengan lingkungan komputasi pribadi tempat komponen backend aplikasi Anda dihosting. Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik untuk pemilihan region Compute Engine.
  • Minimalkan dependensi tinggi antara sistem yang berjalan di lingkungan berbeda, terutama saat komunikasi ditangani secara sinkron. Dependensi ini dapat memperlambat performa, mengurangi ketersediaan keseluruhan, dan berpotensi menimbulkan biaya transfer data keluar tambahan.
  • Dengan pola arsitektur hybrid bertingkat, Anda mungkin memiliki volume traffic masuk yang lebih besar dari lingkungan lokal yang masuk ke Google Cloud dibandingkan dengan traffic keluar yang keluar Google Cloud. Namun, Anda harus mengetahui perkiraan volume transfer data keluar yang keluar Google Cloud. Jika Anda berencana menggunakan arsitektur ini dalam jangka panjang dengan volume transfer data keluar yang tinggi, pertimbangkan untuk menggunakan Cloud Interconnect. Cloud Interconnect dapat membantu mengoptimalkan performa konektivitas dan dapat mengurangi biaya transfer data keluar untuk traffic yang memenuhi kondisi tertentu. Untuk mengetahui informasi selengkapnya, lihat Harga Cloud Interconnect.
  • Untuk melindungi informasi sensitif, sebaiknya enkripsi semua komunikasi dalam pengiriman. Jika enkripsi diperlukan di lapisan konektivitas, Anda dapat menggunakan tunnel VPN , VPN dengan ketersediaan tinggi (HA) melalui Cloud Interconnect, dan MACsec untuk Cloud Interconnect.
  • Untuk mengatasi inkonsistensi dalam protokol, API, dan mekanisme autentikasi di berbagai backend, sebaiknya, jika berlaku, deploy gateway atau proxy API sebagai facade yang menyatukan. Gateway atau proxy ini bertindak sebagai titik kontrol terpusat dan melakukan langkah-langkah berikut:

  • Untuk memfasilitasi penyiapan hybrid, gunakan Cloud Load Balancing dengan konektivitas hybrid. Artinya, Anda dapat memperluas manfaat load balancing cloud ke layanan yang dihosting di lingkungan komputasi lokal Anda. Pendekatan ini memungkinkan migrasi workload bertahap ke Google Cloud dengan gangguan layanan minimal atau tanpa gangguan, sehingga memastikan transisi yang lancar untuk layanan terdistribusi. Untuk mengetahui informasi selengkapnya, lihat Ringkasan grup endpoint jaringan konektivitas hybrid.

  • Terkadang, penggunaan gateway API, atau proxy dan Load Balancer Aplikasi bersama-sama, dapat memberikan solusi yang lebih kuat untuk mengelola, mengamankan, dan mendistribusikan traffic API dalam skala besar. Dengan menggunakan Cloud Load Balancing dengan gateway API Anda dapat melakukan hal berikut:

  • Menggunakan pengelolaan API dan mesh layanan untuk mengamankan dan mengontrol komunikasi dan eksposur layanan dengan arsitektur microservice.

    • Menggunakan Cloud Service Mesh untuk memungkinkan komunikasi layanan ke layanan yang mempertahankan kualitas layanan dalam sistem yang terdiri atas layanan terdistribusi tempat Anda dapat mengelola autentikasi, otorisasi, dan enkripsi antar-layanan.
    • Menggunakan platform pengelolaan API seperti Apigee yang memungkinkan organisasi dan entity eksternal menggunakan layanan tersebut dengan mengeksposnya sebagai API.
  • Bangun identitas bersama antarlingkungan agar sistem dapat melakukan autentikasi dengan aman di seluruh batas lingkungan.

  • Men-deploy sistem pengelolaan konfigurasi dan CI/CD di cloud publik. Untuk mengetahui informasi selengkapnya, lihat Pola arsitektur jaringan yang dicerminkan.

  • Untuk membantu meningkatkan efisiensi operasional, gunakan alat dan pipeline CI/CD yang konsisten di seluruh lingkungan.

Praktik terbaik untuk arsitektur workload dan aplikasi individual

  • Meskipun fokusnya terletak pada aplikasi frontend dalam pola ini, Anda harus tetap memperhatikan kebutuhan untuk memodernisasi aplikasi backend. Jika kecepatan pengembangan aplikasi backend jauh lebih lambat daripada aplikasi frontend, perbedaannya dapat menyebabkan kompleksitas tambahan.
  • Memperlakukan API sebagai antarmuka backend akan menyederhanakan integrasi, pengembangan frontend, interaksi layanan, dan menyembunyikan kompleksitas sistem backend. Untuk mengatasi tantangan ini, Apigee memfasilitasi pengembangan dan pengelolaan proxy/gateway API untuk deployment hybrid dan multicloud.
  • Pilih pendekatan rendering untuk aplikasi web frontend Anda berdasarkan konten (statis versus dinamis), performa pengoptimalan mesin telusur, dan ekspektasi tentang kecepatan pemuatan halaman.
  • Saat memilih arsitektur untuk aplikasi web berbasis konten, berbagai opsi tersedia, termasuk arsitektur monolitik, serverless, berbasis peristiwa, dan microservice. Untuk memilih arsitektur yang paling sesuai, nilai opsi ini secara menyeluruh terhadap persyaratan aplikasi Anda saat ini dan di masa mendatang. Untuk membantu Anda membuat keputusan arsitektur yang selaras dengan tujuan bisnis dan teknis Anda, lihat Perbandingan berbagai arsitektur untuk backend aplikasi web berbasis konten, dan Pertimbangan Utama untuk backend web.
  • Dengan arsitektur microservice, Anda dapat menggunakan aplikasi dalam container dengan Kubernetes sebagai lapisan runtime umum. Dengan pola arsitektur hybrid bertingkat, Anda dapat menjalankannya dalam salah satu skenario berikut:

    • Di kedua lingkungan (Google Cloud dan lingkungan lokal Anda ).

      • Saat menggunakan container dan Kubernetes di berbagai lingkungan, Anda memiliki fleksibilitas untuk memodernisasi workload dan lalu bermigrasi ke Google Cloud pada waktu yang berbeda. Hal ini membantu saat workload sangat bergantung pada workload lain dan tidak dapat dimigrasikan satu per satu, atau menggunakan portabilitas workload hybrid untuk menggunakan resource terbaik yang tersedia di setiap lingkungan. Dalam semua kasus, GKE dapat menjadi teknologi utama yang memungkinkan. Untuk mengetahui informasi selengkapnya, lihat Lingkungan hybrid GKE.
    • Di lingkungan untuk komponen aplikasi yang dimigrasikan dan dimodernisasi. Google Cloud

      • Gunakan pendekatan ini jika Anda memiliki backend lama di lokal yang tidak memiliki dukungan containerisasi atau memerlukan waktu dan resource yang signifikan untuk dimodernisasi dalam jangka pendek.

      Untuk mengetahui informasi selengkapnya tentang mendesain dan memfaktorkan ulang aplikasi monolitik ke arsitektur microservice untuk memodernisasi arsitektur aplikasi web Anda, lihat Pengantar microservice.

  • Anda dapat menggabungkan teknologi penyimpanan data bergantung pada kebutuhan aplikasi web Anda. Penggunaan Cloud SQL untuk data terstruktur dan Cloud Storage untuk file media adalah pendekatan umum untuk memenuhi beragam kebutuhan penyimpanan data. Namun, pilihan ini sangat bergantung pada kasus penggunaan Anda. Untuk mengetahui informasi selengkapnya tentang opsi penyimpanan data untuk backend aplikasi berbasis konten dan modalitas yang efektif, lihat Opsi Penyimpanan Data untuk Aplikasi Web Berbasis Konten. Lihat juga Opsi database Anda, dijelaskan. Google Cloud