Kelompok: Journey Voyagers

Anggota:

1. Selvi Debi Anita 21.11.4124

2. Khofifah 21.11.4120

3. Adetiya Putri Kusumawati 21.11.4166

4. Deri Rihi Hina 21.11.4174

5. Asyrafi Madani 21.11.4254

6. Brian Bintang Chahya 21.11.4195


TUGAS 10


1. Jelaskan Continuous integration (CI) & Continuous Delivery/Continuous Deployment

(CD)!

Jawab: CI/CD adalah suatu proses yang menggabungkan dua konsep utama, CI dan CD,

untuk memastikan kualitas software dan pengiriman kode berjalan dengan baik.

Continuous Integration (CI) adalah pengintegrasian kode ke dalam repositori kode

kemudian menjalankan pengujian secara otomatis, cepat, dan sering. Sedangkan

Continuous Delivery atau Continuous Deployment (CD) adalah praktik yang dilakukan

setelah proses CI selesai dan seluruh kode berhasil terintegrasi, sehingga aplikasi bisa

dibangun lalu dirilis secara otomatis.


2. Jelaskan mekanisme CI/CD!

Jawab:

• Source

Pada tahap ini, developer akan melakukan perubahan kode di dalam repositori

bersama. Selanjutnya, mereka akan mengunggah perubahan tersebut ke sistem

control version, seperti GIT CI/CD. Setiap kali terdapat perubahan kode yang

diunggah, sisten CI/CD akan melakukan tindakan lanjutan, seperti integrasi secara

otomatis.


• Build

Setelah perubahan kode diunggah, sistem CI/CD akan memulai tahap build. Tahap

build pada CI/CD adalah proses menggabungkan kode dan dependensinya untuk

membangun produk yang dijalankan. Dalam tahapan ini, dibutuhkan bahas

apemrograman, seperti Java, C/C++, atau Go untuk melakukan kompilasi kode.

• Test

Tahap test pada CI/CD adalah tindakan pengujian yang dilakukan secara otomatis.

Tes ini dilakukan dengan mencakup pengujian unit, integrasi, fungsionalitas,

performa, dan lain-lain. Melalui tahap ini, brainware bisa mendeteksi bug atau

potensi masalah lain yang mungkin terjadi akibat perubahan kode.

• Deploy

Dalam tahap ini, software akan dimasukkan ke dalam sistem yang ditentukan, baik

itu sistem pengujian atau produksi. Dalam implementasinya, proses deploy dimulai

dari pengunggahan software ke server dan integrasi dengan infrastruktur yang

tersedia dilakukan secara otomatis oleh sistem CI/CD.

a. Pemantauan dan Rollback: Setelah penyebaran, CD akan terus memantau

kinerja aplikasi di lingkungan produksi. Jika terjadi masalah atau kegagalan,

CD dapat secara otomatis melakukan rollback ke versi sebelumnya untuk

memperbaiki masalah tersebut.

b. Pelaporan dan Monitoring: CD juga akan melaporkan hasil penyebaran kepada

tim pengembangan dan tim operasi. Ini termasuk pelaporan tentang status

penyebaran dan hasil pengujian.


3. Sebutkan jenis-jenis platform CI/CD!

Jawab:

• Jenkins: Platform CI/CD yang bersifat open source dan menggunakan bahasa

pemrograman Java.

• AWS Codebuild: Tools ini memungkinkan pengembang untuk mem-build dan

menguji kode secara berkelanjutan.

• Azure DevOps: Dapat diandalkan untuk mengatur, testing, hingga melakukan

deploy untuk aplikasi.


• Gitlab CI/CD: Tools ini dapat dimanfaatkan untuk pengembangan perangkat lunak

mulai dari awal hingga akhir. Menggunakan 3 metode, yaitu Continuous

Integration, Continuous Delivery, dan Continuous Deployment.

• GitHub Actions: Layanan CI/CD yang terintegrasi langsung dengan repositori

GitHub.


4. Jelaskan rancangan implementasi CI/CD pada proyek pemrograman tim anda!

Jawab:

• Plan

a. Pahami kebutuhan pengguna, seperti jenis tempat wisata yang diminati (wisata

alam, sejarah, kuliner, dll).

b. Preferensi makanan dan minuman pengguna.

c. Minat dalam paket wisata di Yogyakarta (wisata budaya, petualangan, dll).

• Build

a. Membuat repositori Git untuk menyimpan sumber proyek.

b. Proses build akan menghasilkan file-file statis seperti, HTML, CSS, dan

JavaScript yang akan digunakan untuk menyajikan atau menampilkan halaman

web. Pastikan setiap komponen website terintegrasi dengan baik agar pengguna

dapat menggunakannya dengan mudah dan efisien.

• Test

a. Melakukan uji performa untuk memastikan kestabilan dan reponsivitas website

saat diakses.

b. Otomatisasi tes unit dan integrasi untuk memastikan bahwa perubahan baru

tidak memengaruhi fungsionalitas yang sudah ada.

• Release

a. Setelah lolos pengujian web, kode akan di release ke lingkungan produksi.

b. Pastikan kode yang di release selalu dapat diidentifikasi dan dapat dirollback

jika diperlukan.

• Deploy

Implementasikan otomatisasi dalam proses deployment untuk mempercepat rilis ke

lingkungan produksi.


• Operate

a. Memonitor kinerja website destinasi ini secara terus menerus.

b. Atur sistem peringatan (alerting) untuk memberi tahu jika terjadi masalah.

c. Pastikan pemantauan keamanan secara berkala dan tindakan pencegahan yang

sesuai.

• Measure

a. Mengukur kinerja situs web, seperti waktu muat halaman dan tingkat respon.

b. Gunakan alat analisis untuk memahami perilaku pengguna dan mendapatkan