Makefile สำหรับ DevOps: รวม Commands ที่ใช้บ่อยไว้ในที่เดียว

Makefile นั้นเป็นไฟล์ที่ช่วยให้เรารวม Commands ที่ใช้บ่อยไว้ในที่เดียว เพื่อให้การทำงาน DevOps นั้นสะดวก และรวดเร็วขึ้น บทความนี้จะบอกการใช้ Makefile สำหรับ DevOps และรวม Commands ที่ใช้บ่อยไว้ในไฟล์ Makefile ทั้งหมด

Makefile คืออะไร?

Makefile นั้นเป็นไฟล์ที่ใช้ในการกำหนด Tasks หรือ Commands ต่างๆ เพื่อให้ง่ายต่อการใช้งาน และสามารถใช้ได้บ่อยๆ ไฟล์ Makefile นั้นจะอยู่ในรูปของ Key-Value Pairs โดย Key จะเป็นชื่อของ Task และ Value จะเป็น Command ที่ต้องการใช้

เหตุผลที่เราต้องใช้ Makefile ในการพัฒนา DevOps นั้นเพราะว่า Makefile นั้นช่วยให้เราลดความซ้ำซ้อนของ Commands และยังช่วยให้การทำงาน DevOps นั้นสะดวก และรวดเร็วขึ้น

ตัวอย่างการสร้าง Makefile สำหรับ DevOps

ต่อไปนี้จะเป็นตัวอย่างการสร้าง Makefile สำหรับ DevOps และรวม Commands ที่ใช้บ่อยไว้ในไฟล์ Makefile ทั้งหมด

Makefile
.PHONY: help
help:
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'

.PHONY: build
build: ## Build Docker Image
	docker build -t myapp:latest .

.PHONY: up
up: ## Run Docker Container
	docker run -d --name myapp -p 8080:8080 myapp:latest

.PHONY: down
down: ## Stop Docker Container
	docker stop myapp && docker rm myapp

.PHONY: logs
logs: ## Show Docker Container Logs
	docker logs -f myapp

.PHONY: restart
restart: ## Restart Docker Container
	docker restart myapp

.PHONY: deploy
deploy: ## Deploy to Production
	kubectl apply -f k8s/deployment.yaml

.PHONY: rollback
rollback: ## Rollback to Previous Version
	kubectl rollout undo deployment/myapp

.PHONY: test
test: ## Run Tests
	python -m pytest tests/

.PHONY: lint
lint: ## Run Linting
	pylint myapp/

.PHONY: fmt
fmt: ## Format Code
	black myapp/

.PHONY: security
security: ## Check Security
	bandit -r myapp/

.PHONY: deps
deps: ## Update Dependencies
	pip install --upgrade -r requirements.txt

.PHONY: clean
clean: ## Clean Up
	find . -type f -name '*.pyc' -delete
	find . -type d -name '__pycache__' -delete

.PHONY: init
init: ## Initialize Project
	pip install -r requirements.txt

.PHONY: backup
backup: ## Backup Database
	dump_db.sh

.PHONY: restore
restore: ## Restore Database
	restore_db.sh

.PHONY: migrate
migrate: ## Run Database Migrations
	alembic upgrade head

.PHONY: seed
seed: ## Seed Database
	python scripts/seed_db.py

จากตัวอย่างข้างต้น สามารถใช้ Makefile ได้โดยการ Run Command

$ make build
$ make up
$ make down
$ make logs
$ make restart
$ make deploy
$ make test
$ make lint

ขั้นตอนการใช้ Makefile

ต่อไปนี้จะเป็นขั้นตอนการใช้ Makefile สำหรับ DevOps

  • สร้างไฟล์ Makefile ในไดเรกทอรี่ root ของ Project
  • เพิ่ม Tasks และ Commands ในไฟล์ Makefile
  • รันคำสั่ง make ตามด้วยชื่อ Task ที่ต้องการ
  • ตรวจสอบผลลัพธ์

ประโยชน์ของการใช้ Makefile

ประโยชน์ของการใช้ Makefile ในการพัฒนา DevOps มีดังต่อไปนี้

  • ลดความซ้ำซ้อนของ Commands
  • ง่ายต่อการใช้งาน
  • สะดวก และรวดเร็วขึ้น
  • สามารถใช้ได้ทั่วไป
  • ลดข้อผิดพลาดจากการพิมพ์คำสั่ง
  • ง่ายต่อการแชร์กับทีม

สรุป

Makefile นั้นเป็นเครื่องมือที่มีประโยชน์สำหรับการพัฒนา DevOps เพราะว่ามันช่วยให้การทำงาน DevOps นั้นสะดวก และรวดเร็วขึ้น และลดความซ้ำซ้อนของ Commands ดังนั้นหากใครกำลังพัฒนา DevOps อยู่ ก็อย่าลืมใช้ Makefile เพื่อให้การทำงานนั้นสะดวก และรวดเร็วขึ้น