Aplikasi Bisa Berjalan Dimana Saja Tanpa Perlu Install? Yuk Berkenalan dengan Docker atau Container Teknologi

Yuk mari kita mulai dulu dengan mengerti tentang aplikasi.

Aplikasi

Aplikasi itu pasti memiliki fungsi, fungsi tertentu yang akan mempermudah kita sebagai user. Contoh Word editor kita pakai untuk mengetik, Power Point untuk membuat presentasi, Calculator untuk menghitung, dan lain lain.

Aplikasi butuh tempat untuk hidup. Kita bisa taro di hape kita, bisa taro di PC yang kita miliki, atau di server. Di artikel kali ini kita akan fokus pada aplikasi yang hidup di Computer atau Server.

Sebelum kita bisa menggunakan aplikasi, kita harus melakukan proses instalasi terlebih dahulu. Proses penginstallan aplikasi sendiri bisa bermacam macam, bisa cukup menghabiskan waktu, bisa juga sangat mudah dan simple.

3 hal yang sudah kita dapat ya gengz, bahwa :

  1. Aplikasi memiliki fungsi
  2. Aplikasi harus hidup di sebuah lingkungan (Computer/Server)
  3. Aplikasi butuh proses instalasi sebelum bisa digunakan

Install Aplikasi di Server

Mari kita coba ambil contoh aplikasi dibawah ini

https://github.com/ludesdeveloper/python-docker-example

git clone https://github.com/ludesdeveloper/python-docker-example.git

Bisa kita lihat bahwa aplikasi kecil ini memiliki 3 file, mari kita fokus ke 2 file saja dulu : main.py dan requirements.txt

Jika kita lihat isi dari main.py dibawah ini, anda akan tahu bahwa ini adalah file inti dari aplikasi yang kita miliki. Ini adalah fungsi yang bakal berjalan pada saat kita execute aplikasinya

from flask import Flask
app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello, Docker!'


if __name__ == '__main__':
    app.run(debug=True, host="0.0.0.0", port=5000)

Jika kita lihat isi dari requirements.txt, anda akan tahu bahwa ini berisi dependensi atau library yang dibutuhkan untuk menjalankan aplikasi kita. Dan dependensi harus diinstall sebelum kita bisa menjalankan aplikasi kita

Flask==2.1.2

Untuk menjalankan aplikasi sederhana ini anda bisa :

  1. Menginstall Python terlebih dahulu
  2. Menginstall library dengan command “pip install -r requirements.txt”
  3. Menjalankan Python app dengan “python main.py”

Berhenti dan Memahami

Bila kita lihat sejenak apa yang kita telah kita lakukan untuk menginstall aplikasi di server, kita sadar bahwa semua itu adalah proses yang berurutan.

Sekarang pertanyaannya adalah, bila kita ingin aplikasi kita diinstall di 10 server dengan alasan user yang mengakses aplikasi kita cukup banyak, apa yang harus kita lakukan?

Jawaban simplenya adalah menyiapkan 10 server yang sama dengan melakukan proses yang berurutan di setiap server yang akan menjalankan aplikasi kita.

Container Datang dan Membantu

Nah disini container technology sangat membantu untuk menyelesaikan proses yang berurutan yang saya singgung sebelumnya

Gimana caranya? Yuk kita lihat file ke ketiga Dockerfile

1 FROM python:3.8-slim-buster
2 WORKDIR /app
3 COPY requirements.txt requirements.txt
4 RUN pip3 install -r requirements.txt
5 COPY . .
6 EXPOSE 5000
7 CMD [ "python", "main.py"]

Mari kita lihat baris ke 4 dulu ya gengz, disitu kita lihat ada command “pip3 install -r requiremets.txt”. Dan bila kita lihat ke sesi sebelumnya, kita juga melakukan hal yang sama yaitu melakukan instalasi terhadap dependensi / library yang dibutuhkan

Mari kita lihat juga di baris 7, disitu kita bisa lihat ada command “python main.py”. Dan bila kita lihat ke sesi sebelumnya, kita juga melakukan hal yang sama agar aplikasi tersebut berjalan

Dockerfile

Yang bisa kita coba pahami disini adalah bahwa Dockerfile itu memiliki semua instruksi yang berkaitan dengan proses yang berurutan agar aplikasi kita bisa berjalan

Container Image

Pastikan anda memiliki docker desktop atau docker enginer terinstall di PC anda, lakukan command dibawah ini

docker build -t python-docker-example .

Perhatikan baik baik gambar diatas, disini kita bisa melihat bahwa saat membuat image, docker mengeksekusi semua perintah yang ada di dalam Dockerfile, semua proses yang berurutan

Mari kita check image yang telah terbuat ya gengz

docker images

Kita sudah memiliki images dengan nama python-docker-example dengan tag latest

Menjalankan Container

Saat container image sudah ada, untuk menjalankan container kita hanya butuh 1 command lagi

docker run -d -p 5000:5000 python-docker-example:latest
docker ps -a

Container sudah jalan, dan bila anda membuka localhost:5000, anda akan bisa melihat hasilnya

Berhenti dan Memahami

Sekarang pertanyaannya adalah, bila kita ingin aplikasi kita diinstall di 10 server dengan alasan user yang mengakses aplikasi kita cukup banyak, apa yang harus kita lakukan?

Jawaban sudah mulai berbeda nih gengz, saat ini kita bisa menginstall docker run time di 10 server tersebut dan melakukan hal yang sama yang sudah kita lakukan

  1. Docker build
  2. Docker run

Container Registry

Mari kita stop dulu container yang sudah jalan (sesuaikan container id dengan yang anda telah miliki)

docker ps -a
docker stop 10e9b3247dac
docker ps -a
docker rm 10e9b3247dac
docker ps -a

Mari jalankan image yang sama, tapi saya sudah push ke Container Registry (DockerHub)

docker run -d -p 5000:5000 ludesdeveloper/python-docker-example:latest
docker ps -a

Wow, jauh lebih cepat kan prosesnya

Berhenti dan Memahami

Sekarang pertanyaannya adalah, bila kita ingin aplikasi kita diinstall di 10 server dengan alasan user yang mengakses aplikasi kita cukup banyak, apa yang harus kita lakukan?

  1. Docker run container image registry

Step yang kita butuhkan untuk menjalankan aplikasi menjadi sangat sedikit kan gengz, sebelumnya kita butuh melakukan semua proses berurutan secara manual, lalu hanya tinggal docker build dan run, sekarang kita hanya butuh menjalankannya.

Akhir Kata

Benefit yang diberikan container teknologi dalam packaging aplikasi sangatlah banyak, dan saya menyerahkan hal tersebut untuk anda gali sendiri, karena experience jauh lebih baik dari pada tutorial yang diberikan oleh orang lain. Semoga bermanfaat gengz.

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

Situs yang Didukung WordPress.com.

Atas ↑

%d blogger menyukai ini: