Anda di halaman 1dari 24

LAPORAN AKHIR PRAKTIKUM

SISTEM OPERASI JARINGAN KOMPUTER


DEVELOPMENT AND OPERATION

MUHAMMAD DANANG MUKTI DARMAWAN


J0304201008 | TEK2BP2

PROGRAM STUDI TEKNIK KOMPUTER


SEKOLAH VOKASI IPB UNIVERSITY
2021
PERNYATAAN MENGENAI LAPORAN AKHIR PRAKTIKUM
DAN SUMBER INFORMASI

Dengan ini saya menyatakan laporan akhir praktikum ini adalah karya saya dan dapat
dipublikasikan sepenuhnya oleh IPB University. Sumber informasi yang berasal atau
dikutip dari karya yang diterbitkan dari penulis lain telah disebutkan dalam teks dan
dicantumkan dalam Daftar Pustaka di bagian akhir laporan ini sesuai dengan kaidah dan
etika yang berlaku. Saya bertanggung jawab penuh atas penemuan segala bentuk
kecurangan serta ketidaksesuaian aturan dalam penulisan ini. Saya bersedia mendapat
sanksi akademis yang berlaku sesuai kesepakatan tim pengajar, termasuk peniadaan nilai
praktikum Sistem Operasi Jaringan Komputer.

Karawang, 16 Desember 2021


(Muhammad Danang Mukti Darmawan)
1 PENDAHULUAN
1.1. Latar Belakang

Teknologi Informasi dan Komunikasi saat ini sangat berkembang dengan baik dan
pesat serta memasuki berbagai bidang dalam kehidupan manusia. Baik dalam
bidang teknologi, perusahaan, kesehatan, pendidikan, perbankan, dan media
hiburan lainya. Dari semua bidang informasi yang ada diatas, salah satunya
dibidang teknologi. Tak jarang di era teknologi seperti sekarang, sudah jadi hal
umum jika satu orang atau server administrator memegang lebih dari satu server.
Tentu akan kesulitan jika administrator tidak mempunyai pengetahuan mengenai
otomasi server. DevOps merupakan suatu sistem pendekatan antara Dev
(pengembang) dan Ops (sistem) agar lebih mudah, cepat, dan terkontrol dalam
memproduksi atau mengembangkan sistem dalam skala besar. Banyak tool DevOps
yang tidak mumpuni saat digunakan untuk menangani server dalam jumlah besar.
Berdasarkan uraian di atas, maka di butuhkan suatu sistem yang bisa
mengatasi kendala-kendala tersebut yaitu menggunakan Ansible. Ansible akan
menolong terutama bagi pada server administrator konvensional maupun yang
sudah bergerak ke arah DevOps. Saat menangani server dalam jumlah yang cukup
besar, Ansible memberikan jalan untuk membuat penanganan server (meski dalam
jumlah besar) menjadi lebih efisien. Dengan tool Ansible ini, kita akan membuat
penangan server menjadi lebih otomatis dan simpel. Tidak diperlukan usaha secara
manual. Jadi, secara singkat, Ansible adalah salah satu jenis Configuration 2
Management Tools yang dapat digunakan untuk mengubah proses infrastruktur dari
suatu program dari manual menjadi otomatis.

1.2. Tujuan Praktikum


Tujuan dari kegiatan ini adalah dapat memanajemen konfigurasi server,
provisioning, deploy aplikasi, dan otomasisasi tugas atau task yang dijalankan
server menggunakan commit dan staging pada Git di Sistem Operasi Ubuntu 18.02
Untuk memenuhi tugas mata kuliah sistem operasi jaringan komputer tentang
layanan DevOps. Untuk menambah pengetahuan tentang penggunaan DevOps .
Agar pembaca tahu mengenai teknologi dan cara kerja DevOps.
2 TINJAUAN PUSTAKA: DevOps

2.1. Ringkasan

Teori Penunjang

DevOps merupakan singkatan dari dua kata


yaitu Development dan Operation. Di mana kedua kata tersebut bermakna
“operasional pengembang”. Seperti yang disebutkan sebelumnya, DevOps adalah
sebuah prinsip developer untuk mengkoordinasikan antar tim yaitu
tim development dengan tim operations dengan efektif dan efisien.
DevOps merupakan singkatan dari dua kata
yaitu Development dan Operation. Di mana kedua kata tersebut bermakna
menggabungkan proses development/pengembangan dari sebuah sistem/aplikasi
dengan operation/operasional. Seperti yang disebutkan sebelumnya, DevOps
adalah sebuah prinsip developer untuk mengkoordinasikan antar tim yaitu
tim development dengan tim operations dengan efektif dan efisien.
Pola pikir yang dibentuk oleh DevOps adalah koordinasi antar tim yang dapat
dilakukan dengan cara singkat sehingga tidak membutuhkan banyak pertanyaan.
Tim operation atau development cukup mengonfigurasi beberapa komponen yang
dibutuhkan melalui prosedur yang dibuat.
Tentunya koordinasi yang diterapkan pada DevOps membutuhkan sebuah
tools. Banyak tools yang bisa kamu gunakan, salah satunya adalah Source Code
Management (SCM) yang biasa digunakan secara umum oleh tim development.
Produk SCM yang paling terkenal adalah Git, ditemani oleh Source Code
Repository (SCR) seperti GitHub, GitLab, Bitbucket, atau yang lainnya. Namun
SCM saja tak cukup untuk mengomunikasikan antara tim development dengan tim
operational.
Agar tim operational dapat mengetahui permasalahn yang terjadi, biasanya
akan dihubungkan ke Product Management Software, seperti Jira. Melalui Product
Management Software, tim operation dapat mengetahui berbagai permasalahan
yang terjadi pada sistem/aplikasi. Sehingga antara pihak development dengan
operational akan saling terhubung satu sama lain.
Gambar 1 : Skema Tujuan DevOps

DevOps bertujuan untuk meningkatkan kolaborasi antara tim development


dan tim operation dari mulai perencanaan hingga aplikasi/fitur ter-deliver ke
pengguna. Semua itu harus dilakukan secara otomatis agar:

1. Meningkatkan deployment frequency.

2. Meningkatkan waktu pemasaran.

3. Menurunkan tingkat kegagalan pada rilisan terbaru.

4. Mempersingkat waktu perbaikan.

5. Meningkatkan waktu pemulihan.

Menurut laporan State of DevOps pada tahun 2015, organisasi IT yang


menerapkan DevOps menghasilkan kinerja 30x lebih tinggi dengan 200x efisiensi
waktu, kegagalan 60x lebih sedikit, dan proses pemulihan 168x lebih cepat.

Tools yang Digunakan DevOps


Gambar 2 : Tools DevOps

Melalui berbagai referensi, ternyata ada banyak alat bantu untuk menerapkan
DevOps yang harus kamu tahu.

1. Source Code Management

Melalui sumber repository, antar developer dapat memeriksa dan mengubah


kode tanpa perlu saling menulis satu sama lainnya. Source control ini mungkin telah
ada sejak 40 tahun yang lalu, tetapi ini merupakan komponen utama dari
Continuous Integration atau CI. Adapun contoh produk yang berfungsi sebagai
SCM yaitu Git, Subversion, Cloudforce, Bitbucket, dan TFS.

2. Build Server

Build server adalah alat otomatisasi yang mengkompilasi kode dalam SCR
(Source Code Repository) ke dalam basis kode yang dapat dieksekusi. Alat ini bisa
kamu temukan seperti Jenkins, SonarQube, dan Artifactory.

3. Configuration Management

Manajemen konfigurasi berguna untuk menetapkan konfigurasi pada server


atau lingkungannya. Alat yang populer biasa kamu temukan seperti Puppet dan
Chef.

4. Virtual Infrastructure

Amazon Web Services dan Microsoft Azure adalah contoh infrastruktur


virtual. Virtual Infrastructure ini disediakan oleh vendor cloud yang menjual
insrastruktur atau Platform as a Service (PaaS). Infrastruktur ini memiliki API yang
memungkinkan kamu membuat mesin baru yang terprogram dengan alat
manajemen konfigurasi. Ada juga private cloud di mana private infrastructure
virtual memungkinkan kamu menjalankan cloud di hardware sebagai data
terpusat.
Alat ini dikombinasikan dengan alat otomatisasi untuk memberdayakan
organisasi yang melatih DevOps dengan kemampuan konfigurasi server tanpa jari
di atas keyboard. Jika ingin menguji kode baru, cukup mengirimkan kode ke
infrastruktur cloud untuk membangun lingkungan. Kemudian tes dijalankan tanpa
adanya campur tangan manusia.

5. Test Automation

Test automation sebenarnya sudah ada sejak lama. Pengujian yang diadopsi
oleh DevOps berfokus pada pengujian otomatis melalui pipeline build untuk
memastikan bahwa build deployable sudah dilakukan. Tools populer untuk tahapan
ini adalah Selenium dan Air.

Kegiatan DevOps

Gambar 3 : Alur Kegiatan DevOps

1. Continuous Integration

Continuous Integration merupakan layanan yang diberikan DevOps untuk


melakukan build dan automation testing. Kegiatan ini dikerjakan dengan
menggunakan tools berupa Source Code Repository (SCR) untuk
menemukan error code dan fixed code.
2. Continuous Delivery

Continuous Delivery selalu bekerja di dalam software development untuk


merubah kode. Proses ini dilakukan setelah Continuous Integration untuk
menambah update lebih banyak untuk aplikasi yang sedang berjalan.

3. Continuous Deployment

Setelah proses Continuous Integration-Delivery sudah dinyatakan dengan


baik, tim development dapat melihat perubahan yang terjadi
pada environment test / environment development / environment production.

4. Configuration Management

Proses ini berkaitan dengan system engineering yang bertujuan


untuk maintain konfigurasi sebuah
produk. Configuration Management memungkinkan otomatisasi dan standardisasi
konfigurasi produk.

5. Infrastructure as a Code (IAAC)

IAAC adalah pekerjaan yang mana infrastruktur suatu produk didefinisikan


melalui kode yang dapat diprogram, distandarisasi, dan mudah dalam duplikasi.
Melalui IAAC, tim development dapat menambah mesin melalui satu baris kode.

6. Monitoring

Produk IT menjadi sangat baik karena adanya proses monitoring saat produk
tersebut digunakan oleh pengguna. Tujuannya adalah untuk mengetahui bagaimana
perubahan yang ada pada kode cukup berdampak pada produk dan penggunanya.
7. Logging

Centralized logging menjadi hal yang tidak dapat dipisahkan dari kegiatan
DevOps. Dengan menerapkan log aplikasi, kita developer bisa mengetahui produk
yang dibuat berjalan dengan baik atau tidak.
3. IMPLEMENTASI LAYANAN DevOps

3.1. Installasi Git Pada Server

Gambar 4 : Install git

Install terlebih dahulu package git beserta utilities nya menggunakan perintah
“sudo apt install git”.

3.2. Inisialisasi Repository Git

Gambar 5 : Konfigurasi Informasi User

Untuk mengatur user name Git, jalankan perintah git config –global
user.name. User harus menentukan nama depan dan belakang user, tetapi nama
pengguna dapat berupa apa saja yang ingin dilampirkan ke komit. Nama user Git
tidak harus sama dengan nama pengguna kontrol versi yang dimiliki, seperti yang
digunakan di GitHub. user harus mengatur identitas saat pertama kali menginstal
Git. Ini wajib karena setiap komit berisi nama dan alamat email pengguna. Karena
pengguna tidak dapat mengubah informasi kepengarangan yang terkait dengan
komit setelah dibuat. Ada dua informasi yang perlu tentukan yakni nama dan email
user. Dengan meggunakan perintah “git config - -global user.name “[namaUser]”
“ dan “git config - -global user.email [emailUser] ”. Kemudian lihat perubahannya
di “git config - -list”.

Gambar 6 : Inisiasi Repository Git

Langkah selanjutnya ialah membuat direktori baru menggunakan perintgah “mkdir


git-intro” kemudian masuk kedirektori tersebut lalu ketikan perintah “git init” untuk
membuat repositori Git baru. Ini dapat digunakan untuk mengonversi proyek yang
sudah ada dan tidak ber versi ke repositori Git atau menginisialisasi repositori baru
yang kosong. Sebagian besar perintah Git lainnya tidak tersedia di luar repositori
yang diinisialisasi, jadi ini biasanya perintah pertama yang akan dijalankan di
proyek baru.

3.3. Staging dan Commiting File


di Repository
Gambar 7 : Staging File

Sebelum kita membuat komit, kita harus memberi tahu Git file apa yang ingin
kita komit (file baru yang tidak terlacak, file yang dimodifikasi, atau file yang
dihapus). Ini disebut staging dan menggunakan perintah add. Staging dilakukan
untuk meminimalisir dua pengerjaan atau lebih untuk di komit sebanyak satu.
Dengan cara menambahkan file ke area staging, dan kemudian melakukan apa yang
telah dipentaskan. Bahkan penghapusan file harus dilacak dalam riwayat Git, jadi
file yang dihapus juga harus dipentaskan dan kemudian dikomit. Masukkan
perintah “status git” untuk melihat cabang dimana berada (yang untuk repo baru
akan menjadi master) dan status file (tidak terlacak, dimodifikasi, atau dihapus).
Kami akan menjelaskan cabang nanti.

Gambar 8 : Comitting File

Selanjutnya ialah megkomit file sengan memnggunakan perintah “git commit


-m "Pesan yang menjelaskan apa yang dilakukan perubahan ini" ”. Untuk pesan
komit jangan gunakan past tense, seperti "Saya membuat heading biru". Gunakan
bahasa seperti "Buat heading menjadi biru", seolah-olah sedang memberi perintah
pada basis kode. Salah satu alasannya adalah ketika bekerja dengan orang lain, kode
user mungkin tidak disetujui secara otomatis. User akan meminta mereka menarik
perubahan ke dalam basis kode. Ketika mereka membaca pesan komit, mereka akan
tahu apa yang akan dilakukan kode. Kemudian periksa kembali statusnya dengan
menjalankan perintah ini “git status”. Jika semua perubahan telah dilakukan, dan
tidak ada file yang tidak terlacak, seharusnya tertulis nothing to commit, working
tree clean. Setelah itu verifikasi perubahan di dalam repository menggunakan
perintah “ git log “.

3.4. Modifikasi dan Tracking


Perubahan File

Gambar 9 : Modifikasi File

Pada Langkah selanjutnya ialah memodifikasi file menggunakan perintah


“echo "I am beginning to understand Git!" >> DEVASC.txt”. Kemudian untuk
memverifikasi perubahan untuk repository menggunakan perintah “ git status ”.
Setelah itu modifikasi stage file dengan perintah “ git add DEVASC.txt “.
Gambar 10 : Tracking Commit File

Langkah selanjutnya tracking commit file yang telah di stage menggunakan


perintah “ git commit -m "Added additional line to file “. Kemudian verifikasi
perubahan di dalam repository menggunakan perintah “ git log “.

https://www.nobledesktop.com/learn/git/stage-commit-files

Gambar 11 : Git Diff

git diff adalah perintah Git multi guna yang ketika dijalankan menjalankan
fungsi diff pada sumber data Git. Sumber data ini dapat berupa komit, cabang, file,
dan lainnya. Perintah git diff sering digunakan bersama dengan status git dan log
git untuk menganalisis status repo Git saat ini.

3.5. Branches dan Merging

Gambar 12 : Membuat Branch Baru


Alur “git branch feature” adalah alur kerja yang dapat disusun yang dapat
dimanfaatkan oleh alur kerja Git tingkat tinggi lainnya. Git Feature Branch
Workflow berfokus pada model percabangan, artinya ini adalah kerangka kerja
panduan untuk mengelola dan membuat cabang. Alur kerja lainnya lebih fokus pada
repo. Alur Kerja Cabang Fitur Git dapat dimasukkan ke dalam alur kerja lain. Alur
Kerja Gitflow, dan Git Forking secara tradisional menggunakan Alur Kerja Cabang
Fitur Git sehubungan dengan model percabangannya. Alur Kerja Cabang Fitur
mengasumsikan repositori pusat, dan main mewakili riwayat proyek resmi. Alih-
alih melakukan langsung di cabang utama lokal mereka, pengembang membuat
cabang baru setiap kali mereka mulai mengerjakan fitur baru. Cabang fitur harus
memiliki nama deskriptif, seperti item menu-animasi atau masalah. Idenya adalah
untuk memberikan tujuan yang jelas dan sangat terfokus pada setiap cabang. Git
tidak membuat perbedaan teknis antara cabang utama dan cabang fitur, sehingga
pengembang dapat mengedit, menyusun, dan melakukan perubahan pada cabang
fitur.
Selain itu, cabang fitur dapat (dan harus) didorong ke repositori pusat. Ini
memungkinkan untuk berbagi fitur dengan pengembang lain tanpa menyentuh kode
resmi apa pun. Karena main adalah satu-satunya cabang "khusus", menyimpan
beberapa cabang fitur di repositori pusat tidak menimbulkan masalah. Tentu saja,
ini juga merupakan cara mudah untuk mencadangkan komitmen lokal semua orang.
Berikut ini adalah panduan siklus hidup cabang fitur.

Gambar 13 : Mengecek Branch Baru

Memperbarui file di pohon kerja agar sesuai dengan versi dalam indeks atau
pohon yang ditentukan. Jika tidak ada pathspec yang diberikan, git checkout juga
akan memperbarui HEAD untuk mengatur cabang yang ditentukan sebagai cabang
saat ini.
Kemudian ketikan perintah “git checkout [<branch>]” untuk bersiap bekerja
di <branch>, alihkan ke sana dengan memperbarui indeks dan file di pohon kerja,
dan dengan mengarahkan HEAD ke cabang. Modifikasi lokal ke file di work tree
disimpan, sehingga mereka dapat berkomitmen

Gambar 14 : Stage file yang dimodifikasi di fitur branch

Langkah selanjutnya ialah melakukan stage terhadap file yang sebelumnya di


modifikasi dalam fitur cabang

Gambar 15 : Commit file yang di stage pada fitur branch

Langkah selanjutnya ialah meng commit file yang telah di staging pada fitur
branch
3.6. Merge File dan Menghapus Branch

Gambar 16 : Checkout dan Merge File

Kemudian checkout master branch menggunakan perintah “ git checkout


master “. Setelah itu merge atau menggabungkan isi (konten) dari feature ke master
branch menggunakan perintah “git merge feature”. Kemudian lihat dan cetak
Kembali isi konten yang telah di merge menggunakan “cat DEVASC.txt”.
3.7. Integrasi Git Dengan Github

Gambar 17 : Membuat Akun Github

Masuk ke dalam website github ( https://github.com/ ) kemudian sign up lalu


isi data yang dibutuhkan seperti username dan email.

Gambar 18 : Membuat Repositori Baru Github

Langkah selanjutnya buat repositori baru di github jangan lupa untuk


memberi nama pada repositori yang nantinya akan digunakan di perintah
selanjutnya. Kemudian ubah mode repositori menjadi private setelah itu klik
“Create a repository”.

Gambar 19 : Cek List

Gambar 21 : Menambahkan Akses Remote Github

Gambar 22 : Mendorong Isi Konten Ke Github


Terakhir ketikkan perintah “git push origin master” digunakan untuk
mendorong konten lokal ke GitHub. Dalam kode, asalnya adalah nama repositori
jarak jauh default user.

4 PENGUJIAN
Uji Layanan DevOps

Pada bab pengujian ini, akan di uji coba mengenai konfigurasi-konfigurasi


dev&ops menggunakan Git dan Github yang sebelumnya telah di konfigurasi.
Berikut ini merupakan tahapan dan hasil uji coba dari layanan dev&ops.

Gambar 23 : Pengecekan Package

Tes yang pertama ialah pengecekan aplikasi Git yang telah di install di server
ubuntu dengan menggunakan perintah “ sudo dpkg -l | grep git “. Package git telah
berhasil di install

Gambar 24 : Pengecekan Commit Pada Staging File


Tes berhasil untuk melakukan commit pada staging file DEVASC.txt di
server ubuntu

Gambar 25 : Pengecekan Global Username

Pengecekan berhasil. Terdapat perubahan config berupa username


menggunakan perintah “git config - -list”.

Gambar 26 : Pengecekan File di Github

Selanjutnya pengecekan terakhir yakni pengecekan file DEVASC.txt yang sudah di


import ke Github sehingga file tersebut akan bisa di akses oleh user selain penguna.
5 SIMPULAN

Dapat disimpulkan bahwa Development and Operation atau DevOps adalah


serangkaian praktik yang berfungsi untuk mengotomatisasi dan mengintegrasikan
proses antara pengembangan perangkat lunak dan tim TI, sehingga mereka dapat
membangun, menguji, dan merilis perangkat lunak dengan lebih cepat dan lebih
andal. Istilah DevOps dibentuk dengan menggabungkan kata “development
(pengembangan)” dan “operations (operasi)” dan menandakan pergeseran budaya
yang menjembatani kesenjangan antara tim pengembangan dan operasi, yang
secara historis berfungsi dalam teknologi informasi. (Dicoding, 2020)
6 DAFTAR PUSTAKA
Aubry Pascal, J. M. V. M., 2004. open source Single SignOn with DevOps. In: P. O.
EUNIS2004, ed. USA: s.n.

Dicoding, 2020. Dicoding. [Online]


Available at: https://www.dicoding.com/blog/apa-itu-devops/
[Accessed 15 December 2021].

Anda mungkin juga menyukai