Bagaimana Anda menerapkan praktik pengembangan seperti kontrol versi, pengujian dan integrasi / penerapan berkelanjutan untuk administrasi sistem?


18

Bayangkan Anda akan mengelola sejumlah server dengan sejumlah layanan berbeda yang digunakan oleh sejumlah orang. Sekarang katakan Anda ingin mengkonfigurasi ulang atau mengganti beberapa perangkat lunak pada salah satu server itu. Jelas Anda tidak ingin bekerja di server yang sedang dalam produksi.

Jika ini adalah perubahan kode, sebagai pengembang, saya akan membuat perubahan pada mesin pengembangan lokal saya, mengujinya secara lokal dan melakukan perubahan pada sistem kontrol versi. Perubahan kemudian dapat digunakan dalam lingkungan pementasan, diuji lebih lanjut dan akhirnya dikerahkan di lingkungan produksi. Juga akan mudah bagi saya untuk mundur, jika perlu.

Secara umum, atau secara khusus, bagaimana Anda mencapai ini dalam administrasi sistem?

(Hal pertama yang terlintas dalam pikiran adalah menggunakan mesin virtual dan menempatkan gambar mesin virtual dalam kontrol versi, tapi saya yakin ada banyak literatur dan solusi cerdas yang saat ini tidak saya sadari.)


Apakah Anda bertanya tentang alat teknis atau tentang kerangka kerja untuk mengelola hal semacam ini? Karena akan sulit untuk berbicara tentang opsi yang terakhir tanpa menyebutkan hal-hal seperti perubahan dan melepaskan manajemen dari disiplin ITIL.
Rob Moir

@ DJPon3 Saya ingin tahu tentang pendekatan umum (bagaimana memikirkannya), dan alat untuk melakukannya. Jangan ragu untuk menggunakan paragraf terakhir saya sebagai titik awal.
arex1337

Jawaban:


15

Jawaban singkatnya adalah "manajemen penyebaran OS", "Manajemen Konfigurasi" dan "Pengemasan Perangkat Lunak". Jawaban panjangnya berikut.

Saya ingin menambahkan balasan Daniel Pittman dengan rincian apa yang membentuk "sistem" dalam administrasi sistem.

Sistem atau lingkungan terdiri dari:

  • Server
  • Sistem operasi
  • Konfigurasi
  • Paket vendor; dan
  • Paket lokal

Enveloping ini akan menjadi proses seperti:

  • Penyebaran atau pencitraan OS
  • Manajemen konfigurasi
  • Manajemen paket perangkat lunak
  • Audit / logging
  • Pemantauan
  • Cadangan

Dan Anda ingin menggabungkan ini bersama untuk membantu Anda mencapai tujuan yang tidak berfungsi seperti:

  • Pengulangan
  • Maintabilitas
  • Terukur
  • Performa
  • Trackability
  • Testabilitas
  • Kemampuan berubah

Ini adalah dump otak yang cepat. Saya yakin lebih banyak yang dapat ditambahkan ke semua daftar.

Pertanyaan Anda menyentuh beberapa di antaranya tanpa menggunakan kata-kata spesifik. Misalnya, Anda ingin dapat menggunakan dengan mudah dan mengembalikan kembali yaitu ingin mempertahankan; Anda ingin melakukannya dalam lingkungan pengujian dan menguji sampai lulus yaitu pengulangan, pengujian dan terukur; Anda berpikir untuk menempatkan gambar vm di kontrol versi karena Anda ingin pengulangan OS dan konfigurasi konfigurasi.

Ada banyak alat untuk membantu Anda dalam hal ini, beberapa di antaranya disebutkan oleh Daniel. Beberapa yang lain adalah:

  • Kickstarts (berbasis RedHat), Preseed (berbasis Debian), WDS (MS Windows) untuk menyebarkan lingkungan OS yang dikenal
  • Spacewalk / Satellite (berbasis RedHat), Kebijakan Grup (MS Windows) untuk konfigurasi dan manajemen paket
  • Sistem pengemasan YUM dan APT untuk menghasilkan, menyebarkan, meningkatkan dan menghapus paket (set binari, data, dan konfigurasi yang terdiri dari perangkat lunak)
  • Nagios, OpenNMS, dan SCOM untuk pemantauan
  • Amanda, Bacula dan Windows Backup Server untuk cadangan
  • Munin, PCP dan Hyperic untuk pemantauan kinerja
  • CVS, SVN, GIT atau Bazaar untuk Kontrol Versi
  • Hudson dan Jenkins untuk membangun manajemen
  • Selenium dan Robot untuk pengujian
  • Bugzilla, Request Tracker dan Jira untuk merekam, komunikasi, dan pelacakan

Sekali lagi, ini bukan daftar yang komprehensif, tetapi sesuatu yang saya simpan di kepala saya untuk membimbing saya dan mudah-mudahan itu akan membantu Anda juga.


Apa itu Marvin? Saya tidak dapat menemukan referensi untuk itu, atau apakah itu kesalahan ketik?
thelsdj

s / Marvin / Hudson / - terima kasih telah melihat @thelsdj :-)
nearora

16

Penafian: Saya adalah salah satu pengembang Wayang.

Cara yang jelas adalah dengan hanya menerapkan konsep-konsep: mendefinisikan siklus pengembangan / pengujian / produksi, dan mendorong perubahan melaluinya. Gunakan kontrol versi untuk melacak sistem.

Dalam waktu singkat, memulai dari jalur itu mengarah ke penemuan bahwa Anda benar-benar menginginkan alat yang mengotomatiskan hal-hal itu - pada dasarnya, bahwa Anda ingin mengotomatiskan administrasi sistem, sehingga Anda tidak menggunakan teknik-teknik itu pada mesin, Anda menggunakannya pada sistem yang mengelola mesin.

Alat-alat seperti Chef , Puppet , Salt , dan CFEngine adalah alat yang populer untuk memenuhi kebutuhan kedua itu. Mereka bekerja dalam arah umum mengubah administrasi sistem menjadi solusi sentral yang dapat Anda kontrol versi dan uji.

The DevOps gerakan adalah sumber lain dari informasi yang baik tentang bagaimana untuk melakukan hal ini. Sementara sila adalah kerja sama yang lebih baik antara Pengembang dan staf Operasional, itu juga cenderung ke arah yang sama.


15
Sekarang kita tahu siapa yang harus dilecehkan tentang pertanyaan Wayang kita ...
ewwhite

1

Di dunia Windows, masalah ini seputar manajemen siklus aplikasi sedang ditangani dengan System Center 2012.

Dalam System Center Virtual Machine Manager (SCVMM), layanan didefinisikan menggunakan 'Templat Layanan' (misalnya layanan tiga tingkat klasik) dan lingkungan eksekusi didefinisikan sebagai 'Awan' (misalnya pengembangan, pementasan, produksi). Templat Layanan dapat diversi dan diluncurkan (secara otomatis) ke Awan yang berbeda. Di bawah penutup, SCVMM melakukan pekerjaan untuk menyediakan, menyebarkan dan mengkonfigurasi perangkat keras yang divirtualisasikan (VMs dll) dan perangkat lunak (OS, komponen aplikasi dll).

System Center Service Manager adalah bagian yang mengikat ini bersama-sama dari sudut pandang proses. Misalnya, manajemen masalah dan kontrol perubahan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.