মনে করেন একটি অ্যাপ্লিকেশন তৈরি করেছেন। এখন সেটিকে ইন্টারনেটে লাইভ করতে হবে। তখন শুরু হয় আসল ঝামেলা। ক্লাউড প্ল্যাটফর্মে AWS, Azure, Google Cloud যান, মাউস দিয়ে একটা সার্ভার তৈরি করুন, ডেটাবেস বানান, স্টোরেজের জন্য S3 সেটআপ করুন। প্রতিবার একটা প্রজেক্ট তৈরি করতে গেলেই এই manual clicking, copy-paste এর কাজগুলো করতে হয়। এতে সময় নষ্ট হয়, ভুল হওয়ার চান্স থাকে।
পুরো ব্যাপারটা অনেকটা এমন: আপনি একজন আর্কিটেক্ট, কিন্তু আপনার নিজের হাতে ইট-সিমেন্ট মেখে দেয়াল গাঁথতে হচ্ছে।
এই সমস্যা দূর করতেই আসে Pulumi। Pulumi হলো এমন একটি স্মার্ট টুল, যা আপনাকে কোড লিখে পুরো ক্লাউড ইনফ্রাস্ট্রাকচার তৈরি করার সুযোগ দেয় আপনার পছন্দের ল্যাঙ্গুয়েজ Python, JavaScript, বা Go ব্যবহার করেই সার্ভার তৈরি করছেন! শুনতে অবিশ্বাস্য মনে হতে পারে, কিন্তু এটা আসলে Infrastructure as Code (IaC) এর একটি দারুণ উদাহরণ। শুধু কনফিগারেশন নয়, আপনি লুপ (loop), ফাংশন (function), এবং কন্ডিশনাল লজিক ব্যবহার করে আপনার ইনফ্রাস্ট্রাকচার তৈরি করতে পারবেন। এতে একটু কঠিন সেটআপগুলো অনেক সহজে ম্যানেজ করা যায়।
ধরুন, AWS এ আপনি একটি সিম্পল স্টোরেজ (S3 Bucket) তৈরি করবেন। আপনি আপনার পছন্দের TypeScript দিয়ে ছোট স্ক্রিপ্ট লেখেন:
const aws = require("@pulumi/aws");
const bucket = new aws.s3.BucketV2("mybucket");Pulumi আপনার কোডটা পড়ে। সে বুঝে যায় আপনার ক্লাউডে কী কী রিসোর্স দরকার। এরপর সে নিজে থেকেই AWS এর সাথে কথা বলে আপনার জন্য S3 Bucketটি তৈরি করে দেয়। এর মাঝে কোনো manual clicking বা কনফিগারেশন নেই। এটি একদম repeatable এবং error-free।
কেন একজন ডেভেলপারের জন্য এই টুল দরকার?
ডেভেলপারের জন্য এই কনসেপ্ট বোঝা জরুরি আমি মনে করি।
- যেহেতু আপনি কোড লিখছেন, তাই আপনার IDE, লিন্টার এবং এমনকি ইউনিট টেস্টিং ফ্রেমওয়ার্ক ব্যবহার করে ইনফ্রাস্ট্রাকচারে ভুল হওয়ার আগেই সেটা ধরে ফেলতে পারবেন। ম্যানুয়াল ভুল হওয়ার সুযোগ কমে যায়।
- আপনার অ্যাপ্লিকেশন এবং ইনফ্রাস্ট্রাকচারের কোড একই রিপোজিটরিতে রাখা যায়। এতে অ্যাপ্লিকেশন এবং সার্ভার দুটোকেই একই সাথে আপডেট করা সহজ হয়ে যায়।
- Pulumi কোড রান করার আগে আপনাকে একটা প্রিভিউ দেখাবে, যেখানে আপনি দেখতে পাবেন কী কী রিসোর্স তৈরি হবে বা আপডেট হবে। এতে করে ভুল করে অপ্রয়োজনীয় কোনো দামি রিসোর্স তৈরি হওয়া থেকে বাঁচা যায়।
Pulumi ক্লাউড ম্যানেজমেন্টের কঠিন কাজকে আমাদের পরিচিত কোডিং এর দুনিয়ায় নিয়ে এসেছে।
সত্যি বলতে, এই ধরনের টুল আমাদের একটা নতুন mindset দেয়। কোড লেখার বাইরেও ক্লাউড, ডেটাবেস এবং নেটওয়ার্কিং-এর মতো বিষয়গুলো শিখুন। কারণ আপনার career-কে next level-এ নিতে হলে এগুলা লাগবেই মাফ নাই।

Mehedi Imun
Full Stack Web Developer
Full stack web developer in Dhaka, Bangladesh building web products end to end with React, Next.js, Node and PostgreSQL. API design, Docker and CI/CD.
More about MehediGet new posts by email
No spam. Unsubscribe anytime.

Comments