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

Rekomendasi tools untuk deployment pada Proses continuous delivery (CD) di Devops tahun 2020.

0
Degananda.com -

devops_thumb_v2

Pada proses devops, terdapat proses yang bernama CD (continous delivery). Proses pada CD berfokuskan pada deployment artifak kode yang telah melalui proses CI (continous integration).

Artifak kode yang telah masuk ke pipeline continous delivery (CD) telah mengalami proses build unit testing dan integration test. Ibarat makanan, ini telah selesai masak dan siap saji

CD pipeline berfokus bagaimana makanan tersebut (artefak kode) dapat disajikan ke piring (plating). Dalam konteks software engineering, CD akan bertanggung jawab bagaimana artefak kode akan di jalankan pada server (deployment).

jika project menggunakan cloud services seperti Azure, maka tidak perlu risau memikirkan tools untuk devops dan secara khusus CI/CD karena azure telah memiliki AIO(all in one) tools untuk devops yakni azure devops

Rekomendasi tools untuk deployment pada Proses continuous delivery (CD) di Devops tahun 2020.

CICD_pipeline_continuous_delivery.JPG
alur proses CI/CD dan detail sub proses di CD (continuous delivery) pipeline

 

seorang tech archictecture yang bertanggung jawab membangun devops pipeline mulai dari kode -> CI -> CD akan mendapatkan tantangan saat membangun pipeline CD (continous delivery). Ini dikarenakan pada proses ini diperlukan pengetahuan dasar tentang stak teknologi yang digunakan pada artefak kode.

terdapat tiga kategori tools yang dapat digunakan pada pipeline CD untuk persoalan deployment :

  1. artifact management – setiap proses build yang di trigger dari suatu perubahan atas branch tertentu akan menghasilkan suatu artefak. Artefak kode adalah package kode yang telah mengalami proses build, unit test & integration test. Baik pada kode yang sukses melewati test maupun tidak. Keduannya akan memiliki artefak kode.

    Idealnya pada pipeline CD, harus memiliki artefak management untuk mengelola artefak-artefak yang sudah ada untuk keperluan debugging ataupun monitoring.

  2. Config management – setiap artefak kode akan memiliki target deployment. Umumnya pada dunia software engineering akan terdapat dua target deployment. yakni staging dan production. Staging digunakan untuk para developer dan tester menguji / mencoba aplikasi. Production digunakan untuk para customer dan client yang menggunakan platform tersebut.
  3. deployment. – ini adalah core utama dari pipeline CD yakni melakukan deployment ke server sesuai dengan stack teknologi yang digunakan pada artefak kode tersebut.

berdasarkan ketiga jenis sub proses pada pipeline CD, berikut ini adalah tools yang dapat dipertimbangkan untuk digunakan.

Tools 1 untuk CD (continuous delivery) – Artifact management

nexus_repo_management_artifact.JPG
tools nexus artifact management

 

Salah satu tools yang patut dipertimbangkan dengan poin utama manajemen artefak kode adalah nexus. Tools ini (nexus) dapata mendukung beberapa stack teknologi mulai dari java hingga NPM (node package manager).

Jika tools CI/CD utama untuk code development yang digunakan adalah gitlab, maka nexus akan secara otomatis menjadi salah satu pilihan untuk artifact management

Seluruh artefak kode (package kode yang telah dibuild) dapat disimpan dan dikelola oleh nexus. Artefak ini dapat diakses secara remote & proxy. Sehingga dapat di integrasikan dengan work environment developer.

Keunggulan utama nexus artifact management adalah maturity. Nexus telah mengudara di internet dan mensupport proses artifact management sejak 2013.

untuk info lanjut mengenai nexus artifact management dapat mengunjungi tautan dibawah ini

https://www.sonatype.com/nexus/repository-pro

Tools 2 untuk CD (continuous delivery) – Config management

ansible_thumb.JPG
tools ansible untuk CD pipeline dengansistem lockstep

config pada CI/CD tidak hanya berfokus pada target environment dari services/microservices. Namun juga meliputi config atas variabel-variabel yang digunakan pada kode seperti connection string, constat dan lain sebagainya.

terraform adalah tools opensource sehingga memiliki dukungan dari komunitas yang cukup kuat

Tools CD yang cukup kuat dalam hal ini adalah ansible. Proses deployment yang dilakukan dengan ansible menggunakan konsep lockstep. Artinnya satu artefak dapat memiliki lebih dari satu proses deployment yang berjalan secara parallel. Sehingga apabila salah satu proses gagal, masih terdapat proses deployment lain yang berjalan (fault tolerance, high availability).

untuk info lanjut mengenai ansible dapat mengunjungi tautan dibawah ini

https://www.ansible.com/

Tools 3 untuk CD (continuous delivery) – Deployment

terraform_thumb.JPG
tools CD terraform yang agnostik. dapat mensupport berbagai cloud provider besar.

Tools CD yang sangat kuat dari sisi deployment adalah terraform. Platform ini menggunakan konsep infrastructure as a code. Mulai dari sisi networking hingga image dari sistem operasi yang digunakan.

terraform adalah tools opensource sehingga memiliki dukungan dari komunitas yang cukup kuat

Keunggulan utama dari terraform adalah sifatnya yang agnostik. Terraform dapat digunakan pada berbagai macam cloud provider seperti AWS dan azure. Ini dikarenakan terraform berkomunikasi langsung dengan API yang dimiliki oleh cloud provider.

untuk info lanjut mengenai terraform dapat mengunjungi tautan dibawah ini

https://www.terraform.io/

(Visited 10 times, 1 visits today)

Leave a Reply