Laporkan Masalah

Implementasi Sistem Continuous Integration Dan Continuous Deployment (CI/CD) Pada Proyek Perangkat Lunak Mahasiswa

MUHAMMAD ABDURRAHMAN, Irkham Huda, M.Cs.

2020 | Tugas Akhir | D3 Komputer dan Sistem Informasi

Continuous Integration Continuous Deployment (CI/CD) adalah suatu praktek dimana sistem akan otomatis diintegrasikan dengan suatu layanan pihak ketiga dengan tujuan untuk code testing atau untuk menggabungkan beberapa layanan ke dalam aplikasi dalam pipeline CI/CD yang dijalankan secara otomatis jika ada triggered event yang memicunya seperti event push ke repository. Pipeline CI/CD bisa diklasifikasikan ke beberapa stage untuk memisahkan antara bagian testing, integrating, approval dan deployment. Pada hampir setiap proyek aplikasi mahasiswa KOMSI atau pun TPRL para pengembang hanya sibuk mengerjakan tugas masing-masing tanpa tahu sudah sejauh mana proyek itu selesai, dosen pembimbing pun hanya menerima laporan dari mahasiswa tanpa tahu apa saja yang dilakukan mahasiswa dan sudah sejauh mana proyeknya selesai. Berdasarkan permasalahan tersebut dibutuhkan sistem yang terpusat untuk mengatur proyek mahasiswa mulai dari source code repository, activity log sampai chat group kelompok proyek. Sistem CI/CD bertujuan untuk memusatkan proyek pengembangan seluruh kelompok mahasiswa agar dapat ditinjau sehingga baik mahasiswa maupun dosen pembimbing lebih aktif dalam masa pengembangan. Oleh karena itu, dibuatlah Sistem CI/CD dan Aplikasi Konfigurasi CI/CD berbasis web yang akan digunakan oleh mahasiswa tingkat akhir program studi KOMSI dan TPRL serta oleh masing-masing dosen pembimbing kelompok proyek nya. Sistem ini dibangun menggunakan Bahasa pemrograman HTML, PHP, Framework Laravel, Javascript, serta basis data MySQL untuk Aplikasi konfigurasinya dan aplikasi pendukung seperti CI Tools Jenkins, SonarQube, Mattermost, Gitlab Self-Hosted, Traefik, Cloudflare, Docker Swarm, Docker Registry, dan Virtual Private Server untuk Sistem CI/CD. Pembuatan sistem ini diharapkan dapat mempermudah progress pengembangan proyek aplikasi, meningkatkan produktifitas mahasiswa, serta mempermudah pemantauan dosen pembimbing proyek.

Continuous Integration Continuous Deployment (CI / CD) is a practice where the system will automatically be integrated with a third party service for the purpose of code testing or to combine several services into an application in a CI / CD pipeline that is run automatically if there are triggered events that trigger it like push events to the repository. CI / CD pipelines can be classified into stages to separate testing, integrating, approval and deployment sections. In almost every KOMSI student application project or TPRL the developers are only busy doing their respective tasks without knowing how far the project has been completed, the supervisor has only received reports from students without knowing what students are doing and how far the project has been completed. Based on these problems a centralized system is needed to manage student projects ranging from source code repositories, activity logs to project group chat groups. The CI / CD system aims to focus development projects on all groups of students so that they can be reviewed so that both students and supervisors are more active during the development period. Therefore, the authors make a CI / CD System and CI / CD Configuration Application web-based that will be used by students at the end of the KOMSI and TPRL study programs as well as by each of the project supervisors. This system is built using HTML, PHP, Laravel Framework, Javascript, and MySQL database for its configuration applications and supporting applications such as CI Tools Jenkins, SonarQube, Mattermost, Self-Hosted Gitlab, Traefik, Cloudflare, Docker Swarm, Docker Registry, and Virtual Private Server for CI / CD systems. The making of this system is expected to facilitate the progress of application project development, increase student productivity, and facilitate the monitoring of project supervisors.

Kata Kunci : CICD, Continuous Integration Continuous Deployment, Linux Ubuntu, Auto Deploy, Auto DevOps, Docker Cluster

  1. D3-2020-415525-abstract.pdf  
  2. D3-2020-415525-bibliography.pdf  
  3. D3-2020-415525-tableofcontent.pdf  
  4. D3-2020-415525-title.pdf