Praktik terbaik untuk pengelolaan aplikasi

Google Cloud yang berfokus pada aplikasi memungkinkan Anda membuat dan mengelola aplikasi secara konsisten di seluruh Google Cloud. Mengikuti praktik terbaik untuk desain dan pengelolaan aplikasi di App Hub dan Application Design Center akan membantu Anda membangun aplikasi yang dapat dioperasikan, diatur, dan efisien yang selaras dengan tujuan bisnis Anda.

Prinsip utama pengelolaan aplikasi

Mematuhi prinsip-prinsip inti berikut akan membantu Anda memaksimalkan nilai yang diperoleh dari pengelolaan infrastruktur Google Cloud dengan cara yang berfokus pada aplikasi:

  • Tentukan batasan yang jelas: Tetapkan batasan 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 idealnya harus berbagi siklus proses operasional bersama atau nilai bisnis 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 resource Google Cloud yang dapat Anda gunakan untuk mendesain, membuat, dan mengelola aplikasi, seperti yang dijelaskan dalam Konsep utama.
    • Cakupan kemampuan observasi di Google Cloud Observability memungkinkan Anda melihat telemetri dari beberapa project secara bersamaan.

    Cakupan log, metrik, dan trace Anda harus menyertakan data dari project yang sama yang disertakan dalam batas pengelolaan aplikasi Anda. Untuk mengetahui informasi selengkapnya tentang cakupan kemampuan observasi, lihat Mengonfigurasi cakupan kemampuan observasi.

  • Mencerminkan kemampuan bisnis: Tentukan aplikasi Anda berdasarkan fungsi bisnis atau alur kerja menyeluruh, bukan hanya lapisan teknis. Aplikasi harus mewakili aliran nilai yang berbeda untuk bisnis Anda.

  • Tetapkan 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 visibilitas dan tata kelola. Penemuan berarti tim yang relevan, seperti developer dan operator, dapat menemukan aplikasi. Tata kelola dengan 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: Kepentingan bisnis aplikasi dan komponennya, seperti apakah aplikasi tersebut sangat penting. 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.

    Application Design Center mendukung atribut ini dan juga menyertakan detail lokasi dan konfigurasi untuk komponen aplikasi. Penerapan atribut dan detail tersebut secara konsisten sangat penting untuk penemuan, tata kelola, dan pelaporan.

  • Mendesain untuk evolusi: Application Design Center membantu Anda mendesain untuk evolusi dengan memungkinkan Anda membuat template yang dapat digunakan kembali untuk aplikasi Anda. Jika Anda mengupdate template yang mendasarinya, Anda dapat menerapkan perubahan tersebut dengan men-deploy ulang aplikasi, yang membantu Anda memenuhi permintaan, memperkenalkan fitur baru, atau membuat 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. 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 berkembang ini.

Rekomendasi model data

Dengan memahami cara memodelkan sistem dunia nyata sebagai aplikasi, layanan, dan workload dalam framework App Hub, Anda dapat menggunakan kemampuan pengelolaan aplikasi secara efektif di lingkungan Google Cloud Anda.

Saat Anda menentukan aplikasi, penting untuk menerapkan prinsip inti pengelolaan aplikasi, seperti menggunakan atribut untuk menetapkan kepemilikan dan metadata yang jelas.

Untuk membuat model komponen aplikasi Anda dengan mempertimbangkan framework ini, pertimbangkan 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 buat model 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:

  • Application: Buat atau tentukan satu aplikasi di App Hub yang diberi nama, misalnya, my-ecommerce-site. Aplikasi ini mewakili seluruh toko online sebagai satu unit yang dapat dikelola. Daftarkan resource berikut ke aplikasi untuk membuat grup logis komponen yang bersama-sama menyediakan 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 diskret 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 aplikasi. API ini mengekspos fungsi toko online kepada klien.

Jangan mendaftarkan setiap microservice sebagai aplikasinya sendiri. Pendekatan tersebut memecah konteks bisnis dan menyulitkan Anda mendapatkan gambaran komprehensif tentang kondisi dan performa toko online Anda.

Dengan mengelompokkan semua microservice ke dalam satu aplikasi, Anda akan mendapatkan manfaat berikut:

  • Visibilitas yang 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 terjadi masalah, Anda dapat melihat dependensi antara berbagai microservice dalam aplikasi, sehingga mempercepat analisis akar masalah.

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 yang lengkap sebagai satu aplikasi, bukan memperlakukan setiap tingkat sebagai komponen yang terisolasi.

Model berikut memetakan lapisan teknis ke dalam aplikasi web tiga tingkat:

  • Aplikasi: Buat satu aplikasi, misalnya, my-web-app, untuk berfungsi sebagai container logis bagi semua komponen yang membentuk aplikasi web Anda.

  • Layanan: Daftarkan antarmuka jaringan yang mengekspos fungsionalitas ke tingkat 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:

    • Grup Instance Terkelola (MIG) atau deployment Google Kubernetes Engine yang menyajikan antarmuka pengguna frontend.
    • Deployment MIG atau Google Kubernetes Engine yang menjalankan logika bisnis backend.

Dengan mengelompokkan ketiga tingkat ke dalam satu aplikasi, Anda akan mendapatkan manfaat berikut:

  • Kemampuan observasi terpadu: Anda dapat memantau kondisi dan performa seluruh aplikasi dari satu dasbor di Application Monitoring, tanpa harus menggabungkan 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, sehingga mendukung tata kelola yang konsisten di semua tingkat.

Strategi desain dan tata kelola aplikasi

Terapkan strategi berikut untuk memastikan penyiapan App Hub dan Application Design Center Anda skalabel, dapat diatur, 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, tentukan 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 region Google Cloud , sehingga memberikan kompatibilitas bawaan dengan fitur dan domain kegagalan khusus region Google Cloud . 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 global Google Cloud , 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, representasikan 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 batasan 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 menyediakan metadata yang lengkap 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

Merepresentasikan struktur organisasi Anda, khususnya tim yang bertanggung jawab atas pengembangan dan operasi 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

Integrasikan 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 Google Cloud yang ada sebagai layanan atau workload dalam aplikasi. Praktik ini memberikan visibilitas dan kontrol operasional terpadu atas infrastruktur Anda saat ini dengan cepat. Secara opsional, Anda dapat membuat template di Application Design Center dari aplikasi yang sedang berjalan untuk menstandarkan arsitektur untuk deployment di masa mendatang.
  • Anda tidak memiliki resource yang sudah ada untuk didaftarkan dalam aplikasi: Gunakan Application Design Center untuk mendesain dan men-deploy aplikasi baru dari template yang diatur dan dapat digunakan kembali. Saat Anda men-deploy aplikasi dari template Application Design Center, komponen akan otomatis didaftarkan di App Hub sehingga model aplikasi Anda mencerminkan desain yang diinginkan secara akurat. Application Design Center juga membantu Anda mengelola update aplikasi yang konsisten berdasarkan revisi template. Jika Anda memperbarui template, Anda dapat men-deploy ulang aplikasi untuk menerapkan perubahan, sehingga mendukung konsistensi dan tata kelola.

Pertimbangan hierarki resource

Hierarki resource Anda di Google Cloud adalah fondasi untuk pengelolaan aplikasi praktis. Anda memperkenalkan lapisan pengelolaan aplikasi di atas hierarki tersebut melalui konfigurasi project pengelolaan untuk menentukan batas pengelolaan aplikasi Anda. Untuk ringkasan tentang cara berbagai produk bekerja sama sebagai bagian dari solusi Google Cloud yang berfokus pada aplikasi, lihat Google Cloud yang berfokus pada aplikasi.

Perencanaan yang cermat terhadap Google Cloud hierarki resource untuk pengelolaan aplikasi sangat penting untuk membuat grup logis. Pilihan Anda atas satu project, folder, atau serangkaian project untuk menentukan batas pengelolaan aplikasi pada dasarnya akan membentuk tata kelola, penegakan 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 bagi 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 bersifat statis; desain tersebut biasanya berkembang seiring waktu. Tinjau dan sempurnakan aplikasi Anda secara rutin untuk memastikan aplikasi tersebut terus selaras dengan fungsi bisnis, struktur tim, dan arsitektur yang berubah.

Sebaiknya gunakan insight dari Cloud Hub dan Gemini Cloud Assist untuk mengidentifikasi peluang pengoptimalan dan menyesuaikan aplikasi Anda. Gunakan Application Design Center untuk membuat model dan men-deploy perubahan arsitektur serta mengelola siklus proses aplikasi Anda melalui template.