Selain infrastruktur TI internal kami, kami memiliki sekitar 500 mesin Linux yang menjadi tuan rumah layanan kami untuk dunia online. Mereka dikelompokkan dalam sekelompok cluster seperti Database An, Product An, NFS, Backoffice dan sebagainya. Selain itu, mereka dikelola oleh penyedia eksternal, sesuai dengan spesifikasi dan persyaratan kami.
Namun, kami menghadapi banyak masalah selama (web-) pengembangan perangkat lunak, peluncuran dan penyebaran - terutama karena lingkungan dev dan staging hampir tidak memiliki kesamaan dengan sistem live (saya menyisihkan detail yang tidak menyenangkan ..) .
Jadi, saya sudah mencoba membuat mesin virtual, menyalin berbagai sistem-hidup setepat mungkin dan menyiapkan mereka untuk terhubung ke misalnya pengembangan-database bukan yang "nyata" secara transparan untuk pengembang (bukan root
). Ini bekerja cukup baik, tetapi ...
Saya bertanya-tanya bagaimana seseorang bisa mengelola sistem-sistem itu dari jarak jauh dan secara massal ? Apakah ada beberapa keluarga perangkat lunak yang tidak saya sadari? Atau, paling tidak, beberapa teknik atau prinsip yang harus dipahami seseorang?
Kami akan menyediakan setiap pengembang dengan banyak gambar untuk dijalankan secara lokal (VirtualBox). Departemen QA. akan mendapatkan kluster virtual (XEN atau Hyper-V). Jika saya perlu menyediakan modul server tambahan, rutekan ulang koneksi basis data baru atau hanya ingin memperbarui semua yang disediakan oleh manajer paket ... bagaimana mungkin saya bisa melakukannya tanpa dipaksa untuk masuk ke setiap sistem dan / atau minta rekan saya untuk mengunduh dan menjalankan beberapa skrip fixture?
Saya percaya ada banyak solusi. Yah, entah kenapa aku terlalu bodoh untuk memasukkan kata kunci yang benar ke dalam mesin pencari ... Atau bukankah masalah ini sepele kedengarannya?
Untuk catatan:
- Hampir semua sistem menjalankan Debian GNU / Linux 6.x "squeeze"
- Tidak ada pengembang yang dipaksa untuk menggunakan OS tertentu di workstation-nya
- Anggaran terbatas, tentu saja, tetapi tidak terlalu kecil untuk membeli perangkat lunak berpemilik
- Solusi yang akan melibatkan penyedia kami tersebut lebih disukai
sumber
cucumber-puppet
. Tentu saja Anda dapat mengembangkan / menumbuhkan kerangka kerja Anda sendiri menggunakan kembali komponen yang ada tetapi terdengar OP tidak ada di tempat saat ini dan jika Anda mulai dari awal saya pikir yang terbaik adalah menggunakan kerangka kerja yang ada.Ulrich sudah memberikan jawaban terkait penyebaran perangkat lunak dan pengaturan server otomatis.
Prinsip di balik ini adalah
Anda meminta alat praktis untuk mengelola massa server - favorit pribadi saya adalah cluster-ssh (
cssh
). Ketik sekali dan lakukan perubahan pada banyak server secara bersamaan.Jika Anda menemukan masalah dan memiliki perbaikan untuk itu yang menghilangkan masalah:
Jika Anda menghadapi banyak server untuk memperbaikinya, ini adalah proses yang harus didokumentasikan dengan baik dan pada akhirnya tim yang berbeda harus memeriksa apakah perbaikan telah diterapkan sepenuhnya.
Kami menggunakan Mantis (open source, PHP) untuk tujuan itu.
sumber
Saya mengelola sekitar 30 produk dan beberapa ratus server di berbagai negara. Saya manajer konfigurasi perangkat lunak, jadi saya tidak memiliki akses root (berdasarkan desain), jangan menyentuh database atau server mereka (sekali lagi, berdasarkan desain) dan harus melompat banyak rintangan karena keamanan perusahaan. Tetapi saya mengelola konfigurasi dalam pengujian, pementasan dan produksi, termasuk tautan dan perubahan basis data. Saya memiliki sejumlah skrip yang keluar ke server menggunakan kombinasi
ssh
,python
dan skrip shell.Hal-hal utama untuk dipikirkan adalah:
ssh
cukup dan dari lokasi aman terpusat?ssh
menjalankannya dari jarak jauh? Bisakah Anda skrip denganexpect
atau hanya doa baris perintah?VirtualBox memberikan banyak alat baris perintah yang dapat Anda kelola melalui adil
ssh
atau sistem seperti yangpuppet
disebutkan Ulrich.sumber