Skip to content

নেটওয়ার্কের ইন্টারফেস মানুষ কেন হবে?

মানুষ এবং যন্ত্রের ইন্টারফেস

(অবশ্যপাঠ্য, যদিও পড়তে অনেক কষ্ট হবে। প্রয়োজনে ধীরে ধীরে, কয়েকদিন ধরে পড়া যেতে পারে)

আমরা যখন কাজ শুরু করি তখন নেটওয়ার্কিং ডিভাইসগুলোর একটা হিউম্যান ইন্টারফেস প্রয়োজন ছিল। তখন মানুষ সরাসরি কথা বলতো নেটওয়ার্কিং ডিভাইসগুলোর সাথে বিভিন্ন কনসোলের মাধ্যমে। এখন সময় পাল্টেছে। ডিভাইস নিজে থেকেই আরেকটা ডিভাইসের সাথে যোগাযোগ করতে পারছে বিভিন্ন সফটওয়্যার ধারণা থেকে। গত ১০ বছরে আমার নিজের চোখে দেখা কিভাবে ইন্ডাস্ট্রিতে কমান্ড লাইন ইন্টারফেস থেকে কিভাবে শিফট হয়ে যাচ্ছে অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস অর্থাৎ এপিআই ভিত্তিক কাজে। বড় বড় নেটওয়ার্ককে ম্যানেজ করতে গেলে কন্ট্রোলার ছাড়া নেটওয়ার্ক চালানো দুষ্কর হয়ে পড়েছে।

যেভাবে ইন্টারনেট এবং এন্টারপ্রাইজ নেটওয়ার্ক বাড়ছে বিশ্বব্যাপী, সেখানে আমাদের মত নেটওয়ার্ক ইঞ্জিনিয়ারদের বিশাল নেটওয়ার্ক চালানো অনেকটাই অসম্ভব হয়ে পড়ছে ম্যানুয়াল ভাবে। যখন মেশিন থেকে মেশিন বিশেষ করে কন্ট্রোলার থেকে বিভিন্ন মেশিন রাউটার সুইচ ওএলটি এগুলোর সাথে যোগাযোগ করছে, সেখানে মানুষ হিউম্যান ইঞ্জিনিয়ার আস্তে আস্তে কন্ট্রোলারের দিকে ঝুকছে। হিউম্যান ইঞ্জিনিয়ারদের কাজ বাড়ছে প্রোগ্রামেটিকেলি সমস্যা সমাধান করতে। এই এ পি আই আমাদের নেক্সট জেনারেশন অটমেশনের জন্য ফাউন্ডেশন হলেও আমাদের একটা হলিস্টিক ধারণা থাকা উচিত এ ধরনের অপারেশন এবং বিভিন্ন ডিভাইসের মধ্যে যোগসূত্র স্থাপনে। এটা নেটওয়ার্কের লাইফ-সাইকেলের জন্য ভীষণভাবে প্রয়োজন।

যখনই এপিআই আসছে এর অর্থ হচ্ছে অটোমেশন এবং নেটওয়ার্ক অরকেস্ট্রেশন এখন পুরো জায়গা নিয়ে নিচ্ছে। নতুন কথা হচ্ছে “এপিআই হচ্ছে নতুন সিএলআই। যারা গ্রাফিক্যাল ইউজার ইন্টারফেসর কাজ করেন তাদেরও কাজ কমে আসছে এই অটোমেশন আর এপিআই এর যুগে।

সত্যিকারের কথা হচ্ছে আমাদের নেটওয়ার্কের ফাইনাল নেটওয়ার্কিং ডিভাইসগুলো হচ্ছে পাজলের সবচেয়ে শেষ অংশ। এই শেষের রাউটার অথবা সুইচগুলোকে সাপোর্ট করতে হচ্ছে এপিআইকে। দুপুরের বড় বড় রাউটার গুলোকে সাপোর্ট করলে হবে না বরং কাস্টমারের ডিভাইস পর্যন্ত এ ধরনের এপিআই সাপোর্ট চলে এসেছে অনেক বছর ধরে। আমরা এগুলোকে ব্যবহার করছি না কেন সেটা অন্য প্রশ্ন হতে পারে। মাইক্রোটিকের সাধারণ ডিভাইসে যদি এপিআই সাপোর্ট চলে আসে তাহলে বড় বড় ভেন্ডার এর এপিআই সাপোর্ট এসেছে আরো অনেক আগেই।

সফটওয়্যার-ডিফাইন্ড নেটওয়ার্কিং (SDN) এর ব্যবহার এতটাই বেড়েছে যে, নেটওয়ার্কে মানুষ প্রোগ্রামেটিকালি দেখছে। একটা নেটওয়ার্ককে সফটওয়্যারের মানুষের চোখ দিয়ে না দেখতে পারলে বিশাল নেটওয়ার্ক এখন মানুষের দ্বারা চালানো সম্ভব নয়। যেভাবে সফটওয়্যার এর ফ্রন্ট এন্ড এবং ব্যাক এন্ড এখন একটা মানুষই দেখার চেষ্টা করছে, ডেভঅপস এর মত করে নেটওয়ার্কের লোকজন এখন সফটওয়্যার এর দিকে হাঁটছে।

নেট-ডেভঅপস এর কাহিনি কী?

NetDevOps

NetDevOps is a way to build network automation into the application development process, so that an application can understand the infrastructure needs and be programmed to create networking resources on demand. It also helps to dynamically monitor, adjust, and understand the interaction between the applications and the network environment.

NetDevOps requires network orchestration, monitoring, and fault remediation. It also requires a network management platform that can leverage APIs and REST/RPC interfaces. Key functions for NetDevOps include monitoring, analytics, and configuration management.

সফটওয়্যারে ডেভঅপস ইঞ্জিনিয়াররা কন্টেন্ট রিপোজিটরি তৈরির জন্য Git, ডেপ্লয়মেন্টের জন্য জেনকিন্স, কন্টেইনারের জন্য ডকার, এবং পুরো ইনফ্রাস্ট্রাকচার ধরে বিভিন্ন কন্ট্রোলার এবং নেটওয়ার্ক ডিভাইস গুলোকে ম্যানেজমেন্টর জন্য Ansible এর মত বিভিন্ন টুল ব্যবহার করতে পারেন। ডেভঅপস এর সাথে যোগ দিয়েছে নেটওয়ার্ক ইঞ্জিনিয়াররা। ওপেন সোর্স প্রোগ্রামেবিলিটিতে এটা একটা গুরুত্বপূর্ণ প্রবণতা যা বড় বড় নেটওয়ার্ক কে আস্তে আস্তে ম্যানেজেবল স্টেটে আনা যায়। এর পাশাপাশি উপরের লেয়ারে অনেক টুল রয়েছে যা ওপেনসোর্স, যা বিশ্বব্যাপী নেটওয়ার্ক এডমিনিস্ট্রেটর এবং যারা সফটওয়্যার দিয়ে নেটওয়ার্ক চালাতে চান তাদেরকে এই শক্তিশালী কোডিং টুলগুলো অ্যাক্সেস করা সহজ করে তোলে। অটোমেশন এবং প্রোগ্রামেবিলিটি ধারণাগুলো বোঝা আরও গুরুত্বপূর্ণ যখন টুলগুলো সহজে পাওয়া যায়।

প্রায়শই ওপেন সোর্স সফটওয়্যার সফটওয়্যার ডেভেলপমেন্ট কিট (SDK)গুলোতে বিভিন্ন প্লাটফর্মে মানুষের সুবিধার জন্য প্যাকেজ করা হয়, যেখানে টুলস এবং API এর সেটগুলো একসাথে প্যাকেজ থাকলে সেটা দরকার মত স্কেল-আপ করার জন্য প্ল্যান করা যায়। আমরা যখন নেটওয়ার্ককে “ইনফ্রাস্ট্রাকচার অ্যাজ এ কোড” হিসেবে দেখার চেষ্টা করি, তখন আপনার কোড অর্থাৎ নেটওয়ার্কের কনফিগারেশন ডেলিভারি দেবার জন্য একটা টেস্ট এনভায়রনমেন্ট লাগে। ডেভেলপমেন্টের আরেকটি খুব গুরুত্বপূর্ণ দিক হল একটা টেস্ট পরিবেশ থাকা। বিভিন্ন সলিউশন প্রোভাইডার যেমন সিসকো মডেলিং ল্যাব এর মত অ্যাপ্লিকেশনগুলো আপনাকে বড় পরিমাণে ইনফ্রাস্ট্রাকচার বা অবকাঠামোতে বিনিয়োগ না করেই আপনার কোড টেস্ট করতে দেয়। মূল বিষয় হল যে API গুলো নিজেরাই ব্যবহৃত হয় না। বরং, এগুলো একটা এন্ড-টু-এন্ড আর্কিটেকচারের অংশ এবং বরং এই এপিআইগুলো ব্যবহার করে কন্ট্রোলার নেটওয়ার্কের বিভিন্ন ডিভাইস গুলোকে শুধুমাত্র চালানো নয় এর পাশাপাশি স্কেল আপ করার জন্য অনেক সুবিধা দেয়।