Jika berbicara mengenai profesi di bidang IT, kebanyakan orang akan langsung ingat profesi software engineer, programmer, developer, dan lain sebagainya. Tapi, fakta menariknya ternyata ada satu prospek karier di bidang IT yang kini sedang hangat dibahas di banyak forum seperti Quora dan Reddit karena disebut-sebut sebagai profesi yang demand-nya tinggi, tingkat persaingannya masih kecil, serta gaji dan prospek kariernya sangat menjanjikan. Profesi yang dimaksud adalah DevOps Engineer.
Mungkin kamu juga penasaran apakah benar profesi DevOps Engineer sedang high demand? Ternyata jawabannya benar, jika kamu lihat di berbagai job platform seperti Linkedln, Jobstreet atau Indeed, kamu akan menemukan ratusan bahkan ribuan lowongan untuk posisi DevOps Engineer di Indonesia dan global. Yang menarik, dibandingkan profesi IT lainmnya, pelamar untuk profesi DevOps Engineer masih terbilang sedikit. Jika umumnya profesi IT lain dalam 24 jam ada sekitar 50+ orang yang apply, untuk lowongan DevOps Engineer itu masih di bawah 50 pelamar. Bisa disimpulkan, profesi DevOps Engineer masih tergolong high demand low supply. Padahal jika dilihat dari prospek dan gajinya profesi ini juga menarik banget.
Jika kamu saat ini tertarik untuk mulai berkarier jadi DevOps Engineer, maka kamu wajib simak artikel ini sampai akhir untuk tahu penjelasan lengkap mengenai profesi DevOps Engineer!
Definisi DevOps Engineer
Jika kamu selama ini mempelajari dunia tech atau programming, pasti kamu juga tidak asing dengan istilah DevOps. DevOps merupakan singkatan dari dua kata yaitu Development dan Operation yang maknanya adalah operasional pengembang. DevOps merupakan prinsip developer untuk mengkoordinasikan antara tim yaitu:
- Tim Development
- Tim Operation
Di sini DevOps bertugas untuk menghubungkan dua tim tersebut dengan efektif dan efisien. Jika dilihat dari definisi secara bahasa, DevOps terdiri dari dua kata yang memiliki makna, development bermakna menggabungkan proses pengembangan dari sistem atau aplikasi dengan operations. Bisa disimpulkan, DevOps Engineer adalah profesi yang menjembatani tim IT development dan IT operational dalam mengembangkan sebuah software. Sejenis dengan project manager, tapi fokus pada konteks software development. DevOps mendorong terjadinya:
- Kolaborasi
- Komunikasi
- Integrasi
- Automasi
- Pengukuran kerja sama antara software development dan IT operations
Tujuannya, agar kualitas software lebih baik dan lebih andal. Biasanya di perusahaan startup lebih sering dikenal istilah Agile, DevOps bisa disebut sebagai evolusi atau penyempurnaan dari Agile ini.
BACA JUGA: Remote Working Indonesia: 18 Situs Terbaik
Tujuan DevOps Engineer
Tujuan DevOps Engineer (Source Photo: Smartsheet)
DevOps bertujuan untuk meningkatkan kolaborasi antara team development dan operation mulai dari:
- Perencanaan aplikasi atau fitur
- Perancangan aplikasi atau fitur
Dua hal ini harus dilakukan secara otomatis agar bisa:
- Meningkatkan waktu marketing
- Menurunkan tingkat kegagalan saat rilis aplikasi atau fitur
- Meminimalisir waktu perbaikan
- Meningkatkan waktu pemulihan
- Meningkatkan deployment frequency
Faktanya, mengutip dari State of DevOps, organisasi IT yang menerapkan DevOps terbukti bisa meningkatkan:
- Kinerja 30x lebih tinggi
- Efisiensi waktu 200x lebih tinggi
- Kegagalan 60x lebih sedikit
- Proses pemulihan 168x lebih cepat
DevOps LifeCycle
Berbicara mengenai tugas dan tanggung jawab DevOps, pastinya tidak akan terlepas dari DevOps Life Cycle seperti gambar di atas. DevOps Life Cycle adalah rangkaian proses atau tahapan proses development secara end-to-end melalui pendekatan yang berkelanjutan atau biasa disebut CI/CD. Proses ini terjadi secara iteratif yang bertujuan untuk memaksimalkan metodologi DevOps. Life Cycle ini terdiri dari 7 tahapan yaitu:
Plan
Tahapan ini mencakup semua perencanaan dan perancangan dari aplikasi yang nantinya akan dikembangkan. Biasanya pada tahapan ini semua:
- Aturan
- Persyaratan
- Feedback stakeholder
- Feedback user
Akan dikumpulkan dan akan digunakan untuk planning project.
Code
Di tahapan kedua ini, developer akan menuliskan code dari aplikasi yang akan dibangun. Setelah developer menuliskan code nantinya mereka akan melakukan push atau proses menyimpan code ke repository terpusat, salah satu yang sering digunakan di berbagai perusahaan adalah GitHub.
Build
Tahapan selanjutnya, code di-push ke repository akan dilakukan build yaitu proses mengubah code dari developer menjadi aplikasi. Biasanya, sebelum proses build developer lain juga akan melakukan diskusi agar mendapatkan feedback dan review terhadap code. Setelah selesai melakukan diskusi maka akan masuk ke proses build aplikasi.
Test
Tahapan berikutnya yaitu melakukan test pada aplikasi yang sedang di-build. Ada beberapa aspek yang di-test seperti:
- Kesesuaian dengan kriteria awal
- Fungsional
- Desain
Apabila pada tahapan ini masih ada aspek-aspek yang tidak sesuai maka akan diperbaiki dulu sebelum masuk ke tahap selanjutnya.
Release
Di tahapan release, aplikasi yang sudah lolos uji test akan diberikan label atau nomor versi. Selain itu, akan juga ada keterangan tambahan seperti:
- Jadwal rilis aplikasi
- Perubahan yang dilakukan di aplikasi
- Tanggal proses release
- Tanggal aplikasi masuk ke proses deploy
Deploy
Pada tahapan deploy, aplikasi yang sudah dibuat akan ditempatkan atau disebarkan agar bisa diakses oleh para pengguna. Biasanya di tahapan ini perusahaan akan menggunakan beberapa tools bantuan seperti:
- AWS CodeDeploy
- Jenkins
Operate
Di tahapan ini tim operation akan memastikan aplikasi dan infrastruktur berjalan sebagaimana mestinya. Apabila ternyata ada kesalahan atau bug, biasanya user akan memberikan feedback yang nantinya akan jadi patokan untuk melakukan pengembangan dari aplikasi.
Monitor
Tahap terakhir yaitu monitor. Pada tahap sebelumnya sudah dikumpulkan berbagai data seperti:
- Performance
- Error
- Feedback
Dari data-data ini nantinya akan dilakukan evaluasi dari aplikasi yang sudah dikembangan. Bahkan juga dilakukan monitor untuk pipeline yang dibuat.
Tanggung Jawab DevOps Engineer
Mengutip IntelliPaat, ada beberapa tanggung jawab dari seorang DevOps Engineer. Berikut penjelasannya:
Mengembangkan Solusi
Tanggung jawab yang pertama adalah mengembangkan solusi dalam skala yang besar pada software dengan menggunakan bahasa pemrograman seperti:
- Python
- .NET
- Java
- JavaScript
Mengatur Project Management
Seorang DevOps juga bertanggung jawab untuk mengatur serta mengelola berbagai proyek pengembangan dan pengoprasian software. DevOps memiliki kewajiban untuk membantu dalam:
- Perencanaan
- Penjadwalan
- Pelaksanaan tugas terkait project development
Meningkatkan Infrastruktur Teknologi Informasi
DevOps adalah profesi yang fokus pada pendekatan CI/CD. Pendekatan ini akan membantu dalam meningkatkan infrastruktur teknologi informasi dalam organisasi. Oleh karena itu, DevOps bertanggung jawab untuk meningkatkan infrastruktur TI yang meliputi:
- Pemanfaatan teknologi cloud
- Konfigurasi server
- Pemantauan performa sistem
Benchmarking Performa dan Testing
Selain itu, tanggung jawab DevOps juga adalah melakukan benchmarking performa. Tindakan ini wajib dilakukan untuk mengukur performa sistem dan aplikasi. Biasanya dalam pelaksanaannya DevOps bertanggung jawab untuk melakukan load testing untuk memastikan infrstruktur dan aplikasi bisa menangani beban yang tinggi.
Selain empat tanggung jawab tersebut, DevOps juga bertanggung jawab untuk:
- Melakukan automasi task berulang
- Mengimplementasikan tools otomatis dan frameworks
- Melakukan pendekatan manajemen risiko, clustering, fallover
- Menangani permasalahan IT
Skill yang Diperlukan DevOps Engineer
Untuk bisa berkarier jadi DevOps Engineer, kamu harus menguasai beberapa skill penunjang seperti:
Bahasa Pemrograman dan Scripting
Skill penting yang harus dimiliki oleh DevOps adalah kemahiran menggunakan berbagai bahasa pemrograman dan juga scripting. Ada beberapa pilihan bahasa pemrograman yang bisa kamu pelajari seperti:
- Python
- Ruby
- JavaScript
- Java
- PHP
- Golang
Pemahaman mengenai bahasa pemrograman akan membantu kamu melakukan:
- Otomatisasi proses development dan deployment
- Debugging
- Integrasi perubahan kode
- Memahami hal yang dilakukan developer
Version Control System
Selanjutnya kamu juga harus menguasai skill Version Control System yaitu teknik menggabungkan kode di satu repository terpusat agar mudah untuk dilacak. Jika terjadi kesalahan, nanti kamu akan bisa membandingkan versi kode sekarang dengan versi kode sebelumnya sesuai keinginan.
Sistem Operasi (OS)
Menguasai sistem operasi seperti Linux jadi skill krusial untuk karier DevOps. Pasalnya, sebagian besar perusahaan akan menggunakan perangkat jaringan dan server yang berbasis Linux, sehingga pemahaman mengenai Linux sangat dianjurkan.
Konfigurasi Software
Selanjutnya skill yang perlu kamu kuasai adalah manajemen konfigurasi software yang memungkinkan developer untuk menetapkan dan mempertahankan konsistensi pada fungsional dan kinerja yang ada pada aplikasi. Sebagai seorang DevOps kamu harus memiliki skill tools manajemen konfigurasi seperti:
- Ansible
- Puppet
- Chef
Kontainerisasi dan Orkestrasi Kontainer
Kontainerisasi ialah proses virtualisasi sistem operasi yang memungkinkan kontainer menjalankan aplikasi yang berbeda untuk berbagai sistem operasi dan sumber daya sistem yang sama. Seorang DevOps harus memahami kontainerisasi dan tools orkestrasi seperti:
- Kubernetes
- Docker
CI/CD Pipeline
Continuous Integration dan Continuous Delivery/Deployment (CI/CD) CI/CD adalah bagian integral dari alur perilisan software yang dikenal sebagai jalur pengiriman. Continuous integration adalah proses penggabungan kode ke branch utama dari repositori pusat. Proses ini membantu:
- Mengurangi biaya
- Meningkatkan efisiensi
- Meningkatkan efektifitas
Sementara itu, continuous deployment adalah kelanjutan dari continuous integration yang mengotomatisasi deployment kode yang telah diverifikasi ke lingkungan produksi. Dengan bantuan continuous deployment, perilisan software akan menjadi lebih efisien dan lancar.
Cloud Computing
DevOps juga perlu memiliki pengetahuan cloud computing yang berperan agar operasi DevOps menjadi sukses. Seorang DevOps perlu memiliki kemampuan merancang dan mengelola ekosistem komputer di lokal atau juga di cloud untuk memastikan infrastruktur sistem bisa dimodelkan dengan efisien.
Tools DevOps Engineer
Untuk bisa jadi DevOps Engineer, kamu harus menguasai beberapa tools yang digunakan dI beberapa tahap DevOps Life Cycle, berikut diantaranya:
- Plan = Asana, Jira, Clikcup
- Code = GitHub
- Build = Docker
- Deploy = AWS CodeDeploy, Jenkins
Prospek Karier dan Gaji DevOps Engineer
Di Indonesia rata-rata gaji DevOps Engineer full time kisaran 8-30jt/bulan (Source: Glassdoor). Mengutip Glassdoor berikut bocoran gaji DevOps Engineer full time di beberapa perusahaan Indonesia:
- Tokopedia = 13-22 jt/bulan
- Tiket = 12-27 jt/bulan
- Bukalapak = 13-26 jt/bulan
- Blibli = 9-17 jt/bulan
- Amartha Mikro Fintek = 7-22 jt/bulan
Jurusan Terkait DevOps Engineer
Jurusan Terkait DevOps Engineer (Photo by Pang Yuhao on Unsplash)
Fakta menariknya, untuk bisa jadi seorang DevOps Engineer di beberapa perusahaan tidak ada ketentuan wajib terkait latar belakang pendidikan. Asalkan kamu memiliki skill-nya. Namun, jika kamu saat ini sedang mempertimbangkan untuk mengambil kuliah yang jurusannya terkait dengan DevOps, maka kamu bisa menimbah ilmu dari jurusan berikut:
- Teknik Komputer
- Teknik Informatika
- Sistem Informasi
- Teknik Komputer dan Jaringan
- Manajemen informatika
Jika tidak punya latar belakang pendidikan linear, kamu bisa ambil ospi mengikuti pendidikan non-formal seperti pelatihan dari lembaga seperti Digital Skola.
Tips Mulai Berkarier Jadi DevOps Engineer dari Nol
Jika kamu tertarik untuk mulai berkarier jadi DevOps Engineer, kamu bisa belajar di Mini Bootcamp DevOps Engineer di Digital Skola. Dalam 12 sesi, kamu bakal belajar hardskill dan softskill yang dibutuhkan untuk jadi DevOps Engineer profesional, dengan bimbingan 3 orang tutor expert. Di kelas ini kamu juga akan dibimbing dengan kurikulum komprehensif. Berikut outline materinya:
Basic Stage
- Introduction to DevOps Engineer
- Networking Fundamental
- Linux Basic Linux and Unix Administration
Strategic & Technical Stage
- Bash Scripting
- Docker Basic
- Docker Practical
- API with GoLang
- Ansible GIT (Group Inclusive Tour)
- CI/CD With Jenkins
- Kubernetes
Tak hanya kurikulumnya terstruktur sesuai kebutuhan industri, kamu juga akan dapat fasilitas lengkap penunjang karier, seperti:
- 9 Project for Portfolio
- Job Connector
- Comprehensive Formative Test
- Unlimited Career Consultation
- Professional Branding
- Live demo test case with various tool
- Expert Sharing Session
Penasaran? Cek info lengkapnya dengan klik button di bawah ini!