অন্যান্য ভাষার তুলনায় ইউনিক্স বাইনারিগুলির সাথে তুলনা করে জাভা ব্যবহার করার সময় ডকার ব্যবহারের বেনিফিট সুবিধাগুলি কি অবহেলিত রয়েছে?


53

আমার এক বন্ধু ছিল যারা বলেছিল:

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

এখন এটি সত্য হবে যদি বিকাশকারীরা রুবি, পিএইচপি বা গো লিখছিলেন - যেখানে অপারেটিং সিস্টেমের সাথে একটি দিক নির্দেশিকা বাইনারি লিঙ্ক ছিল।

তবে জাভা ব্যবহার করার সময় - ইতিমধ্যে অপারেটিং সিস্টেম এবং ভাষার মধ্যে একটি ভার্চুয়াল স্তর রয়েছে যা অন্তর্নিহিত অপারেটিং সিস্টেম নির্বিশেষে অপারেশনের ধারাবাহিকতা তৈরি করে।

তর্কসাপেক্ষ, এই ক্ষেত্রে, স্থানীয়ভাবে ডেভেলপারদের জন্য Docker চলমান উৎপাদন পরিবেশ প্রতিলিপি করা সুবিধা হয় অস্বীকার । (রুবি, পিএইচপি বা গোয়ের তুলনায়)।

আমি এই বিষয়ে আলোচনার জন্য উন্মুক্ত এবং মতবিরোধী দৃষ্টিভঙ্গি (প্রমাণ সহ) শুনতে আগ্রহী।

অন্যান্য ভাষার তুলনায় ইউনিক্স বাইনারিগুলির সাথে তুলনা করে জাভা ব্যবহার করার সময় ডকার ব্যবহারের বেনিফিট সুবিধাগুলি কি অবহেলিত রয়েছে?


34
আপনি কেন রুবি এবং পিএইচপি বাইনারি হয় বলে মনে করেন? রুবি এবং পিএইচপি প্রযুক্তিগতভাবে জাভা থেকে আরও ভার্চুয়াল - জাভাতে আপনাকে প্রথমে সংকলন করতে হবে তারপরে ভার্চুয়াল মেশিনে আপনার প্রোগ্রামটি কার্যকর করতে হবে। রুবি এবং পিএইচপিতে আপনি উত্স কোডটি শিপ করেন এবং ভার্চুয়াল মেশিনটি সরাসরি উত্সটি পড়ে।
slebetman

12
"তবে জাভা ব্যবহার করার সময় - অন্তর্নিহিত অপারেটিং সিস্টেম নির্বিশেষে অপারেশনটির ধারাবাহিকতা তৈরি করে অপারেশন সিস্টেম এবং ভাষার মধ্যে ইতিমধ্যে একটি ভার্চুয়াল স্তর রয়েছে" "এলএল। জাভা আবিষ্কার করেছিলেন "একবার লিখুন, সর্বত্র পরীক্ষা করুন"।
অ্যান্ডি 22

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

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

উত্তর:


86

একদমই না.

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

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

এখন, অন্তত একটি প্রকল্পের জন্য, আপনি জাভার বিভিন্ন সংস্করণ চালাচ্ছেন।

এটি আপনাকে খুব বেশি বিরক্ত করতে পারে না (যতক্ষণ না একটি সার্ভারটি 1.9 এ স্থানান্তরিত করে, অন্যটি পুরানো সংস্করণ রাখে) তবে এর অর্থ হ'ল আপনি আপনার স্থানীয় মেশিনে উত্পাদন পরিবেশের প্রতিরূপ তৈরি করছেন না, এটি ক্ষুদ্রতর পক্ষে এটি সম্ভব করে তোলে ক্রেপ করতে বাগগুলি।

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


20
এছাড়াও এই ধরণের জিনিসটি বড় সংস্থাগুলিতে সমস্ত সময় ঘটে। এটি কেবল একটি তাত্ত্বিক জিনিস নয়।
এন্ডারল্যান্ড

5
আপনি যখন ডকারে একটি বাগ আবিষ্কার করেন তখন আপনি কী করবেন?
ওয়েন

এছাড়াও জাভা 9 জিনিসগুলি ভেঙে দেবে। বেশ কিছু প্রচেষ্টা প্রয়োজন হবে।
থরবজর্ন রাভন অ্যান্ডারসন

8
আপনি যখন জাভাতে কোনও বাগ খুঁজে পান তখন আপনি একই কাজ করেন। বা {লিনাক্স, উইন্ডোজ} এ} বা আপনার সিপিইউতে
Kroltan

1
@ ট্রিলারিয়ন: হ্যাঁ, যদিও বেশিরভাগই সংস্থা বিকাশকারীদের ব্লগ পোস্ট আকারে। এটি বলেছিল, ডকার. com/ কাস্টোমারগুলিতে যে কোনও "আরও শিখুন" লিঙ্কগুলি বড় বড় সংস্থাগুলির উদাহরণ যেমন ডকারের সাহায্যে এ জাতীয় সমস্যা সমাধান করবে। এটি বলেছিল যে, সাধারণত এ জাতীয় সংস্থাগুলি এটিকে সম্মানজনকভাবে গ্রহণ করে যে তাদের উত্পাদন এবং বিকাশের মধ্যে একটি নিখুঁত ম্যাচ প্রয়োজন, এবং এটি ভিএমগুলির সাথে সম্পন্ন করে। পরে তারা বুঝতে পেরেছিল, "আরে, ডকার ভিএমএসের মতো একই সমস্যা সমাধান করে, এটি দ্রুত চালানো ছাড়া এবং মোতায়েনের ধারাবাহিকতা বজায় রাখতে ব্যবহার করা যেতে পারে।"
ব্রায়ান

35

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

এটি এমনকি সেই বিকাশ সফ্টওয়্যারটিতেও যায় না যা এটির সাথে চলে - গ্রহন, পিঁপড়া, অ্যাডোব ফ্লেক্স, গ্রোভি, ফায়ারফক্স এবং সাবভার্সন (আমি বেশ কয়েকটি এড়িয়ে যাচ্ছি)

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

এই সত্যটি উল্লেখ করার দরকার নেই যে আমরা যখন মোতায়েন করি তখন আমাদের উপরের 20 টি সার্ভারের উপরে বজায় রাখা দরকার; ডকার দেখতে বেশ সুন্দর একটি ডিলের মতো দেখতে শুরু করছে!

(২০ টি এমন অ্যাপ্লিকেশনটির জন্য অত্যন্ত বেদনাদায়ক বলে মনে হচ্ছে যা কেবল একবারে একক সার্ভারে চলে ... তবে ক্লাস্টার (এক্স 2), পরীক্ষা / স্টেজিং / প্রোড (এক্স 3), অভ্যন্তরীণ / বহিরাগত (এক্স 2) এবং প্রাথমিক সাইট দ্বারা এটি এক সার্ভারকে গুণ করুন ly / ব্যাকআপ সাইট (এক্স 2) এবং আপনি সেখানে খুব তাড়াতাড়ি উঠে যান)


ছবি তৈরি করবেন না কেন?
দিমিত্রি কুদরিয়াভসেভ

আমরা আশা করি। আমরা একটি ছোট টিম করছি যা বেশ ভারী ব্যবহৃত / গুরুত্বপূর্ণ সিস্টেমে বৈশিষ্ট্যগুলি যুক্ত করার চেষ্টা করছি এবং সার্ভারগুলিতে তাদের স্থাপনার নির্দেশ দেওয়ার মতো পর্যাপ্ত নিয়ন্ত্রণ নেই। এটি যদিও দেবের জন্য ব্যবহার করতে পারে তবে আমরা ইতিমধ্যে 32 এমএম র‌্যামে বেশ সীমাবদ্ধ রয়েছি - আমি ধরে নিয়েছি ডকারের চিত্র থেকে দৌড়াতে কিছুটা ওভারহেড থাকবে ... তবে আমাদের পরিকল্পনা সেই দিকে এগিয়ে যাওয়ার।
বিল কে

আমি ওয়ার্কস্টেশনগুলি বোঝাতে চেয়েছিলাম
দিমিত্রি কুদ্রিভটসেভ

সময় এবং মেমরি - আমাদের 32 জিবি ওয়ার্কস্টেশনগুলিতে চালানোর জন্য আমাদের ইতিমধ্যে কিছু টুকরো ছেড়ে দিতে হবে (g৪ জিবি সার্ভারগুলি এটি ঠিক আছে)। আমরা যদিও কিছুটা পরীক্ষা-নিরীক্ষা করেছি এবং পরের বার যখন নতুন ডি ওয়ার্কস্টেশন তৈরি করতে হবে তখন চেষ্টা করে দেখতে পারি।
বিল কে

8

গোলংয়ের ক্ষেত্রেও এই প্রশ্নটি প্রাসঙ্গিক হবে, যেখানে আপনি পাইথন বা সি ++ এর বিপরীতে যেখানে কেবলমাত্র স্ট্যাটিকালি লিঙ্কযুক্ত বাইনারিগুলি বের করতে পারেন এবং সেগুলি কোথাও চালাতে পারেন যেখানে লোকেরা কেবলমাত্র একটি লক লাইব্রেরি রাখে যার ফলে লোকেরা কেবল একটি ডকারের ধারক তৈরি করতে বাড়ে leads উন্নয়ন পরিবেশ.

এখানে উত্তর দেওয়ার জন্য দুটি পয়েন্ট রয়েছে:

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

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

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


5

এটি সত্যিই ভাল প্রশ্ন তবে ডকারের সাথে কাজ করার পরে, আমি এটিকে ঘুরিয়ে দেব:

জেভিএম এর সুবিধাগুলি কি কনটেইনারাইজেশন (যেমন ডক) দ্বারা উপেক্ষা করা হচ্ছে?

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

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

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


"... তবে কমপক্ষে আরও একটি কার্যকরী বিকল্প রয়েছে যা সবার পক্ষে ভাল" সুতরাং এটি অন্য একটি কার্যকর বিকল্প কোনটি হতে পারে?
ট্রায়ারালিয়ান

@Trilarion rkt (অথবা রকেট) । এটি বর্তমানে ডকারের পাশাপাশি কুবারনেটস দ্বারা সমর্থিত।
জিমি জেমস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.