"Kami bukan programmer, kami sysadmin"
Bagaimana waktu saya telah berubah, menjadi lebih buruk: seorang greybeard seperti saya diharapkan menjadi programmer yang lebih baik daripada programmer profesional, jika tidak, tidak akan pernah bisa lulus untuk administrator sistem .
Sekarang, kami memiliki "administrator sistem", yang pada dasarnya adalah pengguna desktop Windows yang pada suatu saat dikonversi ke Linux dan tidak dapat memprogram, dan tidak menemukan kesalahan apa pun dengan itu.
Gajah di ruangan itu adalah mengapa manajemen mentolerir sikap destruktif seperti itu. Merusak siapa atau apa? Untuk bisnis dan infrastruktur.
Kembali ke Puppet [, CFEngine, Chef] subjek: begitu seseorang menentukan solusi seperti itu, ia akan kalah. Semua orang kalah. Mengapa? Karena siapa pun yang datang dengan ide tersebut tidak mampu merancang manajemen konfigurasi enkapsulasi dalam bentuk paket sistem operasi yang bagus, bersih, Kickstart [, JumpStart, Pemasang Otomatis, AutoYaST, Ignite-UX, NIM]. Ketika Anda harus menggunakan alat peretasan otomatis seperti Puppet (atau Chef, atau CFEngine), itu berarti Anda tidak memiliki sarana untuk mendesain dan mengimplementasikan proses yang, dengan desain yang sama, menegakkan sepenuhnya murni dan menyalakan sistem yang dikelola, sepenuhnya otomatis dan sepenuhnya non-interaktif.
Poin penting lainnya adalah, jika Anda harus memiliki Wayang atau solusi semacam itu untuk memperbaiki sistem peretasan seseorang atau konfigurasi aplikasi dengan tangan, itu juga akan kembali ke tidak memiliki pengalaman untuk merancang suatu proses, dan dalam proses itu kerangka kerja di mana konfigurasi dikemas menjadi komponen diskrit. Akibatnya, siapa pun yang mengimplementasikan Puppet dan sejenisnya, tidak memiliki konsep pemilik komponen, rilis, manajemen konfigurasi, Model Kematangan Kemampuan. Ini berkembang pesat menjadi masalah yang sangat serius di industri ini.
Bekerja dengan Puppet juga membantu saya mempelajari Ruby, yang telah menggantikan Bash sebagai bahasa alat sistem default saya. "
Mengapa Ruby diperlukan, ketika manajemen konfigurasi komprehensif, ujung-ke-ujung dapat dienkapsulasi dalam pra-instal, pasca-instal, sebelum dan sesudah menghapus bagian dari paket sistem operasi, hanya dengan menggunakan program shell Bourne, AWK, dan sed? Bahwa seseorang akan belajar bahasa esoterik Ruby, dan dialeknya dalam konteks Wayang, sama sekali tidak diperlukan. Masalah manajemen konfigurasi mudah dipecahkan (dan juga, telah dipecahkan) dengan program shell dan AWK, dan sedikit sed (1) di sana-sini sebagai lem.
Rasanya keren melihat manifes Wayang Anda mengonfigurasi seluruh mesin atau layanan baru dari awal.
Ini adalah hal yang lebih keren melihatnya dilakukan oleh Kickstart, AutoYaST, atau JumpStart, tanpa satu baris kode , dan dapat melakukan query sistem operasi dengan menggunakan alat bawaan , tanpa memerlukan perangkat lunak esoterik atau tambahan , tanpa klien-server diperlukan arsitektur (SSH lebih dari baik, jauh lebih baik), dan melihat sistem operasi Anda mengetahui setiap perubahan yang dilakukan.
5. Memisahkan kode dari data. Ini adalah salah satu konsep yang lebih sulit untuk dipelajari. Nilai-nilai hardcoding seperti Host Pemantauan ke dalam kode modul Anda buruk. Menempatkan mereka di penyimpanan data (db, yaml (Hiera menggunakan ini sebagai default), csv, apa pun) yang dapat dikonsumsi modul Anda baik. Contohnya adalah webapp yang menggunakan Mysql. Apa ini memungkinkan adalah kemampuan untuk mendorong kode dan data secara terpisah. Ini membuat proses pengembangan Anda lebih sederhana.
... Atau Anda bisa template file konfigurasi Anda dengan variabel shell, bahkan backquotes (misalnya ls -1 ...
) dan menulis sebuah shell script yang menggunakan AWK untuk memanggil eval (1) dan memperluas semua variabel dalam template, sehingga memanfaatkan yang sama persis kuat parser yang memiliki cangkang built-in. Mengapa membuatnya rumit, padahal sebenarnya bisa sangat, sangat sederhana? Di mana Anda akan menyimpan nilai konfigurasi? Mengapa, di mana saja Anda mau, seperti misalnya file pkginfo (4), atau database seperti Oracle, atau cukup banyak di mana saja . Tidak perlu solusi ultrakompleks. Pustaka yang saya sebutkan di atas hanya dapat bersumber dari bagian pra-instal atau pasca-instal dalam paket sistem operasi, dengan demikian menghapus duplikasi dan meningkatkan sepotong kode pusat ...
Tetapi di atas semua, saya menemukan bahwa kutipan di atas adalah contoh dari generasi berikutnya dari administrator sistem yang perlu bimbingan bukan oleh administrator sistem, tetapi oleh insinyur sistem . Temukan diri Anda seorang greybeard dan masuk sebagai murid.