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, berisi setiap resource yang ingin dibuat dan propertinya masing-masing. Konfigurasi harus berisi bagian resources:, 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 dalam dokumentasi Jenis Resource yang Didukung.
  • properties - Parameter untuk jenis resource ini. Nilai ini harus cocok dengan properti untuk jenis seperti zone: asia-east1-a, boot: true.

Berikut 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 adalah bagian dari file konfigurasi yang telah di-abstract 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 serupa, Anda dapat memisahkan bagian bersama tersebut menjadi template. Template jauh lebih fleksibel daripada file konfigurasi individual dan dimaksudkan 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 hasilnya dalam file konfigurasi. Dengan demikian, interpretasi setiap template pada akhirnya menghasilkan sintaksis YAML yang sama untuk resource seperti yang ditentukan di atas untuk file konfigurasi itu sendiri.

Untuk membuat template sederhana, baca Membuat Template Dasar.

Konfigurasi dijelaskan 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 menyediakan konfigurasi yang tidak diperluas yang menggunakan template seperti ini:

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 ini:

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. 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, Anda memberikan Type 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 gabungan, yang akan dibuat sebagai bagian dari deployment Anda.

Misalnya, untuk membuat instance VM Compute Engine, tentukan jenis dasar yang sesuai seperti 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 yang dapat Anda gunakan dengan segera. 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 meliputi compute.v1.instance, storage.v1.bucket, dan sqladmin.v1beta4.database, yang semuanya ditayangkan oleh Compute Engine V1 API, Cloud Storage V1 API, dan Cloud SQL v1beta4 Admin API.

Jenis dasar didukung oleh RESTful API yang mendukung operasi Create, Read, Update, dan Delete (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 deskripsi API, yang dapat berupa spesifikasi OpenAPI atau Google Discovery, menyesuaikan pemetaan input yang diperlukan untuk API, dan mendaftarkan jenis tersebut 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 Create, Read, Update, and Delete (CRUD) akan diekspos sebagai jenis yang dapat Anda gunakan dalam deployment.

Membuat penyedia jenis sendiri adalah skenario lanjutan, dan Google merekomendasikan agar Anda melakukannya hanya jika Anda 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 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 dikonfigurasi ulang agar dapat bekerja sama. Template ini diperluas ke kumpulan jenis dasar saat di-deploy dalam deployment. Jenis komposit pada dasarnya adalah template yang dihosting yang dapat Anda tambahkan ke Deployment Manager. Anda dapat membuat jenis komposit untuk solusi umum sehingga solusi tersebut mudah digunakan kembali, atau membuat penyiapan kompleks yang dapat Anda gunakan kembali pada masa mendatang.

Misalnya, Anda dapat membuat jenis gabungan 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 dengan 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 berikan, termasuk template yang diimpor, dan juga berisi daftar resource yang diperluas sepenuhnya, yang dibuat oleh Deployment Manager. Setiap kali Anda mengupdate deployment, Deployment Manager akan membuat file manifes baru untuk mencerminkan status deployment baru. Saat memecahkan masalah terkait deployment, sebaiknya lihat manifes.

Untuk informasi selengkapnya, lihat Melihat Manifes.

Deployment

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

Untuk mengetahui informasi selengkapnya, lihat Membuat Deployment.

Langkah selanjutnya