Panduan ini memberikan praktik terbaik untuk merancang, menentukan, dan mengelola aplikasi App Hub Anda di Google Cloud yang berfokus pada aplikasi, menggunakan App Hub dan Application Design Center. Mengikuti praktik ini adalah kunci untuk membuat aplikasi yang dapat dioperasikan, dikelola, dan efisien yang selaras dengan tujuan bisnis Anda.
Prinsip inti pengelolaan aplikasi
Dengan mematuhi prinsip inti berikut, Anda dapat memaksimalkan nilai yang diperoleh dari pengelolaan infrastruktur Google Cloud dengan cara yang berfokus pada aplikasi:
Tentukan batas yang jelas: Tetapkan batas pengelolaan aplikasi dengan cara yang logis untuk operasi, pemantauan, tata kelola, dan pemecahan masalah Anda. Selain itu, resource dalam batas ini yang Anda gunakan sebagai komponen aplikasi sebaiknya memiliki siklus proses operasional atau nilai bisnis bersama untuk menyederhanakan pengelolaan dan mengurangi risiko.
Untuk tujuan operasional, penting untuk memahami perbedaan antara batas pengelolaan aplikasi dan cakupan kemampuan observasi.
- Batas pengelolaan aplikasi menentukan kumpulan project yang berisi Google Cloud resource yang dapat Anda gunakan untuk mendesain, membuat, dan mengelola aplikasi, seperti yang dijelaskan dalam Konsep utama.
- Cakupan observabilitas di Google Cloud Observability memungkinkan Anda melihat telemetri dari beberapa project secara bersamaan.
Cakupan log, metrik, dan rekaman aktivitas Anda harus mencakup data dari project yang sama yang disertakan dalam batas pengelolaan aplikasi Anda. Untuk informasi selengkapnya tentang cakupan kemampuan pengamatan, lihat Mengonfigurasi cakupan kemampuan pengamatan.
Mencerminkan kemampuan bisnis: Tentukan aplikasi Anda di seputar fungsi bisnis atau alur kerja end-to-end, bukan hanya lapisan teknis. Aplikasi harus merepresentasikan aliran nilai yang berbeda untuk bisnis Anda.
Tentukan kepemilikan dan metadata yang jelas: Tetapkan atribut yang jelas ke setiap aplikasi agar tim dapat menemukan, memahami, dan mengelolanya secara efektif di App Hub. Atribut ini mendukung penemuan dan tata kelola. Kemudahan penemuan berarti tim yang relevan, seperti developer dan operator, dapat menemukan aplikasi. Tata kelola secara jelas menentukan siapa yang memiliki dan bertanggung jawab atas setiap aplikasi.
Di App Hub, Anda dapat menentukan atribut utama seperti berikut:
- Lingkungan: Tahap dalam siklus proses aplikasi, seperti Produksi, Staging, Pengujian, atau Pengembangan. Atribut ini membantu tim memfilter dan mengelola komponen berdasarkan tahap deployment-nya.
- Kekritisan: Pentingnya aplikasi dan komponennya bagi bisnis, seperti apakah aplikasi tersebut penting untuk misi. Atribut ini dapat menginformasikan prioritas pemantauan dan respons insiden.
- Pemilik: Informasi kontak untuk berbagai tim yang bertanggung jawab atas aplikasi, yang mendorong akuntabilitas, menyederhanakan komunikasi, dan memperjelas tanggung jawab.
Pusat Desain Aplikasi mendukung atribut ini dan juga menyertakan detail lokasi dan konfigurasi untuk komponen aplikasi. Menerapkan atribut dan detail tersebut secara konsisten sangat penting untuk penemuan, tata kelola, dan pelaporan.
Desain untuk evolusi: Application Design Center membantu Anda mendesain untuk evolusi dengan memungkinkan Anda membuat template yang dapat digunakan kembali untuk aplikasi Anda. Jika Anda memperbarui template pokok, Anda dapat menerapkan perubahan tersebut dengan men-deploy ulang aplikasi, yang membantu Anda memenuhi permintaan, memperkenalkan fitur baru, atau melakukan perubahan arsitektur, mengakomodasi pertumbuhan di masa mendatang dan kebutuhan infrastruktur yang terus berkembang.
Lakukan iterasi dan sempurnakan model aplikasi: Tinjau dan sesuaikan definisi aplikasi Anda secara rutin untuk mencerminkan perubahan dalam struktur organisasi, prioritas bisnis, dan arsitektur teknis Anda. Cloud Hub menyediakan tampilan terpusat dari update yang tersedia untuk aplikasi yang di-deploy dari template Application Design Center, sehingga membantu Anda meninjau dan menyesuaikan definisi aplikasi untuk mencerminkan kebutuhan yang terus berubah ini.
Rekomendasi model data
Dengan memahami cara memodelkan sistem dunia nyata sebagai aplikasi, layanan, dan beban kerja dalam framework App Hub, Anda dapat menggunakan kemampuan pengelolaan aplikasi secara efektif di lingkungan Google CloudAnda.
Saat Anda menentukan aplikasi, penting untuk menerapkan prinsip inti pengelolaan aplikasi, seperti menggunakan atribut untuk menetapkan kepemilikan dan metadata yang jelas.
Untuk memodelkan komponen aplikasi Anda dengan mempertimbangkan framework ini, lihat contoh kasus penggunaan yang direkomendasikan berikut.
Contoh: Aplikasi berbasis microservice
Sistem e-commerce, seperti yang dijelaskan dalam demo OpenTelemetry untuk toko online, adalah contoh aplikasi berbasis microservice. Sebaiknya modelkan sistem semacam ini sebagai satu aplikasi. Pendekatan ini memberikan tampilan terpadu dari seluruh fungsi bisnis, mulai dari penemuan produk hingga checkout. Misalnya, pertimbangkan model berikut untuk resource yang ada yang berjalan di Google Cloud:
Aplikasi: Buat atau tentukan satu aplikasi di App Hub yang diberi nama, misalnya,
my-ecommerce-site. Aplikasi ini merepresentasikan seluruh toko online sebagai satu unit yang dapat dikelola. Daftarkan resource berikut ke aplikasi untuk membuat pengelompokan komponen logis yang bersama-sama memberikan fungsi bisnis toko online Anda:- Microservice sebagai workload: Daftarkan setiap microservice yang membentuk sistem e-commerce, seperti Ad, Cart, dan Checkout, sebagai workload dalam aplikasi. Ini adalah resource komputasi dengan kode biner yang menjalankan bagian diskrit dari logika bisnis, yang berjalan sebagai deployment Google Kubernetes Engine (GKE).
- Endpoint jaringan sebagai layanan: Daftarkan endpoint jaringan untuk microservice ini, seperti load balancer-nya, sebagai layanan dari aplikasi. API ini mengekspos fungsi toko online kepada klien.
Hindari mendaftarkan setiap microservice sebagai aplikasinya sendiri. Pendekatan tersebut memecah konteks bisnis dan mempersulit Anda mendapatkan gambaran menyeluruh tentang kondisi dan performa toko online Anda.
Dengan mengelompokkan semua microservice ke dalam satu aplikasi, Anda akan mendapatkan manfaat berikut:
- Visibilitas komprehensif: Anda dapat memantau kondisi dan performa seluruh perjalanan pengguna e-commerce, mulai dari fungsi iklan hingga fungsi checkout, dalam satu tampilan terpadu.
- Konteks bisnis yang jelas: Aplikasi menyelaraskan infrastruktur dengan fungsi bisnis yang dilayaninya, yaitu toko online. Pendekatan ini memudahkan pemahaman tentang kondisi dan biaya aplikasi.
- Pemecahan masalah yang disederhanakan: Saat masalah muncul, Anda dapat melihat dependensi antara berbagai microservice dalam aplikasi, sehingga mempercepat analisis penyebab utama.
Contoh: Aplikasi web tiga tingkat
Aplikasi web tiga tingkat adalah pola arsitektur yang memisahkan aplikasi menjadi tingkat frontend, tingkat backend, dan tingkat database. Kasus penggunaan ini menunjukkan cara memodelkan fungsi bisnis lengkap sebagai satu aplikasi, bukan memperlakukan setiap tingkat sebagai komponen terpisah.
Model berikut memetakan lapisan teknis ke aplikasi web tiga tingkat:
Aplikasi: Buat satu aplikasi, misalnya,
my-web-app, untuk berfungsi sebagai penampung logis untuk semua komponen yang membentuk aplikasi web Anda.Layanan: Mendaftarkan antarmuka jaringan yang mengekspos fungsi ke tingkatan lain atau ke pengguna sebagai layanan, misalnya:
- Load balancer frontend yang menerima traffic pengguna.
- Load balancer internal yang mengelola traffic antara frontend dan backend.
- Instance database Cloud SQL atau Spanner, yang mengekspos layanan data ke tingkat logika backend.
Workload: Daftarkan resource komputasi yang menjalankan kode aplikasi Anda sebagai workload, misalnya:
- Deployment Managed Instance Groups (MIG) atau Google Kubernetes Engine yang menayangkan antarmuka pengguna frontend.
- MIG atau deployment Google Kubernetes Engine yang menjalankan logika bisnis backend.
Dengan mengelompokkan ketiga tingkat ke dalam satu aplikasi, Anda akan mendapatkan manfaat berikut:
- Observabilitas terpadu: Anda dapat memantau kondisi dan performa seluruh aplikasi dari satu dasbor di Application Monitoring, daripada harus mengumpulkan data dari tiga aplikasi terpisah.
- Kepemilikan yang jelas: Anda dapat menetapkan pemilik bisnis, developer, dan operator
ke aplikasi
my-web-app, sehingga memperjelas akuntabilitas untuk seluruh fungsi bisnis. - Tata kelola yang disederhanakan: Anda dapat menerapkan kebijakan dan kontrol akses di tingkat
my-web-app, yang mendukung tata kelola yang konsisten di semua tingkat.
Strategi desain dan tata kelola aplikasi
Terapkan strategi berikut untuk memastikan penyiapan App Hub dan Pusat Desain Aplikasi Anda dapat diskalakan, dapat dikelola, dan selaras dengan praktik operasional Anda.
Memilih antara aplikasi global dan regional
Lokasi yang Anda pilih untuk aplikasi, baik global maupun regional, adalah keputusan mendasar yang memengaruhi penanganan data, latensi, dan kepatuhan:
- Prioritaskan aplikasi regional: Jika memungkinkan, tetapkan aplikasi Anda sebagai regional. Praktik ini memberikan manfaat seperti pengurangan latensi, potensi penghematan biaya, dan keselarasan dengan persyaratan residensi data. Aplikasi regional direkomendasikan jika semua komponen aplikasi berada dalam satu Google Cloud region, sehingga memberikan kompatibilitas bawaan dengan fitur Google Cloud dan domain kegagalan khusus wilayah. Untuk panduan tentang cara membangun sistem dengan ketersediaan tinggi, lihat Membangun sistem dengan ketersediaan tinggi melalui redundansi resource.
- Gunakan aplikasi global secara strategis: Pilih aplikasi global hanya jika komponen sistem Anda harus tersebar di beberapa region atau melibatkan resource Google Cloud global, seperti Load Balancer Aplikasi eksternal global.
- Menguraikan sistem multi-region: Jika Anda memiliki resource di beberapa region yang tidak membentuk satu fungsi global yang kohesif, pertimbangkan untuk menentukan aplikasi regional terpisah untuk komponen dalam setiap region masing-masing. Praktik ini memaksimalkan manfaat regionalisasi untuk setiap deployment.
Untuk perbandingan mendetail antara berbagai geografi deployment di App Hub, lihat Aplikasi global dan regional.
Memisahkan lingkungan ke dalam aplikasi yang berbeda
Untuk mendukung isolasi keamanan, izin, dan risiko operasional, tampilkan
lingkungan deployment yang berbeda, seperti pengembangan, staging, dan produksi,
sebagai aplikasi yang berbeda. Misalnya, Anda dapat menyusun aplikasi sebagai
my-app-dev, my-app-staging, dan my-app-prod.
Memisahkan lingkungan ke dalam aplikasi yang berbeda menawarkan batas yang tepat untuk
kontrol akses, penerapan kebijakan, dan pemantauan. Selain itu, penggunaan atribut, detail konfigurasi, dan lokasi secara konsisten pada komponen aplikasi Anda akan meningkatkan visibilitas dan menerapkan tata kelola. Atribut ini
memberikan metadata yang kaya untuk pemfilteran, pelaporan, dan penerapan kebijakan. Misalnya, atribut Environment memberikan detail terperinci dan kontrol khusus resource untuk kebijakan lingkungan deployment yang berbeda. Untuk mengetahui informasi selengkapnya tentang atribut ini dan atribut lainnya, lihat Properti dan atribut.
Menyelaraskan batas pengelolaan aplikasi dengan struktur tim
Menampilkan struktur organisasi Anda, khususnya tim yang bertanggung jawab atas pengembangan dan pengoperasian aplikasi, dalam batas pengelolaan aplikasi Anda.
Praktik ini menyederhanakan kepemilikan dan komunikasi karena model aplikasi mencerminkan framework yang digunakan bisnis Anda untuk menentukan cara tugas dibagi, dikelompokkan, dan dikoordinasikan untuk mencapai fungsinya.
Mengikuti siklus proses aplikasi
Mengintegrasikan App Hub dengan Application Design Center untuk pengalaman siklus proses aplikasi yang lancar:
- Anda memiliki resource yang sudah ada untuk didaftarkan dalam aplikasi: Gunakan App Hub untuk mendaftarkan resource yang sudah ada sebagai layanan atau beban kerja dalam aplikasi. Google Cloud Praktik ini memberikan visibilitas dan kontrol operasional yang terpadu atas infrastruktur Anda saat ini dengan cepat. Secara opsional, Anda dapat membuat template di Application Design Center dari aplikasi yang sedang berjalan untuk menstandardisasi arsitektur untuk deployment mendatang.
- Anda tidak memiliki resource yang sudah ada untuk didaftarkan dalam aplikasi: Gunakan Pusat Desain Aplikasi untuk mendesain dan men-deploy aplikasi baru dari template yang diatur dan dapat digunakan kembali. Saat Anda men-deploy aplikasi dari template Pusat Desain Aplikasi, komponen akan otomatis terdaftar di App Hub sehingga model aplikasi Anda secara akurat mencerminkan desain yang diinginkan. Pusat Desain Aplikasi juga membantu Anda mengelola update aplikasi yang konsisten berdasarkan revisi template. Jika memperbarui template, Anda dapat men-deploy ulang aplikasi untuk menyebarkan perubahan, mendukung konsistensi dan tata kelola.
Pertimbangan hierarki resource
Hierarki resource Anda di Google Cloud adalah dasar untuk pengelolaan aplikasi praktis. Anda memperkenalkan lapisan pengelolaan aplikasi di atas hierarki tersebut melalui konfigurasi project pengelolaan untuk menentukan batas pengelolaan aplikasi Anda. Untuk mengetahui ringkasan cara kerja berbagai produk bersama-sama sebagai bagian dari solusi Google Cloud yang berfokus pada Aplikasi, lihat Google Cloud yang berfokus pada aplikasi.
Perencanaan yang matang untuk Google Cloud hierarki resource Anda untuk pengelolaan aplikasi sangat penting untuk membuat pengelompokan yang logis. Pilihan Anda atas satu project, folder, atau sekumpulan project untuk menentukan batas pengelolaan aplikasi pada dasarnya membentuk tata kelola, penerapan kebijakan, dan penemuan resource. Selain itu, dukungan produk Google Cloud yang berfokus pada Aplikasi bervariasi sesuai dengan cara Anda menentukan batas pengelolaan aplikasi ini.
Untuk menentukan batas pengelolaan aplikasi terbaik untuk hierarki resource dan kebutuhan bisnis Anda, serta mempelajari dukungan produk untuk berbagai pola struktur resource, lihat Memilih model penyiapan aplikasi.
Penyempurnaan berkelanjutan
Desain aplikasi tidak statis; biasanya berkembang seiring waktu. Tinjau dan sesuaikan aplikasi Anda secara rutin untuk memastikan aplikasi tersebut terus selaras dengan fungsi bisnis, struktur tim, dan perubahan arsitektur Anda.
Sebaiknya gunakan insight dari Cloud Hub dan Gemini Cloud Assist untuk mengidentifikasi peluang pengoptimalan dan menyesuaikan aplikasi Anda. Gunakan Pusat Desain Aplikasi untuk memodelkan dan men-deploy perubahan arsitektur serta mengelola siklus proses aplikasi Anda melalui template.