Mengapa administrator sistem harus menjadi insinyur DevOps


Tidak ada waktu yang lebih baik untuk belajar dalam hidup daripada hari ini.

Ini tahun 2019 dan tema DevOps sama relevannya dengan sebelumnya. Mereka mengatakan bahwa hari-hari administrator sistem telah berlalu, seperti era mainframe telah berlalu. Tapi benarkah begitu?
Seperti yang sering terjadi di TI, situasinya telah berubah. Metodologi DevOps telah muncul, tetapi tidak dapat ada tanpa seseorang dengan keterampilan administrator sistem, yaitu, tanpa Ops.

Sebelum pendekatan DevOps memperoleh tampilan modernnya, saya mengklasifikasikan diri saya sebagai Ops. Dan saya tahu betul apa yang dialami administrator sistem ketika dia menyadari betapa dia belum mampu melakukan dan betapa sedikit waktu yang dia miliki untuk belajar bagaimana melakukan ini.



Tetapi apakah semuanya benar-benar menakutkan? Saya akan mengatakan bahwa tidak perlu menganggap kurangnya pengetahuan sebagai semacam masalah besar. Ini lebih merupakan tantangan profesional.

Produk skala web didasarkan pada Linux atau perangkat lunak open source lainnya, dan semakin sedikit spesialis di pasar yang dapat melayani mereka. Permintaan telah melebihi jumlah profesional di bidang ini. Administrator sistem tidak akan lagi dapat terus bekerja tanpa meningkatkan tingkat keahliannya. Ia harus memiliki keterampilan otomatisasi untuk mengelola beberapa server / node, dan memiliki pemahaman yang baik tentang bagaimana mereka bekerja untuk menyelesaikan masalah.

Sebelum menjadi anggota tim DevOps, Anda memiliki perjalanan yang panjang namun menarik untuk dipelajari, mengeksplorasi teknologi baru dan berbagai alat yang diperlukan untuk memelihara sistem sesuai dengan standar DevOps.

Jadi, bagaimana administrator sistem dapat beralih dari pendekatan biasa ke konsep DevOps yang baru? Semuanya seperti biasa: pertama-tama Anda perlu mengubah pola pikir Anda. Sama sekali tidak mudah untuk meninggalkan pendekatan yang telah Anda ikuti selama sepuluh atau dua puluh tahun terakhir dan mulai melakukan segala sesuatu dengan cara yang baru, tetapi ini perlu.

Pertama-tama, penting untuk memahami bahwa DevOps bukanlah posisi spesifik dalam perusahaan, tetapi serangkaian praktik khusus. Praktik-praktik ini meliputi distribusi sistem terisolasi, pengurangan dampak buruk dari bug dan kesalahan, pembaruan perangkat lunak yang sering dan tepat waktu, interaksi yang lancar antara pengembang (Pengembang) dan administrator (Operator), serta pengujian terus-menerus tidak hanya pada kode, tetapi seluruh struktur sebagai bagian dari proses integrasi berkelanjutan dan pengiriman (CI / CD) .

Seiring dengan mengubah cara berpikir, Anda perlu mempelajari cara memelihara infrastruktur dan memastikan pengoperasian, keandalan, dan ketersediaannya yang stabil untuk integrasi dan pengiriman aplikasi, layanan, dan perangkat lunak yang berkelanjutan.

Apa yang Anda mungkin kurang sebagai spesialis Ops adalah keterampilan pemrograman. Sekarang menulis skrip (skrip) yang digunakan administrator sistem untuk secara otomatis menginstal tambalan di server, mengelola file dan akun, untuk memecahkan masalah dan menyusun dokumentasi sudah dianggap usang. Dalam kasus yang relatif sederhana, skenario masih diterapkan, tetapi konsep DevOps melibatkan penyelesaian tugas skala besar, apakah itu implementasi, pengujian, pekerjaan perakitan atau penyebaran.

Jadi, jika Anda ingin belajar otomatisasi, Anda harus setidaknya menguasai sedikit pemrograman, bahkan jika Anda bukan pengembang, karena pada tahap pengembangan ini , otomatisasi infrastruktur di DevOps memerlukan keterampilan ini.

Apa yang harus dilakukan Untuk tetap menjadi spesialis yang dicari, Anda perlu memperoleh keterampilan yang relevan - untuk menguasai setidaknya satu bahasa pemrograman, misalnya Python. Untuk orang yang secara profesional terlibat dalam administrasi, ini mungkin tampak rumit, karena ia terbiasa berpikir bahwa hanya program pengembang. Tidak perlu menjadi seorang ahli, bagaimanapun, pengetahuan tentang salah satu bahasa pemrograman (bisa Python, Bash atau bahkan Powershell ) tentu akan menjadi keuntungan.

Untuk mempelajari cara memprogram, Anda perlu waktu. Bersikap penuh perhatian dan sabar - ini akan membantu Anda mempertahankan pemahaman tentang situasi saat berkomunikasi dengan pengembang dari tim dan pelanggan DevOps. Setengah jam sehari, satu jam atau lebih - belajar bahasa pemrograman harus menjadi tujuan utama Anda.

Administrator sistem dan spesialis DevOps menyelesaikan masalah serupa, namun, ada perbedaan yang signifikan. Dipercaya bahwa administrator sistem tidak dapat melakukan semua yang dapat dilakukan oleh insinyur DevOps. Mereka mengatakan bahwa sysadmin lebih fokus pada konfigurasi, pemeliharaan dan memastikan pengoperasian sistem server, tetapi insinyur DevOps menarik seluruh gerobak ini dan gerobak kecil lainnya.

Tetapi seberapa benar pernyataan ini?

Administrator sistem: satu di prajurit bidang


Terlepas dari perbedaan dan kesamaan yang dicatat dalam artikel ini, saya masih berpikir bahwa tidak ada perbedaan yang signifikan antara administrasi sistem dan DevOps. Administrator sistem selalu melakukan fungsi yang sama dengan spesialis DevOps, tetapi tidak ada yang pernah menyebutnya DevOps sebelumnya. Saya pikir tidak masuk akal untuk secara khusus mencari perbedaan, terutama jika ini tidak terkait dengan tugas apa pun. Jangan lupa bahwa, tidak seperti administrator sistem, DevOps bukanlah posisi, tetapi sebuah konsep.

Satu hal lagi yang perlu diperhatikan, yang tanpanya pembicaraan tentang administrasi dan DevOps tidak akan lengkap. Sistem administrasi dalam arti biasa menyiratkan bahwa seorang spesialis memiliki seperangkat keterampilan khusus dan fokus melayani berbagai jenis infrastruktur. Bukan dalam arti bahwa ini adalah karyawan universal, tetapi dalam kenyataan bahwa ada sejumlah tugas yang dilakukan oleh semua administrator.

Misalnya, dari waktu ke waktu mereka harus bertindak sebagai semacam tukang teknis, yaitu, untuk melakukan segala sesuatu secara berturut-turut. Dan jika administrator seperti itu adalah satu-satunya di seluruh organisasi, maka ia akan melakukan semua pekerjaan teknis. Itu bisa apa saja, dari servis printer dan mesin fotokopi hingga melakukan tugas yang berhubungan dengan jaringan, seperti mengkonfigurasi router dan switch dan mengaturnya atau mengatur firewall.

Dia juga akan bertanggung jawab untuk pembaruan perangkat keras, memeriksa dan menganalisis log, audit keamanan, menginstal tambalan di server, pemecahan masalah, analisis penyebab utama, dan otomatisasi - biasanya melalui skrip PowerShell, Python, atau Bash. Salah satu contoh menggunakan skrip adalah mengelola akun pengguna dan grup. Membuat akun pengguna dan memberikan izin adalah tugas yang sangat membosankan, karena pengguna muncul dan menghilang hampir setiap hari. Otomatisasi skrip membebaskan waktu untuk tugas infrastruktur yang lebih penting, seperti memutakhirkan sakelar dan server dan melakukan proyek lain yang memengaruhi profitabilitas perusahaan tempat administrator bekerja (walaupun secara umum diterima bahwa departemen TI tidak secara langsung menghasilkan pendapatan).

Tugas administrator sistem bukanlah membuang-buang waktu dan menghemat uang perusahaan dengan cara apa pun yang memungkinkan. Terkadang administrator sistem bekerja sebagai anggota tim besar yang menyatukan, misalnya, Linux, Windows, database, penyimpanan, dan sebagainya administrator. Jadwal kerja juga berbeda. Misalnya, perubahan dalam satu zona waktu pada akhir hari akan memindahkan berbagai hal ke perubahan berikutnya dalam zona waktu lain sehingga proses tidak berhenti (ikuti-matahari); atau karyawan memiliki hari kerja normal dari jam 9 pagi sampai jam 5 sore; atau apakah itu berfungsi di pusat data 24 jam.

Seiring waktu, administrator sistem telah belajar untuk berpikir secara strategis dan menggabungkan hal-hal penting dengan tugas rutin. Tim dan departemen tempat mereka bekerja biasanya tidak memiliki sumber daya yang cukup, tetapi pada saat yang sama setiap orang berusaha melakukan tugas sehari-hari secara penuh.

DevOps: pengembangan dan layanan adalah satu


DevOps adalah sejenis filosofi proses pengembangan dan pemeliharaan. Pendekatan ini di dunia TI telah menjadi benar-benar inovatif.

Di bawah naungan DevOps, tim pengembang perangkat lunak bekerja di satu sisi, dan tim spesialis layanan di sisi lain. Seringkali mereka bergabung dengan spesialis manajemen produk, penguji, dan perancang antarmuka pengguna. Dengan bergabung bersama pasukan, para spesialis ini mengoptimalkan operasi kerja untuk dengan cepat meluncurkan aplikasi baru dan memperbarui kode untuk mendukung dan meningkatkan efisiensi seluruh perusahaan.

Di jantung DevOps adalah kontrol atas pengembangan dan pengoperasian perangkat lunak sepanjang siklus hidup. Spesialis layanan harus mendukung pengembang, dan pengembang dihadapkan pada tugas memahami tidak hanya API yang digunakan dalam sistem. Mereka perlu memahami apa yang "di bawah tenda" (yaitu, bagaimana perangkat keras dan sistem operasi berfungsi) untuk lebih baik dalam mengatasi kesalahan, menyelesaikan masalah dan berinteraksi dengan spesialis layanan.

Administrator sistem dapat pergi ke tim DevOps jika mereka ingin mempelajari teknologi terbaru dan terbuka untuk ide dan solusi inovatif. Seperti yang saya katakan, mereka tidak perlu menjadi programmer penuh, tetapi menguasai bahasa pemrograman seperti Ruby, Python, atau Go akan membantu mereka menjadi anggota tim yang sangat berguna. Meskipun administrator sistem secara tradisional melakukan semua pekerjaan sendiri dan sering dianggap sebagai penyendiri, di DevOps mereka akan memiliki pengalaman yang sepenuhnya berlawanan ketika semua peserta dalam proses berinteraksi satu sama lain.

Topik otomatisasi menjadi semakin relevan. Baik administrator sistem dan spesialis DevOps tertarik pada penskalaan operasional, mengurangi jumlah kesalahan, serta dalam pencarian cepat dan penghapusan kesalahan yang ada. Jadi, otomatisasi adalah konsep di mana dua area bertemu. Administrator sistem bertanggung jawab atas layanan cloud seperti AWS, Azure, dan Google Cloud Platform. Mereka perlu memahami prinsip-prinsip integrasi dan pengiriman berkelanjutan dan bagaimana menggunakan alat seperti Jenkins dalam pekerjaan mereka.

Selain itu, administrator sistem harus menggunakan konfigurasi dan alat manajemen seperti Ansible , yang diperlukan untuk menggunakan sepuluh atau dua puluh server secara paralel.

Konsep dasarnya adalah infrastruktur sebagai kode . Perangkat lunak dalam segalanya. Bahkan, agar profesi administrator sistem tidak kehilangan relevansi, Anda hanya perlu mengubah fokus sedikit. Administrator sistem terlibat dalam pemeliharaan dan harus dapat berinteraksi secara efektif dengan pengembang, dan sebaliknya. Seperti yang mereka katakan, satu kepala baik, dan dua lebih baik.

Dan detail terakhir dalam mekanisme ini adalah Git . Bekerja dengan Git adalah salah satu tanggung jawab harian tradisional dari administrator sistem. Sistem kontrol versi ini banyak digunakan oleh pengembang, spesialis DevOps, tim Agile, dan banyak lainnya. Jika pekerjaan Anda terkait dengan siklus hidup perangkat lunak, maka Anda pasti akan bekerja dengan Git.

Git berisi banyak fitur. Kemungkinan besar, Anda tidak akan pernah mempelajari semua perintah Git, tetapi Anda akan mengerti persis mengapa alat ini dianggap sebagai yang utama dalam komunikasi dan kolaborasi pada perangkat lunak. Pengetahuan menyeluruh tentang Git sangat penting jika Anda bekerja di tim DevOps.

Jika Anda seorang administrator sistem, maka Anda perlu mempelajari Git lebih baik, memahami bagaimana kontrol versi dibangun dan mengingat perintah umum: status git, git commit -m, git add, git pull, git pull, git rebase, git branch, git diff dan lainnya . Ada banyak kursus dan buku online untuk membantu Anda mempelajari topik ini dari awal dan menjadi seorang profesional dengan keterampilan khusus. Ada juga lembar contekan hebat dengan perintah Git , jadi menjejalkan semuanya adalah opsional, tetapi semakin Anda menggunakan Git, semakin mudah bagi Anda.

Kesimpulan


Pada akhirnya, Anda memutuskan apakah Anda perlu menjadi spesialis DevOps atau lebih baik untuk tetap menjadi administrator sistem. Seperti yang Anda lihat, transisi membutuhkan pelatihan, tetapi semakin cepat Anda memulai, semakin baik. Pilih bahasa pemrograman dan alat studi seperti Git (kontrol versi), Jenkins (CI / CD, integrasi berkelanjutan) dan Ansible (konfigurasi dan otomatisasi). Opsi apa pun yang Anda pilih, jangan lupa bahwa Anda harus terus-menerus belajar dan meningkatkan keterampilan Anda.

Source: https://habr.com/ru/post/id463505/


All Articles