Mengenal DevOps Engineer


DevOps

Sebelum membaca tentang DevOps Engineering, sebaiknya perlu tahu terlebih dahulu bedanya antara Developer dan programmer. Salah satunya bisa membaca penjelesan dari Codepolitan. Intinya, Developer itu tingakatannya lebih tinggi daripada Programmer, Developer bisa juga disebut dengan software engineer sedangkan Programmer bisa disebut sebagai coder.

DevOps sendiri gabungan dari 2 kata Development dan Operation, jadi DevOps bisa dikatakan sebuah serangkaian pekerjaan antara pengembangan peragkat lunak dan operasi IT. Dalam hal ini adalah Developer dan Sysadmin bekerjasama untuk menghasilkan sebuah perangkat lunak yang stabil dan meningkatkan nilai dari perangkat lunak tersebut dan tanpa sekat atau saling menyalahkan lagi jika terjadi permasalahn pada perangkat lunak yang sedang berjalan. Orang yang bekerja di bidang DevOps disebut DevOps Engineer. Dengan adanya DevOps ini proses develop aplikasi lebih cepat, mengurangi resiko kegagalan, kemudahan rollback, Human Error lebih rendah, tim lebih produktif dan bahagia. Hal ini karena ada beberapa pemotongan pekerjaan manual ke pekerjaan otomatis. DevOps ini bisa dibilang Sysadmin yang lebih canggih lagi, analoginya adalah:

Untuk membuat memproduksi roti, Sysadmin mengerjakan semua serba sendiri. Mulai dari mengaduk roti, mengoven, dan mempacking. Sedangkan DevOps Engineer untuk memproduksi roti memanfaatkan mesin-mesin maupun robot-robot untuk melakukan tugas seperti mengaduk sampai produksi secara otomatis tanpa campur tangan manusia lagi.

Semisal lagi, kita punya aplikasi yang sudah berjalan bertahun-tahun tetapi client meminta fitur baru. Jika saat pembangunan aplikasi pertama kali menggunakan DevOps Engineer dan ketika Developer membuat fitur baru tersebut dan terdapat bug yang tidak tercover oleh QA dan automated testing maka akan ada rollback system sebelum ada penambahan fitur baru tersebut dan Developer terus memperbaiki sampai bug tidak ada dan mengupload ulang kodingannya. Nah proses rollback ini dilakukan secara otomatis dan proses penambahan fitur tidak mengganggu aplikasi yang sedang berjalan.

Untuk DevOps ini ada tingkatan untuk memulai menjadi DevOps Engineer. Antara lain:

  • DevOps Architect
  • Automation Engineer
  • Software Tester
  • Security Engineer
  • Integration Specialist
  • Release Manager

Pekerjaan DevOps Engineer

Dalam praktiknya, DevOps Engineer melakukan:

  1. Continuous Integration (CI) Adalah sebuah proses build dan pengujian otomatis yang terintegrasi dengan hosting repository source code.
  2. Continuous Delivery (CD) Setelah CI berjalan, source code tersebut tidak langsung dikirim ke server production melainkan ke server testing terlebih dahulu sebelum benar-benar source code tersebut sudah matang.
  3. Continuous Deployment (CD) Source code sudah matang, saatnya untuk dikirim ke server production dan mendapatkan feedback dari pengguna aplikasi yang dibuat. Proses pengiriman ke server production ini disebut dengan Continuous Deployment.
  4. Configuration Management Pada proses ini, semua konfigurasi produk secara otomatis dan baku. Sehingga mempermudah konfigurasi banyak server dan dapat meminimalisir kesalahan, karena semua konfigurasi ditulis dalam kode dan berjalan secara otomatis.
  5. Infrastructure as a code (IAAC) Pada pekerjaan ini, kita tidak lagi membangun server secara manual tapi secara otomatis dengan kode, misal kita mau membuat 5 server sekaligus. Kita tinggal menjalankan sebuah kode dan otomatis 5 server sudah jadi, istilah kerennya adalah Programmable Infrastructure.
  6. Monitoring Setelah apliakasi berjalan pada server production, DevOps Engineer tetap perlu memonitoring aplikasinya apakah ada perubahan kode atau penggunanya.
  7. Logging Log adalah dimana kita dapat tahu apakah aplikasi yang berjalan pada server production berjalan dengan baik atau tidak, selain itu aplikasi
  8. Communication & Collaboration Dengan adanya DevOps Engineer, komunikasi antara elemen pada perusahaan dapat aktif dan saling berkolaborasi. Tidak melulu berkomunikasi dengan tim Developer saja tetapi tim marketing, sales, operations, dan tim lain yang ada didalam organisasi/perusahaan.

Hal-hal yang Perlu dipelajari Oleh DevOps Engineer

Untuk menjadi DevOps Engineer ada beberapa hal yang bisa dipelajari, antara lain:

  1. Bahasa Pemrograman, bisa memilih salah satu bahasa pemrograman yang dikuasi seperti: Go, Python, Ruby, Node.js, Rust, C dan C++.
  2. Konsep Sistem Operasi, meliputi startup management yang menggunakan systemd maupun initd, I/O Management, Memory/Storage, File Systems, Virtualization, Konsep Jaringan, Sockets, POSIX Basic, Process Management, Thread dan Concurrency.
  3. Manajemen Server, bisa mempelajari tentang OS yang digunakan untuk Server seperti Linux, Windows dan FreeBSD. Pada umumnya, server menggunakan Linux dan FreeBSD. Karena Linux mempunyai banyak distro, kita perkecil menjadi Ubuntu, CentOS, RHEL, Fedora, Debian dan SUSE Linux. Selain belajar OSnya, kita juga belajar bagaimana menggunakan Terminal pada OS tersebut.
  4. Keamanan, Jaringan dan Protokol. Seperti: HTTP, HTTPS. FTP, SSL/TLS, SSH, dan Port Forwarding.
  5. Membangun sebuah Web Server, Reverse Proxy, Forward Proxy, Caching Server, Load Balancer dan Firewall.
  6. Infrastructure as Code, meliputi Container, Manajemen Konfigurasi, Container Orchestration, Infrastructure Provisioning dan Server Mesh.
  7. CI/CD Tools, antara lain: Gitlab CI, Jenkins, Circle CI, Github Actions, Travis CI, TeamCity, Bamboo, Azure DevOps.
  8. Memonitoring Software dan Infrastruktur, dibagi lagi menjadi tiga bagian yaitu: Infrastructure Management bisa menggunakan Promotheus dan Grafano. Yang kedua Application Monitoring bisa belajar Jaeger dan New Relic. Yang terakhir Logs Management menggunakan Elastic Stack.
  9. Cloud, seperti Cloud Providers dan dan Cloud Design Pattern.

Roadmap DevOps

Gaji DevOps Engineer

Selain Data Science, DevOps Engineer juga sangat tinggi gajinya dan profesi ini juga mengalami pertumbuhan yang sangat pesat. Menurut web Ekrut , gaji DevOps di Indonesia berkisar antara Rp5.000.000 hingga Rp12.000.000 untuk mereka yang memiliki pengalaman kurang dari 2 tahun. Bagaiaman tertarik untuk menjadi DevOps Engineer?

Referensi Tulisan dan Gambar:

Programmer Geeks

Glints

Cilsy

Ekrut

RoadMap DevOPs

Gambar DevOps

comments powered by Disqus