![]() |
| Devops |
Sebagai seorang programmer mungkin kamu sering mendengar istilah “DevOps” ya. Bahasan artikel kali ini menjadi sangat menarik karena DevOps bukan sejenis software, aplikasi, teknologi, ataupun tools. Melainkan sebuah prinsip atau pola pikir yang digunakan di dunia IT.
Tim DevOps mencakup pengembang dan operasi TI yang bekerja secara kolaboratif di seluruh siklus hidup produk, untuk meningkatkan kecepatan dan kualitas penyebaran perangkat lunak. Ini adalah cara kerja baru, pergeseran budaya, yang memiliki implikasi signifikan bagi tim dan organisasi tempat mereka bekerja.
DevOps Enginner pengertian, Skil, Tugas, dan Gaji
Apa itu DevOps?
"Devops bukanlah pekerjaan satu orang pun. Ini tugas semua orang".Robert Krohn (KEPALA TEKNIK, DEVOPS DI ATLASSIAN)
DevOps adalah seperangkat praktik, alat, dan filosofi budaya yang mengotomatisasi dan mengintegrasikan proses antara pengembangan perangkat lunak dan tim TI. Ini menekankan pemberdayaan tim, komunikasi dan kolaborasi lintas tim, dan otomatisasi teknologi.
Gerakan DevOps dimulai sekitar tahun 2007 ketika pengembangan perangkat lunak dan komunitas operasi TI menimbulkan kekhawatiran tentang model pengembangan perangkat lunak tradisional, di mana pengembang yang menulis kode bekerja terpisah dari operasi yang menyebarkan dan mendukung kode. Istilah DevOps, kombinasi dari kata-kata pengembangan dan operasi, mencerminkan proses mengintegrasikan disiplin ilmu ini ke dalam satu, proses berkelanjutan.
Bagaimana cara kerja DevOps?
Di bawah model DevOps, tim pengembangan dan operasi tidak lagi "terisolasi." Kadang-kadang, kedua tim ini bergabung menjadi satu tim di mana para insinyur bekerja di seluruh siklus hidup aplikasi - dari pengembangan dan pengujian hingga penyebaran dan operasi - dan memiliki berbagai keterampilan multidisiplin.
Tim DevOps menggunakan alat untuk mengotomatiskan dan mempercepat proses, yang membantu meningkatkan keandalan. Toolchain DevOps membantu tim mengatasi dasar-dasar DevOps yang penting termasuk integrasi berkelanjutan, pengiriman berkelanjutan, otomatisasi, dan kolaborasi.
Nilai DevOps terkadang diterapkan pada tim selain pengembangan. Ketika tim keamanan mengadopsi pendekatan DevOps, keamanan adalah bagian aktif dan terintegrasi dari proses pengembangan. Ini disebut DevSecOps.
Siklus hidup DevOps
Siklus hidup DevOps terdiri dari enam fase yang mewakili proses, kemampuan, dan alat yang diperlukan untuk pengembangan (di sisi kiri loop) dan operasi (di sisi kanan loop). Sepanjang setiap fase, tim berkolaborasi dan berkomunikasi untuk mempertahankan keselarasan, kecepatan, dan kualitas.
DevOps merupakan singkatan dari dua kata yaitu Development dan Operation. Di mana kedua kata tersebut bermakna menggabungkan proses development/pengembangan dari sebuah sistem/aplikasi dengan operation/operasional. Seperti yang disebutkan sebelumnya, DevOps adalah sebuah prinsip developer untuk mengkoordinasikan antar tim yaitu tim development dengan tim operations dengan efektif dan efisien.
Pola pikir yang dibentuk oleh DevOps adalah koordinasi antar tim yang dapat dilakukan dengan cara singkat sehingga tidak membutuhkan banyak pertanyaan. Tim operation atau development cukup mengonfigurasi beberapa komponen yang dibutuhkan melalui prosedur yang dibuat.
Tentunya koordinasi yang diterapkan pada DevOps membutuhkan sebuah tools. Banyak tools yang bisa kamu gunakan, salah satunya adalah Source Code Management (SCM) yang biasa digunakan secara umum oleh tim development. Produk SCM yang paling terkenal adalah Git, ditemani oleh Source Code Repository (SCR) seperti GitHu, GitLab, Bitbucket, atau yang lainnya. Namun SCM saja tak cukup untuk mengomunikasikan antara tim development dengan tim operational.
Agar tim operational dapat mengetahui permasalahn yang terjadi, biasanya akan dihubungkan ke Product Management Software, seperti Jira. Melalui Product Management Software, tim operation dapat mengetahui berbagai permasalahan yang terjadi pada sistem/aplikasi. Sehingga antara pihak development dengan operational akan saling terhubung satu sama lain.
Kamu bisa jadi lelah jika harus mempelajari jutaan kode di berbagai bahasa pemrograman, algoritma atau sistem terstruktur setiap saat. Sekali-kali kamu belajar mengenai bagaimana manajemen perusahaan dalam merencanakan sebuah project sehingga tim yang dikendalikan dapat bekerja dengan baik.
Sejarah DevOps dimulai sejak tahun 2007, di mana Patrick Debois (seorang konsultan development) memiliki tujuan untuk mempelajari berbagai aspek tentang IT. Ia merasa terganggu dengan perbedaan antara cara tim development dan tim operations bekerja. Lalu Patrick dipertemukan dengan Andrew Shafer untuk memulai Agile System Administration.
Tugas DevOps Developer
DevOps bertujuan untuk meningkatkan kolaborasi antara tim development dan tim operation dari mulai perencanaan hingga aplikasi/fitur ter-deliver ke pengguna. Semua itu harus dilakukan secara otomatis agar:
- Meningkatkan deployment frequency.
- Meningkatkan waktu pemasaran.
- Menurunkan tingkat kegagalan pada rilisan terbaru.
- Mempersingkat waktu perbaikan.
- Meningkatkan waktu pemulihan.
Tools Yang digunakan
Melalui berbagai referensi, ternyata ada banyak alat bantu untuk menerapkan DevOps yang harus kamu tahu.
1 Source Code Management
Melalui sumber repository, antar developer dapat memeriksa dan mengubah kode tanpa perlu saling menulis satu sama lainnya. Source control ini mungkin telah ada sejak 40 tahun yang lalu, tetapi ini merupakan komponen utama dari Continuous Integration atau CI.
Adapun contoh produk yang berfungsi sebagai SCM yaitu Git, Subversion, Cloudforce, Bitbucket, dan TFS.
2 Build Server
Build server adalah alat otomatisasi yang mengkompilasi kode dalam SCR (Source Code Repository) ke dalam basis kode yang dapat dieksekusi. Alat ini bisa kamu temukan seperti Jenkins, SonarQube, dan Artifactory.
3 Configuration Management
Manajemen konfigurasi berguna untuk menetapkan konfigurasi pada server atau lingkungannya. Alat yang populer biasa kamu temukan seperti Puppet dan Chef.
4 Virtual Infrastructure
Amazon Web Services dan Microsoft Azure adalah contoh infrastruktur virtual. Virtual Infrastructure ini disediakan oleh vendor cloud yang menjual insrastruktur atau Platform as a Service (PaaS). Infrastruktur ini memiliki API yang memungkinkan kamu membuat mesin baru yang terprogram dengan alat manajemen konfigurasi.
Ada juga private cloud di mana private infrastructure virtual memungkinkan kamu menjalankan cloud di hardware sebagai data terpusat.
Alat ini dikombinasikan dengan alat otomatisasi untuk memberdayakan organisasi yang melatih DevOps dengan kemampuan konfigurasi server tanpa jari di atas keyboard. Jika ingin menguji kode baru, cukup mengirimkan kode ke infrastruktur cloud untuk membangun lingkungan. Kemudian tes dijalankan tanpa adanya campur tangan manusia.
5 Test Automation
Test automation sebenarnya sudah ada sejak lama. Pengujian yang diadopsi oleh DevOps berfokus pada pengujian otomatis melalui pipeline build untuk memastikan bahwa build deployable sudah dilakukan. Tools populer untuk tahapan ini adalah Selenium dan Air.
Skill Yang harus dimiliki
Sebelum terjun ke dunia DevOps, perlu kamu ketahui dulu beberapa skill yang dibutuhkan untuk mengerjakan tanggung jawab ini. Skill tersebut seperti Python, AWS, Agile, SDLC, DevOps, Kubernetes, Docker, Scripting, Jenkins, dan Linux. Permintaan skill tersebut berdasarkan informasi rekrutmen di perusahaan LogisFleet yang sedang membutuhkan pekerja sebagai DevOps Engineering.
Kegiatan DevOps
1 Continuous Integration
Continuous Integration merupakan layanan yang diberikan DevOps untuk melakukan build dan automation testing. Kegiatan ini dikerjakan dengan menggunakan tools berupa Source Code Repository (SCR) untuk menemukan error code dan fixed code.
2 Continuous Delivery
Continuous Delivery selalu bekerja di dalam software development untuk merubah kode. Proses ini dilakukan setelah Continuous Integration untuk menambah update lebih banyak untuk aplikasi yang sedang berjalan.
3 Continuous Deployment
Setelah proses Continuous Integration-Delivery sudah dinyatakan dengan baik, tim development dapat melihat perubahan yang terjadi pada environment test / environment development / environment production.
4 Configuration Management
Proses ini berkaitan dengan system engineering yang bertujuan untuk maintain konfigurasi sebuah produk. Configuration Management memungkinkan otomatisasi dan standardisasi konfigurasi produk.
5 Infrastructure as a Code (IAAC)
IAAC adalah pekerjaan yang mana infrastruktur suatu produk didefinisikan melalui kode yang dapat diprogram, distandarisasi, dan mudah dalam duplikasi. Melalui IAAC, tim development dapat menambah mesin melalui satu baris kode.
6 Monitoring
Produk IT menjadi sangat baik karena adanya proses monitoring saat produk tersebut digunakan oleh pengguna. Tujuannya adalah untuk mengetahui bagaimana perubahan yang ada pada kode cukup berdampak pada produk dan penggunanya.
7 Logging
Centralized logging menjadi hal yang tidak dapat dipisahkan dari kegiatan DevOps. Dengan menerapkan log aplikasi, kita developer bisa mengetahui produk yang dibuat berjalan dengan baik atau tidak.
Sumber artikel : Apa itu DevOps? Berikut Penjelasan Lengkapnya - Dicoding Blog
Gaji atau Upah Seorang DevOps
Gaji Tingkat Awal
Menurut Ziprecruiter.com, gaji DevOps pemula bisa mencapai sekitar $86,700 mark (per tahun). Hasilnya menjadi $7225 per bulan!
Tak perlu dikatakan, itu adalah gaji yang fantastis! Ini hampir dua kali lipat dari gaji rata-rata di AS! Ini hanya untuk menunjukkan betapa sulitnya profesi ini.
Gaji Junior
Seperti yang bisa kamu lihat, ini bukanlah lonjakan yang terlalu jauh dari gaji pemula. Terdapat berbagai macam alasan mengapa bisa begitu. Contohnya, mungkin saja pada saat estimasi, ada lebih banyak insinyur DevOps yang kurang berpengalaman yang menduduki grup junior, dibandingkan dengan yang "hampir senior".
Gaji Senior.
Mari kita coba lihat berapa estimasi dari Glassdoor.com. Menurut situs tersebut, gaji insinyur DevOps senior harusnya mencapai sekitar $135,000 per tahun atau $11,2500 per bulan! Itu adalah gaji impian!
Meskipun begitu, mari tekankan sekali lagi - para insinyur DevOps senior telah mengabdikan hidup mereka untuk pekerjaan yang sulit ini - wajar jika gaji mereka mewakili fakta ini!.
Siklus hidup DevOps
Karena sifat DevOps yang berkelanjutan, praktisi menggunakan loop infinity untuk menunjukkan bagaimana fase siklus hidup DevOps berhubungan satu sama lain. Meskipun tampak mengalir secara berurutan, loop melambangkan kebutuhan akan kolaborasi konstan dan peningkatan berulang di seluruh siklus hidup.
Siklus hidup DevOps terdiri dari enam fase yang mewakili proses, kemampuan, dan alat yang diperlukan untuk pengembangan (di sisi kiri loop) dan operasi (di sisi kanan loop). Sepanjang setiap fase, tim berkolaborasi dan berkomunikasi untuk mempertahankan keselarasan, kecepatan, dan kualitas.

Alat DevOps
Alat DevOps mengatasi fase kunci dari siklus hidup DevOps. Mereka memberdayakan praktik DevOps dengan membantu meningkatkan kolaborasi, mengurangi pengalihan konteks, memperkenalkan otomatisasi, dan memungkinkan pengamatan dan pemantauan.
Rantai alat DevOps biasanya mengikuti dua pendekatan: rantai alat all-in-one atau terbuka. Toolchain all-in-one menawarkan solusi lengkap yang biasanya tidak terintegrasi dengan alat pihak ketiga lainnya, sementara toolchain terbuka memungkinkan penyesuaian dengan alat yang berbeda. Ada pro dan kontra untuk kedua pendekatan tersebut.
Contoh toolchain DevOps terbuka adalah solusi Open DevOps Atlassian, yang mencakup Jira sebagai fondasi dan terintegrasi dengan vendor dan aplikasi pasar terkemuka.
Apa manfaat dari DevOps?
Dalam survei DevOps Trends Atlassian 2020, 99 persen responden mengatakan bahwa DevOps memiliki dampak positif pada organisasi mereka. Manfaat DevOps termasuk rilis yang lebih cepat dan lebih mudah, efisiensi tim, peningkatan keamanan, produk berkualitas lebih tinggi, dan akibatnya tim dan pelanggan yang lebih bahagia.

Kecepatan
Tim yang berlatih DevOps melepaskan kiriman lebih sering, dengan kualitas dan stabilitas yang lebih tinggi. Bahkan, laporan Dora 2019 State of DevOps menemukan bahwa tim elit dikerahkan 208 kali lebih sering dan 106 kali lebih cepat daripada tim berkinerja rendah. Pengiriman berkelanjutan memungkinkan tim untuk membangun, menguji, dan mengirimkan perangkat lunak dengan alat otomatis.

Kolaborasi yang ditingkatkan
Fondasi DevOps adalah budaya kolaborasi antara pengembang dan tim operasi, yang berbagi tanggung jawab dan menggabungkan pekerjaan. Hal ini membuat tim lebih efisien dan menghemat waktu yang terkait dengan handoff kerja dan membuat kode yang dirancang untuk lingkungan di mana ia berjalan.

Penyebaran cepat
Dengan meningkatkan frekuensi dan kecepatan rilis, tim DevOps meningkatkan produk dengan cepat. Keunggulan kompetitif dapat diperoleh dengan cepat merilis fitur baru dan memperbaiki bug.

Kualitas dan keandalan
Praktik seperti integrasi berkelanjutan dan pengiriman berkelanjutan memastikan perubahan fungsional dan aman, yang meningkatkan kualitas produk perangkat lunak. Pemantauan membantu tim tetap mendapat informasi tentang kinerja secara real-time.

Keamanan
Dengan mengintegrasikan keamanan ke dalam integrasi berkelanjutan, pengiriman berkelanjutan, dan pipeline penyebaran berkelanjutan, DevSecOps adalah bagian aktif dan terintegrasi dari proses pengembangan. Keamanan dibangun ke dalam produk dengan mengintegrasikan audit keamanan aktif dan pengujian keamanan ke dalam pengembangan tangkas dan alur kerja DevOps.
Apa tantangan mengadopsi DevOps?
Kebiasaan sulit untuk dipatahkan. Tim yang bercokol dalam cara kerja yang terisolasi dapat berjuang dengan, atau bahkan tahan terhadap, merombak struktur tim untuk merangkul praktik DevOps. Beberapa tim mungkin keliru percaya alat baru cukup untuk mengadopsi DevOps. Namun, DevOps adalah kombinasi dari orang, alat, dan budaya. Semua orang di tim DevOps harus memahami seluruh aliran nilai - mulai dari ide, pengembangan, hingga pengalaman pengguna akhir. Ini membutuhkan pemecahan silo untuk berkolaborasi sepanjang siklus hidup produk.
Cara termudah untuk memulai DevOps adalah dengan mengidentifikasi aliran nilai kecil (misalnya aplikasi atau layanan pendukung kecil) dan mulai bereksperimen dengan beberapa praktik DevOps. Seperti halnya pengembangan perangkat lunak, jauh lebih mudah untuk mengubah satu aliran dengan sekelompok kecil pemangku kepentingan daripada mencoba transisi organisasi sekaligus ke cara kerja baru.
