Macam mana nak deploy code ke server ?

6 tahun lalu ketika saya berkhidmat sebagai System Administrator, antara tugas saya adalah deploy code yang telah disediakan oleh programmer ke server. Pada masa tersebut, architecture infra yang digunakan adalah 3-tier architecture. Bermaksud ada web server, application server dan database server.

Masa tu saya mula belajar Git. Belajar macam mana memanfaatkan git untuk membantu mengawal code version & code collaboration. Kemudian belajar bagaimana cara untuk clone repo, commit code, push code, merge code, cherry pick code, branching, pull request dan sebagainya.

Setiap kali nak deploy code ke server, saya perlu remote SSH ke dalam server dan pull code changes. Proses ni berlaku berulang-ulang kali sebab setiap hari akan ada code baru dan ada banyak project untuk deploy code.

Jadi bagi memudahkan perlaksanaan tugasan yang berulang ni, saya setup CI/CD pipeline menggunakan self-hosted Gitlab server. Setiap kali programmer push code ke Git repo master branch, Gitlab runner akan bantu untuk pull code ke dalam semua server yang terlibat seperti server web dan app. Proses ini berlaku secara automatik dan saya hanya perlu monitor pipeline tersebut jika ada error yang perlu dibetulkan.

Untuk memastikan setiap code changes direkod dan proses tersebut diperkemaskan, saya integrate Git dengan Jira.

Setiap feature baru pada applikasi web ataupun bug fix, perlu ada ticket Jira. Daripada ticket tersebut, branch baru dalam git repo project berkenaan akan di cipta. Kemudian segala perubahan code oleh programmer perlu di commit pada branch tersebut.

Setelah siap, programmer perlu create pull request kepada senior programmer atau team leader supaya code tersebut di review. Jika semuanya baik, code reviewer tersebut akan approve dan code akan dimerge kepada master branch.

Kemudian automation yang disebutkan di atas tadi akan bermula dan code akan auto deploy ke dalam server. Jadi segala perubahan dapat direkod dan mudah untuk dikembalilan jika berlaku apa-apa masalah.

Zaman berubah dan pelbagai teknologi dan tool baru diperkenalkan. Antara yang menjadi kegunaan kebanyakan syarikat sekarang adalah teknologi Kubernetes yang melibatkan architecture microservices.

Gambar yang saya kongsikan adalah proses asas yang lengkap bagaimana kebanyakan syarikat deploy code ke infrastructure.

Ia melibatkan 5 stage beserta role dan tool yang berbeza. Bermula dari Plan, Developement, Build & Package, Test dan akhir sekali Release.

Role yang terlibat seperti Programmer, DevOps, QA dan SRE.

Tool yang terlibat pula seperti Git, Jira, Jenkins, Sonarqube, Checkov, Jfrog Artifact dan sebagainya. Tool ini mungkin berbeza mengikut polisi dan kegemaran syarikat. Ia juga boleh digantikan dengan Cloud Native solution dimana semua tool yang digunakan datang daripada pembekal cloud services sendiri dan ianya bergantung pada strategi syarikat masing-masing.

Namun begitu, tool yang wajib digunakan adalah Git kerana bermula dari Git, plebagai automation dapat dilaksanakan sehinggakan wujudnya methodology GitOps – Operasi menggunakan Git yang menjadikan code sebagai desired state untuk infrastructure dan application deployment.

Syarikat hangpa deploy code macam mana? Share sikit kat ruangan komen. 😃

Ts. Syafiyullah Yahya
Ts. Syafiyullah Yahya

Saya merupakan seorang MBOT Professional Technologist & HRD Corp TTT Certified Trainer. Bidang kepakaran saya adalah berkenaan Cloud Infrastructure, IT Consultation dan Training.

Articles: 9

Dapatkan info terkini terus ke email anda.

Masukkan email anda di bawah dan subscribe untuk dapatkan info terkini.

Komen