paint-brush
দ্য পাওয়ার অফ ওপেন সোর্স এবং জাভাস্ক্রিপ্ট: দ্য জার্নি অফ গ্লোবালপিংদ্বারা@globalping
123 পড়া

দ্য পাওয়ার অফ ওপেন সোর্স এবং জাভাস্ক্রিপ্ট: দ্য জার্নি অফ গ্লোবালপিং

দ্বারা Globalping7m2023/10/05
Read on Terminal Reader

অতিদীর্ঘ; পড়তে

এই ব্লগ পোস্টে, আমি স্টার্টআপের সাথে আমাদের অভিজ্ঞতা থেকে অন্তর্দৃষ্টি এবং শিক্ষাগুলি শেয়ার করব এবং কীভাবে তারা গ্লোবালপিং-এ আমাদের পদ্ধতিকে প্রভাবিত করে। বিশেষ করে, আমরা কেন জাভাস্ক্রিপ্ট-ভিত্তিক ওপেন-সোর্স প্ল্যাটফর্ম তৈরি করেছি এবং কীভাবে এই পছন্দগুলি প্রকল্পটিকে রূপান্তরিত করেছে সে সম্পর্কে আমি লিখব।
featured image - দ্য পাওয়ার অফ ওপেন সোর্স এবং জাভাস্ক্রিপ্ট: দ্য জার্নি অফ গ্লোবালপিং
Globalping HackerNoon profile picture

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


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


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

প্রতিফলিত করুন এবং শিখুন: অতীতের অভিজ্ঞতা থেকে বেড়ে উঠুন

চলুন কয়েক বছর ফিরে যাই যখন আমরা PerfOps নামে একটি স্টার্টআপ প্রতিষ্ঠা করি। ধারণাটি ছিল ইন্টারনেট-ভিত্তিক অ্যাপ্লিকেশন অপ্টিমাইজ করার জন্য একটি B2B SaaS প্ল্যাটফর্ম তৈরি করা। এটি CDN প্রদানকারীদের কর্মক্ষমতা মেট্রিক্স সংগ্রহ করতে এবং মাল্টি-CDN লোড-ব্যালেন্সিং কার্যকারিতা সক্ষম করতে RUM (রিয়েল ইউজার মনিটরিং) ডেটা ব্যবহার করে।


একটি বোনাস হিসাবে, এটি ব্যবহারকারীদের বিশ্বব্যাপী বিভিন্ন অবস্থান থেকে ট্রেসারউট এবং খননের মতো নেটওয়ার্ক পরিমাপের অনুরোধগুলি চালানোর অনুমতি দেয়।


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


যদিও এই উদ্যোগটি কল্পনার মতো কাজ করেনি, অর্জিত অভিজ্ঞতা অমূল্য ছিল এবং আজ গ্লোবালপিংয়ের পথকে আকার দেয়।


কিছু টেকওয়ে:

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


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


  • RUM ডেটা অবিশ্বস্ত । প্রচুর পরিমাণে উপযোগী হওয়া সত্ত্বেও, এটি দ্রুত স্পষ্ট হয়ে ওঠে যে বেশিরভাগ রিয়েল ইউজার মনিটরিং (RUM) ডেটা সমস্যাযুক্ত এবং নেটওয়ার্কিং সমস্যাগুলি ডিবাগ করার জন্য আদর্শ নয়। আপনি কখনই জানতে পারবেন না যে সমস্যাটি CDN বা ক্লায়েন্টের পরীক্ষা চলছে কিনা। এছাড়াও, RUM ডেটা পুনরুত্পাদনযোগ্য নয়; একবার পরীক্ষা চালানো হলে, আপনার পরিবর্তনের প্রভাব মূল্যায়ন করতে একই অবস্থান থেকে পুনরায় চালানোর কোনো উপায় নেই।


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


কিন্তু স্টার্টআপের দুর্ভাগ্যজনক ভাগ্যের পরেও, আমরা এখনও সঠিক, উন্মুক্ত এবং নির্ভরযোগ্য নেটওয়ার্ক পরীক্ষা এবং কর্মক্ষমতা পর্যবেক্ষণের সম্ভাব্যতা এবং প্রয়োজনীয়তা দেখেছি। এবং তাই, গ্লোবালপিং এর জন্ম হয়েছিল, আমাদের ব্যবহারকারীদের এবং নিজেদের জন্য একটি ভাল পরিষেবা তৈরি করার জন্য ভিন্নভাবে জিনিসগুলি করার এবং অভিজ্ঞতাগুলি থেকে আঁকার দ্বিতীয় সুযোগ। এখন, আসুন আমরা কীভাবে এটি করি তা আপনার সাথে ভাগ করুন।

ওপেন সোর্সকে আলিঙ্গন করা এবং ব্যবহারকারীদের প্রথমে রাখা

আমরা বিশ্বাস করি যে গ্লোবালপিংকে একটি ওপেন সোর্স প্রকল্পে পরিণত করা একটি স্বাভাবিক অগ্রগতি। একবারের জন্য, আমরা ইতিমধ্যে ধারণার সাথে পরিচিত। আমরা প্রায় 10 বছর ধরে jsDelivr চালাচ্ছি, একটি বিনামূল্যের, ওপেন-সোর্স, মাল্টি-CDN পরিষেবা যা 230 বিলিয়নেরও বেশি মাসিক অনুরোধগুলি পরিবেশন করে৷


সুতরাং আমরা ইতিমধ্যেই ওপেন সোর্সের সুবিধা এবং অসুবিধাগুলি জানতাম, কী করতে হবে এবং কী এড়াতে হবে – আমরা এটি সম্পর্কে যত বেশি চিন্তা করেছি, ততই এটি বোঝা যায় যে গ্লোবালপিং অবশ্যই ওপেন সোর্স হতে হবে।


গ্লোবালপিং ওপেন সোর্স করার প্রধান কারণ ছিল:

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


  • jsDelivr ব্যবহার করা : একটি সম্প্রদায় তৈরি করা রাতারাতি ঘটে না। সৌভাগ্যবশত, আমাদের ইতিমধ্যেই একটি দুর্দান্ত সম্প্রদায় রয়েছে যা আমাদের অন্য প্রকল্প, jsDelivrকে সমর্থন করছে। প্রযুক্তিগত ওভারল্যাপের কারণে অনেক বিদ্যমান ব্যবহারকারী এবং সমর্থক গ্লোবালপিংয়ে যোগ দিতে পারেন: jsDelivr বিশ্বব্যাপী বিতরণ করা অবকাঠামো প্রদান করে এবং গ্লোবালপিং হল এই ধরনের বিশ্বব্যাপী সিস্টেমগুলি পর্যবেক্ষণ, পরীক্ষা, ডিবাগ এবং তুলনা করার একটি উপায়।


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


  • স্বচ্ছ হওয়া : ওপেন সোর্স আমাদের কাজকে স্বচ্ছ এবং সবার কাছে দৃশ্যমান করে তোলে। যে কেউ আমাদের কোড এবং যুক্তি পর্যালোচনা করতে পারে, তা আমাদের প্রোব বা মূল APIই হোক। এটি আমাদের নিরাপত্তা এবং গোপনীয়তা দাবিকে যাচাই করতে এবং ব্যবহারকারীদের আশ্বস্ত করতে সাহায্য করে যে আমরা ন্যায্য এবং রেটিং বিক্রি করছি না বা CDN কর্মক্ষমতা গণনা করার জন্য পক্ষপাতদুষ্ট অ্যালগরিদম ব্যবহার করছি না। এছাড়াও, যেকোন ব্যক্তি বা কোম্পানি যারা কোড বা কার্যকারিতা নিয়ে সমস্যা খুঁজে পান তারা একটি প্যাচ জমা দিতে পারেন, তাদের আপডেট যোগ করার বা ঠিক করার জন্য অনুরোধ করতে পারেন।


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


ভিসি তহবিলের উপর নির্ভর করার পরিবর্তে, আমরা এখন সমমনা কোম্পানিগুলির সাথে অংশীদারিত্ব গড়ে তুলছি এবং GitHub স্পনসরদের কাছ থেকে সমর্থন চাইছি, যাদের অনুদান আমাদেরকে চলতে দেয়৷

গ্লোবালপিং ডেভেলপ করতে জাভাস্ক্রিপ্ট বেছে নেওয়া

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


ভাষার সাথে আমাদের পরিচিতির সুবিধাগুলি ইতিমধ্যেই পরিশোধ করা হয়েছে, যা আমাদেরকে কম পরিচিত ভাষার তুলনায় আরও দ্রুত নতুন বৈশিষ্ট্যগুলি তৈরি করতে এবং বাগগুলি খুঁজে পেতে এবং সমাধান করতে দেয়৷


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


যেহেতু জাভাস্ক্রিপ্টেরই একটি বিশাল সম্প্রদায় রয়েছে, তাই গ্লোবালিং-এ অনেক সম্ভাব্য অবদানকারী রয়েছে। এবং যেহেতু জাভাস্ক্রিপ্ট কোডটি পড়ার জন্য বেশিরভাগই সোজা, তাই নতুনদের জন্য সোর্স কোডটি নেভিগেট করা এবং বোঝা সহজ।


ফলস্বরূপ, বিকাশকারীরা দ্রুত অবদান রাখতে পারে, যা অনুপ্রেরণা বজায় রাখে এবং প্রকল্পটিকে এগিয়ে নিয়ে যায়।


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

গ্লোবালপিং নিজের বা আপনার দলে ব্যবহার করা

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


পরিমাপের ফলাফলগুলিতে দ্রুত অ্যাক্সেস পান: আমরা বিভিন্ন ব্যবহারকারীর চাহিদা মেটানোর জন্য বিভিন্ন ধরনের ইন্টিগ্রেশন তৈরি করেছি, তারা নেটওয়ার্ক পেশাদার বা নতুনরা হোক না কেন। আপনি যদি আপনার টার্মিনালে সবচেয়ে আরামদায়ক হন তবে আমাদের CLI টুল ব্যবহার করুন। আমাদের GitHub বট এবং স্ল্যাক অ্যাপ নেটওয়ার্ক সমস্যায় একসাথে কাজ করা দলগুলির জন্য দুর্দান্ত সাহায্যকারী৷


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


ইন্টিগ্রেশন জুড়ে ধারাবাহিকভাবে কমান্ড লিখুন: যেহেতু আমরা চাই না আপনি প্রতিবার ইন্টিগ্রেশন পরিবর্তন করার সময় স্ক্র্যাচ থেকে সবকিছু শিখুন, তাই আমরা একটি অভিন্ন কমান্ড কাঠামো প্রয়োগ করেছি। সাধারণভাবে, সমস্ত গ্লোবালপিং কমান্ড একই বিন্যাস অনুসরণ করে:

 globalping [command type] [target] from [location] [flags]


সুতরাং, উদাহরণস্বরূপ, ভিয়েনা এবং বার্লিন থেকে দুটি প্রোব ব্যবহার করে jsdelivr.com এ পিং চালানোর জন্য (সীমা পতাকা দিয়ে সংজ্ঞায়িত), আপনি নিম্নলিখিত কমান্ডটি লিখুন:

 globalping ping jsdelivr.com from "Vienna, Berlin" --limit 2


এবং এই ফলাফলটি দেখতে কেমন হতে পারে:

গ্লোবালপিং ব্যবহার করে বিশ্বের যে কোনও জায়গা থেকে পিং করুন


আমাদের API দিয়ে আপনার নিজস্ব টুল তৈরি করুন: গ্লোবালপিং প্ল্যাটফর্ম ব্যবহার করে আপনার নিজস্ব টুল তৈরি করতে চান? কোন সমস্যা নেই - আপনি যা চান তা তৈরি করতে আমাদের REST API (উদার সীমা সহ) ব্যবহার করতে পারেন!


নেটওয়ার্কের অংশ হয়ে উঠুন: গ্লোবালপিং আমাদের সম্প্রদায় দ্বারা চালিত প্রোবের একটি বিশ্বব্যাপী বিতরণ করা নেটওয়ার্কের উপর নির্ভর করে। সকল ব্যবহারকারীদের বিনামূল্যে নির্ভরযোগ্য ফলাফল প্রদানে সহায়তা করার জন্য আমরা তাদের বাড়িতে, অফিসে বা সার্ভারে ডকারে একটি প্রোব সেট আপ করে এমন কাউকে স্বাগত জানাতে পেরে আনন্দিত।

সামনের দিকে তাকিয়ে: একসাথে গ্লোবালপিং তৈরি করা

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


আমরা বৈশিষ্ট্যগুলি পরিমার্জন করা এবং একটি দুর্দান্ত ব্যবহারকারীর অভিজ্ঞতা প্রদান করা চালিয়ে যাব যাতে আগ্রহী যে কেউ প্ল্যাটফর্মটি ব্যবহার করতে পারে৷