DevOPS dan Kenapa Penting untuk dipelajari sekarang ?

Jujur saja, saat tulisan ini diketik saya masih belum tau apa itu DevOPS, mencari jawaban di quora pun ada berbagai versi. Saya coba kutip beberapa (bisa jadi semua :p) agar bisa nanti saya baca kedepannya lagi hehe. 

Kenapa DevOPS ? ini berawal dari iseng-iseng melihat lowongan kerja di JobStreet saat pandemi ini, dengan memanfaatkan filter pencarian di Jobstreet, tentunya saya filter berdasarkan lokasi dengan posisi pekerjaan di taruh di Semua Spesialisasi wkwwk, dengan harapan 

Setelah menerapkan filter yang sudah di atur tadi, mulailah saya scroll scroll halaman demi halaman melihat-lihat lowongan yang sesuai dengan minat dan kemampuan dong, Naah, karena rekomendasi kerja dari LiNa selalu berkaitan dengan hal-hal terkait IT maka ada beberapa judul lowongan yang membuat saya mengklik lowongan tersebut meski tidak tau jenis pekerjaan dari posisi yang di publikasikan tersebut. 

DEVOPS ENGINEER, merupakan salah satu judul lowongannya, kenapa saya tertarik untuk melihat ? sudah jelas range gaji yang ditawrkan mulai dari 10-20 juta, selain itu kata Dev yang saya kira hanya Developer (sebagaimana developer website 🤣) dengan antusias berpikir "Wah bisa nih kayaknya!", namun setelah halaman lowongannya selesai termuat, kemudian saya scroll down lalu dalam waktu kurang dari 10 detik si tangan kiri dengan cepat memencet tombol keyboard CTRL + W, ya command untuk menutup tab pada browserd EDGE yang saya pakai. Kenapa ? Saya baru baca JOB DESCRIPTION dan REQUIREMENTS sepintas sudah minder sendiri dengan setiap bullet list didalam lowongan tersebut wkwkw. 

Lihat saja sendiri salah satu jobdesk dan requirementsnya dibawah ini


JOB DESCRIPTION:
  • Build, monitor, and improve our web application CI/CD pipelines (using GitLab CI/CD)
  • Collaborate with software development teams to automate and enhance product development and release processes
  • Write technical documentation that ensures systems can be maintained and knowledge is shared throughout the team
  • Write efficient, usable and scalable infrastructure as a code
  • Responsible in building, maintaining and improving software architecture
  • Monitor and respond to alerts from technology infrastructure in order to ensure proper SLAs are met
  • Managing and developing clustered/replicated database system using SQL, Non-SQL and Distributed System
  • Assist with the maintenance of our database servers to ensure the proper functioning of master/slave replication, security, backup operations and optimal performance
  • Install and Maintenance Linux service or application what we need for improvement.

REQUIREMENTS:
  • At least 2 years of working experience as a DevOps Engineer
  • Have experience about source code management
  • Experience with IaaS or PaaS systems such as: AWS, OpenShift/Kubernetes, Gitlab CI/CD
  • Hands-on experience with one or more of the following DevOps toolchains (or equivalent): Jenkins, Git, Artifactory, Docker
  • Fundamental understanding of networking, firewalls, load balancing, forward and reverse proxies
  • Familiarity with concepts such as: Agile methodologies, Test-Driven Design, Behavioural-Driven Design, and 12 factor application design
  • Very good LINUX knowledge
  • Experience with web server such as Apache, NGINX and etc.
  • Experience with MySQL, MongoDB, Redis, Elasticsearch, etc.
  • Strong communication in collaboration with software engineers and other cross-functional positions
Ada beberapa job desk dan requirement yang tidak saya miliki selama bekerja di bagian IT, dan ketidaktahuan itu yang membuat ragu untuk apply. Seandainya sempat magang di perusahaan yang pernah menerapkan konsep-konsep kerja diatas, mungkin akan saya apply, walau hanya punya pengalaman 3 bulan 🤣

Scroll demi scroll semakin banyak saya lihat lowongan DevOps, tentunya ada juga beberapa lowongan yang saya apply (sekitar 50 dalam kurun 2 minggu, hehe). Nah berikut ini adalah tulisan yang saya mau simpan dari quora


Apa itu DevOPS


DevOps adalah perpaduan dari istilah development (pengembangan) dan operations (operasi), yang dimaksudkan untuk mewakili pendekatan kolaboratif atau bersama untuk tugas-tugas yang dilakukan oleh pengembangan aplikasi perusahaan dan tim operasi TI.

Cara untuk menjadi DevsOps adalah dengan mempelajari dan menguasai tools2 untuk DevsOps. :
  1. Jenkins. Merupakan automation server yang bersifat open source serta bebas untuk digunakan. Tools ini dapat membantu mengotomatisasi proses software development dengan continuous integration (CI) dan memfasilitasi aspek teknis untuk continuous delivery (CD). Dengan Jenkins, Anda dapat mengatur dan menyesuaikan pipeline sesuai dengan apa yang Anda butuhkan. Jenkins menjadi tools yang populer di kalangan DevOps.
  2. Git. Menjadi tools populer yang banyak digunakan oleh DevOps Engineer. Alat ini memiliki fungsionalitas, kinerja, keamanan, dan fleksibilitas yang dibutuhkan oleh tim pengembang.

    Dengan Git, Anda dapat melacak progres atau kemajuan dari pengembangan sebuah projek dan melihat jika ada perubahan kode di dalam source code. Hal ini tentu akan sangat membantu DevOps Engineer.
  3. Selenium. Merupakan automation testing tool untuk web application yang dilakukan pada berbagai browser seperti Mozilla Firefox , Internet Explorer, Google Chrome , Safari atau pun Opera. tools ini biasanya akan digunakan oleh tim QA untuk membantu proses software testing.
  4. Docker. Menjadi container management tool yang sudah semakin berkembang dan dianggap sebagai salah satu tools penting untuk DevOps Engineer.

Kenapa DevOps penting dalam dunia IT?

Untuk memahami seberapa penting kerja DevOps dalam dunia IT, kita harus paham dulu bagaimana kultur pengembangan aplikasi di dalam dunia IT. Dalam kasus ini, anggaplah kita sedang mengembangkan suatu aplikasi web.

Siklus pengembangan software tradisional, waterfall model

Klien membutuhkan suatu website, anggaplah website e-commerce untuk menjual produk milik klien. Requirements-nya pun ditentukan bersama klien, Desain tampilan nya pun ditentukan bersama tim UI/UX, developer melakukan development, tim Quality Assurance melakukan testing, SysAdmin melakukan deployment dan maintentance.

Terlihat lancar dan baik-baik saja bukan? Sayangnya dunia IT tidak sebaik itu lagi kawan.

DevOps lahir dari kebutuhan akan pengembangan software yang harus cepat, adaptif terhadap perubahan, kolaboratif antar tiap tim yang terlibat, dan semua itu dilakukan dalam proses yang iteratif (berulang-ulang), dan takkan ada habisnya. Sedangkan kultur kerja waterfall semacam itu akan semakin tergerus karena tidak sesuai dengan kebutuhan zaman. Boro-boro menambah fitur, untuk sekedar memperbaiki bug saja mungkin sangat sulit, karena aplikasi dianggap sudah final dan tidak dapat diganggu gugat karena sudah memasuki tahap production.

Untuk memahami lebih lanjut mengenai apa yang dikerjakan oleh DevOps, mari kita lihat model berikut:

Apa itu DevOPS
Kultur DevOps, lengkap dengan semua tools yang wajib dikuasai
 
DevOps sendiri adalah pekerjaan yang menghilangkan sekat antara tim development, tim operations, dan tim QA. Jika dulu setiap tim bekerja sendiri-sendiri (tim operations menunggu tim QA selesai melakukan testing, tim QA menunggu tim development selesai membangun software, and so on), maka DevOps membuat setiap tim dapat berinteraksi dan berkolaborasi dengan aktif satu sama lain, serta lebih fokus dalam melaksanakan tugas masing-masing ketimbang ribut menyalahkan satu sama lain ketika terjadi sebuah kesalahan.

Bagaimana caranya?

Pekerjaan utama DevOps sendiri adalah membangun sistem yang terotomatisasi dalam rangka memenuhi kebutuhan para developer dan QA engineer dalam melakukan pengembangan, pengujian, dan perilisan aplikasi. Jika dulu setiap developer dan QA membangun, serta menguji aplikasinya di dalam environment lokal milik komputernya sendiri, maka DevOps mampu menyediakan environment yang nyata (benar-benar menggunakan layanan cloud/server), sehingga tidak ada alasan lagi semacam:
"Lah, tadi di laptop gua webnya gaada error. Kok pas dideploy malah ngebug?"

"Kok malah lemot ya pas udah dideploy?"
Dengan sistem ini, semua pihak juga dimudahkan dalam melakukan update sistem. Developer membangun fitur pada environment khusus developer, lalu jika dirasa sudah oke, tim QA menjalankan serangkaian proses testing di dalam environment yang juga dibangun khusus untuk mereka, dan jika lolos, tinggal dideploy dengan sekali klik (idealnya, kenyataan di lapangan kadang bisa lebih kompleks, tapi jauh lebih baik ketimbang sebelum ada tim DevOps).

Untuk menjadi DevOps sendiri, yang utama adalah paham bagaimana menggunakan suatu tools, dan mengintegrasikannya di dalam suatu sistem (gambarannya seperti gambar sebelumnya). Ada Jenkins (untuk membangun pipeline antar environment, baik untuk developing, testing, dan production), Ansible (untuk membangun environment itu sendiri di dalam sebuah server), Docker, GitOps, AWS, GCP, dll.

Di luar itu, katanya ada beberapa masukan bagi yang ingin belajar lebih jauh mengenai DevOps:

  1. Belajarlah Linux, sampai khatam, luar dalam dan tetek-bengeknya. Akrabkan diri dengan command line, jauhkan diri dari ketergantungan akan GUI. Niscaya, setengah permasalahan hidup anda dalam dunia per-DevOps-an akan lebih mudah teratasi. (Setengah dari linux tetek bengeknya kayaknya saya sudah bisa sih tapi yang ubuntu
  2. Pahami juga Computer Networking. Bagaimana jaringan internet bekerja, hingga hal-hal terkecil seperti "apa bedanya HTTP dan HTTPS?", "HTTPS jalan di port berapa?", "Maksudnya error 404, 403?", dll. (kalau ini saya sendiri sudah tau sih wkwkw)
  3. Belajar benar-benar berpikir logis dan runut. Menjadi DevOps tak seenak menjadi developer aplikasi dalam hal mengetahui "salah saya apa?". Tak ada block merah pada script yang error. Tak ada penjelasan lebih lanjut mengenai kesalahan yang ada. Dalam banyak kasus, hal terbaik yang bisa dilakukan adalah merunut segalanya dari awal, mendeteksi dengan detail setiap apa yang sudah kita buat, memperkecil ruang lingkup kemungkinan kesalahan (dari keseluruhan sistem menjadi beberapa part yang terlihat mencurigakan), mengujinya lagi dengan konfigurasi yang berbeda, dan masih banyak lagi, hingga ditemukan dengan pasti apa kesalahannya. Itu baru menemukan kesalahan. Mencari solusi bisa lebih ruwet lagi.
Jika hal-hal tersebut bisa dipenuhi, maka hal-hal lain seperti belajar tools/teknologi baru dalam DevOps sebenarnya bukan masalah besar.

Kayaknya perlu semangat nih buat bisa konsisten, jangan berhenti belajar, karena saya sendiri pun masih dalam fase belajar dan belum bisa dibilang dalam tahap associate, apalagi senior.

DevOPS dan Kenapa Penting untuk dipelajari sekarang ? DevOPS dan Kenapa Penting untuk dipelajari sekarang ? Reviewed by tmv31 on 11/04/2021 04:51:00 PM Rating: 5

Jujur saja, saat tulisan ini diketik saya masih belum tau apa itu DevOPS, mencari jawaban di quora pun ada berbagai versi.

Tidak ada komentar:

no spam or will be deleted

Diberdayakan oleh Blogger.