Infrastructure as Code di Google Cloud

Infrastructure as Code (IaC) adalah proses penyediaan dan pengelolaan infrastruktur aplikasi software menggunakan kode, bukan antarmuka pengguna grafis atau skrip command line.

Menyediakan infrastruktur aplikasi biasanya melibatkan penyiapan dan pengelolaan virtual machine, koneksi database, penyimpanan, dan elemen infrastruktur lainnya. Mengelola infrastruktur ini secara manual akan memakan waktu dan rentan error, terutama saat mengelola aplikasi dalam skala besar.

IaC memungkinkan Anda menentukan infrastruktur dengan file konfigurasi, yang memungkinkan Anda mem-build, mengubah, dan mengelola infrastruktur dengan cara yang aman dan berulang. Anda dapat menentukan konfigurasi resource yang dapat Anda buat versinya, gunakan kembali, dan bagikan. IaC memungkinkan Anda menentukan status infrastruktur yang diinginkan. Kemudian, Anda dapat men-deploy konfigurasi yang sama beberapa kali untuk membuat lingkungan pengembangan, pengujian, dan produksi yang dapat direproduksi.

IaC memungkinkan Anda memperlakukan penyediaan dan konfigurasi infrastruktur dengan cara yang sama seperti Anda menangani kode aplikasi. Anda dapat menyimpan logika konfigurasi penyediaan di kontrol sumber dan memanfaatkan pipeline continuous integration dan continuous deployment (CI/CD).

Manfaat IaC

Menggunakan IaC untuk menyiapkan dan mengelola infrastruktur aplikasi adalah praktik terbaik untuk sejumlah kasus penggunaan umum. Google mengelola sistemnya dengan IaC, dan menetapkannya sebagai praktik standar secara internal.

IaC menawarkan manfaat berikut:

  • Anda dapat menentukan infrastruktur berdasarkan persyaratan dan menggunakan kembali konfigurasi yang sama untuk membuat beberapa lingkungan secara konsisten.
  • Anda dapat mengotomatiskan pembuatan dan pengelolaan resource cloud, termasuk untuk lingkungan deployment dan pengujian.
  • Anda dapat memperlakukan perubahan infrastruktur seperti Anda memperlakukan perubahan aplikasi. Misalnya, Anda dapat memastikan bahwa perubahan pada konfigurasi ditinjau dan divalidasi secara otomatis. Mengelola lingkungan produksi melalui proses yang dikontrol perubahan menggunakan IaC adalah praktik terbaik.
  • Anda dapat menyimpan histori semua perubahan konfigurasi. Perubahan dapat diaudit dan dikembalikan.
  • Anda dapat memiliki satu sumber tepercaya untuk infrastruktur cloud Anda.

Fitur IaC untuk Google Cloud

Google Cloud terintegrasi erat dengan banyak alat IaC. Pilih salah satu alat berikut, bergantung pada kasus penggunaan Anda:

  • Terraform

    Secara umum, untuk mengonfigurasi dan mengelola infrastruktur Google Cloud menggunakan kode, gunakan penyedia Terraform untuk Google Cloud.

    HashiCorp Terraform adalah alat IaC yang memungkinkan Anda menentukan resource di cloud dan di lokasi dengan file konfigurasi yang dapat dibaca manusia yang dapat Anda buat versinya, gunakan kembali, dan bagikan. Kemudian, Anda dapat menggunakan alur kerja yang konsisten untuk menyediakan dan mengelola semua infrastruktur selama siklus prosesnya. Untuk informasi selengkapnya, lihat Ringkasan Terraform di Google Cloud.

  • Infrastructure Manager

    Jika Anda ingin mengotomatiskan deployment konfigurasi Terraform, gunakan Infrastructure Manager (Infra Manager).

    Infra Manager mengotomatiskan deployment dan pengelolaan resource infrastruktur Google Cloud menggunakan Terraform. Infra Manager memungkinkan Anda men-deploy secara terprogram ke Google Cloud, sehingga Anda dapat menggunakan layanan ini, bukan mempertahankan toolchain yang berbeda untuk digunakan dengan Terraform di Google Cloud. Untuk informasi selengkapnya, lihat ringkasan Infra Manager.

  • Terraform Cloud dan Terraform Enterprise

    Jika Anda memerlukan pengelolaan perubahan penuh dengan Terraform di seluruh organisasi, gunakan Terraform Cloud atau Terraform Enterprise.

    Terraform Cloud adalah aplikasi software as a service (SaaS) yang menjalankan Terraform di lingkungan jarak jauh yang stabil dan menyimpan status dan secret dengan aman. Terraform Cloud juga terintegrasi dengan Terraform CLI dan terhubung ke sistem kontrol versi umum (VCS) seperti GitHub, GitLab, dan Bitbucket. Saat Anda menghubungkan ruang kerja Terraform Cloud ke repositori VCS, commit dan perubahan baru dapat otomatis memicu rencana Terraform. Terraform Cloud juga menawarkan API, yang memungkinkan Anda mengintegrasikannya ke dalam alur kerja yang ada.

    Terraform Enterprise memungkinkan Anda menyiapkan distribusi Terraform Cloud yang dihosting sendiri. Layanan ini menawarkan batas resource yang dapat disesuaikan dan ideal untuk organisasi dengan persyaratan keamanan dan kepatuhan yang ketat.

    Untuk mengetahui informasi selengkapnya, lihat halaman Edisi Terraform dalam dokumentasi Hashicorp.

  • Cloud Development Kit untuk Terraform

    Jika Anda ingin membuat infrastruktur dengan bahasa pemrograman umum, bukan menggunakan Hashicorp Configuration Language (HCL), gunakan Cloud Development Kit for Terraform (CDKTF).

    CDKTF memungkinkan Anda mengonfigurasi Terraform menggunakan bahasa pemrograman untuk menentukan dan menyediakan infrastruktur Google Cloud, serta memungkinkan Anda menggunakan toolchain yang ada untuk proses seperti pengujian dan pengelolaan dependensi.

  • Pulumi

    Pulumi adalah alat lain yang dapat Anda gunakan untuk menyediakan infrastruktur menggunakan bahasa pemrograman. Anda dapat menggunakan penyedia Google Cloud untuk Pulumi guna menulis kode infrastruktur menggunakan bahasa pemrograman seperti TypeScript, Python, Go, C#, Java, atau YAML.

  • Pengontrol Konfigurasi dan Config Connector

    Untuk mengelola resource Google Cloud melalui Kubernetes, gunakan Config Controller dan Config Connector.

    Config Controller dan Config Connector memungkinkan Anda mengonfigurasi layanan dan resource Google Cloud menggunakan alat Kubernetes. Anda dapat menggunakan alat GitOps seperti Config Sync, dan Kubernetes API, serta dapat mengonfigurasi dan menggunakan primitif engineering platform seperti webhook dan operator izin.

    Untuk informasi selengkapnya, lihat ringkasan Config Controller dan ringkasan Config Connector.

  • Crossplane

    Opsi lain untuk mengelola resource Google Cloud melalui Kubernetes adalah menggunakan Crossplane.

    Crossplane menghubungkan cluster Kubernetes Anda ke resource eksternal non-Kubernetes, dan memungkinkan tim platform membuat Kubernetes API kustom untuk menggunakan resource tersebut. Crossplane bertindak sebagai pengontrol Kubernetes untuk memantau status resource eksternal dan memberikan penerapan status. Dengan Crossplane yang diinstal di cluster Kubernetes, pengguna hanya berkomunikasi dengan Kubernetes. Crossplane mengelola komunikasi ke resource eksternal seperti Google Cloud. Jika ada yang mengubah atau menghapus resource di luar Kubernetes, Crossplane akan membalikkan perubahan atau membuat ulang resource yang dihapus.

    Untuk informasi selengkapnya, lihat dokumentasi Crossplane.

  • Ansible

    Jika Anda ingin mengotomatiskan penyediaan, pengelolaan konfigurasi, deployment aplikasi, orkestrasi, dan proses IT lainnya, gunakan Ansible. Untuk informasi selengkapnya, lihat Ansible untuk Google Cloud.

Langkah selanjutnya