Dasar-Dasar Deployment Manager

Komponen berikut adalah dasar-dasar Deployment Manager.

Konfigurasi

Konfigurasi menjabarkan seluruh resource yang Anda inginkan untuk satu deployment. Konfigurasi adalah file yang ditulis dalam sintaksis YAML yang mencantumkan setiap resource yang ingin Anda buat dan propertinya masing-masing. Konfigurasi harus berisi bagian resources: yang diikuti dengan daftar resource yang akan dibuat.

Setiap resource harus berisi tiga komponen:

  • name - String yang ditentukan pengguna untuk mengidentifikasi resource ini, seperti my-vm, project-data-disk, the-test-network.
  • type - Jenis resource yang di-deploy seperti compute.v1.instance, compute.v1.disk. Jenis resource dasar dijelaskan dan dicantumkan di dokumentasi Jenis Resource yang Didukung.
  • properties - Parameter untuk jenis resource ini. Atribut ini harus cocok dengan properti untuk jenis seperti zone: asia-east1-a, boot: true.

Ini adalah contoh konfigurasi:

resources:
- name: the-first-vm
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20150423
    networkInterfaces:
    - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default
      accessConfigs:
      - name: External NAT
        type: ONE_TO_ONE_NAT

Template

Konfigurasi dapat berisi template, yang pada dasarnya merupakan bagian dari file konfigurasi yang telah diabstraksikan menjadi elemen penyusun individual. Setelah membuat template, Anda dapat menggunakannya kembali di berbagai deployment sesuai kebutuhan. Demikian pula, jika Anda menulis ulang konfigurasi yang memiliki properti yang sangat mirip, Anda dapat memisahkan bagian bersama tersebut menjadi template. Template jauh lebih fleksibel daripada setiap file konfigurasi, dan ditujukan untuk mendukung portabilitas yang mudah di seluruh deployment.

File template ditulis dalam Python atau Jinja2. Sistem Deployment Manager akan menafsirkan setiap template secara rekursif dan menyisipkan hasil dalam file konfigurasi. Dengan demikian, interpretasi setiap template pada akhirnya akan menghasilkan sintaksis YAML yang sama untuk resource seperti yang didefinisikan di atas untuk file konfigurasi itu sendiri.

Untuk membuat template sederhana, baca Membuat Template Dasar.

Konfigurasi dideskripsikan sebagai diperluas sepenuhnya atau tidak diperluas. Konfigurasi yang diperluas sepenuhnya menjelaskan semua resource dan properti deployment, termasuk konten apa pun dari file template yang diimpor. Misalnya, Anda akan memberikan konfigurasi yang belum diperluas yang menggunakan template seperti berikut:

imports:
- path: vm_template.jinja

resources:
- name: vm-instance
  type: vm_template.jinja
  properties:
    zone: us-central1-a
    project: myproject

Setelah diperluas, file konfigurasi akan berisi konten semua template, seperti berikut:

resources:
- name: the-first-vm
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20150423
        networkInterfaces:
        - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default
    accessConfigs:
    - name: External NAT
      type: ONE_TO_ONE_NAT

Resource

Resource mewakili satu resource API. Resource ini dapat berupa resource API yang disediakan oleh jenis dasar yang dikelola Google atau resource API yang disediakan oleh Penyedia Jenis. Misalnya, instance Compute Engine adalah satu resource, instance Cloud SQL adalah satu resource, dan seterusnya.

Untuk menentukan resource, berikan Jenis untuk resource tersebut. Lihat bagian Jenis di bawah untuk mempelajari jenis lebih lanjut.

Jenis

Untuk membuat resource di Deployment Manager, Anda harus menentukan type. Jenis dapat mewakili satu resource API, yang dikenal sebagai jenis dasar, atau kumpulan resource, yang dikenal sebagai jenis komposit, yang akan dibuat sebagai bagian dari deployment Anda.

Misalnya, untuk membuat instance VM Compute Engine, tentukan jenis dasar yang sesuai seperti berikut dalam konfigurasi Anda:

resources:
- name: the-first-vm
  type: compute.v1.instance # The type of resource to deploy
  ...

Deployment Manager menawarkan daftar jenis dasar yang dikelola oleh Google dan dapat segera Anda gunakan. Anda dapat menemukan daftar jenis ini dalam dokumentasi Jenis dan properti resource yang didukung.

Jenis dasar dan penyedia jenis

Jenis dasar membuat satu resource primitif. Misalnya, jenis dasar milik Google mencakup compute.v1.instance, storage.v1.bucket, dan sqladmin.v1beta4.database, yang semuanya disalurkan oleh Compute Engine V1 API masing-masing, Cloud Storage V1 API, dan Cloud SQL v1beta4 Admin API.

Jenis dasar didukung oleh RESTful API yang mendukung operasi Buat, Baca, Update, dan Hapus (CRUD). Anda juga dapat membuat jenis dasar tambahan dengan menambahkan penyedia jenis jika jenis milik Google saja tidak memenuhi kebutuhan Anda. Membuat penyedia jenis akan mengekspos semua resource API sebagai jenis dasar yang dapat Anda gunakan. Untuk membuat penyedia jenis, Anda harus menyediakan dokumen deskriptor API, yang dapat berupa spesifikasi OpenAPI atau Google Discovery, menyesuaikan pemetaan input yang diperlukan untuk API, dan mendaftarkan jenisnya ke Deployment Manager. Setelah dibuat, Anda dan pengguna lain yang memiliki akses ke project Anda dapat menggunakan jenis yang disediakan oleh penyedia.

Saat Anda menambahkan penyedia jenis, semua resource yang disediakan oleh API dan didukung oleh antarmuka RESTful dengan operasi Membuat, Membaca, Memperbarui, dan Menghapus (CRUD) akan diekspos sebagai jenis yang dapat digunakan dalam deployment Anda.

Membuat penyedia jenis Anda sendiri adalah skenario lanjutan, dan Google merekomendasikan agar Anda melakukan ini hanya jika sudah sangat memahami API yang ingin diintegrasikan.

Untuk mempelajari cara membuat penyedia jenis, lihat Mengintegrasikan dengan Deployment Manager.

Saat memanggil jenis dasar dalam template atau konfigurasi, Anda akan menggunakan salah satu sintaksis berikut, bergantung pada jenisnya.

  • Untuk jenis dasar yang dikelola Google, gunakan:

    type: [API].[VERSION].[RESOURCE]
    

    Misalnya, compute.v1.instance.

  • Untuk penyedia jenis yang dikelola Google (beta), gunakan:

    type: gcp-types/[PROVIDER]:[RESOURCE]
    

    Untuk mengetahui daftar penyedia jenis yang didukung, lihat Penyedia jenis Google Cloud yang didukung.

  • Untuk jenis dasar yang disediakan oleh penyedia jenis, gunakan:

    type: [PROJECT_ID]/[TYPE_PROVIDER]:[COLLECTION]
    

    Dengan [COLLECTION] adalah jalur ke resource API yang akan di-deploy.

Jenis komposit

Jenis komposit berisi satu atau beberapa template yang telah dikonfigurasi sebelumnya untuk digunakan bersama. Template ini diperluas ke kumpulan jenis dasar saat di-deploy dalam deployment. Jenis komposit pada dasarnya adalah template yang dihosting, yang bisa Anda tambahkan ke Deployment Manager. Anda dapat membuat jenis komposit untuk solusi umum agar solusi tersebut mudah digunakan kembali, atau membuat penyiapan kompleks yang dapat Anda gunakan kembali di masa mendatang.

Misalnya, Anda dapat membuat jenis komposit yang men-deploy grup instance terkelola dengan load balancing jaringan. Load balancer jaringan memerlukan beberapa resource Google Cloud dan beberapa konfigurasi antar-resource, sehingga Anda dapat menyiapkan resource ini dalam konfigurasi satu kali dan mendaftarkan jenisnya ke Deployment Manager. Setelah itu, Anda dan pengguna lain yang memiliki akses ke project Anda dapat memanggil jenis tersebut dan men-deploy-nya dalam konfigurasi mendatang.

Untuk memanggil jenis komposit dalam konfigurasi Anda, gunakan:

type: [PROJECT_ID]/composite:[TYPE_NAME]

Contoh:

resources:
- name: my-composite-type
  type: myproject/composite:example-composite-type

Untuk mempelajari cara membuat jenis komposit, baca Menambahkan Jenis Komposit ke Deployment Manager.

Manifes

Manifes adalah objek hanya-baca yang berisi konfigurasi asli yang Anda sediakan, termasuk semua template yang diimpor, dan juga berisi daftar resource yang diperluas sepenuhnya, yang dibuat oleh Deployment Manager. Setiap kali Anda mengupdate deployment, Deployment Manager menghasilkan file manifes baru untuk mencerminkan status deployment yang baru. Saat memecahkan masalah terkait deployment, sebaiknya Anda melihat manifesnya.

Untuk informasi selengkapnya, lihat Menampilkan Manifes.

Deployment

Deployment adalah kumpulan resource yang di-deploy dan dikelola bersama menggunakan konfigurasi.

Untuk informasi selengkapnya, lihat Membuat Deployment.

Langkah selanjutnya