Anda di halaman 1dari 11

“IMPLEMENTASI MICROSERVICE PADA WEBSITE SISFO

UPI “YPTK” PADANG”

OLEH :

JULI SAPUTRI CANIAGO : 20101152630019

PROGRAM STUDI TEKNIK INFORMATIKA


FALKUTAS ILMU KOMPUTER
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
TAHUN AKADEMIK 2022/2023
BAB 1 PENDAHULUAN

1.1 Latar Belakang


Saat ini, dengan didukung oleh konsep SaaS (Software as a Service), aplikasi web
berkembang dengan pesat. Banyak perusahaan, seperti Google, Amazon, dan Microsoft
yang berhasil mencapai kesuksesan dari aplikasi web. Para penyedia layanan aplikasi web
juga berlomba-lomba memberikan pelayanan yang terbaik, seperti menjaga QoS (Quality
of Service) sesuai dengan perjanjian yang tertuang dalam SLA (Service Level
Agreement).
Hal tersebut dikarenakan permintaan akses ke suatu aplikasi web biasanya
meningkat dengan seiring berjalannya waktu. Keramaian akses sesaat menjadi hal yang
umum dalam aplikasi web saat ini. Saat hal tersebut terjadi, aplikasi web akan diakses
lebih banyak dari keadaan biasanya. Jika aplikasi web tersebut tidak menyediakan
kemampuan untuk menangani hal tersebut, bisa menyebabkan aplikasi web tidak dapat
berjalan dengan semestinya yang sangat merugikan pengguna. Biasanya, pengembang
akan melakukan pengaturan sumber daya server secara manual agar bisa menangani
permasalahan di atas, tapi akan memakan banyak biaya dan waktu. Tapi jika tidak
ditangani, akibatnya aplikasi web tidak bisa berjalan saat pengalami puncak permintaan
dari pengguna. [1]
Web SISFO UPI “YPTK” Padang adalah Website Sistem Informasi Akademik
Universitas Putra Indonesia “YTPK” Padang, Sistem ini merupakan sistem yang
terintegrasi dengan seluruh kegiatan akademik mahasiswa. Kesulitan yang dihadapi oleh
Website Sisfo UPI “YPTK” adalah website ini disebabkan scale pada arsitektur monolith
mengharuskan keseluruhan sistem harus discale secara bersamaan, padahal hanya
beberapa komponen atau bagian saja yang memerlukan scale.
Seiring dengan berkembangnya arsitektur perangkat lunak, kemunculan arsitektur
microservice menjadi sebuah tren yang digunakan oleh pengembang dalam beberapa
tahun terakhir. Microservice memberikan keleluasaan bagi pengembang untuk
mengembangkan perangkat lunak dalam waktu yang cepat. Berkembangnya arsitektur
microservice juga didukung oleh kurang handalnya arsitektur monolith dalam menangani
system failure.
Sementara itu, arsitektur microservice memungkinkan sebuah sistem dibangun oleh
codebase yang berbeda-beda atau layanan yang terpisah sehingga dapat menawarkan
sistem yang resilien dan tetap menjamin availability ketika salah satu layanan mengalami
malfungsi.
Keunggulan arsitektur microservice lainnya adalah perubahan yang terjadi pada satu
layanan dalam frekuensi yang tinggi akan tetap membuat sistem secara keseluruhan
bekerja dengan baik tanpa adanya perubahan yang signifikan. Keunggulan arsitektur
microservice juga ada pada poin scale. Dengan menggunakan arsitektur microservice,
scale dapat dilakukan pada sistem atau komponen yang membutuhkan scale saja, tanpa
harus scale pada keseluruhan sistem.

1.2 Rumusan Masalah


Berdasarkan latar belakang masalah diatas, permasalahan yang muncul diantaranya
yaitu:
a) Bagaimana melakukan pemisahan arsitektur monolith dan mengubahnya menjadi
arsitektur microservice?
b) Bagaimana setiap layanan akan berkomunikasi untuk menjadi sebuah kesatuan?

1.3 Hipotesis
1. Jumlah traffic atau pengunjung website yang terlalu banyak sering menjadi penyebab
utama server menjadi down. Ini biasanya terjadi karena kapasitas hosting yang
digunakan tidak memadai, sehingga mengakibatkan website sulit diakses oleh banyak
pengunjung secara bersamaan.
2. Web sisfo biasanya down pada saat penyusunan KRS dan saat mahasiswa melihat ipk.
Itu dikarenakan banyak mahasiswa yang mengakses web diwaktu yang bersamaan.
BAB II LANDASAN TEORI

2.1 Microservice
Microservice adalah sebuah arsitektur perangkat lunak yang kecil, independen yang
saling bekerja sama untuk membentuk satu kesatuan perangkat lunak. Karakteristik dari
arsitektur microservice adalah kecil dan hanya memiliki satu tugas. Pendekatan
karakteristik dari arsitektur microservice diawali dari prinsip pengembangan perangkat
lunak yang dipopulerkan oleh Robert. C. Martin yang mengatakan bahwa semua modul
yang berubah akibat alasan yang sama harus diletakan pada satu modul yang sama, dan
pisahkan modul yang mengalami perubahan yang disebabkan oleh alasan yang berbeda.
Pendekatan yang dimiliki oleh arsitektur microservice sama dengan prinsip yang
dipopulerkan Robert. C. Martin, modul yang sama diletakan pada satu layanan yang
dibatasi oleh kebutuhan bisnis. Dengan pembatasan tersebut, pencegahan terhadap
pertumbuhan codebase yang begitu besar dapat dilakukan . Karakteristik berikutnya dari
arsitektur microservice adalah autonomous. Artinya arsitektur ini mendukung bahwa satu
layanan merupakan sebuah entitas yang terpisah dengan layanan lainnya. Artinya, satu
layanan bertanggung jawab terhadap proses deployment.
Proses komunikasi antar microservice dapat dilakukan dalam dua cara, yaitu
asynchronous dan synchronous. Bentuk komunikasi dalam model asynchronous
dilakukan dengan menggunakan pub / sub dengan model arsitektur event-driven
communication. Lalu, untuk synchronous dilakukan dalam bentuk HTTP atau gRPC.
Keuntungan arsitektur microservice adalah setiap layanan juga dapat memilih teknologi
yang sekiranya cocok untuk diaplikasikan pada layanan yang bersangkutan, sehingga
pengembangan tidak bergantung pada penggunaan satu teknologi atau bahasa
pemrograman .

2. 2 Aplikasi Web
Aplikasi web adalah sebuah aplikasi yang menggunakan teknologi web browser
sebagai client side dan menggunakan network sebagai komponen komunikasi. Aplikasi
menurut Yuhefizar, 2010 merupakan program yang dikembangkan untuk memenuhi
kebutuhan pengguna dalam menjalankan pekerjaan tertentu. Sedangkan menurut
Supriyanto, 2005 aplikasi adalah program yang memiliki aktifitas pemrosesan perintah
yang diperlukan untuk melaksanakan permintaan pengguna dengan tujuan tertentu.
Penggunaan web browser sebagai client side, membuat pengembangan aplikasi web
harus menggunakan teknologi yang mendukung penggunaan browser seperti HTML dan
Javascript .[2]
Aplikasi web dirancang untuk penggunaan yang cukup luas dan dapat digunakan
oleh siapapun. Aplikasi web saat ini banyak digunakan untuk pembangunan platform
webmail sampai yang popular saat ini e-commerce.
Penggunaan aplikasi web dapat dikategorikan cukup mudah, pengguna tidak perlu
mengunduh aplikasi tersebut, karena dapat diakses melalui network. Pengguna saat ini
dapat menggunakan aplikasi browser seperti Chrome, Firefox dan Safari untuk
mengakses halaman web atau aplikasi web. Agar aplikasi web dapat bekerja dibutuhkan
server yang dapat menyimpan web server, application server dan database untuk
penyimpanan data . Proses yang dibutuhkan aplikasi web untuk dapat bekerja dimulai
ketika pengguna melakukan request ke web server untuk mengakses aplikasi tertentu.
Lalu, web server akan mengarahkan request menuju application server yang nantinya
akan melakukan akses ke database jika memang diperlukan.
Keuntungan yang diberikan oleh aplikasi web dibandingkan aplikasi melalui
platform lainnya adalah tidak butuh instalasi. Mengingat aplikasi web dapat diakses
selama pengguna terhubung dan memiliki sebuah jaringan, maka pengguna tidak perlu
memasang aplikasi web di device yang melakukan akses, sehingga dapat menghemat
penggunaan storage pada perangkat pengguna. Keuntungan berikutnya adalah aplikasi
web dapat diakses pada beberapa platform yang berbeda, sehingga memberikan
kemudahan bagi pengguna untuk mengakses aplikasi web dengan piranti atau perangkat
apapun.

2. 3 Docker
Docker adalah platform as a service yang mendukung virtualisasi pada level
operating system untuk membungkus dan mengantarkan perangkat lunak dalam bentuk
container . Penggunaan docker dipercaya dapat memudahkan developer untuk delivery
produk perangkat lunak tanpa harus memikirkan kompatibilitas terhadap komputer
server. Docker menurut sugianto, 2016 adalah suatu platform terbuka bagi pengembang
perangkat lunak dan pengelola sistem jaringan untuk membangun, mengirimkan dan
menjalanan aplikasi-aplikasi terdistribusi. Definisi tersebut membawa pengertian praktis
bahwa Docker merupakan suatu cara memasukkan layanan ke dalam lingkungan
terisolasi bernama container, sehingga layanan tersebut dapat dipaketkan menjadi satu
bersama dengan semua pustaka dan software lain yang dibutuhkan. [3]
Docker memberikan beberapa keuntungan bagi pengembang perangkat lunak,
termasuk dapat menggantikan peran dari VM, memudahkan pembuatan prototipe banyak
software, dengan setiap software dan file terkait ada di container terisolasi
menyederhanakan pemaketan software sesuai dengan kemampuan pengembang bukan
mengikuti kemampuan administrator web hosting mengaplikasikan arsitektur
microservice memodelkan jaringan (terutama data center) memungkinkan produktifitas
full-stack ketika offline mengurangi biaya debugging memudahkan dokumentasi
ketergantungan dan touchpoints dari software memungkin delivery berkelanjutan. Hal
tersebut di disampaikan juga oleh Matthias dan Kane.
Boettiger melengkapinya dengan menyatakan bahwa Docker mampu melakukan
virtualisasi pada level sistem operasi, men-deploy container secara portabel meskipun
lintas platform, menyediakan fitur pemanfaatan ulang komponen, sharing, archiving, dan
versioning dari image container. Teknologi container telah diimplementasikan oleh
banyak penyedia layanan online di bidang cloud computing dengan pendekatan dan
kelebihan/kekurangannya masing-masing.
Salah satu kasus penggunaan terbesar dan terkuat untuk penerapan kontainer
(Docker) adalah microservices. Microservices adalah cara mengembangkan dan
menyusun sistem perangkat lunak seperti mereka dibangun dari komponen independen
kecil yang berinteraksi satu sama lain melalui jaringan. Hal ini berbeda dengan cara
monolitik tradisional mengembangkan perangkat lunak, di mana ada program tunggal
yang besar, misal program yang ditulis dalam bahasa pemrograman C ++ atau Java.
Ketika datang kebutuhan untuk meningkatkan performa pada sistem monolit, umumnya
satu-satunya pilihan adalah untuk meningkatkan keatas (scale up), di mana permintaan
tambahan ditangani dengan menggunakan mesin yang lebih besar dengan lebih banyak
RAM dan power CPU. Sebaliknya, microservices dirancang untuk skala keluar (scale
out), di mana permintaan tambahan performa dapat ditangani oleh penyediaan beberapa
tambahan mesin virtual untuk menyebar beban kerja sistem.[4]

2.4 Docker Swarm


Docker swarm adalah container orchestration tools yang diciptakan oleh Docker
untuk mendukung pengguna agar dapat mengelola docker containers yang terletak pada
beberapa mesin komputer yang berbeda. Keuntungan penggunaan docker swarm adalah
menggabungkan beberapa machine yang memiliki docker engine untuk dapat
digabungkan menjadi satu cluster. Keuntungan ini dapat diaplikasikan pada penerapan
arsitektur microservice, yang dimana beberapa microservice dapat berada pada machine
yang berbeda. Dengan komparasi dengan tools sejenis seperti Kubernetes, Docker Swarm
memiliki kemudahan dalam hal konfigurasi serta penggunaan umum yang mudah.
Penggunaan dapat dibilang mudah karena pengaturan cluster dapat dilakukan dengan
Docker engine CLI tanpa harus mengintegrasikan terhadap tools lainnya.

2.5 Virtualisasi Server


Menurut Rakhmi, Adi, dan Siti (2019), Secara sederhana, virtualisasi adalah
lawan kata dari physical machine atau mesin fisik. Physical machine adalah wujud server
yang memiliki berbagai komponen seperti power supply, mainboard, memory, disk, dan
sebagainya. Virtualisasi adalah aplikasi seolah-olah berjalan sendirian dalam satu mesin,
tetapi sebenarnya virtualisasi berjalan di atas mesin lain, bersama-sama dengan aplikasi
lain.
Menurut Sulastri, Isnawaty, dan Rizal (2018), Virtualisasi adalah sebuah teknik
untuk menyembunyikan karakter fisik dari sumber daya komputer dari bagaimana cara
sistem lain, aplikasi atau pengguna berinteraksi dengan sumber daya tersebut. Hal ini
termasuk membuat sebuah sumber daya tunggal seperti server, sebuah sistem operasi,
sebuah aplikasi, atau peralatan penyimpanan terlihat berfungsi sebagai beberapa sumber
daya logikal, atau dapat juga termasuk definisi untuk membuat beberapa sumber daya
fisik (seperti beberapa peralatan penyimpanan atau server) terlihat sebagai satu sumber
daya logikal. Melihat catatan sejarah istilah virtualisasi mulai dikembangkan sejak
pertengahan abad ke 20 dimana hanya digunakan untuk kalangan industri saja.[5]
Virtualisasi / Virtualization adalah sebuah teknik atau cara untuk membuat
sesuatu dalam bentuk virtualisasi, tidak seperti kenyataan yang ada. Virtualisasi juga
digunakan untuk mengemulasikan perangkat fisik komputer, dengan cara membuatnya
seolah-olah perangkat tersebut tidak ada (disembunyikan) atau bahkan menciptakan
perangkat yang tidak ada menjadi ada.
BAB III METODELOGI PENELITIAN

3.1 Kerangka Penelitian

Pada Bab ini akan diuraikan metodologi penelitian yang terdiri dari urutan kegiatan yang
akan dilakukan dalam suatu penelitian, agar penelitian tersebut mendapatkan hasil seperti yang
diharapkan. Kerangka penelitian merupakan konsep atau tahap-tahap yang akan dilakukan
melalui cara tertentu dengan prosedur sistematis.

3.2 Uraian Kerangka Kerja Penelitian

Kerangka Kerja adalah suatu Struktural konseptal dasar yang digunakan untuk
memecahan atau menangani suatu malasah kompleks. Tahap penelitian ini menjelaskan
langkah–langkah dalam melakukan pencatatan data serta mengumpulkan beberapa laporan yang
diperlukan untuk dapat dijadikan pedoman dalam membuat penelitian ini.Pada tahapan
penelitian, penulis melakukan beberapa tahapan dalam penelitian, sebagai berikut.

3.2.1 Penelitian Pendahuluan

Penelitian pendahuluan merupakan langkah awal dalam melakukan sebuah penelitian.


Sebelum melakukan penelitian penulis terlebih dahulu membaca bukubuku, jurna-jurnal yang
berhubungan dengan penelitian yang akan dilakukan dan melakukan browsing di internet.
Penelitian bertujuan agar penulis dapat memahami kasus atau objek yang diteliti, serta dapat
menemukan sebuah masalah yang dihadapi oleh penulis dan dapat menemukan cara dalam
menyelesaikan masalah tersebut.

3.2.2 Pengumpulan Data

1. Waktu Penelitian

Pengumpulan data serta informasi pada tahap ini dilakukan untuk mengetahui objek yang
diteliti. Dari data serta informasi yang akan dikumpulkan akan didapat data untuk mendukung
penelitian.
2. Tempat Penelitian

Penelitian dilakukan dengan langsung terjun ke lapangan dan melakukan surver ke


Universitas Putra Indonesia “YPTK” Padang dan melakukan wawancara langsung dengan
Mahasiswa/I Universitas Putra Indonesia “YPTK” Padang.

3. Metode Penelitian

Metode penelitian adalah langkah yang dimiliki dan dilakukan oleh peneliti dalam rangka
untuk mengumpulkan informasi atau data serta melakukan investigasi pada data yang telah
didapatkan tersebut. Metode penelitian memberikan gambaran rancangan penelitian. Dalam
melakukan penelitian agar mendapatkan hasil yang diharapkan, maka sekiranya diperlukan suatu
metode penelitian yang biasa dilakukan yaitu:

1. Pengamatan (Observasi)
Melakukan pengamatan secara langsung ditempat penelitian untuk mengetahui secara
jelas dan terinci permasalahan yang ada. Metode pengamatan harus dilakukan secara
sistematis guna mendapatkan informasi yang akurat. Kegiatan pengamatan yang
dilakukan memiliki karakteristik tersendiri yaitu objektif, faktual dan sistematik.

2. Wawancara

Wawancara adalah teknik pengumpulan data melalui proses tanya jawab lisan yang
berlansung satu arah , artinya pertanyaan datang dari pihak yang mewawancarai dan
jawaban diberikan oleh yang diwawancara
DAFTAR PUSTAKA

[1] M. F. Razi, “Implementasi Pengendali Elastasitas Sumber Daya Berbasis Docker untuk
Aplikasi Web,” 2017, [Online]. Available:
https://repository.its.ac.id/43341/%0Ahttps://repository.its.ac.id/43341/1/5113100105-
Undergraduate_Thesis.pdf

[2] R. Purnomo and A. Nurdin, “Aplikasi layanan delivery order berbasis web pada rumah
makan podoteko,” vol. 3, no. 2, pp. 23–30, 2017.

[3] M. Fadlulloh Romadlon Bik, “Implementasi Docker Untuk Pengelolaan Banyak Aplikasi
Web (Studi Kasus : Jurusan Teknik Informatika Unesa),” J. Manaj. Inform., vol. 7, no. 2,
pp. 46–50, 2017.

[4] H. Suryotrisongko, “Arsitektur Microservice untuk Resiliensi Sistem Informasi,” Sisfo,


vol. 06, no. 02, pp. 231–246, 2017, doi: 10.24089/j.sisfo.2017.01.006.

[5] S. Dwiyatno, E. Rachmat, A. P. Sari, and O. Gustiawan, “Implementasi Virtualisasi


Server Berbasis Docker Container,” PROSISKO J. Pengemb. Ris. dan Obs. Sist. Komput.,
vol. 7, no. 2, pp. 165–175, 2020, doi: 10.30656/prosisko.v7i2.2520.

Anda mungkin juga menyukai