Merancang aplikasi multi-tingkat dengan bantuan Duet AI

Tutorial ini menunjukkan cara menggunakan Duet AI, kolaborator dengan teknologi AI di Google Cloud, untuk merancang aplikasi web multi-tingkat menggunakan layanan terkelola sepenuhnya jika memungkinkan.

Tujuan

  • Jelajahi berbagai layanan Google yang dapat Anda gunakan untuk melayani traffic melalui internet publik.
  • Jelajahi berbagai layanan Google yang dapat Anda gunakan untuk meng-cache data agar pengambilan lebih cepat.
  • Jelajahi berbagai layanan Google yang dapat Anda gunakan untuk mempertahankan data stateful.
  • Merancang cara berbagai layanan Google saling beroperasi.

Produk Google Cloud yang digunakan

  • Cloud Run. Cloud Run adalah platform komputasi terkelola yang memungkinkan Anda menjalankan container langsung di atas infrastruktur Google yang skalabel. Anda dapat men-deploy kode yang ditulis dalam bahasa pemrograman apa pun di Cloud Run jika Anda dapat mem-build image container dari bahasa tersebut.
  • Cloud Memorystore. Cloud Memorystore adalah layanan datastore dalam memori yang terkelola sepenuhnya untuk Redis dan Memcached. Mem-build cache aplikasi yang menyediakan akses data sub-milidetik.
  • Cloud SQL. Cloud SQL adalah layanan yang memberikan database relasional yang terkelola sepenuhnya di cloud. Platform ini menawarkan mesin database MySQL, PostgreSQL, dan SQL Server.

Sebelum memulai

  1. Pastikan Duet AI sudah disiapkan untuk project dan akun pengguna Google Cloud Anda.

Mempelajari penayangan web di Google Cloud

Pada contoh berikut, anggaplah Anda adalah arsitek yang ingin menggunakan Duet AI untuk membantu membuat keputusan terkait jalur emas di seluruh organisasi bagi developer yang ingin membangun aplikasi web dengan cepat di Google Cloud. Tujuan Anda adalah menggunakan bantuan Duet AI untuk memahami opsi yang dapat Anda gunakan, karakteristiknya, dan interoperabilitasnya.

Di konsol Google Cloud, Anda dapat melakukan chat dengan Duet AI untuk mendapatkan bantuan. Dengan panel Duet AI, Anda dapat memasukkan perintah, yaitu pertanyaan atau pernyataan yang menjelaskan bantuan yang Anda inginkan, dan Duet AI akan menampilkan respons.

Anda memulainya dengan meminta Duet AI untuk membantu Anda membuat keputusan terkait tingkat komputasi tempat penayangan web Anda akan dijalankan. Lakukan langkah-langkah berikut:

  1. Di toolbar Konsol Google Cloud, klik Open Duet AI.

  2. Di panel Duet AI, masukkan perintah berikut berdasarkan persyaratan dan preferensi Anda, lalu klik kirim:

    I am designing a multi-tier web app in Google Cloud. First, I would
    like help on deciding what to use for the compute tier. What are my
    options for running an app to serve traffic over the public internet?
    I would like to prioritize fully-managed services.
    

    Respons Duet AI akan terlihat seperti berikut:

    Ada beberapa opsi untuk menjalankan aplikasi guna melayani traffic melalui internet publik di Google Cloud. Anda dapat menggunakan Cloud Run, App Engine, atau Compute Engine.
    Cloud Run adalah platform serverless yang terkelola sepenuhnya dan memungkinkan Anda menjalankan container stateless yang dapat dipanggil menggunakan permintaan HTTP. App Engine adalah platform terkelola sepenuhnya yang menyediakan lingkungan pemrograman untuk mengembangkan dan menjalankan aplikasi web. Compute Engine adalah layanan virtual machine (VM) yang memungkinkan Anda membuat dan mengelola virtual machine.
    Untuk menentukan opsi yang terbaik bagi Anda, Anda perlu mempertimbangkan faktor-faktor berikut:
    Ukuran dan kompleksitas aplikasi Anda
    Jumlah traffic yang akan diterima
    Tingkat kontrol yang diperlukan atas aplikasi Anda
    Biaya
    Jika Anda memiliki aplikasi kecil dan sederhana yang diperkirakan akan menerima sejumlah kecil traffic, Cloud Run adalah opsi yang tepat. Jika Anda memiliki aplikasi yang lebih besar dan lebih kompleks yang diharapkan menerima traffic dalam jumlah besar, App Engine atau Compute Engine dapat menjadi opsi yang lebih baik. Jika Anda membutuhkan banyak kontrol atas aplikasi, Compute Engine adalah pilihan yang bagus. Jika Anda memiliki anggaran terbatas, Cloud Run adalah pilihan yang bagus.

  3. Mengingat Anda merancang jalur tercepat untuk menjalankan aplikasi web yang lebih kecil di organisasi Anda, deskripsi Duet AI tentang Cloud Run tampaknya paling memenuhi kebutuhan Anda. Tapi pertama-tama, Anda ingin mengonfirmasi beberapa karakteristik platform. Masukkan perintah berikut, lalu klik kirim:

    Okay, I think I will move forward with Cloud Run. What metric does
    Cloud Run use to perform autoscaling?
    

    Respons Duet AI akan terlihat seperti berikut:

    Cloud Run menggunakan jumlah permintaan atau peristiwa masuk untuk melakukan penskalaan otomatis. Jika revisi tidak menerima traffic apa pun, secara default revisi akan diskalakan ke instance nol. Temukan informasi selengkapnya untuk pertanyaan Anda di sini: Tentang penskalaan otomatis instance.

  4. Dengan penskalaan otomatis Cloud Run berdasarkan permintaan masuk, kini Anda ingin memahami cara traffic masuk ke aplikasi yang dihostingnya. Masukkan perintah berikut:

    How is a Cloud Run application exposed to users over the internet?
    

    Respons Duet AI akan terlihat seperti berikut:

    Cloud Run menerima traffic masuk dari sumber berikut:
    Internet publik: permintaan dirutekan langsung dari sumber publik ke layanan Cloud Run Anda dengan opsi untuk mengarahkan traffic melalui load balancer HTTP(S) eksternal.
    Google API dan layanan Google: permintaan dari Google API dan layanan Google dirutekan ke layanan Cloud Run Anda tanpa memerlukan load balancing HTTP(S) eksternal.
    Jaringan VPC: permintaan dari jaringan VPC dirutekan ke layanan Cloud Run Anda melalui konektor VPC.
    Anda dapat mengontrol cara layanan Cloud Run diekspos kepada pengguna menggunakan setelan ingress.

  5. Meskipun load balancer publik eksternal dapat digunakan untuk class aplikasi ini, Anda perlu Duet AI untuk membantu memahami apakah platform dapat mengekspos aplikasi ini hanya kepada pengguna terautentikasi dengan izin yang tepat. Masukkan perintah berikut:

    Is there an easy mechanism in Cloud Run that allows only
    authenticated users to access an application?
    

    Respons Duet AI akan terlihat seperti berikut:

    Ya, ada mekanisme untuk memastikan bahwa hanya pengguna terautentikasi yang dapat mengakses aplikasi Cloud Run. Anda dapat melakukannya dengan menetapkan opsi no-allow-unauthenticated saat men-deploy layanan. Hal ini akan menyebabkan layanan Anda menolak permintaan yang tidak diautentikasi dengan error HTTP 403 Forbidden. Temukan informasi lebih lanjut untuk pertanyaan Anda di sini: Mengizinkan akses publik (tidak diautentikasi).

  6. Terakhir, untuk menyiapkannya bagi developer di organisasi Anda, preferensi Anda adalah tidak meminta mereka menulis konfigurasi apa pun yang terkait dengan infrastruktur, seperti Dockerfile.

    We have standardized on using Django as a web framework. Can I deploy
    a Python app to Cloud Run directly from source code? Or do we need to
    implement a way to containerize this ourselves?
    

    Respons Duet AI akan terlihat seperti berikut:

    Ya, Anda dapat men-deploy aplikasi Python ke Cloud Run langsung dari kode sumber. Anda dapat menggunakan buildpack Cloud Run Python untuk mem-build dan men-deploy aplikasi Python. Temukan informasi selengkapnya untuk pertanyaan Anda di sini: Men-deploy dari kode sumber.

Menjelajahi caching di Google Cloud

Sekarang Anda ingin melanjutkan dengan memilih layanan untuk tingkat berikutnya: caching. Kebutuhan umum untuk lapisan ini adalah karena tim Anda meminta Duet AI untuk membantu Anda memahami penawaran yang dimiliki Google Cloud di bidang ini. Lakukan langkah-langkah berikut untuk meminta bantuan Duet AI:

  1. Di toolbar Konsol Google Cloud, klik Open Duet AI.

  2. Masukkan perintah berikut dan klik kirim:

    Okay! Thank you. Now let's move on to the caching tier. How can I
    introduce a caching layer to my web app? I would like to prioritize
    fully-managed services.
    

    Respons Duet AI akan terlihat seperti berikut:

    Ada beberapa cara untuk memperkenalkan lapisan cache ke aplikasi web Anda. Salah satu opsinya adalah menggunakan layanan terkelola sepenuhnya seperti Cloud Memorystore. Cloud Memorystore adalah layanan datastore dalam memori yang terkelola sepenuhnya untuk Redis. Solusi ini memberikan solusi caching yang berperforma tinggi, skalabel, dan andal yang dapat membantu Anda meningkatkan performa aplikasi web. Anda juga dapat menggunakan Cloud Memorystore untuk meng-cache konten statis, seperti gambar dan file JavaScript. Temukan informasi selengkapnya atas pertanyaan Anda di sini: Memperkenalkan Memorystore: Layanan datastore dalam memori yang terkelola sepenuhnya untuk Redis.

  3. Sebelum melanjutkan penggunaan Cloud Memorystore for Redis, sebaiknya pastikan bahwa komunikasi antara Cloud Run dan Cloud Memorystore bersifat pribadi. Masukkan perintah berikut:

    If I were to use Cloud Memorystore, how do I ensure the communication
    between Cloud Run and Cloud Memorystore is private?
    

    Respons Duet AI akan terlihat seperti berikut:

    Untuk memastikan komunikasi antara Cloud Run dan Cloud Memorystore bersifat pribadi, Anda perlu membuat konektor Akses VPC Serverless. Hal ini akan memungkinkan konektivitas antara Cloud Run dan VPC tempat instance Memorystore Anda berada. Temukan informasi selengkapnya atas pertanyaan Anda di sini: Menggunakan Memorystore for Redis untuk meng-cache aplikasi Django Anda.

Mempelajari database relasional di Google Cloud

Terakhir, Anda sekarang ingin memilih sebuah toko {i>database<i} relasional. Anda meminta Duet AI untuk membantu memilih:

  1. Masukkan perintah berikut:

    And for the relational database tier, where do you recommend I
    persist data? Please keep in mind that I would like to continue to
    prioritize fully-managed services.
    

    Duet AI harus merespons dengan sesuatu yang mirip dengan berikut ini:

    Ada beberapa opsi untuk mempertahankan data dalam layanan terkelola sepenuhnya. Salah satu pilihannya adalah menggunakan Cloud SQL. Cloud SQL adalah layanan database relasional terkelola sepenuhnya yang menyediakan platform sederhana, andal, dan aman untuk menjalankan workload SQL Server, MySQL, dan PostgreSQL di Google Cloud. Database ini dirancang untuk membantu Anda memulai migrasi serverless dengan cepat menggunakan Database Migration Service. Cloud SQL untuk SQL Server secara otomatis memastikan database SQL Server Anda tetap andal, aman, dan skalabel, sehingga bisnis Anda dapat terus berjalan tanpa gangguan. Temukan informasi selengkapnya untuk pertanyaan Anda di sini: Ringkasan Cloud SQL.

Men-deploy contoh arsitektur

Terakhir, Anda sekarang ingin memilih sebuah toko {i>database<i} relasional. Anda meminta Duet AI untuk membantu memilih:

Okay, we have landed on using Cloud Run, Cloud Memorystore, and Cloud
SQL together. Is there a solution I can use that is available from
Google that uses these three technologies for a web application?

Duet AI harus merespons dengan sesuatu yang mirip dengan berikut ini:

Oke, berikut adalah solusi yang menggunakan Cloud Run, Cloud Memorystore, dan Cloud SQL secara bersamaan untuk aplikasi web:
Solusi Langsung Mulai: Aplikasi web tiga tingkat.
Solusi ini adalah aplikasi web tiga tingkat yang menggunakan Cloud Run, Cloud Memorystore for Redis, dan Cloud SQL untuk PostgreSQL. Aplikasi ini menggunakan Cloud Memorystore untuk menyimpan data dalam cache dan Cloud SQL untuk menyimpan data persisten.

Untuk menguji arsitektur baru, Anda memutuskan untuk mengikuti petunjuk di halaman web yang disediakan dan men-deploy contoh solusi ini agar dapat menguji dan memeriksa arsitektur jalur emas Anda.

Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, Anda dapat menghapus project Google Cloud yang dibuat untuk tutorial ini. Atau, Anda dapat menghapus resource satu per satu.

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Langkah selanjutnya