Home » Blog » Apa itu DevOps? Bagaimana Penerapannya di Dunia Kerja?

Apa itu DevOps? Bagaimana Penerapannya di Dunia Kerja?

Pengertian DevOps

Apa itu DevOps?

Dalam sebuah tim di suatu instansi atau perusahaan, biasanya tim terbagi dua yaitu tim development dan tim operations. Tim development adalah tim software yang mengembangkan aplikasi, seperti seorang software engineer, database engineer, dan quality assurance. Sedangkan tim operations adalah tim yang melaksanakan/menjaga agar sebuah aplikasi dapat diakses oleh masyarakat atau user.

Merujuk dari penjelasan tersebut, DevOps merupakan singkatan dari development dan operations. Secara umum, DevOps dapat didefinisikan sebagai gabungan dari pengembangan/development (Dev) dan operations (Ops) yang menyatukan orang, proses, dan teknologi untuk terus-menerus memberikan nilai kepada pelanggan.

Untuk lebih memahami apa yang dimaksud dengan DevOps, mari kita bahas terlebih dahulu apa itu siklus pengembangan informasi.

Siklus Pengembangan Informasi

Siklus Pengembangan Sistem Informasi

Idea

Siklus pengembangan informasi pada umumnya berawal dari idea, yaitu tahapan di mana kita ingin menciptakan suatu aplikasi atau sistem informasi yang seperti apa.

Implement

Setelah ide yang didapatkan tersebut dipikirkan secara matang, maka akan diimplementasikan. Bentuk implementasinya yakni perwujudan idea tersebut menjadi sistem informasi atau suatu aplikasi dengan cara coding.

Test

Tahapan selanjutnya adalah sistem informasi atau suatu aplikasi tersebut ditest. Test berguna untuk mengetahui apakah aplikasi tersebut sudah sesuai dengan yang diinginkan dan sudah sesuai dengan ideanya.

Build

Setelah ditest, aplikasi akan dibuild. Tahapan build yang digunakan tergantung dari platform atau base pemrograman yang digunakan oleh aplikasi tersebut.

Deploy

Apabila sudah terbuild, aplikasi tersebut akan dideploy. Tahapan deploy adalah tahapan untuk menserver aplikasi agar aplikasi tersebut dapat berjalan terus-menerus dan dapat digunakan oleh masyarakat atau user dari aplikasi tersebut.

Observe

Terakhir, aplikasi akan diobserve atau dimonitor untuk mengetahui apakah pada fase productionnya terdapat bug atau masalah. Selain itu, pada tahap ini kita juga bisa memantau tren dari aplikasi tersebut terkait fitur yang bisa dikembangkan dan kebutuhan user yang bisa ditambahkan ke dalam sistem aplikasi tersebut. Jika ditemukan bug atau masalah, kita akan kembali lagi ke tahap idea.

Siklus yang kita bahas ini disebut dengan Continuous Delivery (CD). Selama berjalannya siklus continuous delivery tentunya akan banyak tantangan dan rintangan pada setiap fase, seperti bug atau fase testing yang membutuhkan waktu lama. Agar siklus tersebut berjalan cepat dan minim bug, di situlah peran DevOps dibutuhkan.

Tantangan pada Fase Continuous Delivery (CD)

Miss Komunikasi dan Kurangnya Kolaborasi

Biasanya sering terjadi miss komunikasi dan kurangnya kolaborasi antara tim developers dan operations. Terkadang tim developers tidak tahu-menahu tentang server. Tim developers biasanya memahami tentang code dan aplikasi yang sudah running. Sedangkan tim operations mereka juga tidak mengetahui isi atau code di suatu sistem informasi atau sebuah aplikasi. Mereka hanya memahami bahwa mereka harus menjalankan aplikasi tersebut di servernya dan user dapat menggunakan aplikasi tersebut.

Apabila terdapat miss komunikasi, operations tidak bisa menjalankan sistem informasi sesuai dengan yang diharapkan. Oleh karena itu, dibutuhkan suatu irisan antara tim development dan operations yakni DevOps yang menjembatani antara kedua tim tersebut agar siklus pengembangan informasi berjalan lebih cepat dan minim bug.

Konflik Kepentingan

Konflik kepentingan bisa terjadi karena perbedaan tanggung jawab antara tim development dan tim operations. Tanggung jawab dari tim development adalah membuat suatu aplikasi dengan secepat mungkin. Sedangkan tim operations menginginkan aplikasi tersebut berjalan lancar. Apabila ada fitur baru, jangan sampai mengganggu aplikasi yang sedang dijalankan saat ini. Jadi, perbedaan kepentingan tersebut terkadang menjadi tantangan dalam fase continuous delivery (CD).

Testing

Testing biasanya dilakukan berulangkali. Ini menjadi salah satu hal yang menghambat dari fase development ke tahap release. Oleh karena itu, DevOps dibutuhkan untuk mempercepat fase testing tanpa mengurangi kualitasnya. Dengan bantuan tools, DevOps dapat mempercepat fase testing tanpa mengurangi hasil dari sistem informasi atau aplikasi yang dibuat.

Deploy Secara Manual

Terkadang tim operations juga bisa menghambat waktu release atau waktu deploy sebuah aplikasi karena proses deploy dilakukan secara manual. Hal ini bisa terjadi karena tim operations belum tahu tentang aplikasi tersebut dan bagaimana cara mendeploy sehingga membuat mereka harus berkoordinasi kembali dengan tim development.

Nah, itulah beberapa tantangan yang dapat menghambat siklus pengembangan informasi. Beberapa tantangan dan hambatan tersebut akan dapat dapat diminimalisir jika adanya tim DevOps yang bisa menjadi jalan tengah bagi tim developers dan tim operations.

Tujuan DevOps

Meminimalisir hambatan-hambatan yang ada sehingga siklus pengembangan informasi dapat berjalan lebih cepat dan minim bug. Caranya adalah dengan mengautomatiskan siklus tersebut dan juga membuat suatu proses secara streamline. Tidak perlu dilakukan secara manual karena akan memakan waktu yang lama. Tujuannya agar siklus tersebut akan berjalan dari awal sampai akhir secara lebih cepat dan otomatis.

Apabila siklus sudah ditambahkan dengan DevOps, maka akan menciptakan suatu istilah baru yang disebut continuous integration dan continuous delivery. Jika tanpa DevOps akan dinamakan continuous delivery yang berarti mendeliver secara terus-menerus dari idea hingga ke observe dan balik lagi seperti itu. Namun, apabila sudah ditambahkan DevOps maka akan disebut continuous integration. Maksudnya adalah semua siklus tersebut diintegrasikan streamline process secara otomatis. Oleh karena itu, siklus tersebut akan disebut dengan Continuous Integration (CI) dan Continuous Delivery (CD). Inilah jantung dari DevOps itu sendiri.

Apa Saja DevOps Tools?

Berikut adalah tools-tools yang digunakan untuk menciptakan suatu sistem DevOps itu sendiri pada setiap fase:

Fase Plan

Fase plan disebut juga fase idea yakni tahap di mana kita membuat rencana sistem informasi apa yang ingin dikembangkan. Untuk manajemennya bisa menggunakan tools Jira. Jira berfungsi untuk mentracking siapa saja developer yang mengerjakan setiap fitur dan bisa menandai seberapa sulit fitur tersebut oleh developer itu sendiri.

Fase Code

Pada fase ini biasanya menggunakan Git dan Github.

Fase Build

Tools pada fase build ini tergantung dari bahasa pemrograman yang digunakan. Jika menggunakan JavaScript bisa menggunakan Node Package Manager, sedangkan jika menggunakan Java bisa menggunakan Maven.

Fase Test

Sama seperti pada fase sebelumnya, di sini juga tergantung platform-nya. Untuk Java bisa menggunakan Junit. Selain itu, juga ada aplikasi Selenium yang cocok untuk aplikasi yang menggunakan GUI user interface.

Fase Deploy

Fase ini membutuhkan server. Kita bisa menggunakan on cloud dan on premise. Di instansi pemerintahan biasanya menggunakan server on premise. Pada tahap deploy ini, ada teknologi yang bernama docker yaitu salah satu teknologi kontenrisasi aplikasi.

Fase Operate

Pada tahap ini, kita bisa menggunakan Kubernetes dan Ansible.

Fase Monitoring

Kita bisa memonitor aplikasi yang sedang berjalan dengan menggunakan beberapa tools di antaranya Grafana, ELK, dan Slack.

Fase Integrations

Fase ini merupakan jantung dari pengembangan informasi agar semua siklus bisa tergabung. Salah satu aplikasi yang banyak digunakan adalah Jenkins.

Penerapan DevOps

Penerapan DevOps

Mari kita bahas bagaimana penerapan DevOps di lingkungan kerja melalui beberapa tips berikut:

Menemukan Best Practice

Pertama kali, kita bisa menemukan best practice atau metode paling nyaman yang biasanya kita gunakan dalam suatu sistem informasi atau aplikasi. Misalnya di sebuah instansi yang telah mempunyai flow sendiri, kita harus menemukan bagaimana mengembangkan siklus yang tepat.

Membuat Lingkungan Pengembangan

Ini adalah salah satu hal yang bisa meminimalisir kesalahan atau bug yang ada di fase production. Dalam mengembangkan sistem aplikasi biasanya terdapat beberapa lingkungan pengembangan di antaranya development, testing/QA, dan production. Development merupakan lingkungan pengembangan awal, testing/QA adalah lingkungan pengembangan untuk mencoba apakah sistem informasi yang dikembangkan sudah sesuai dengan yang diharapkan atau belum, sedangkan production merupakan tahap di mana user akan memnggunakan aplikasi tersebut secara langsung.

Menentukan Target

Setelah mengobservasi bagaimana aplikasi tersebut digunakan oleh user, selanjutnya kita perlu menentukan apa saja yang perlu dimonitoring dan target yang harus kita tentukan apalagi ada bug, error, dan sebagainya. Hal ini perlu dilakukan agar aplikasi yang kita kembangkan minim bug dan jika ada bug bisa segera diatasi saat bug itu terjadi.

Optimalisasi dengan Otomatisasi

Setelah kita menemukan best practice, membuat lingkungan pengembangan, menentukan target pemantauan, semuanya perlu kita optimalisasi dengan mengotomatisasi ke dalam flow CI/CD agar semua puzzle yang ada diintegrasikan sehingga siklus pengembangan informasi bisa berjalan dengan lebih cepat dan minim bug.

Ingin Punya Kemampuan DevOps?

Jika kamu tertarik untuk mempelajari DevOps lebih dalam lagi, Widya Analytic siap membantumu. Kami juga sangat mendukung digitalisasi di banyak sektor, sehingga terbuka dengan segala bentuk kerja sama di bidang teknologi, big data, dan artificial intelligence. Untuk informasi lebih lanjut, dapat langsung mengunjungi widyaanalytic.com maupun nomor kontak +62 851-7160-9661 atau email bisnis@widyaanalytic.com.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments