Alat untuk menyimpan per konfigurasi lingkungan

11

Saya memiliki persyaratan untuk menyimpan informasi konfigurasi berdasarkan per lingkungan dalam alat.

Ini adalah alat dengan GUI untuk menambah / memperbarui nilai konfigurasi (mis. String koneksi). Ini harus memiliki nilai default dan dapat mengubahnya berdasarkan lingkungan yang berbeda.

Seharusnya ada API untuk mengambil nilai konfigurasi ini selama penerapan ke lingkungan tertentu untuk ditambahkan ke aplikasi.

Saya telah mencari beberapa saat dan tidak dapat melihat alat apa pun yang sesuai dengan tagihan ini. Apakah ada saran?

Catatan : Saat ini pengaturannya dalam variabel TeamCity dan penerapannya adalah melalui skrip PowerShell.

tim
sumber
Untuk hal-hal yang dibayar? Apakah Anda memiliki sistem manajemen konfigurasi? apa yang Anda gunakan untuk menyebarkan?
Tensibai
Opsi berbayar akan dikonfigurasikan. Saat ini pengaturannya dalam variabel TeamCity dan penyebarannya adalah melalui skrip PowerShell.
tim
Bukan semata-mata jawaban, oleh karena itu komentar - sudahkah Anda mempertimbangkan untuk menggunakan Octopus Deploy untuk penyebaran karena hal itu memungkinkan Anda untuk mengelola Konfigurasi Lingkungan dengan cara yang sangat fleksibel.
Richard Slater
Jika Anda menggunakan sistem kontrol sumber cabang yang jarang, seperti ClearCase, Anda dapat dengan mudah melakukan percabangan file dengan modifikasi, Anda dapat melihat strategi untuk menangani perubahan OSD (Operating System Dependent) di VCS. Jika Anda menggunakan git, Anda harus terus memunculkan kembali cabang-cabang non-default. Beberapa alat konfigurasi memiliki pengaturan per lingkungan melalui variabel. Dalam Ansible, saya memiliki file dengan variabel default dan overlay untuk lingkungan non-produksi. Jangan menyimpan pengaturan apa pun dalam alat CI, semuanya harus dalam VCS. Termasuk konfigurasi TC.
Jiri Klouda
merekomendasikan menyimpan semua konfigurasi dengan sumber. kami memiliki beberapa layanan biru dan menggunakan sintaks transformasi biru untuk semua penyesuaian lingkungan. lihat msdn.microsoft.com/en-us/library/dd465318(v=vs.100).aspx . Dan kami benar-benar melakukan ini dengan PowerShell pada waktu penempatan sebagai bagian dari instalasi. Tergantung di mana Anda menghubungkan ke dalam pipa, Anda dapat melakukan ini sebelum memasukkan bit pada kotak atau, untuk kata sandi, setelahnya. Kami menggunakan Azure Key Vault untuk rahasia sehingga tidak pernah muncul di kontrol sumber.
Tanpa Pengembalian Uang Tanpa Pengembalian

Jawaban:

6

Ada banyak alat yang dapat melakukan hal seperti ini, termasuk alat manajemen konfigurasi seperti Chef, Ansible, atau Wayang; dan alat KVS seperti Konsul dan lain-lain. Anda juga dapat mengintegrasikannya sebagai langkah pembangunan di server CI Anda, atau menghindari masalah menggunakan konfigurasi langsung saat runtime terhadap toko konfigurasi eksternal (sekali lagi, sesuatu seperti Konsul atau etcd, atau database apa pun sama sekali).

Adrian
sumber
1

Mungkin repo yang berbeda? Satu dengan cabang untuk QA, UAT, Prod (dari atau lebih). Repo yang berbeda dari repo "Kode sebagai Kode" dan "Infrastruktur sebagai Kode" biasa.

Sangat bernuansa. Berapa banyak konfigurasi per env. Apakah beralih di antara rilis? Haruskah negara-negara beralih mempertahankan negara meskipun penyebaran biner. Untuk klien, pelanggan, tamu atau pengguna mana Anda mempertahankan konfigurasi?

Saya menulis banyak entri blog (dan prototipe / demo) pada topik lebih dari 5 tahun - termasuk UI untuk toggling (jika Anda membutuhkannya).

paul_h
sumber