在使用git进行代码管理时候,有开发分支dev,线上分支pro。
在开发的时候,每个人会从dev分支上拉出自己的分支,进行开发,完成后合并到dev分支上面。
线上环境进行更新的时候,会从pro分支上面pull最近的代码,然后重启服务运行。
这里有一个问题,dev分支和pro分支,往往会存在几个文件不同情况,例如配置文件setting等等。在这种情况下应该如何处理比较合适?
如果git中不包含setting文件的话,如果配置文件需要更新的话,在线上环境就需要手动修改代码。
请问大家是如何做的?结合git做到自动化部署和回退?
多谢
Perbezaan dalam persekitaran:
Perbezaan antara persekitaran pengeluaran dan persekitaran bukan pengeluaran (seperti persekitaran pembangunan, persekitaran ujian, dll.), sebagai tambahan kepada konfigurasi, mungkin terdapat beberapa sumber bergantung yang juga berbeza.
Fail konfigurasi:
Kaedah biasa yang saya gunakan di sini ialah menulis semua konfigurasi persekitaran pengeluaran dan persekitaran lain ke dalam fail konfigurasi itu (atau berbilang fail config/dev.json, config/pro.json...), dan kemudian ada konfigurasi Pemproses akan bertanggungjawab untuk membaca persekitaran setempat (ini termasuk dalam skop git, dan mungkin modul permulaan), dan kemudian membaca konfigurasi persekitaran yang sepadan dalam fail konfigurasi satu fail konfigurasi, ia adalah serupa dengan yang berikut:
Label Alam Sekitar
Bagaimana pemproses konfigurasi mengetahui persekitaran semasa perlu ada
环境标识
yang lebih langsung dan meluas sebagai contoh, persekitaran pengeluaran digunakan pada IP tetap (. sesuai untuk aplikasi tunggal pelayan) , konfigurasi persekitaran pengeluaran fail konfigurasi ditulis di bawah IP ini Selepas pemproses konfigurasi memperoleh IP persekitaran berjalan semasa, ia membaca konfigurasi modul IP yang dinyatakan dalam fail konfigurasi 🎜> Cara lain ialah menggunakan, Sebagai contoh, terdapat fail teks /data/tag dalam semua persekitaran di mana aplikasi dijalankan (ia juga boleh berada dalam direktori projek, tetapi disertakan dengan .gitignore Ini). fail tidak berada dalam skop git. Hanya terdapat satu baris di dalamnya, ditulis
标识文件
ataupro
, supaya pemproses konfigurasi akan mengetahui bahagian mana fail konfigurasi yang hendak diperolehi dengan membaca fail ini cara yang paling biasa ialah menggunakan pembolehubah persekitaran, sepertidev
, dan kemudian baca pembolehubah ini dahulu Baca konfigurasi persekitaran anda yang sepadan sekali lagi.export APP_ENV=production
Pelayan KonfigDalam tempoh kemudian, kebanyakan aplikasi digunakan dalam cara yang diedarkan, iaitu, aplikasi yang sama boleh digunakan untuk lebih daripada 20 atau lebih pelayan Pada masa ini, mesti ada
pelayan konfigurasiuntuk mengendalikan dan mengedarkannya secara khusus. Kemas kini konfigurasi aplikasi setiap pelayan Pada pelayan konfigurasi ini, anda boleh mengkonfigurasi pelayan mana yang menggunakan konfigurasi (biasanya dikonfigurasikan dengan IP peminta setiap aplikasi akan pergi ke pelayan konfigurasi). minta konfigurasinya sendiri apabila ia bermula Dengan cara ini, aplikasi boleh menjadi tanpa kewarganegaraan sepenuhnya,
tiada fail konfigurasi diperlukan sama sekali
dan konfigurasi boleh dikawal pada butiran halus (contohnya, Saya ingin meningkatkan aliran permintaan pelayan tertentu), Serta merealisasikan keluaran skala kelabu (pengerahan kod baharu pada sesetengah pelayan), saya fikir ini mungkin kaedah yang digunakan oleh kebanyakan syarikat Internet pada masa ini.
Tetapkan fail abaikan dan simpan parameter konfigurasi yang berbeza dalam fail abaikan.