Mengenal Lebih Jauh Tentang DevOps. DevOps merupakan serangkaian praktek atau kerangka kerja yang mengotomatiskan proses antara bagian pengembangan aplikasi (Dev) dan bagian pengguna operasi aplikasi (Ops) dengan pendekatan kolaboratif dan terpadu. Supaya tim pengembang dapat melakukan proses membangun, mengembangkan, menguji dan meluncurkan / mengirimkan aplikasi perangkat lunak lebih cepat dan lebih handal. Termasuk melakukan pemeliharaan aplikasi. Hal ini akan menghasilkan produk yang stabil dan meningkatkan nilai dari produk itu sendiri.
1. Mengenal Lebih Jauh Tentang DevOps
Mengenal Lebih Jauh Tentang DevOps. DevOps merupakan serangkaian praktek atau kerangka kerja
yang mengotomatiskan proses antara bagian pengembangan aplikasi (Dev) dan bagian pengguna
operasi aplikasi (Ops) dengan pendekatan kolaboratif dan terpadu. Supaya tim pengembang dapat
melakukan proses membangun, mengembangkan, menguji dan meluncurkan / mengirimkan aplikasi
perangkat lunak lebih cepat dan lebih handal. Termasuk melakukan pemeliharaan aplikasi. Hal ini akan
menghasilkanprodukyangstabil danmeningkatkannilai dari produkitu sendiri.
Kombinasidarifilosofibudaya,penerapan,danperalatanyang akanmeningkatkankemampuanorganisasi
untuk menghasilkan aplikasi perangkatlunak dan layanan dalam kecepatanyangtinggi. Organisasi dapat
melayanipelangganmerekadenganlebihbaik dan berkompetisidenganlebihefektif dipasaran.
DukunganupayaDevOpstermasukwide-APIdanplatformterintegrasi,makaTeknologisepertivirtualisasi
dan otomatisasi data center memungkinkan pengembangan dan pengiriman aplikasi untuk digunakan
secara bersamaan tanpa mengganggu operasional bisnis sehari-hari. DevOps merupakan cara
pengembangan aplikasi terbaru, dimana perbedaan lingkungan antara pihak pengembang dan pihak
pengguna (operasional IT) dapat diatasi. Mereka dapat berkomunikasi dan berkolaborasi lebih lancar
secara simultan danmendapatkanpengalamanyangsama.
DevOps menyediakan solusi ideal untuk lingkungan pengembangan aplikasi perangkat lunak
berkelanjutan, terutama yang sering merilis update software. Idealnya, DevOps harus ada dalam satu
lingkungan yang digabung dan mengatur konsep. Sebagai contoh, jika kita menulis aplikasi dalam
lingkunganvirtual, kita dapatmeyakinkanbahwa aplikasikita dapatdigunakandanakanmulusdigunakan
di lingkungan itu.
Terdapat beberapa Praktek DevOps yang membantu organisasi berinovasi dengan lebih cepat melalui
automasidanmempersingkatpengembangansoftware danprosesmanajemeninfrastruktur. Satupraktik
yang mendasar adalah melakukan pembaruan yang sangat sering tetapi sedikit dan lebih bersifat
2. tambahan dengan penerapan yang lebih kecil risikonya. Organisasi yang menggunakan model DevOps
menerapkan pembaruan mengatasi bug dengan jauh lebih sering dari organisasi yang menggunakan
praktik pengembangansoftware tradisional.
Organisasi juga dapat menggunakan arsitektur layanan mikro yang memisahkan sistem kompleks yang
besar menjadi proyek yang independen dan sederhana. Aplikasi dibagi menjadi banyak komponen
(layanan) individual dengantiap layanan hanya mempunyaisatu tujuanatau fungsi.Dioperasikan secara
independen dari layanan lainnya dan aplikasi secara keseluruhan. Namun hal ini mengakibatkan
tantanganoperasional.Oleh karenaitu, PraktekDevOps sepertiIntegrasi Berkelanjutandan Pengiriman
Berkelanjutan mengatasi masalah ini dan memungkinkan melakukan pengiriman aplikasi dengan cara
yang lebih aman dan andal. Praktek automasi infrastruktur, seperti Infrastruktur sebagai Kode dan
Manajemen Konfigurasi, membantu menjaga sumber daya komputasi tetap elastis dan responsif
terhadap perubahan yang sering. Selain itu, penggunaan Pemantauan dan Pembuatan Log membantu
tim melacak performa aplikasi dan infrastruktur sehingga tim dapat bereaksi dengan cepat terhadap
masalah.
Integrasi Berkelanjutan (Continuous Integration)
Integrasi Berkelanjutan adalah praktek pengembangan aplikasi di mana pengembang secara berkala
melakukan perubahan kode dan menggabungkannya ke repositori pusat (seperti Github, Gitlab, atau
Bitbucket). Layanan ini langsung menjalankan rekontruksi aplikasi secara otomatis dan pengujian,
sehingga jika ada error atau kegagalan akan segera ketahuan. Dan pengembang dapat dengan cepat
melakukan perbaikan kode. Tujuan utamanya adalah menemukan dan memperbaiki kesalahan dengan
lebih cepat, meningkatkan kualitas aplikasi, mengurangi waktu yang dibutuhkan untuk melakukan
validasi, dan meluncurkanpembaruan aplikasi.
3. ManfaatIntegrasiBerkelanjutan :
1. Meningkatkan produktivitas pengembang. Membebaskan pengembang dari tugas-tugas manual
dan mengurangijumlahkesalahan.
2. Menemukan dan menangani kesalahan kode dengan lebih cepat. Sehingga dapat dilakukan
pengujianyanglebih sering.
3. Mengirimpembaruanaplikasi lebih cepat danlebih sering.
PengirimanBerkelanjutan (Continuous Delivery)
Pengiriman Berkelanjutan adalah praktek pengembangan aplikasi dimana para pengembang yang
melakukan perubahan kode, sudah melakukan pengujian secara otomatis melewati proses Integrasi
Berkelanjutan, dan siap untuk diluncurkan ke bagian produksi, namun memilih untuk tidak
meneruskannya ke bagian produksi. Jadi pengembangakan selalu memiliki artefak / calon aplikasi yang
telah melewati proses pengujian terstandardisasi. Ini dilakukan untuk membantu mengurangi biaya,
waktu,dan risiko dalam perubahanaplikasi, sehinggamemungkinkan menambahupdate lebihbanyak.
ManfaatPengirimanBerkelanjutan :
1. Mengotomatiskan proses peluncuran aplikasi. Memungkinkan pengembang secara otomatis
membuat,menguji,danmenyiapkanperubahankode untuk dikirim ke bagian produksi sehingga
mempercepatpengirimanke penggunaaplikasi.
2. Meningkatkan produktivitas pengembang. Membebaskan pengembang dari tugas-tugas manual
dan mengurangijumlahkesalahankode aplikasi.
3. Menemukan dan menangani kesalahan kode dengan lebih cepat dengan pengujian yang lebih
seringdan komprehensif.
4. Mengirimpembaruan aplikasike penggunalebihcepatdanlebihsering. Sebabpengembangakan
selalu memiliki artefak/ calon aplikasi yangtelah melewatiprosespengujianstandar.
4. Penerapan Berkelanjutan (Continuous Deployment)
Penerapan Berkelanjutan merupakan salah satu rangkaian setelah proses Integrasi Berkelanjutan dan
Pengiriman Berkelanjutan selesai dijalankan. Umumnya organisasi atau perusahaan memiliki bagian
pengujian, dan disinilah fungsi utama Penerapan Berkelanjutan. Yaitu ketika hasil proses dari Integrasi
Berkelanjutan sudah dinyatakan baik, tim pengembang dapat segera melihat perubahan pada bagian
pengujianatauproduksi.Halini meningkatkanjumlahfeedbackyangditerima daripenggunaaplikasi.Tim
pengembang dapat fokus dalam membangun produk dan dapat melihat perubahan kode aplikasi
beberapamenitkemudian setelahmerekaselesaimengerjakannya.
Aplikasi populer yang mendukung dalam Integrasi Berkelanjutan / Pengiriman Berkelanjutan /
Penerapan Berkelanjutan diantaranya Jenkins, Gitlab CI/CDBitbucket Pipeline, Semaphore CI, Travis CI,
Circle CI, AWS Code Build dan AWSCode Pipeline.
ManajemenKonfigurasi (ConfigurationManagement)
5. ManajemenKonfigurasiadalahpraktekdalamproses otomatisasikonfigurasisistemyangmemilikitujuan
untuk memelihara konfigurasi sebuah aplikasi, dan memastikan konsistensinya dalam seluruh proses.
Dengan menggunakan Manajemen Konfigurasi maka proses konfigurasi aplikasi dapat diotomatisasi,
distandardisasi dan mengurangi proses konfigurasi manual. Mempermudah dalam konfigurasi banyak
serverdandapat meminimalkankesalahan,karenakonfigurasiditulisdalam kode,tidak lagi menjalankan
perintahmanual.
Pengembang dan administrator sistem aplikasi menggunakan kode untuk mengotomasi sistem operasi
dan melakukan hosting konfigurasi, tugas operasional, dan lainnya. Penggunaan kode memungkinkan
perubahan konfigurasi dapat diulang dan terstandardisasi. Ini membebaskan pengembang dan
administrator dari konfigurasi secara manual. Aplikasi populer yang mendukung dalam Manajemen
Konfigurasidiantaranya Ansible,Chef,Puppet,Capistrano,FabricdanSaltStack.
Keuntungan ManajemenKonfigurasi:
1. Menyingkat waktu untuk mendeteksi masalah. Menampilkan data operasional untuk kelompok
sumber daya aplikasi dengan cepat dalam satu dashbor yang mudah dibaca. Sehingga
administrator bisa mengidentifikasi dengan cepat masalah yang mungkin memengaruhi aplikasi
yang menggunakansumberdayatersebut.
2. Automasiyangmudahdigunakan.Adanyapedomanautomasiyangtelahditentukansebelumnya
atau dapat dibuatsendiri dengankontrolkeamananbawaan.
3. Visibilitas dan kontrol yang ditingkatkan. Menampilkan konfigurasi sistem dan aplikasi secara
detail, sehinggamudahmelihat perubahan sumberdayaseiringwaktu.
4. Mengelolakeamanandankepatuhandenganmemindaipatch,konfigurasi,dankebijakansendiri.
Infrastruktur Sebagai Kode (Infrastructure as aCode / IAAC)
InfrastrukturSebagai Kode adalah praktek di mana infrastrukturdibuat dan dikelola menggunakankode
danteknikpengembangan aplikasiyangdapatdiprogram,distandarisasikandanmudahuntukdiduplikasi.
Aplikasi yang cukup besar dan rumit mungkin membutuhkan lebih dari satu mesin. Disini, tim
pengembang dapat dengan mudah menambah mesin virtual melalui satu baris kode. Model yang
digerakkan API dari cloud memungkinkan pengembang dan administrator berinteraksi dengan
6. infrastruktursecara terprogram.Akibat ditentukanolehkode,infrastrukturdan serverdapat diterapkan
dengan cepat menggunakan pola terstandardisasi, dapat diduplikasi, dan meminimalisir kesalahan.
Aplikasipopuleryangmendukung InfrastrukturSebagaiKode diantaranyaTerraform,Ansible Tower, Chef,
Puppet,SaltStackdan AWSCloudFormation.
Keuntungan InfrastrukturSebagaiKode :
1. Mudah menyusun sumber daya infrastruktur dan aplikasi dengan sebuah file teks atau bahasa
pemrograman. Sehingga kesesuaian konfigurasi dan pemecahan masalah dapat lebih cepat
dicapai.
2. Otomatisasi dalam membangunulanginfrastrukturdanaplikasi tanpa harus melakukantindakan
manual.
3. Itu hanyakode aplikasi dan dapat diatur denganeditorkode apapun.
Pemantauan (Monitoring)
Sebuah aplikasi haruslah dipantau untuk mengetahui bagaimana aplikasi digunakan oleh pengguna.
Dalam praktek DevOps, tim pengembang harus mengetahui bagaimana perubahan kodenya berdampak
pada aplikasi dan penggunanya melalui alat pemantauan. Alat Pemantauan yang populer diantaranya
Nagios,Zabbix,Sensu,Cacti, OpenNMS,Icinga,Prometheus,GrafanadanAWSCloudWatch.
Pembuatan Log (Logging)
7. PembuatanLog adalah salahsatu cara untukmengetahuiapakah aplikasiberjalandenganbaikatautidak.
Namun seiring meningkatnya kompleksitas sebuah aplikasi, ada banyak log komponen yang harus
dianalisa. Dan log tersebutharuslahterpusat dantidakterpisah-pisah. Denganmengumpulkan,membuat
kategori, dan kemudian menganalisa data log yang dibuat oleh aplikasi dan infrastruktur; organisasi
memahamibagaimana perubahan memengaruhipenggunaaplikasi,memberikanwawasantentangakar
masalah atau perubahan yang tidak terduga. Pemantauan aktif menjadi semakin penting ketika layanan
aplikasi harus tersedia 24 jam dan frekuensi pembaruan aplikasi dan infrastruktur meningkat. Membuat
peringatan atau melakukan analisa teranyar membantu organisasi memantau dengan lebih proaktif.
AplikasiPembuatanLogyangpopulerdiantaranyaElasticSearch+ Logstash+ Kibana,Splunk,Graylog,AWS
Cloudwatchdan AWSKinesis Data Firehose.
Keuntungan PembuatanLog:
1. Dapat diamati pada satu platform di seluruh aplikasi dan infrastruktur.Metrik, log, dan kejadian
dapatmembantumenganalisadatamendapatkansistemvisibilitasluas dancepatmenyelesaikan
masalah.
2. Cara termudahuntukmengumpulkanmetrikdanmemantausumberdaya.
3. Meningkatkan kinerja operasional dan pengoptimalan sumber daya. Memungkinkan untuk
mengatur alarm dan mengotomatiskan tindakan berdasarkan ambang batas yang telah
ditentukan.
4. Mendapatkan visibilitas dan wawasan operasional. Adanya tampilan operasional, data teranyar,
dan referensihistoris.
5. Memperoleh wawasan yang dapat ditindaklanjuti dari log. Menerbitkan metrik berbasis log,
membuatalarm sehinggaAndadapat memecahkanmasalahoperasionaldenganmudah.
Komunikasi dan Kolaborasi (Communication& Collaboration)
Praktek DevOps yang berjalan dengan baik, akan meningkatkan aspek komunikasi dan kolaborasi, baik
fisik maupun non fisik, dalam alur kerja dan tanggung jawab pengembangan dan pengoperasian. Tidak
hanya pada tim pengembang, namun juga tim marketing, penjualan, operations, dan tim lain yang ada
8. didalam organisasi / perusahaan. Penggunaan aplikasi obrolan, sistem pelacakan masalah, dan wiki.
Aplikasi Slack untuk berkomunikasi dalam bentuk chat. Aplikasi seperti Skype, Google Hangouts dan
Google Meets masih menjadi favorit untuk komunikasi dalam bentuk video atau suara. Aplikasi favorit
lainnya adalahTrello, Jira, Pivotal Tracker dan Meistertask.
DevOps MerupakanPengembangandari Agile
DevOps memiliki hubungan yang kuat dengan Agile dan pendekatan pembelajaran. Pengembangan
aplikasi yang berorientasi untuk lebih melayani pelanggan, manajemen aplikasi, pengembang, dan QA
untukmengisikesenjangan. Produksifitur-fiturbaruyanglebihbaikdapatcepatdilakukan.Tapipelayanan
dan bagaimana aplikasi dan sistemberinteraksimerupakanbagianmendasar.Dari perspektif ini,DevOps
hanyamemperluasprinsip Agile untukmemproduksiseluruhlayanan.
ManfaatDevOps :
1. Kecepatan. Bergerak dalam kecepatan tinggi sehingga inovasi untuk pelanggan dengan lebih
cepat,beradaptasilebih baik di pasar yang berubah,danmenjadilebihefisiendalam mendorong
hasil bisnis.
2. Pengirimanyangcepat. Semakincepatmeluncurkanfiturbaru danmemperbaikikesalahankode,
semakincepatmeresponskebutuhanpelanggandanmendapatkankeuntunganyangkompetitif.
3. Keandalan. Memastikan kualitas pembaruan aplikasi dan perubahan infrastruktur dengan
kecepatan yang lebih tinggi, sambil mempertahankan pengalaman yang positif bagi pengguna
akhir.
4. Skala. Automasidankonsistensimengelolasistemyangkompleksatauberubahsecaraefisiendan
risiko rendah.
5. Kolaborasi yang ditingkatkan. Tim pengembang dan pengoperasian berkolaborasi dengan erat,
mengembantanggungjawabbersama,danmenggabungkanalurkerjamereka.
6. Keamanan. Kebijakan kepatuhan yang terautomasi, kontrol yang menyeluruh, dan teknik
manajemenkonfigurasi.
Profesi DevOps Engineer
PraktekDevOps dapatmengurangijumlahkesalahan,recoverylebihcepat,dan mengembangkanaplikasi
lebih baik.DevOpsEngineerakanmenjaditim yang posisinyasangat penting,karena akanbekerjasangat
dekatdenganTim Engineeruntuk memastikan aplikasi berjalan denganbaik. Hasil surveyStackOverflow
pada tahun2017, menunjukanposisiDevOpsSpecialistmenempatirankingpertamadalamrata-rata gaji,
yaitu $60,215. Sedangkan posisiDevOpsdi negara Amerikamemiliki rata-rata gaji $100,000.