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. Akibatnya, aplikasi ini sering kali sensitif terhadap performa. Untuk mengembangkan fitur dan peningkatan baru, update software dapat dilakukan secara rutin. Karena aplikasi frontend biasanya mengandalkan aplikasi backend untuk menyimpan dan mengelola data—dan mungkin logika bisnis dan pemrosesan input pengguna—aplikasi ini sering kali stateless atau hanya mengelola volume data yang terbatas.
Agar dapat diakses dan digunakan, Anda dapat membangun 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 dapat digabungkan dalam komponen backend. Rilis baru aplikasi backend cenderung lebih jarang dibandingkan rilis untuk aplikasi frontend. Aplikasi backend memiliki tantangan berikut dalam pengelolaannya:
- Menangani permintaan dalam jumlah besar
- Menangani data dalam jumlah besar
- Mengamankan data
- Mempertahankan data yang terkini dan terbaru di semua replika sistem
Solusi aplikasi web tiga tingkat adalah salah satu implementasi paling populer untuk membangun aplikasi web bisnis, seperti situs e-commerce yang berisi berbagai komponen aplikasi. Arsitektur ini berisi tingkat berikut. Setiap tingkat beroperasi secara independen, tetapi saling terkait erat dan semuanya berfungsi bersama.
- Frontend web dan tingkat presentasi
- Tingkat aplikasi
- Akses data atau tingkat backend
Menempatkan lapisan ini ke dalam penampung memisahkan kebutuhan teknisnya, seperti persyaratan penskalaan, dan membantu memigrasikannya dengan pendekatan bertahap. Selain itu, Anda dapat men-deploy aplikasi tersebut di layanan cloud yang independen terhadap platform yang dapat di-deploy di berbagai lingkungan, menggunakan pengelolaan otomatis, dan menskalakan dengan platform yang dikelola cloud, seperti Cloud Run atau Google Kubernetes Engine (GKE) Enterprise Edition. Selain itu, database yang dikelolaGoogle Cloud 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 semua komponen aplikasi backend yang ada di lingkungan komputasi pribadinya. Bergantung pada skala dan desain spesifik aplikasi, Anda dapat memigrasikan komponen aplikasi frontend berdasarkan kasus per kasus. Untuk informasi selengkapnya, lihat Bermigrasi ke Google Cloud.
Jika Anda memiliki aplikasi yang sudah ada dengan komponen backend dan frontend yang dihosting di lingkungan lokal, pertimbangkan batas arsitektur Anda saat ini. Misalnya, saat aplikasi Anda diskalakan dan permintaan pada performa dan keandalannya meningkat, Anda harus mulai mengevaluasi apakah bagian aplikasi Anda harus di-refactor atau dipindahkan ke arsitektur yang berbeda dan lebih optimal. Pola arsitektur hybrid bertingkat memungkinkan Anda memindahkan beberapa beban kerja dan komponen aplikasi ke cloud sebelum melakukan transisi lengkap. Penting juga untuk mempertimbangkan biaya, waktu, dan risiko yang terlibat dalam migrasi tersebut.
Diagram berikut menunjukkan pola arsitektur hybrid bertingkat yang umum.
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 (idealnya melalui gateway API).
Dengan pola arsitektur hybrid bertingkat, Anda dapat memanfaatkan infrastruktur dan layanan globalGoogle Cloud , seperti yang ditunjukkan dalam contoh arsitektur dalam diagram berikut. Frontend aplikasi dapat dijangkau melalui Google Cloud. Hal ini juga dapat menambahkan elastisitas ke frontend 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 persyaratan yang berbeda.
Untuk mengetahui informasi selengkapnya, tonton video Tiga cara untuk menjalankan aplikasi web yang skalabel di Google Cloud di YouTube. Untuk mempelajari lebih lanjut berbagai cara memodernisasi platform e-commerce Anda di Google Cloud, lihat Cara membangun platform perdagangan digital di Google Cloud.
Dalam diagram sebelumnya, frontend aplikasi dihosting di Google Cloud untuk memberikan pengalaman pengguna multi-regional dan yang dioptimalkan secara global yang menggunakan load balancing, penskalaan otomatis, dan perlindungan DDoS global melalui Google Cloud Armor.
Seiring waktu, jumlah aplikasi yang Anda deploy ke cloud publik mungkin meningkat hingga Anda mempertimbangkan untuk memindahkan komponen aplikasi backend ke cloud publik. Jika Anda memperkirakan akan melayani traffic yang berat, memilih layanan yang dikelola cloud dapat membantu Anda menghemat upaya engineering saat mengelola infrastruktur Anda sendiri. Pertimbangkan opsi ini kecuali jika batasan atau persyaratan mewajibkan hosting komponen aplikasi backend di infrastruktur lokal. Misalnya, jika data backend Anda tunduk pada pembatasan peraturan, Anda mungkin perlu menyimpan data tersebut secara lokal. Namun, jika berlaku dan mematuhi, penggunaan kemampuan Sensitive Data Protection 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 Google Kubernetes Engine di hardware khusus yang disediakan dan dikelola oleh Google serta terpisah dari pusat data. Google Cloud 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 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.
- Karena aplikasi frontend sering kali bersifat stateless atau tidak mengelola datanya sendiri, maka aplikasi tersebut cenderung tidak terlalu sulit untuk dimigrasikan dibandingkan backend.
- Komponen frontend dapat dioptimalkan sebagai bagian dari migrasi untuk menggunakan arsitektur tanpa status. Untuk mengetahui informasi selengkapnya, tonton video Cara mem-porting aplikasi web stateful ke Cloud Run di YouTube.
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/continuous deployment (CI/CD). Anda dapat menggunakan CI/CD untuk mengirim 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 memperoleh manfaat besar dari load balancing, deployment multi-regional, kemampuan serverless, dan penskalaan otomatis yang didukung oleh deployment berbasis cloud (idealnya dengan arsitektur tanpa status).
Dengan mengadopsi microservice dengan container menggunakan platform yang dikelola cloud, seperti GKE, Anda dapat menggunakan arsitektur modern seperti microfrontend, yang memperluas microservice ke komponen frontend.
Memperluas microservice biasanya digunakan dengan frontend yang melibatkan beberapa tim yang berkolaborasi dalam aplikasi yang sama. Struktur tim semacam itu memerlukan pendekatan iteratif dan pemeliharaan berkelanjutan. Beberapa keuntungan menggunakan microfrontend adalah sebagai berikut:
- Aplikasi ini dapat dibuat menjadi modul microservice independen untuk pengembangan, pengujian, dan deployment.
- Hal ini memberikan pemisahan di mana setiap tim pengembangan dapat memilih teknologi dan kode yang mereka sukai.
- Hal ini 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 yang dikelola 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.
- Ekspos 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 kurang umum, 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 tidak terkait erat, termasuk arsitektur microservice dan monolitik bertingkat.
Praktik terbaik
Gunakan informasi di bagian ini saat Anda merencanakan arsitektur hybrid bertingkat.
Praktik terbaik untuk mengurangi kerumitan
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.
Karena sebagian besar interaksi pengguna melibatkan sistem yang terhubung di beberapa lingkungan komputasi, 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 dikontrol dan dilakukan dengan sangat cermat. Idealnya, Anda harus mengekspos komponen aplikasi menggunakan API yang aman. Untuk mengetahui informasi selengkapnya, lihat Egress dengan gerbang.
- Untuk meminimalkan latensi komunikasi antarlingkungan, pilih 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 keGoogle Cloud dibandingkan dengan traffic keluar yang keluar dari Google Cloud. Namun, Anda harus mengetahui perkiraan volume transfer data keluar yang keluar dari 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 deploy gateway atau proxy API sebagai facade yang menyatukan, jika berlaku. Gateway atau proxy ini berfungsi sebagai titik kontrol terpusat dan melakukan tindakan berikut:
- Menerapkan langkah-langkah keamanan tambahan.
- Melindungi aplikasi klien dan layanan lain dari perubahan kode backend.
- Memfasilitasi jalur audit untuk komunikasi antara semua aplikasi lintas lingkungan dan komponen yang tidak terikat.
- Berfungsi sebagai
lapisan komunikasi perantara
antara layanan lama dan layanan yang dimodernisasi.
- Apigee dan Apigee Hybrid memungkinkan Anda menghosting dan mengelola gateway hybrid tingkat perusahaan di seluruh lingkungan lokal, edge, cloud lainnya, dan lingkunganGoogle Cloud .
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 layanan, 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 secara bersamaan, dapat memberikan solusi yang lebih andal untuk mengelola, mengamankan, dan mendistribusikan traffic API dalam skala besar. Menggunakan Cloud Load Balancing dengan gateway API memungkinkan Anda melakukan hal berikut:
- Menyediakan API berperforma tinggi dengan Apigee dan Cloud CDN, untuk mengurangi latensi, menghosting API secara global, dan meningkatkan ketersediaan untuk musim traffic puncak. Untuk mengetahui informasi selengkapnya, tonton video Menyediakan API berperforma tinggi dengan Apigee dan Cloud CDN di YouTube.
- Terapkan pengelolaan traffic lanjutan.
- Gunakan Google Cloud Armor sebagai layanan keamanan jaringan dan perlindungan DDoS untuk melindungi API Anda.
- Mengelola load balancing yang efisien di seluruh gateway di beberapa region. Untuk mengetahui informasi selengkapnya, tonton video Securing APIs and Implementing multi-region failover with Private Service Connect and Apigee di YouTube.
Gunakan pengelolaan API dan mesh layanan untuk mengamankan dan mengontrol komunikasi dan eksposur layanan dengan arsitektur microservice.
- Gunakan Cloud Service Mesh untuk memungkinkan komunikasi antar-layanan yang mempertahankan kualitas layanan dalam sistem yang terdiri dari layanan terdistribusi tempat Anda dapat mengelola autentikasi, otorisasi, dan enkripsi antar-layanan.
- Gunakan platform pengelolaan API seperti Apigee yang memungkinkan organisasi dan entitas eksternal Anda menggunakan layanan tersebut dengan mengeksposnya sebagai API.
Bangun identitas bersama antarlingkungan agar sistem dapat melakukan autentikasi dengan aman di seluruh batas lingkungan.
Deploy sistem CI/CD dan manajemen konfigurasi 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 aplikasi dan workload 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, perbedaan tersebut dapat menyebabkan kompleksitas tambahan.
- Memperlakukan API sebagai antarmuka backend menyederhanakan integrasi, pengembangan frontend, interaksi layanan, dan menyembunyikan kompleksitas sistem backend. Untuk mengatasi tantangan ini, Apigee memfasilitasi pengembangan dan pengelolaan gateway/proxy 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, tersedia berbagai opsi, termasuk arsitektur monolitik, serverless, berbasis peristiwa, dan microservice. Untuk memilih arsitektur yang paling sesuai, nilai opsi ini secara menyeluruh berdasarkan 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 seluruh lingkungan, Anda memiliki fleksibilitas untuk memodernisasi workload dan kemudian bermigrasi ke Google Cloud pada waktu yang berbeda. Hal ini membantu ketika workload sangat bergantung pada workload lain dan tidak dapat dimigrasikan secara terpisah, atau untuk menggunakan portabilitas workload hybrid guna menggunakan resource terbaik yang tersedia di setiap lingkungan. Dalam semua kasus, GKE Enterprise dapat menjadi teknologi pendukung utama. Untuk informasi selengkapnya, lihat Lingkungan hybrid GKE Enterprise.
Di lingkungan Google Cloud untuk komponen aplikasi yang dimigrasikan dan dimodernisasi.
- Gunakan pendekatan ini jika Anda memiliki backend lama di lokasi yang tidak memiliki dukungan penampungan atau memerlukan waktu dan resource yang signifikan untuk memodernisasi 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. Menggunakan Cloud SQL untuk data terstruktur dan Cloud Storage untuk file media adalah pendekatan umum untuk memenuhi beragam kebutuhan penyimpanan data. Namun, pilihan 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, secara mendetail. Google Cloud