Anda di halaman 1dari 17

Tugas Makalah

Mata Kuliah Sistem Manajemen Database

PENGGUNAAN KUBERNETES DAN DOCKER HUB UNTUK


SISTEM MANAJEMEN DATABASE

Dosen Pengampu: Dr. Keulana Erwin. SE., M.Si, Ak

OLEH:
DIVA LIVIA
200522018

PROGRAM STUDI S1 AKUNTANSI EKSTENSI


FAKULTAS EKONOMI DAN BISNIS
UNIVERSITAS SUMATERA UTARA
2021
Kata Pengantar

Puji syukur kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya
sehingga saya dapat menyelesaikan tugas makalah yang berjudul “Penggunaan Kubernetes
Dan Docker Hub Untuk Sistem Manajemen Database” ini tepat pada waktunya. Adapun
tujuan dari penulisan dari makalah ini adalah untuk memenuhi tugas dosen mata kuliah Sistem
Manajemen Database. Selain itu, makalah ini juga bertujuan untuk menambah wawasan
tentang Kubernetes dan Docker bagi para pembaca dan juga bagi penulis.

Saya mengucapkan terima kasih kepada Bapak Dr. Keulana Erwin, SE., M.Si., Ak selaku
dosen pengampu mata kuliah Sistem Manajemen Database yang telah memberikan tugas ini
sehingga dapat menambah pengetahuan dan wawasan sesuai dengan bidang studi yang saya
tekuni.

Saya juga mengucapkan terima kasih kepada semua pihak yang telah membagi sebagian
pengetahuannya sehingga saya dapat menyelesaikan makalah ini.

Saya menyadari, makalah yang saya tulis ini masih jauh dari kata sempurna. Oleh karena
itu, saya menantikan kritik dan saran yang membangun demi kesempurnaan makalah ini.

Medan, 27 Maret, 2021


Penulis,

Diva Livia
NIM. 200522018
DAFTAR ISI

BAB I .............................................................................................................................................. 4
1.1 Latar Belakang Masalah ................................................................................................... 4
1.2 Tujuan............................................................................................................................... 5
1.3 Batasan Masalah ............................................................................................................... 5
BAB II ............................................................................................................................................ 6
2.1 Kubernetes ...................................................................................................................... 6
2.1.1 Pengertian Kubernetes ................................................................................................ 6
2.1.3 Fitur Kubernetes.......................................................................................................... 8
2.1.4 Istilah Umum yang Digunakan pada Kubernetes ....................................................... 8
2.1.5 Arsitektur Kubernetes ................................................................................................. 9
2.2 Docker ........................................................................................................................... 10
2.2.1 Pengertian Docker ..................................................................................................... 10
2.2.2 Keuntungan dari Docker ........................................................................................... 11
2.2.3 Fitur Docker .............................................................................................................. 13
2.2.4 Arsitektur Docker...................................................................................................... 13
2.2.5 Pengertian dan Kegunaan Docker Hub ..................................................................... 15
BAB III......................................................................................................................................... 16
3.1 Kesimpulan ........................................................................................................................ 16
DAFTAR PUSTAKA .................................................................................................................. 17
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah

Dalam era globalisasi saat ini Sistem Informasi Manajemen merupakan bagian yang tak
terpisahkan dari suatu organisasi dimana sistem informasi yang menghasilkan hasil keluaran
(output) dengan menggunakan masukan (input) dan berbagai proses yang diperlukan untuk
memenuhi tujuan tertentu dalam suatu kegiatan manajemen. Sistem manajemen basis data
merupakan perangkat lunak yang dapat di gunakan untuk mendefinisikan, menciptakan, mengelola
dan mengendalikan pengaksesan basis data. Tugas dari sistem manajemen basis data adalah
menyediakan lingkungan yang nyaman dan efisien untuk penyimpanan dan pengambilan data dari
basis data. Pengelolaan manajemen basis data membutuhkan suatu perangkat / tools untuk dapat
mengelolanya, sehingga manajemen basis data dapat terus dikelola dan terus ditingkatkan
kinerjanya.

Perkembangan sistem informasi sangat pesat, seiring dengan perkembangan komputer dan
internet. Selain itu, sistem informasi juga semakin banyak digunakan karena dapat diakses di
berbagai platform. Pengguna yang memiliki layanan sistem informasi berbasis server-klien banyak
menggunakan layanan cloud computing untuk hosting aplikasinya, terutama sistem informasi yang
bersifat publik yang dapat diakses setiap saat. Masalah yang biasa terjadi dalam menjalankan
sebuah sistem informasi tersebut adalah membutuhkan sumber daya yang besar. Karena setiap
mesin virtual menjalankan sistem operasi guest beserta kernel-nya sendiri terpisah dari host.
Sehingga ketika menjalankan sebuah sistem yang mungkin besarnya hanya puluhan MB, mesin
virtual juga harus menjalankan sistem operasi guest yang besarnya bisa mencapai 10 GB.
Dibutuhkan teknologi yang dapat menyediakan virtualisasi yang mengisolasi aplikasi beserta
environment yang dibutuhkan dengan kebutuhan sumber daya minimal yang dapat berjalan di
berbagai infrastruktur untuk memudahkan proses pengembangan sistem. Salah satu teknologi yang
dapat digunakan untuk menyelesaikan masalah tersebut adalah Kubernetes dan Docker.
Kubernetes bisa melakukan penjadwalan seta menjalankan container pada sistem di kelompok
mesin virtual juga fisik. Namun, agar container dapat berjalan, tentu dibutuhkan sebuah aplikasi,
dan pada umumnya aplikasi yang digunakan adalah Docker. Oleh karena itu pada makalah ini,
akan dibahas tentang “Penggunaan Kubernetes dan Docker Hub Untuk Sistem Manajemen
Database” .

1.2 Tujuan

Adapun tujuan untuk dari pembuatan makalah ini adalah :


1. Untuk mengetahui tentang Kubernetes dan penggunaan Kubernetes
2. Untuk mengetahui tentang Docker dan penggunaan Docker

1.3 Batasan Masalah

Makalah yang disusun ini telah diberi pembatasan masalah mengenai pembahasan tentang
Kubernetes dan penggunaan Kubernetes, dan pembahasan tentang Docker dan penggunaan
Docker.
BAB II
PEMBAHASAN
2.1 Kubernetes
2.1.1 Pengertian Kubernetes
Kubernetes adalah sebuah open source Orchestration platform yang
membantu mengelola distributed Container dalam skala besar. Anda hanya perlu
memberi instruksi kepada Kubernetes di mana Anda ingin aplikasi Anda
dijalankan, maka platform ini akan menangani semua hal-hal yang lainnya.
Kubernetes menyediakan application programming interface (API) terpadu untuk
mendeploy aplikasi web, batch task, dan database di dalamnya. Aplikasi di dalam
Kubernetes dikemas dalam Container dan diisolasi dari lingkungannya. Kubernetes
mengotomatisasi konfigurasi aplikasi anda. Serta mencatat dan melacak semua
pengalokasian resource di dalamnya.

2.1.2 Keuntungan dari Kubernetes

Dibawah ini adalah keuntungan-keuntungan dari menerapkan Kubernetes:


1. Skalabilitas
Kubernetes secara otomatis men-scale cluster anda berdasarkan kebutuhan.
Hal ini akan menghemat biaya dan resource. Bayangkan Anda menjalankan
layanan tiket acara online di mana pelanggan dapat membeli tiket 24 jam dalam
sehari, 7 hari seminggu dengan beban yang bervariasi setiap saat. Anda memiliki
gambaran secara garis besar tentang beban dan trafik pegunjung saat tiket mulai
dijual pada siang hari, dan Anda tahu bahwa malam hari pengunjung biasanya akan
berkurang. Namun, ada beberapa peristiwa dan waktu-waktu tertentu yang
menyebabkan lonjakan pengunjung bertambah secara eksponensial. Dalam
skenario ini, Anda ingin cluster Anda scale up atau membesar secara otomatis dan
dinamis untuk memenuhi permintaan. Fitur Kubernetes Cluster Autoscaler dan
Horizontal Pod Autoscaler, akan melakukan hal ini secara otomatis.
2. Portabilitas
Kubernetes Orchestration platform dapat di jalankan di atas berbagai
Infrastructure termasuk di on-premise datacenter, public cloud, private cloud
ataupun hybrid cloud. Kubernetes bukan saja dapat digunakan di mana saja, tetapi
juga dapat di jalankan dengan perintah yang sama.
3. Deployment yang konsisten
Kubernetes dapat di deploy secara konsisten di seluruh Infrastructure.
Container memungkinkan untuk menerapkan konsep immutable Infrastructure.
Semua setup dan dependencies komponen yang di butuhkan untuk menjalankan
aplikasi bisa dimasukkan dan digabungkan di dalam Container itu sendiri. Anda
mungkin tahu bahwa server berperilaku aneh, tetapi lupa namanya. Anda akhirnya
terpaksa untuk menghabiskan waktu untuk patching. Lalu membuat environment
yang disesuaikan untuk menjalankan production environment. Kemudian juga anda
mungkin takut untuk mematikan server ini dan menggantinya dengan yang lain.
Ketakutan ini sering terjadi karena sulit untuk mengingat cara penyiapan server,
atau apa yang berubah setelah initial setup. Container didesain dan diproduksi
secara massal dan identik. Container mengkonfigurasi diri mereka dengan cara
yang sama setiap saat. Karena tidak dapat diubah, perubahan konfigurasi tambahan
dilarang. Tidak ada rasa takut untuk meng-kill sebuah Container dan memulai yang
baru. Konsistensi ini berarti programmer dapat menghabiskan lebih sedikit waktu
untuk debugging dan lebih banyak waktu untuk memfokuskan pada fitur-fitur value
added yang di butuhkan dalam bisnis.
4. Separated dan Automated Operation dan Development
Tim operasi dan tim programmer sering umumnya berbeda pendapat. Tim
operasi menghargai stabilitas dan lebih konservatif terhadap perubahan. Sedangkan
tim programmer mementingkan inovasi dan menghargai perubahan yang cepat.
Kubernetes dapat menjembatani konflik ini. Berkat otomatisasi Kubernetes, tim
operasi dapat merasa yakin dengan stabilitas sistem. Sebaliknya, Container
menghemat waktu developer dengan memberikan kelonggaran dengan cara
menerapkan teknik rapid iteration cycle.
2.1.3 Fitur Kubernetes
Kubernetes memiliki sejumlah fitur yang dapat dijabarkan sebagai berikut:
a. Platform Kontainer
b. Platform Microservices
c. Platform Cloud yang tidak mudah dipindahkan.
Kubernetes menyediakan manajemen environment yang berpusat pada
kontainer. Kubernetes melakukan orkestrasi terhadap computing, networking, dan
inftrastruktur penyimpanan. Fitur inilah yang kemudian membuat konsep Platform
as a Service (PaaS) menjadi lebih sederhana dilengkapi dengan fleksibilitas yang
dimiliki oleh Infrastructure as a Service (IaaS).
.
2.1.4 Istilah Umum yang Digunakan pada Kubernetes
Dalam Kubernetes ada beberapa istilah yang harus dipahami oleh
pengguna, supaya bisa menggunakan aplikasi ini dengan baik yaitu:
1. Pod
Pod merupakan salah satu grub pada container instance. Dengan ini Anda
dapat menjalankan tidak hanya satu container saja (misalkan aplikasi redis cache +
web + longing service pada satu pod. Dimana satu container dengan container yang
lain yang berada dalam satu pod mampu mengakses menggunakan alamat
localhost. Anda bisa menganggap pod merupakan laptop yang biasa Anda gunakan
untuk coding. Alamat localhost sendiri sangat umum digunakan untuk melakukan
akses database pada aplikasi Anda.
2. Node
Node merupakan representasi dalam satu mesin dan bisa saja mesin yang
digunakan adalah mesin jenis virtual (misalkan dropletnya DigitalOcean atau VPS)
maupun fisik.
3. Service
Istilah service ini di Kubernetes adalah mekanisme yang digunakan
mengekspos pod ke dunia luar. Tidak adanya alamat IP jelas pada aplikasi yang
berjalan pada pod, sehingga supaya bisa akses pada aplikasi lain maupun oleh user,
wajib menggunakan alamat IP yang tepat. Maka di service inilah akan ditemukan
alamat IP tetap dan nantinya bisa diarahkan ke pod Anda dengan menggunakan
selector.
4. Label
Label dalam Kubernetes merupakan seperangkat informasi yang berupa
metadata dengan tujuan mencari pod khusus. Selain itu juga mempunyai banyak
fungsi lain yang bisa digunakan pada kubernetes.
5. App-Belajar
Anda bisa membuat label app dengan isinya nama aplikasi dan container,
service, dan Pod yang merupakan bagian aplikasi belajar tersebut Anda beri label
app=belajar.
6. Strage-Production
Label stage umumnya digunakan dalam menentukan konfigurasi
environment deployment pada aplikasi Anda. Misalkan testing, development,
performance test, production, serta security est.
7. Jenis-frontend
Disini Anda bisa menciptakan sebuah label jenis aplikasi, misalkan cache,
fileserver, database, froontend, dan lain sebagainya.
8. Selector
Selector merupakan filtering yang menggunakan label, contohnya saat
Anda mencari banyak instance database dengan menggunakan aplikasi belajar yang
dijalankan pada production.

2.1.5 Arsitektur Kubernetes


Pada diagram arsitektur kubernetes diatas terdapat beberapa komponen
berbeda yang saling terintegrasi diantaranya adalah :
• Kubelet
• Kubernetes controller manager
• Kubernetes API server
1) Master Components
Komponen Master menyediakan cluster control plane. komponen master
berfungsi untuk mengatur penjadwalan, memulai pembuatan pod dengan replicate.
2) Node Componentes
Komponen node jalan pada setiap node / worker, menjaga pod yang berjalan
dan menyediakan runtime untuk kubernetes. berikuti komponen node.
• Kubelet
• Kube-proxy
• Container runtime
3) Addons
Addons adalah pod dan layanan yang mengimplementasikan fitur cluster.
Pod dapat dikelola oleh Deployment, ReplicationControllers, dan sebagainya.
beirkut adalah bagian dari addons.
• DNS
• Web UI (Dashboard)
• Container Resource Monitoring
• Cluster Level Logging

2.2 Docker
2.2.1 Pengertian Docker
Docker merupakan platform open-source yang memungkinkan
penggunanya untuk membangun, menguji dan mendistribusikan aplikasi dalam
environment yang terisolasi. Maksud dari environment yang terisolasi adalah
compute resource yang digunakan pada setiap aplikasi dibuat secara terpisah dan
khusus untuk masing-masing aplikasi. Para developer dapat menyesuaikan
kebutuhan pada setiap aplikasi tanpa harus memengaruhi konfigurasi aplikasi
lainnya. Dengan menggunakan Docker, aplikasi dapat dijalankan di mana saja
secara fleksibel baik diatas private cloud, public cloud, bare metal dan lain
sebagainya. Secara keseluruhan, Docker memudahkan developer dalam membuat,
menyebarkan sekaligus menjalankan sebuah aplikasi menggunakan container.
Container memungkinkan developer untuk mengemas aplikasi dan seluruh
konfigurasi yang dibutuhkan pada level Operating System (OS), seperti libraries
serta dependencies lainnya, dan mendistribusikannya sebagai satu kesatuan.

2.2.2 Keuntungan dari Docker


Seiring dengan perkembangannya, Docker kini tidak hanya digunakan oleh
Linux Power (Red Hat dan Canonical), tetapi juga oleh Microsoft dan Oracle dan
Microsoft yang turut mengadopsi Docker. Saat ini, sebagian besar perusahaan IT
dan cloud juga sudah mengadopsi Docker ke dalam layanan yang mereka tawarkan.
Berikut manfaat dan kegunaan Docker yaitu:

1. Development Hingga Deployment yang Efisien

Penggunaan Docker yang memungkinkan penggunanya untuk


menggunakan konfigurasi mereka sendiri, memasukkannya menjadi sebuah code,
kemudian mengimplementasikannya. Hal ini dikarenakan Docker dapat digunakan
di berbagai jenis environment tanpa harus mengkhawatirkan adanya perbedaan
konfigurasi ataupun elemen lainnya.

2. Aplikasi yang Terisolasi

Docker menawarkan sistem yang terisolasi untuk menjamin keamanan serta


memungkinkan Anda untuk mengelola berbagai fungsi aplikasi dengan container
yang berbeda. Tidak hanya itu, Docker juga memastikan setiap aplikasi hanya
menggunakan resource dengan jumlah yang ditentukan sehinga kinerja aplikasi
Anda tetap stabil dan menghindari kemungkinan terjadinya downtime.
3. Resource yang Optimal

Docker menawarkan penggunaan resource hardware yang sangat efisien.


Karena efisiensinya, sebuah host mampu menjalankan berbagai container seperti
Docker dalam waktu yang bersamaan tanpa ada gangguan. Container yang berjalan
pada satu mesin host yang sama akan berbagi kernel Operating System sehingga
setiap container dapat berjalan secara otomatis dan menggunakan RAM yang lebih
sedikit.

4. Multi-Cloud Platform

Salah satu keunggulan dari Docker adalah portability. Selama beberapa


tahun terakhir, berbagai penyedia layanan cloud seperti Amazon Web Service
(AWS), Google Compute Platform (GCP), Rackspace dan lain-lain mulai
mengadopsi Docker sebagai platform virtualisasi dan container. Docker dapat
dijalankan pada sistem Amazon EC2, Google Compute Engine, termasuk pada
layanan cloud NEO Cloud dan Biznet Gio. Singkatnya, Docker dapat dijalankan
pada berbagai jenis cloud provider yang menggunakan sistem operasi Linux. Tidak
hanya itu, Docker juga dapat bekerja dengan baik pada penyedia layanan laaS
seperti Microsoft Azure, dan Openstack. Dengan berbagai alasan tersebut, rasanya
cukup pantas jika menyebut Docker sebagai Multi-Cloud Platform yang andal.

5. Return on Investment
Manfaat utama yang dapat dirasakan ketika menggunakan Docker adalah
ROI. Ketika memutuskan untuk menggunakan sebuah produk, hal utama yang
menjadi pertimbangan pihak manajemen perusahaan adalah ROI atau Return of
Investment yang akan diperoleh. Dalam hal ini, Docker dapat memfasilitasi
kebutuhan tersebut dengan mengurangi sumber daya infrastruktur. Pada dasarnya,
Docker memang membutuhkan resource yang lebih sedikit untuk menjalankan
sebuah aplikasi. Oleh karena itu, perusahaan dapat menghemat beberapa aspek
mulai dari biaya server hingga biaya maintenance.
2.2.3 Fitur Docker
Berikut ini adalah fitur Docker yang bisa Anda gunakan sesuai dengan
kebutuhan:

a. Docker Engine, digunakan untuk membangun Docker images dan membuat


kontainer Docker.
b. Docker Hub, registry yang digunakan untuk berbagai macam Docker images
c. Docker Compose, digunakan untuk mendefinisikan aplikasi menggunakan banyak
kontainer Docker.
d. Docker untuk Mac, memungkinkan menjalankan kontainer Docker pada Mac.
e. Docker untuk Linux, memungkinkan menjalankan kontainer Docker pada Linux.
f. Docker untuk Windows, memungkinkan menjalankan kontainer Docker pada
Windows.

2.2.4 Arsitektur Docker


Arsitektur docker menggunakan mekanisme client dan server. Dimana
docker client mengirimkan request ke docker daemon untuk membangun,
mendistribusikan dan menjalankan container docker. Keduanya docker client dan
daemon dapat berjalan pada sistem yang sama. Antara docker client dan docker
daemon berkomunikasi via socker menggunakan RESTful API.
Docker sendiri memiliki banyak komponen dalam menjalankan proses dan
tugasnya. Masing-masing komponen pada docker itu saling ketergantungan,
sehingga jika ada komponen yang tidak tersedia hal itu tentu saja akan
mempengaruhi kinerja docker. Berikut merupakan komponen yang terdapat pada
docker:
1. Docker Images
Docker images adalah komponen docker yang berupa template dasar untuk
sebuah docker container. Sebuah images biasanya berisi sistem operasi maupun
aplikasi yang telah diinstall dan telah jadi. Image ini digunakan untuk menjalankan
container, di docker index (https://registry.hub.docker.com) terdapat banyak sekali
image yang bisa kita pilih dan kita gunakan sebagai base image.
2. Docker Container
Docker container merupakan sebuah image yang dapat dikemas dan bersifat
Read-Write, container berjalan di atas image. Pada setiap perubahan yang disimpan
pada container akan menyebabkan terbentuknya layer baru di atas base image. Kita
dapat melakukan instalasi aplikasi di dalamnya dan melakukan penyimpanan.
3. Docker Registry
Docker registry merupakan repositori distribusi kumpulan docker image
yang terpusat baik bersifat public dan private repositori. Registry public docker
disebut dengan Docker Hub. Disini kita bisa melakukan push image kita sendiri
maupun pull image.
4. Docker File
Dockerfile merupakan skrip otomasi yang berisi atau terdiri dari
serangkaian perintah (intruksi) yang akan dieksekusi secara otomatis dan berurutan
untuk membangun sebuah image. Repository Docker juga memiliki repository
yang mirip digunakan oleh GitHub dan source control system lainnya, namun
dengan jenis yang berbeda. Pada saat kita mengeksekusi perintah docker commit
maka image tersebut dapat kita beri nama dengan format username/nama_image.
Proses upload file ini juga disesuaikan dengan database repository, jika nantinya
ada nama yang sama dalam repository maka kita akan diminta untuk mengganti
nama akan tetapi jika nama yang diberikan belum pernah ada, maka kita bisa
melanjutkan proses upload image tersebut.
5. Docker Index
Docker index dan docker hub registry memiliki fungsi yang berlainan. Index
berfungsi untuk mengatur user account, permission, search dan hal lain yang ada
pada web interface public.

2.2.5 Pengertian dan Kegunaan Docker Hub


Docker Hub adalah repositori SaaS untuk berbagi dan mengelola wadah, di
mana kita akan menemukan gambar Docker resmi dari proyek sumber terbuka dan
vendor perangkat lunak dan gambar tidak resmi dari masyarakat umum. Kita dapat
mengunduh gambar kontainer yang berisi kode bermanfaat, atau mengunggah milik
kita, membagikannya secara terbuka, atau menjadikannya pribadi. Kita juga dapat
membuat registri Docker lokal jika diinginkan. (Docker Hub memiliki masalah di
masa lalu dengan gambar yang diunggah dengan backdoors yang dibangun ke
dalamnya.)
BAB III
PENUTUP

3.1 Kesimpulan

1. Kubernetes merupakan platform open-source yang digunakan untuk


mengelola platform container seperti Docker pada sistem dan
aplikasi. Dengan sistem yang komprehensif, Kubernetes dapat melakukan
automasi pada proses implementasi, koordinasi, pengelolaan aplikasi
dalam container, dan dapat digunakan pada berbagai platform container
seperti Docker.
2. Kubernetes juga mampu menyeimbangkan workload pada Docker dan
mengantisipasi ketidakseimbangan workload pada level server yang
hanya dibagi berdasarkan kebutuhan user. Sehingga, sistem dapat
terhindar dari flow kerja yang tidak efektif, logjams dan pengalokasian
container yang tidak efisien
3. Docker merupakan container, dan Kubernetes merupakan platform
orekstrasi untuk mengelola container seperti Docker. Keduanya
berkolaborasi untuk menghasilkan kinerja yang paling optimal untuk
menjalankan sistem dan aplikasi
DAFTAR PUSTAKA

https://kubernetes.io/id/docs/concepts/overview/what-is-kubernetes/ (Diakses tanggal 27 Maret


2021, Pukul : 19:35)
https://www.biznetgio.net/en/news/mengenal-docker-kubernetes (Diakses tanggal 27 Maret
2021, Pukul : 19:47)
https://idcloudhost.com/mengenal-apa-itu-kubernetes-dan-manfaat-dan-caramenggunakannya/
(Diakses tanggal 27 Maret 2021, Pukul : 19:57)
https://datacommcloud.co.id/kubernetes-adalah/ (Diakses tanggal 27 Maret 2021, Pukul : 20:05)
https://corenux.com/2019/06/23/belajar-docker-part-1-pengenalan-docker/ (Diakses tanggal
27 Maret 2021, Pukul : 20:19)
https://www.niagahoster.co.id/blog/docker-tutorial/ (Diakses tanggal 27 Maret 2021, Pukul :
20:26)

Anda mungkin juga menyukai