Pengertian DevOps
Salah satu best practices dalam DevOps yaitu melakukan update produk yang kecil dan
cepat. Dalam industri IT, ini bisa disebut dengan minor / patch update. Dengan
melakukan update produk yang kecil, organisasi/perusahaan dapat melakukan inovasi
lebih cepat bagi produknya, juga dapat melakukan rollback dengan mudah jika
ditemukan bug yang tidak ter-cover oleh automated testing maupun tim QA. Dengan
praktek ini, Organisasi/Perusahan dapat me-monitor produk dan mendapatkan data
yang paling berharga yaitu data pengguna.
b. Continuous Delivery
c. Continuous Deployment
d. Configuration Management
e. Infrastructure as a Code
Infrastructure as a Code adalah sebuah praktek dalam System Architecture yang mana
infrastruktur sebuah produk didefinisikan dalam code yang dapat diprogram,
distandardiasikan dan mudah untuk di duplikasi. Produk skala menengah, mungkin
membutuhkan lebih dari satu mesin. Dengan IAAC, tim pengembang dapat dengan
mudah menambah mesin melalui satu baris kode.
Produk dalam skala besar, umumnya bergantung pada beberapa produk yang
ditawarkan olehprovider cloud, seperti provider aws yang menawarkan produk
seperti AWS EC2 dan AWS Kinesis Data Stream. Dengan IAAC, tim pengembang
tidak lagi melakukan operasi manual pada console provider cloud, cukup dengan
merubah beberapa baris kode, hal yang lebih penting yaitu dapat meminimalisir
kesalahan.
f. Monitoring
g. Logging
Log aplikasi adalah salah satu cara untuk mengetahui apakah produk kita berjalan
dengan baik atau tidak. Namun seiring dengan tingkat kompleksitas sebuah produk, ada
banyak log komponen yang harus diterima dan dianalisis. Dan log tersebut haruslah
terpusat, tidak terpisah-pisah. Maka istilah Centralized Logging merupakan hal
yang tidak dapat dipisahkan dalam praktek DevOps.
Salah satu aspek utama dalam praktek DevOps yaitu meningkatnya komunikasi dan
kolaborasi dalam sebuah organisasi/perusahaan, baik dalam bentuk fisik maupun non
fisik. Praktek DevOps yang berjalan dengan baik, akan meningkatkan aspek
komunikasi dan kolaborasi tidak hanya pada tim pengembang, namun juga tim
marketing, sales, operations, dan tim lain yang ada didalam organisasi/perusahaan.
Slack adalah aplikasi yang banyak digunakan sebagai sebuah wadah untuk ber-
komunikasi dalam bentuk chat. Dengan banyaknya jumlah integrasi yang bisa
dilakukan oleh slack, tidak heran slack menjadi favorit. Aplikasi seperti Skype, Google
Hangouts dan Google Meets masih menjadi favorit untuk komunikasi dalam bentuk
video/voice call. Tools kolaborasi yang banyak menjadi favorit
diantaranya Trello, Jira, Pivotal Tracker dan Meistertask.
Tools yang digunakan untuk membantu profesi ini juga beragam mulai dari Git,
Jenkins, Ansible, Puppet, Kubernetes, Docker, AWS, dan lainnya.
Berikut adalah beberapa manfaat jika sebuah perusahaan besar, maupun startup
memiliki posisi ini di perusahaan.
Ketika tim Developer sudah diberikan keleluasaan dalam melakukan deploy kode,
dan rollback kodenya sendiri, developer mampu menulis kode secara lokal di laptop
serta mengunggah kode ke server test.
Hal ini membuat kedua tim akan memiliki satu tujuan bersama, yaitu mampu
meluncurkan fitur atau bug secepat mungkin ke pengguna. Tujuannya adalah untuk
memunculkan rasa saling memiliki dan meningkatkan produktivitas tim.
Dengan bantuan beberapa tools yang digunakan seperti server yang berada di Cloud
(AWS, GCP, Azure, dll), Jenkins, Ansible, hingga Python, profesi ini dapat membuat
sebuah sistem di mana Developer bisa tinggal mengetikkan 1 perintah untuk secara
otomatis mengunggah kode mereka ke server, dan begitu pula dengan rollback.
Semua dapat dilakukan tanpa mengganggu Developer lain, server lain, maupun tanpa
campur tangan manual tim Operation. Dengan begini semua sudah serba otomatis
sehingga risiko terjadi Human Error menjadi lebih sedikit.