Stategraph Menangani Masalah Penskalaan Terraform dengan Seni Bina Pangkalan Data Graf

Pasukan Komuniti BigGo
Stategraph Menangani Masalah Penskalaan Terraform dengan Seni Bina Pangkalan Data Graf

Terramate telah mengumumkan Stategraph , penyelesaian backend baharu yang direka untuk menangani masalah penskalaan asas Terraform dengan menggantikan pengurusan keadaan berasaskan fail dengan pendekatan pangkalan data graf. Projek ini bertujuan untuk menyelesaikan isu koordinasi yang melanda pasukan yang menguruskan penggunaan infrastruktur besar, di mana kunci global dan penyegaran penuh mencipta kesesakan yang ketara.

Masalah Teras: Had Keadaan Berasaskan Fail

Pendekatan semasa Terraform menganggap keadaan infrastruktur sebagai satu fail JSON dengan penguncian global, mewujudkan masalah koordinasi apabila berbilang pasukan bekerja pada infrastruktur yang dikongsi. Ini menjadi sangat menyakitkan bagi organisasi yang menguruskan beribu-ribu sumber, di mana perubahan kecil pun mencetuskan penyegaran keadaan penuh dan menghalang pasukan lain daripada membuat kemas kini. Komuniti telah lama mengatasi had ini dengan memisahkan fail keadaan, tetapi ini mewujudkan cabaran baharu dengan pergantungan merentas keadaan dan kerumitan orkestrasi.

Penyelesaian Pangkalan Data Graf

Stategraph membayangkan semula keadaan Terraform sebagai pangkalan data graf yang betul menggunakan PostgreSQL , di mana sumber menjadi nod dan pergantungan menjadi tepi. Perubahan seni bina ini membolehkan beberapa penambahbaikan utama: pengasingan subgraf membenarkan pasukan yang bekerja pada komponen infrastruktur berbeza beroperasi tanpa menghalang satu sama lain, penguncian tepat menyasarkan hanya sumber yang terjejas dan bukannya keseluruhan keadaan, dan penyegaran tambahan menentukan skop operasi kepada komponen yang berubah dan bukannya melalui keseluruhan infrastruktur.

Pelaksanaan menggunakan tiga hubungan pangkalan data utama: sumber (satu baris bagi setiap sumber dengan jenis dan atribut), pergantungan (mewakili graf pergantungan sumber), dan transaksi (log tambahan sahaja bagi semua mutasi keadaan). Struktur ini mengekalkan model pelaksanaan Terraform sambil membolehkan konkurensi dan ketepatan yang tidak dapat disediakan oleh backend berasaskan fail.

Seni Bina Teknikal Stategraph

Komponen Pelaksanaan Tujuan
Pangkalan Data PostgreSQL dengan MVCC Kawalan konkurensi yang teguh dan kebolehskalaan yang terbukti
Jadual Sumber Satu baris bagi setiap sumber dengan jenis, pembekal, atribut Penyimpanan sumber teras
Jadual Kebergantungan Jadual tepi untuk graf kebergantungan sumber Pemetaan hubungan
Jadual Transaksi Log tambahan sahaja untuk mutasi keadaan Jejak audit penuh dan atribusi
Protokol Backend Serasi dengan backend jauh Terraform/OpenTofu Keupayaan penggantian terus

Respons Komuniti dan Kebimbangan Penggunaan

Pengumuman ini telah mencetuskan perbincangan ketara mengenai pertukaran antara kesederhanaan dan skalabiliti. Sesetengah pengamal menghargai ketelusan fail keadaan semasa dan kemudahan penyelesaian masalah, menyatakan kebimbangan tentang memperkenalkan kotak hitam yang tidak dapat mereka periksa atau baiki dengan mudah. Walau bagaimanapun, pasukan pembangunan menekankan bahawa alat biasa seperti jq dan cat akan terus berfungsi, mengekalkan kebolehcapaian yang menjadikan fail keadaan Terraform berharga untuk nyahpepijat.

Motivasi utama adalah betapa kecil skala Terraform / Tofu mula rosak dan mewujudkan kerja untuk pengguna apabila mereka perlu mengubah suai untuk isu prestasi yang sepatutnya tidak wujud.

Organisasi yang sudah menggunakan pendekatan perkhidmatan mikro dengan fail keadaan terpisah mempersoalkan sama ada kerumitan itu perlu, tetapi penyokong menunjukkan bahawa infrastruktur yang dikongsi seperti VPC , peranan IAM , dan pangkalan data tidak dapat dielakkan mewujudkan titik koordinasi yang mendapat manfaat daripada kawalan konkurensi yang lebih baik.

Faedah Utama berbanding Fail Keadaan Tradisional

  • Konkurensi: Penguncian terperinci pada sumber dan kebergantungan berbanding kunci fail global
  • Prestasi: Penyegaran bertambah bagi subgraf yang terjejas berbanding perjalanan keadaan penuh
  • Skalabiliti: Mengendalikan ribuan sumber tanpa kemerosotan prestasi linear
  • Pengasingan: Pasukan boleh bekerja pada komponen infrastruktur yang berasingan secara serentak
  • Kebolehcarian: Keadaan menjadi boleh dicari dan boleh dilaporkan melalui alat pangkalan data standard
  • Keserasian: Tiada perubahan diperlukan pada konfigurasi atau aliran kerja Terraform sedia ada

Laluan Migrasi dan Visi Masa Depan

Stategraph direka sebagai penggantian drop-in yang membaca fail keadaan sedia ada dan membina perwakilan graf secara automatik, tidak memerlukan perubahan kepada konfigurasi Terraform . Protokol backend kekal tidak berubah, menjadikannya serasi dengan perkakas dan alur kerja sedia ada. Pasukan pembangunan membayangkan masa depan di mana keseluruhan infrastruktur dunia secara teorinya boleh diwakili sebagai modul akar tunggal dengan pengasingan yang betul dan kawalan akses berasaskan peranan, menghapuskan keperluan untuk pemisahan keadaan sambil mengekalkan sempadan keselamatan.

Projek ini mewakili peralihan asas dalam pemikiran tentang pengurusan keadaan infrastruktur, menggunakan prinsip sistem teragih yang telah mantap kepada masalah yang telah melanda ekosistem Terraform sejak permulaannya. Walaupun tidak setiap organisasi memerlukan tahap kecanggihan ini, pasukan yang menguruskan infrastruktur berskala besar dengan berbilang penyumbang mungkin mendapati nilai yang ketara dalam konkurensi yang dipertingkatkan dan overhed koordinasi yang berkurangan.

Rujukan: Why We're Building Stategraph: Terraform State as a Distributed Systems Problem