Dalam pembuatan dan pengembangan aplikasi, tim pengembang melakukan suatu proses penting yang disebut dengan DevOps. Proses DevOps merupakan serangkaian praktik yang mengotomatisasi proses pengembangan aplikasi agar tim pengembang dapat melakukan proses build, test dan release perangkat lunak secara lebih cepat dan mantap. Hasilnya, tercipta produk yang stabil dan dengan nilai yang meningkat dari produk itu sendiri, bila DevOps berjalan dengan baik.

Mengapa DevOps Sangat Penting?

Keuntungan melakukan DevOps adalah dapat melakukan update produk yangย  kecil dan cepat. Dalam industri IT, praktik tersebut dikenal dengan minor/patch update. Praktik ini membantu organisasi atau perusahaan untuk berinovasi lebih cepat pada produknya. Tim IT juga dapat melakukan rollback pada aplikasi tersebut jika terdapat bug yang tak ditemukan oleh automated testing atau juga tim QA. Dengan begitu, perusahaan atau organisasi akan memeroleh hal paling berharga, yaitu data pengguna, karena senantiasa melakukan monitoring terhadap produk.

Cara Kerja DevOps

Untuk lebih memahami bagaimana DevOps beroperasi dalam aktivitasnya membangun dan meยญยญmaintainance aplikasi, ada beberapa proses penting yang perlu diketahui.

Continuous Integration

Ini tahapan di mana para pengembang melakukan perubahan kode dan merge pada sebuah repository secara teratur. Selain itu juga menjalankan automated build & test ketika menemukan push commit yang baru. Jika ditemukan kesalahan/bug dalam proses build and test, tim pengembang bisa dengan segera mengupdate kode agar kualitas produk dapat ditingkatkan. Tim pengembang juga dapat menghemat waktu untuk memvalidasi elemen-elemen yang sedang diupdate.

Continuous Delivery

Proses di mana para pengembang software melakukan build & test secara otomatis oleh Continuous Integration dalam melakukan perubahan pada kode. Hasilnya siap untuk dipergunakan ke environment production, namun tim pengembang umumnya memilih untuk tidak menggunakannya karena alasan bisnis. Jika continuous delivery berjalan dengan baik, tim pengembang akan senantiasa memiliki build artifact yang siap dipergunakan ke environment production.

ย Continuous Deployment

Setelah continuous integration dan continuous delivery selesai diproses, maka rangkaian tahapan selanjutnya adalah continuous deployment. Tahapan ini terhadi pada environment test/development yang dimiliki perusahaan atau organisasi. Fungsinya adalah untuk bisa segera melihat perubahan pada environment test atau development atau production, setelah hasil continuous integration dinyatakan baik.

Tahapan ini juga merupakan strategi yang baik untuk menumbuhkan jumlah feedback yang diterima pengguna aplikasi dan mereduksi tekanan karena di luar โ€œHari Rilisโ€. Selanjutnya tim pengembang bisa lebih fokus membangun produk serta dapat melihat perubahan kode beberapa menit setelah pekerjaan selesai.

Software yang digunakan dalam tiga rangkaian tahapan tersebut umumnya adalah Jenkis, Gitlab CI/CD BitBucket Pipeline, AWS Code Build, AWS Code Pipeline, Circle CI, Travis CI, dan Semaphore CI.

Configuration Management

Setelah tiga rangkaian di atas, ada configuration management yang bertujuan memaintain konfigurasi sebuah produk serta memastikan konsistensinya di seluruh environment. Penerapan praktik ini dapat membantu mengotomatisasi proses konfigurasi produk, menstandardisasikannya, dan mengurangi proses konfigurasi manual.ย  Configuration Management juga dapat memudahkan proses konfigurasi pada banyak server. Bahkan, praktik ini membantu meminimalisasi kesahalan karena konfigurasi ditulis dalam kode. Untuk praktik ini, umumnya para pengembang menggunakan aplikasi Chef, Ansible, Capistrano, Puppet, SaltStack dan Fabric.

Infrastruktur as a Code (IAAC)

Praktik kerja DevOps ini terjadi dalam System Architecture. Di sini infrastruktur sebuah produk terdefinisi dalam code yang dapat diprogram, distandardisasi, dan mudah diduplikasi. Pada produk aplikasi skala menengah, tim pengembang membutuhkan lebih dari satu mesin. Sehingga, tim pengembang harus melakukan penambahan mesin melalui satu baris kode yang dapat dimudahkan dengan praktik IAAC ini.

Sementara pada produk skala besar, biasanya ada kebergantungan pada produk yang ditawarkan provider cloud. Misal, provider AWS yang menawarkan produk AWS EC2 dan AWS Kinesis Data Stream. Dengan menerapkan IAAC, tim pengembang tidak lagi beroperasi secara manual pada console provider cloud, tapi hanya dengan mengubah beberapa baris kode. Pada praktik ini, umumnya tim pengembang menggunakan Terraform, Puppet, SaltStack, AWS CloudFormation, Chef dan Ansible Tower sebagai pendukung.

Monitoring

Praktik DevOps juga dituntut adanya monitoring untuk mendapatkan informasi tentang produk yang dipakai customer. Tim pengembang harus mengetahui dampak yang terjadi pada setiap perubahan kode, entah itu kepada produk atau kenyamanan penggunaan oleh konsumen. Umumnya, aplikasi monitoring yang dipakai oleh tim pengembang adalah Zabbix, Sensu, Nagios, OpenNMS, Icinga, Cacti, Grafana, AWS CloudWatch dan Prometheus.

Logging

Terakhir, tim pengembang harus melakukan log pada aplikasi untuk mengetahui bagaimana kualitas kerja produk. Tim harus menganalisis log komponen yang diterima. Tantangannya, semakin tinggi tingkat kompleksitas sebuah produk, semakin banyak log kompenennya. Pada praktiknya, log tersebut juga harus terpusat dan tidak boleh terpisah. Itulah sebabnya, Centralized Logging merupakan hal yang krusial dan tak bisa dipisahkan dalam praktik DevOps.ย  Aplikasi logging yang biasa dipakai tim pengembang adalah AWS Kinesis Data Firehose, Graylog, ElastisSearch+Logstas+Kibana, dan Splunk.

Communication and Collaboration

Sedemikian kompleksnya proses kerja DevOps, maka anggota tim pengembang bahkan keseluruhan anggota perusahaan harus dapat melakukan komunikasi efektif dan kolaborasi yang apik. Hal itu harus terus ditingkatkan, entah praktiknya secara fisik maupun non fisik.

Untuk menghemat waktu sementara komunikasi harus terus lancar dan jelas, umumnya anggota perusahaan atau organisasi menggunakan beberapa aplikasi tertentu. Yang paling favorit adalah Slack sebagai wadah komunikasi chatting dnegan jumlah integrasi yang banyak. Sementara untuk video atau voice call, anggota perusahaan memfavoritkan penggunaan Skype, Google Hangouts, dan Google Meets. Ada lagi Trello atau Jira untuk proses kolaborasi.

Sumber:codepolitan.com

Leave a Reply

Your email address will not be published.

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Menu