Dalam artikel ini, kita akan membangun aplikasi Tebak Angka sederhana menggunakan Python, Flask, dan Docker, serta membahas cara mengelola aplikasi tersebut menggunakan Kubernetes. Tujuan dari tutorial ini adalah untuk memberikan pemahaman dasar tentang bagaimana mengintegrasikan berbagai teknologi ini dalam satu proyek.
Sebelum memulai, pastikan Anda telah menginstal hal-hal berikut:
- Python: Pastikan versi terbaru telah diinstal di sistem Anda.
- Docker: Instal Docker dan pastikan bahwa Docker Daemon berjalan dengan baik.
- Kubernetes: Opsional untuk bagian pengelolaan aplikasi di Kubernetes.
Pertama, buatlah aplikasi Flask sederhana yang akan menjadi dasar dari aplikasi Tebak Angka kita. Buat direktori baru dan tambahkan file bernama app.py
. Isinya adalah sebagai berikut:
from flask import Flask, jsonify
import random
app = Flask(__name__)
@app.route('/lottery', methods=['GET'])
def lottery():
numbers = sorted(random.sample(range(1, 50), 6))
return jsonify(numbers)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
Kode ini membuat aplikasi Flask dengan endpoint /lottery
yang mengembalikan 6 angka acak dari 1 hingga 49. Flask akan berjalan di port 5000
.
Selanjutnya, kita akan membuat file bernama Dockerfile
untuk membangun image Docker dari aplikasi kita.
# Gunakan image dasar Python
FROM python:3.9-slim
# Menetapkan direktori kerja
WORKDIR /app
# Menyalin file requirements.txt dan menginstal dependensi
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
# Menyalin kode aplikasi
COPY . .
# Menentukan perintah untuk menjalankan aplikasi
CMD ["python", "app.py"]
Tambahkan file requirements.txt
yang berisi:
Flask==2.0.1
Sekarang, kita dapat membangun image Docker dan menjalankan container.
-
Bangun image Docker:
docker build -t lottery-app .
-
Jalankan container Docker:
docker run -d -p 5000:5000 lottery-app
Setelah menjalankan perintah ini, aplikasi akan dapat diakses melalui http://localhost:5000/lottery
.
Untuk mengelola aplikasi di Kubernetes, kita perlu membuat file konfigurasi Kubernetes untuk deployment dan service.
Buat file bernama deployment.yaml
:
apiVersion: apps/v1
kind: Deployment
metadata:
name: lottery-deployment
spec:
replicas: 3
selector:
matchLabels:
app: lottery
template:
metadata:
labels:
app: lottery
spec:
containers:
- name: lottery
image: lottery-app
ports:
- containerPort: 5000
Dan file service.yaml
untuk membuat service Kubernetes:
apiVersion: v1
kind: Service
metadata:
name: lottery-service
spec:
selector:
app: lottery
ports:
- protocol: TCP
port: 80
targetPort: 5000
type: LoadBalancer
Setelah membuat file-file ini, jalankan perintah berikut untuk mendeploy aplikasi di Kubernetes:
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
Dengan konfigurasi ini, Kubernetes akan mengelola aplikasi Tebak Angka dengan tiga replika dan membuat LoadBalancer yang memungkinkan akses eksternal ke aplikasi.
Dengan menggunakan prinsip yang sama, muatlah aplikasi yang anda buat di hands-on 1 dalam sebuah environment docker. Kemudian deploy aplikasi tersebut di kubernetes.
- Dokumentasikan setiap proses yang anda lakukan
- Buatlah laporan dengan menggunakan
LaTeX
menggunakan overleaf dan template IF ITERA - Sertakan screenshot dari setiap proses
- Sertakan referensi (jika ada) dan attachment percakapan dengan AI LLM (apabila ada) pada bagian akhir dari laporan.
- Unggah docker anda di Docker Hub dan kirimkan link docker anda pada laporan
- Deadline: 8 November 2024 | Pukul 23.59 WIB
Pengurangan nilai 10% untuk setiap jam keterlambatan
- Link Pengumpulan: Google Form