Practical Python for Real DevOps
আগের আটটা মডিউল ছিল Python-এর ভাষা আর ধারণা নিয়ে। এই অংশটা আলাদা — এখানে আমরা কিছু বানাবো।
আটটা পর্ব, আর প্রতিটা আগেরটার উপর দাঁড়ানো। প্রথমে একটা স্ক্রিপ্ট, তারপর সেটা একটা টুল, তারপর সেই টুল AWS-এ কাজ করে, তারপর সেটা রোজ রাতে নিজে থেকে চলে — আর শেষে একটা কমান্ড যা deploy করে, যাচাই করে, log রেখে দেয় আর দলকে জানায়।
একটা কথা আগেই বলে রাখি: এখানে প্রতিটা কমান্ড এই সাইটেই চলে। minikube start, aws configure, docker push, kubectl get all, python3 pipeline.py — সব। বাইরে কোনো অ্যাকাউন্ট খুলতে হবে না, কিছু ইনস্টল করতে হবে না।
ক্রম মেনে পড়ো। পর্ব ৫-এর প্রজেক্টটা পর্ব ৪-এর Boto3 ধরে নেয়, আর পর্ব ৮ আগের সাতটার সবটুকু এক জায়গায় আনে। মাঝখান থেকে শুরু করলে কাজ করবে, কিন্তু কেন কাজ করছে সেটা বোঝা যাবে না।
এই মডিউলের পর্বগুলো
পর্ব ১ — Python কেন, আর কতটুকু লাগে
হাতে-কলমে ট্র্যাকের শুরু। DevOps-এ Python কেন লাগে, Bash-এর সাথে ভাগাভাগি কোথায়, আসলে কতটুকু গভীরতা দরকার, আর variable থেকে loop পর্যন্ত বুনিয়াদ — শেষে একটা সত্যিকারের স্ক্রিপ্ট যা log ফাইল খুঁজে বের করে।
পর্ব ২ — ফাংশন, মডিউল ও exception
একই কোড বারবার না লিখে ফাংশন, ফাংশনগুলো একসাথে রেখে মডিউল, আর ভুল হলে স্ক্রিপ্ট না মরে যাওয়ার ব্যবস্থা। শেষে একটা সত্যিকারের server reachability checker, তিন ধাপে।
পর্ব ৩ — অটোমেশন ও CLI টুল
subprocess দিয়ে সিস্টেমের কমান্ড চালানো, shutil দিয়ে ডিস্ক পাহারা, argparse দিয়ে সত্যিকারের CLI টুল বানানো, শেবাং দিয়ে চালানোর যোগ্য করা, আর environment variable দিয়ে config ও secret সামলানো।
পর্ব ৪ — Boto3 দিয়ে AWS
Boto3 কী, credentials কোথা থেকে আসে আর কোন ক্রমে, S3 ও EC2 নিয়ে কাজ, client বনাম resource, ভুল সামলানো, আর IAM-এর নিয়ম — শেষে একটা account inventory টুল।
পর্ব ৫ — প্রজেক্ট: রাতে EC2 বন্ধ, সকালে চালু
প্রথম সত্যিকারের প্রজেক্ট। tag দিয়ে নিরাপদে বেছে নেওয়া, dry run দিয়ে যাচাই, stop ও start, IAM policy, cron দিয়ে সময় বাঁধা, আর log রাখা — যাতে রোজ রাতে কাজটা নিজে থেকেই হয়।
পর্ব ৬ — Python দিয়ে Kubernetes অটোমেশন
kubectl যা করে, Python দিয়েও করা যায় — আর তার পর লুপ, শর্ত, retry আর রিপোর্ট যোগ করা যায়। kubeconfig, দুই ধরনের connect, CoreV1 বনাম AppsV1, pod দেখা, deployment বানানো, scale করা, মুছে ফেলা, আর YAML-এর সাথে তুলনা।
পর্ব ৭ — CI/CD: Jenkins-এর ভেতরে Python
shell-ভারী pipeline-এর বদলে একটা Python স্ক্রিপ্ট — build, push, deploy আর Slack-এ খবর। কোন ধাপে ভাঙল সেটা বলা, বারবার চালানো নিরাপদ রাখা, secret কোডের বাইরে রাখা, আর Jenkinsfile-এ credentials বাঁধা।
পর্ব ৮ — ক্যাপস্টোন: এক কমান্ডে deploy, যাচাই আর log সংরক্ষণ
পুরো কোর্সটা একটা স্ক্রিপ্টে মেলে — manifest apply, LoadBalancer-এর ঠিকানার জন্য সীমিত অপেক্ষা, pod-এর log জোগাড়, S3-তে তোলা, আর Slack-এ খবর। সাথে অর্ধেক-সফল pipeline চেনা আর context বদলানোর বিপদ।