বিজ্ঞান ব্লগ

ক্লাউড কম্পিউটিং-আদ্যোপান্ত

অনেক গুরুত্বপূর্ণ, এর অনেক ডিমান্ড, ক্লাউড কম্পিউটিং শিখলে এই হবে সেই হবে – এর কারণ আসলে কি? কেন ক্লাউড নিয়ে এত হৈচৈ? কেন এতে এতো টাকা। কারণটা একটু জানার চেষ্টা করি-
আমি খুব নিখুঁতভাবে লিখবো না, আমার এই লেখার উদ্দেশ্য যারা এই বিষয়ে একদমই জানে না বা বুঝে না তাদের কিছু প্রাথমিক ধারণা দেয়া। তাই আমি তাদের জন্য সহজভাবে বিষয়টি তুলে ধরবো, অনেক কিছু হয়ত একটু অন্যভাবে তুলে ধরবো যেটা যারা এই বিষয়ে অভিজ্ঞ তাদের জন্য উপযুক্ত নাও হতে পারে। কাজেই পড়ার সময় মনে রাখবেন এই লেখার পাঠক যারা ক্লাউড কম্পিউটিংএ নতুন তারা।
তো শুরু করা যাক –
প্রথম কথা হচ্ছে ক্লাউড কম্পিউটিং কেন এত দামি?
কারণ হোল ডিমান্ড। আমরা জানি যে জিনিসের ডিমান্ড বেশি সেটার দাম বেশি।
এখন কথা হচ্ছে ডিমান্ড কেন বেশি? কারণ বহু ব্যবসা প্রতিষ্ঠান এই প্রযুক্তি ব্যাবহার করে অনেক অনেক টাকা মুনাফা করতে পারে। তাদের ব্যয় কমে যায় আর আয় বেড়ে যায়। মনে করুন কেউ যদি আপনাকে বলে যে আপনি যদি তার জন্য ১ কোটি টাকা মুনাফা বৃদ্ধি করতে পারেন, তাহলে সে আপনাকে ১ লক্ষ টাকা দিবে, তাহলে বিষয়টি কি যুক্তিযুক্ত? অবশ্যই। আর সেটাই ঘটছে এখানে। আমরা জানবো যে কিভাবে সেটা হচ্ছে।
আমরা জানি যে কোন একটি ব্যবসা প্রতিষ্ঠানে যদি সফটওয়্যার ব্যাবহার করা যায় তাহলে মুনাফা বৃদ্ধি করা সম্ভব। সফটওয়্যার অনেক মানুষের কাজ কমিয়ে দিতে পারে। অনেক ভুল কম হয়। আরও অনেক সুবিধা। আবার যেসব প্রতিষ্ঠান ব্যবসাই করে সফটওয়্যার এর মাধ্যমে যেমন ই-কমার্স, তাদের তো সফটওয়্যার এর উপর নির্ভরশীলতা আরও বেশি। সফটওয়্যার বন্ধ তো ব্যবসা বন্ধ। কাজেই সফটওয়্যার যাতে সব সময় কর্মক্ষম থাকে তা অনেক গুরুত্বপূর্ণ।
এখন মনে করুন একটি ই-কমার্স ওয়েবসাইট ভালো মত চলছিল। লাভও হচ্ছিল, কিন্তু আস্তে আস্তে ব্যাবহারকারী বাড়তে শুরু করলো। আর এক সময় সেটি আর ঠিকমত কাজ করতে পারলো না, তাহলে স্বভাবতই সেই ব্যবসা প্রতিষ্ঠানের মালিক চিন্তিত হয়ে পরবেন। তিনি চাইবেন না বিক্রি বন্ধ হয়ে যাক, বা তার ব্যবসার সুনাম নষ্ট হোক। ব্যাবহারকারীরা বিরক্ত হয়ে গেলে ব্যবসা নষ্ট হয়ে যাবে। তাই এর জন্য যেকোনো ব্যবস্থা নিতে তিনি রাজি থাকবেন।
এখন কথা হোল, তিনি কিভাবে এই সমস্যার সমাধান করতে পারেন? একটি ওয়েবসাইট একটি সার্ভারে থেকে কাজ করে। সার্ভার দুর্বল হলে অনেক ব্যাবহারকারীকে সার্ভিস দেয়া সম্ভব হয় না, তখন সমস্যা দেখা দেয়। যেমন ওয়েবসাইট স্লো হয়ে যায় বা একদমই কাজ করা বন্ধ করে দেয়।
এমন পরিস্থিতিতে আরও উচ্চ ক্ষমতাসম্পন্ন সার্ভার ব্যাবহার করে সমস্যার সমাধান করা যেতে পারে। কিন্তু এতে খরচ আরও বেড়ে যাবে। কথা হোল, এরপর আবার ব্যাবহারকারী বাড়তে পারে আর তখন আবার একইভাবে আরও ক্ষমতাসম্পন্ন সার্ভার ব্যাবহার করতে হবে। এভাবে কয়েকবার ক্ষমতা বাড়ানোর পর দেখা যাবে খরচ এতো বেড়ে যাচ্ছে যে ব্যবসা থেকে আর কোন লাভ করা যাচ্ছে না। কারণ সার্ভার যত বেশি ক্ষমতাসম্পন্ন করা হবে, তার খরচ তত বেশি হারে বাড়তে থাকবে। যেমন সার্ভারের ক্ষমতা যদি দ্বিগুণ করা হয় দেখা যাবে খরচ বাড়বে তিনগুন, আবার ক্ষমতা ৩গুন করলে খরচ পাঁচগুণ, ক্ষমতা পাঁচগুণ করলে খরচ বিশগুণ। কাজেই এভাবে ক্ষমতা বাড়াতে গেলে লাভের লাভ কিছুই হবে না। আর একটা সময় গিয়ে যখন আর উচ্চ ক্ষমতাসম্পন্ন কোন সার্ভার বাজারে পাওয়া যাবে না তখন ব্যবসা বন্ধ হয়ে যাবে।
এটা হোল একধরনের সমস্যা যেটাকে আমরা বলি স্কেলিং এর সমস্যা। এই স্কেলিং এর সমস্যার সমাধানের জন্য আমরা একটি উচ্চ ক্ষমতাসম্পন্ন সার্ভার ব্যাবহার না করে কয়েকটি মোটামুটি ক্ষমতাসম্পন্ন সার্ভার ব্যাবহার করতে পারি যদি আমরা ব্যাবহারকারীদের সার্ভারগুলোতে ভাগ করে দিতে পারি। কিন্তু এই কাজটি করতে গেলে আর আগের মত করে সার্ভার ব্যাবহার করা যাবে না। এখন দেখতে হবে, যখন একজন ব্যাবহারকারী ওয়েবসাইটে ঢুকার চেষ্টা করে তখন তাকে কোন সার্ভারে পাঠাতে হবে সেটা কিভাবে নিয়ন্ত্রণ করা যায়। এখানে তখন রাউটিং এবং লোড ব্যালেন্সার বলে একটি ফিচার নিয়ে আসতে হবে যেটা এই বিষয়গুলো নিয়ন্ত্রণ করবে।
এখন মনে করুন সেই মালিক যার ব্যবসা বন্ধ হতে বসেছিল, লাভের থেকে খরচ বেশি হয়ে গেছিল, আর সার্ভার কাজ করছিল না, এখন আপনি এসে যদি তাকে এইভাবে সমস্যার সমাধান করে দিতে পারেন, আবার ওয়েবসাইট কাজ করতে শুরু করে, খরচ অনেক কমে যায়, তাহলে কি সেই মালিক খুশি হবেন না? তিনি তো তখন আপনাকে অনেক বেতন দিয়ে চাকরি দিতে চাইবেন। এর উপর যদি আপনি তাকে বলেন যে কোন দিন আর তাকে এই সমস্যায় পরতে হবে না, ব্যাবহারকারী যতই বাড়ুক, লাভও বাড়তে থাকবে, সার্ভারও বন্ধ হবে না, তাহলে তো সেই মালিকের খুশিতে আত্মহারা হবারই কথা। এখনতো সে খালি চোখে টাকা দেখতে থাকবে, আর আপনাকে এর ভাগ দিতে তার কোন খারাপই লাগবে না।
ঠিক আছে, আমরা লাভ আর টাকার বিষয়টি বুঝতে পারলাম কিছুটা। কিন্তু এটার থেকেও বড় লাভ আছে যেটা আমরা এখন আলাপ করবো-
মনে করুন যে ওয়েবসাইট মালিকের কথা আলোচনা করছিলাম, তিনি যখন ব্যবসা শুরু করেন তখন ২ লক্ষ টাকা দিয়ে একটি সার্ভার কিনে ব্যবসা শুরু করেন। কিন্তু তার বিজনেস অনেক দ্রুত বাড়তে থাকে আর ৬ মাসের মধ্যেই তার আরও ক্ষমতাসম্পন্ন সার্ভার (অথবা আরও একটি সার্ভার, যেটাই হোক) কেনার প্রয়োজন পরে। তাই তাকে আরও ২ লক্ষ টাকা দিয়ে সেটা কিনতে হোল। এভাবে মনে করি ২ বছরের মধ্যে তার ১০ টি সার্ভার হয়ে গেল আর তিনি ২৫ লক্ষ টাকা এই সার্ভারের পিছনে খরচ করে ফেললেন। কিন্তু ২ বছর পরে তার টিম সফটওয়্যারটিতে কিছু পরিবর্তন আনার ফলে সার্ভারের উপর চাপ অর্ধেক হয়ে গেল, আর এজন্য তিনি টিমকে অনেক পুরস্কারও দিলেন। কিন্তু এখন সার্ভার লাগবে অর্ধেক। তাহলে এই যে তিনি এতো টাকা বিনিয়োগ করলেন, সেটা কিন্তু পানিতে গেল। কারণ এমন হতে পারে যে এরপর আর ব্যাবহারকারী বাড়ল না। কাজেই এই টাকা তুলে আনতে তার অনেক বছর লেগে যাবে অথচ তিনি এই টাকা অন্য কাজে বিনিয়োগ করতে পারতেন।
কোয়ান্টাম কম্পিউটার সম্পর্কে জানতে এখনই ঘুরে আসো
আবার মনে করুন যে তার টিম লক্ষ্য করলো যে ঈদের আগে সার্ভারের উপর প্রচুর চাপ পরছে। এই সময় বেচাকেনা বেশি হয়। এমনি সময় যেখানে ৫টি সার্ভার দিয়ে খুব ভালো মত হয়ে যায়, তখন ঈদের সময় আসল
আসলে ২০ টি সার্ভারের প্রয়োজন পরে। এখন তিনি কি করবেন? যদি তিনি এখন ঈদের সময় ৫টি সার্ভারই রেখে দেন তাহলে চাপ পরলে আবার সার্ভার বন্ধ, বিক্রি বন্ধ, কাজেই আবার সেই একই সমস্যা। আগে যদিও আপনি একাধিক সার্ভার ব্যাবহার করার মাধ্যমে তার সমস্যার সমাধান করেছিলেন, কিন্তু এখন অতিরিক্ত সার্ভার না কিনার কারনে আবার ব্যবসা ক্ষতির মুখে পরল।
আবার যদি তিনি আরও ১৫টি সার্ভার কিনে আনেন তাহলে ঈদের পর সেগুলো কি করবেন? আবার সেই লোকসান। এমন অবস্থায় আপনি যদি তাকে এমন একটা উপায় করে দিতে পারেন যে ঈদের সময় তিনি অল্প কিছু খরছে ১৫টি সার্ভার ভাড়া নিতে পারবেন আর ঈদের পর সেগুলো ফেরত দিতে পারবেন, তাহলে কি তিনি খুশি হবেন না? অবশ্যই আপনি তাকে আবার বিপদ থেকে বাঁচিয়ে দিলেন।
এবার মালিক আপনার উপর অনেক খুশি, তিনি আপনাকে প্রোমোশন দিলেন। কিন্তু তিনি ভাবছেন যে এই সার্ভারগুলো কিনার জন্য তাকে অনেক টাকা বিনিয়োগ করতে হয়। অথচ সেই টাকা লাভ থেকে উঠে আসবে কি আসবে না বুঝার উপায় নেই। যদি কিছুদিন পর তিনি দেখতে পান যে এই ব্যবসা থেকে ভালো লাভ হচ্ছে না, তাহলে তার পুরো বিনিয়োগটা পানিতে যাবে।
এবার আপনি যদি তাকে এমন একটি পথ বলে দিতে পারেন যে, তাকে আর একবারে লক্ষ লক্ষ টাকা খরচ করে সার্ভার কিনতে হবে না, তবে মাসে মাসে তিনি কিছু কিছু করে বিল হিসাবে টাকা দিতে পারেন। সার্ভার ব্যাবহার না করলে কোন বিল দিতে হবে না। তাহলে কিন্তু তিনি নিশ্চিন্তে অল্প মূলধন নিয়ে ব্যবসা করতে পারবেন।
আমরা এতক্ষণ পর্যন্ত যে সুবিধাগুলো আলাপ করলাম মূলত এই দুটি হচ্ছে ক্লাউড কম্পিউটিং এর সবচেয়ে বড় সুবিধা। এই দুটি হচ্ছে –
১) Disposable Infrastructure (বাতিল করা যায় এমন হার্ডওয়্যার, ইন্টারনেট ইত্যাদি)
২) Pay As You Go Billing (যতটুকু ব্যাবহার ততটুকু বিল, যেমন বিদ্যুৎ বিল)
এছাড়া ক্লাউড কম্পিউটিং এর আরও অনেক সুবিধা আছে, যেমন
৩) নিরাপত্তা
৪) নির্ভরযোগ্যতা
৫) ঝামেলাহীন ব্যাবহার
যেমন, ক্লাউডে আপনি এমনভাবে আপনার অবকাঠামো প্ল্যান করতে পারবেন যে সেখানে সহজে ডাটা হারিয়ে যাওয়ার সম্ভাবনা খুব কম। অফিসে ঢুকে কেউ সার্ভার চুরি করে নিয়ে যাবে না। সার্ভার ও অন্যান্য হার্ডওয়্যার দেখভাল করার জন্য কোন লোক রাখতে হবে না। তবে এই সব সুবিধা ক্লাউড ছাড়া অন্য ধরণের হোস্টিং সার্ভিসেও পাওয়া যায়। তবে ক্লাউড কম্পিউটিং আপনাকে এই বিষয়গুলো নিয়ন্ত্রণ করার যে সুবিধা দিবে সেগুলো আপনি অন্যত্র পাবেন না। ১) আর ২) এর সাথে মিলে ৩), ৪) ও ৫) আপনাকে এমন নিয়ন্ত্রণ দিবে যে মনে হবে আপনি নিজের অফিসেই হার্ডওয়্যার গুলো চালাচ্ছেন, অথচ কোন ঝামেলা ছাড়া। যে কাজ করার জন্য অনেক বড় টিম লাগতো, আপনি একাই এখন সে কাজ করতে পারবেন একটি প্যানেলে বসে (অথবা কোড দিয়ে)।
এখন কথা হচ্ছে, বুঝলাম কেন এটার এতো চাহিদা। কিন্তু এটা আসলে কি বা কিভাবে কাজ করে?
আপনি যদি “ক্লাউড কম্পিউটিং” এর অর্থ চিন্তা করেন তাহলে দেখবেন যে এর মানে দাড়ায় – “কম্পিউটেশন ইন ক্লাউড”। আমরা যখন কোন কোড চালাই তখন এটা গণনা করে অর্থাৎ কম্পিউট করে। সেটা হয় আমাদের কম্পিউটার (সার্ভার) মেশিনে। এর জন্য আমাদের হার্ডওয়্যার কিনতে হয়। যদি আমরা চাই যে এই কম্পিউটেশনটা আমাদের মেশিনে হবে না, তাহলে আমরা যেটা করতে পারি তাহল আমরা ক্লাউডে কিছু ভার্চুয়াল মেশিন তৈরি করে সেখানে এই কাজটি করতে পারি।
এখন কথা হল ক্লাউডে ভার্চুয়াল মেশিন মানে কি?
আমরা জানি যে আমরা আমাদের নিজেদের মেশিনে কোন একটি সফটওয়্যার ইন্সটল করে (যেমন VMBox) আমাদের মেশিনের রিসোর্স ব্যাবহার করে এক বা একাধিক ভার্চুয়াল মেশিন তৈরি করতে পারি। এখন মনে করুন এই রিসোর্সটা আমার মেশিনে নেই এটা আছে অন্য কোথাও, অন্য কোন দেশে আর ইন্টারনেটের মাধ্যমে আমি কোন কমান্ড দিলে সেটা ঐ রিসোর্স থেকে একটি ভার্চুয়াল মেশিন তৈরি করে আমাকে সেটি ব্যাবহার করার জন্য সুযোগ করে দেয়। আর আমি সেটায় ইন্টারনেট আছে এমন যেকোনো জায়গা থেকে ঢুকতে পারি, আর আমার মেশিনে আমি যে ধরণের কম্পিউটেশন করতে পারতাম তার সবই করতে পারি।
এটা হোল ক্লাউড কম্পিউটিং এর বেসিক কনসেপ্ট। তবে অন্ধ লোকের হাতি দেখার মত, আমরা যদি বর্ণনা দিয়ে এটি বুঝার চেষ্টা করি তাহলে নতুন কারো জন্য বুঝতে অসুবিধা হওয়া স্বাভাবিক। আমি যতটা সম্ভব বুঝানোর চেষ্টা করলাম। তবে কেউ যদি এটা কিভাবে কাজ করে দেখতে পায়, তাহলে তার কাছে খুব সহজ মনে হবে যে কিভাবে জিনিসটি কাজ করছে।
সব শেষ কথা হল, তাহলে ক্লাউড কম্পিউটিং কি শুধু এটা যে আমরা একটা প্যানেল ব্যাবহার করে কিছু ভার্চুয়াল মেশিন তৈরি করে ব্যাবহার করবো?
না, যদিও এটা ক্লাউড কম্পিউটিং এর সব কিছুর বেসিক বা ফাউন্ডেশন, কিন্তু ক্লাউড কম্পিউটিং আমাদের জন্য নিয়ে এসেছে অনেক হাই লেভেল ফিচার। যেমন ডাটা স্টোর করার জন্য ফাইল স্টোরেজ, ডাটাবেজ সার্ভার, কিউ, ইমেইল সার্ভিস, ফায়ারওয়াল, আরও অনেক অনেক কিছু যা বাংলায় বলে বুঝানো যাবে না আর নাম বললে সেটা কি বুঝানোর জন্য আবার সেই ব্যাখ্যা করার প্রয়োজন পরবে।
তবে যেটা বুঝানো সম্ভব তা হল, যখন আমরা ক্লাউডে সফটওয়্যার তৈরি করি তখন আমাদের পক্ষে এসব ফিচার ব্যাবহার করে অনেক শক্তিশালী সফটওয়্যার তৈরি করা সম্ভব যেটা আগে বড় কোন সফটওয়্যার কোম্পানি ছাড়া তৈরি করার চিন্তা করতে পারত না। যেমন আপনি যদি গুগল এর মত সার্চ ইঞ্জিন আপনার ওয়েবসাইটে লাগাতে চান, তাহলে আগে এটা অনেক কঠিন কাজ ছিল। এখন আপনি সহজে প্যানেলে গিয়ে একটি সার্চ সার্ভার তৈরি করে API দিয়ে আপনার কোডে ব্যাবহার করতে পারছেন। আপনাকে সার্চ ইঞ্জিন তৈরি, ইন্সটল, কনফিগার কিছুই তেমন করতে হচ্ছে না।
এজন্য আমাদের ক্লাউড কম্পিউটিং সার্ভিসের API শিখতে হয়, প্যানেলে কিভাবে কি কনফিগার করতে হয় সেগুলো শিখতে হয়। তবে সবচেয়ে বড় যে জিনিস শিখতে হয় তা হোল ক্লাউডের ফিচারগুলো ব্যাবহার করে কিভাবে এধরনের সফটওয়্যার তৈরি করতে হয় সেই ধারণা আর এধরনের সফটওয়্যার পরিচালনা করার জন্য ক্লাউডে কি কি রিসোর্স তৈরি করতে হবে, সেগুলো কি আর্কিটেকচার মত সাঁজাতে হবে এইসব ধারণা।
এই বিষয়গুলো আয়ত্ত করতে না পারলে আপনি ক্লাউড কিভাবে কাজ করে জেনেও একটি অপটিমাল সল্যুশন তৈরি করতে পারবেন না।
সফটওয়্যারটি ভালো কাজ করবে না বা ক্লাউডের পুরো ফায়দা তুলতে পারবে না। ক্লাউডে এই জিনিসগুলো ঠিকভাবে করতে পারলে বিল কম আসবে আর না করতে পারলে বিল বেশি আসবে। আর বিল কমানো মানে বেশি লাভ। আর একারণে আপনাকে বেতন দিয়ে রাখা হবে যাতে আপনি এমন একটি আর্কিটেকচার তৈরি করতে পারেন যাতে ক্লাউডে আপনি যে রিসোর্স ব্যাবহার করছেন সেটার বিল ন্যূনতম হয়। এই বিষয়ে দক্ষতা অর্জন করতে পারলে আপনি প্রতিষ্ঠানের অনেক টাকা বাঁচিয়ে দিতে পারবেন।
আরও আছে যে কিভাবে আর্কিটেকচার তৈরি করলে কোন হ্যাক হবে না, কিভাবে তৈরি করলে যদি কিছু সার্ভার কাজ করা বন্ধ করে দেয় তাও অন্য সার্ভারগুলো ঠিক কাজ চালিয়ে নিতে পারবে, কিভাবে তৈরি করলে কোন মানুষ ছাড়া যখন দরকার তখন সার্ভার বেড়ে যাবে যখন দরকার নেই তখন কমে যাবে, কিভাবে তৈরি করলে একদেশের ইন্টারনেট ব্যবস্থা নষ্ট হয়ে গেলেও আপনার সার্ভিস বন্ধ হবে না ইত্যাদি।
আর এই জিনিসগুলো মাথায় নিয়ে যখন আপনি আপনার সফটওয়্যার এর প্ল্যান করবেন তখন দেখবেন আপনাকে একটি সফটওয়্যার তৈরি না করে অনেকগুলো ছোট বড় সফটওয়্যার এর সংমিশ্রণে একটি Distributed System তৈরি করতে হচ্ছে। এই সিস্টেমের জন্য তখন আপনাকে Distributed System Architecture নিয়ে কাজ করতে হবে। আর আপনার কোড আর আগের মত থাকবে না। আপনাকে কোডে অনেক পরিবর্তন আনতে হবে। অনেক সময় হয়ত অনেক কিছু আবার নতুন করে বানাতে হবে। তাই আগে থেকেই যদি বিষয়গুলো জানা থাকে আর সেভাবে কোড করা হয় তাহলে আর এক কাজ দুইবার করে সময় নষ্ট করতে হবে না। এই বিষয়গুলো তখন খুবই জটিল আর গুরুত্বপূর্ণ হয়ে যায়। তবে সেই লেভেলে যেতে হলে আগে আপনাকে বিষয়গুলোর বেসিক জানতে হবে। আর ধীরেধীরে দক্ষতা অর্জন করতে হবে। কাজেই আপনি আজ ক্লাউড কম্পিউটিং নিয়ে লেখাপড়া শুরু করলেন আর কিছু দিন কিছু ভিডিও টিউটোরিয়াল দেখলেন আর মনে করলেন যে আপনি বিষয়টি বুঝে গেছেন, এটা মোটেও এমন নয়। আর তেমন হলে অনেকেই এটা করতে পারতো আর অনেক টাকা আয় করতে পারতো।
কাজেই এই বিষয়গুলো যে যেকোনো সিরিয়াস বিজনেসের জন্য অনেক গুরুত্বপূর্ণ তা আমরা খুব সহজে বুঝতে পারছি। আর যদি এই দক্ষতা আপনার থাকে তাহলে যেহেতু আপনি কোম্পানির অনেক টাকা বাঁচিয়ে দিচ্ছেন, তাই তারা আপনাকে যেচে অনেক টাকা বেতন দিয়ে চাকরিতে রাখতে চাইবে এটা বুঝা খুব সহজ। আমি বলব এমন কিছু শিখুন যা বেশি লোক জানে না, ক্লাউড নিয়ে কাজ জানলে যে আপনার জীবনে কোনদিন লস হবে না, এটা নিশ্চিতভাবে বলা যায়। তবে শিখতে হবে শিখার মত করে যাতে ব্যবসায় লাভে আপনার অবদান থাকে।   
Exit mobile version