lifelong learner — urip iku urup, currently working on accenture.

Mengenal Apakah itu DevOps

0
Degananda.com -

devops_thumb

Devops adalah berbagai aktivitas yang terkait dengan proses software development (pengembangan software, eg : koding, debugging, etc) dan IT operation (operasi IT, eg : support pada aplikasi saat go live).

devops biasannya digunakan pada konsep SDLC agile. Ini dikarenakan agile menggunakan konsep sprinting. Pada setiap sprint (umumnya 2 minggu), produk harus dideploy dan di presentasikan ke client. Sehingga, devops menjadi sangat krusial untuk memastikan tersebut.

Tujuan utama dari devops adalah menyederhanakan dan mengoptimasi SDLC (software development lifecycle / proses pengembangan software) dengan mengutamakan CI/CD (countinous integration dan conitnous develivery) yang artinnya, deployment akan dapat dilakukan secara cepat dan produk dapat dinikmati oleh client secara maksimal.

devops tidak hanya terkait software & tools otomasi melainkan juga melibatkan SOP (Standard operation procedure) yang perlu diberlakukan untuk menjamin kesuksesan devops itu sendiri.

Mengenal Apakah itu DevOps

Secara spesifik dan ideal devops harus dapat mencakup proses – proses di bawah ini :

  1. Koding – Meliputi proses source code management (SCM) / git branching, kode, peer review pada kode dan proses merging..
  2. Building (continous integration) – otomasi build kode yang terintegrasi dengan SCM.
  3. Testing(continous testing) – setelah kode dibuild, maka kode tersebut harus pula dilakukan test (otomatis) baik secara unit test maupun integration test (biasannya dengan jmeter).
  4. Packaging – setiap kode yang berhasil dibuild pada devops akan menjadi artifact. Devops haruslah menyimpan artifact ini untuk proses staging selanjutnya ataupun untuk keperluan debugging.
  5. Releasing – change management (approval) pada saat merilis kode ke production.
  6. Configuring – setiap kode yang dideployment di suatu server/microservices/cloud component harus lah dapat terkonfigurasi. Contohnya satu kode harus dapat dikonfigurasi untuk environment DEV/Tunning/Production dan lain sebagainnya.
  7. Monitoring – setiap aplikasi yang ada pada server harus dapat termonitor dengan baik serta harus dapat dipastikan setiap error dapat di tangkap pada log file / log application.

7 hal tersebut adalah hal – hal utama yang harus ada pada sistem devops itu sendiri. Setiap proses merupakan suatu kesinambungan yang membentuk keseimbangan CI/CD. Jika ada satu proses yang tidak ada, maka proses CI/CD tidak akan dijalankan dengan baik.

otomasi yang baik tanpa dibarengi dengan SOP yang baik tidak akan menghasilkan proses CI/CD yang maksimal.

Tujuan serta Manfaat dari devops

berikut ini adalah tujuan yang dapat dicapai dengan menggunakan devops

  1. meningkatkan frekuensi deployment (menjadi lebih sering).
  2. karena frenkuensi deployment meningkat maka akan lebih banyak release ke production yang dilakukan sehingga, produk dapat lebih cepat dinikmati oleh client/customer.
  3. mengurangi kegagalan rilis. Pada devops terdapat proses otomasi testing , otomasi packaging, otomasi configuring dan release management. Hal -hal ini secara khusus dapat menjaga kualitas kode/rilis itu sendiri.
  4. mengurangi lead time dari proses bug fixing ke release production.
  5. sangat cepat untuk melakukan recovery. Devops terintegrasi dengan SCM, sehingga apabila sesuatu buruk terjadi pada rilis saat ini, dapat melakukan reployment pada versi branch sebelumnya (yang stabil).

devops hanyalah tools serta procedure, kode dari program itu sendiri masihlah jantung utama dari aplikasi. Sistem devops yang baik tanpa code practice yang baik akan tidak maksimal.

Contoh implementasi DevOps pada Microsoft azure

Azure memiliki layanan khusus untuk devops. Berikut ini adalah contoh implementasi 7 proses diatas yang dilakukan oleh azure.

Coding Automation

SCM_Management_azure_devops.JPG

azure devops memiliki repositorynya tersendiri yang telah mencakup fungsionalitas files, commits, push, branches, tags dan pull requests.

Building , Packing, Testing & Configuring

pipelining_example.JPG

pipeline dapat dibuat sesuai dengan kondisi atau tujuan dari devops itu sendiri. Tapi umumnya pada suatu deployment pipeline akan mencakup proses dibawah ini

  1. trigger deployment otomatis dari SCM (branch tertentu)
  2. installasi semua tools yang dibutuhkan di deployment (SCM/code depedency). Contohnya pada pipeline nodejs maka perlu install node sehingga dapat menggunakan NPM
  3. integrasi dengan unit test
  4. integrasi dengan integration test (biasannya jmeter)
  5. pembuatan artifact
  6. deployment ke slot tertentu (environment tertentu)
  7. rollback jika deployment pada step 6 gagal.

proses diatas adalah proses berurutan, jika salah satu proses gagal maka tidak dapat melanjutkan ke proses selanjutnya, Ini akan menghasilkan kualitas deployment yang baik.

pipeline_devops_azure.JPG

terdapat menu bernama “pipeline”, pada fungsi ini,. proses deployment dengan integrasi ke SCM serta integrasi ke proses otomasi untuk testing (jmeter) akan dilakukan.

artifact_azure_devops.JPG

azure juga menyediakan bagian khusus untuk melakukan manajemen pada artifact-artifact yang berhasil dibuat diproses deployment.\

testrun_azure_devops.JPG

automated test yang dijalankan pada pipeline akan secara otomatis termonitor dan tercatat. Sehingga progress testing dapat selalu di track dengan baik.

Monitoring

project_stats.JPG

seluruh board azure devops adalah tools monitoring itu sendiri. Mencakup dari proses kode, build, testing dan release.

 

 

(Visited 3 times, 1 visits today)
Please follow and like us:

Leave a Reply