আমি উন্নয়ন এবং স্থাপনার জন্য উবুন্টু ব্যবহার করি এবং বিচ্ছিন্ন পরিবেশ তৈরি করার প্রয়োজন রয়েছে।
আমি এই উদ্দেশ্যে ভ্যাগ্র্যান্ট বা ডকার উভয়ের বিবেচনা করছি। উপকারিতা এবং কনস কী কী, বা এই সমাধানগুলি কীভাবে তুলনা করে?
আমি উন্নয়ন এবং স্থাপনার জন্য উবুন্টু ব্যবহার করি এবং বিচ্ছিন্ন পরিবেশ তৈরি করার প্রয়োজন রয়েছে।
আমি এই উদ্দেশ্যে ভ্যাগ্র্যান্ট বা ডকার উভয়ের বিবেচনা করছি। উপকারিতা এবং কনস কী কী, বা এই সমাধানগুলি কীভাবে তুলনা করে?
উত্তর:
যদি আপনার উদ্দেশ্যটি বিচ্ছিন্নতা হয় তবে আমি মনে করি ডকার হ'ল আপনি যা চান তা।
ভ্যাগ্র্যান্ট একটি ভার্চুয়াল মেশিন ম্যানেজার। এটি আপনাকে ভার্চুয়াল মেশিন কনফিগারেশন পাশাপাশি প্রভিশনের স্ক্রিপ্ট করতে দেয়। যাইহোক, এটা এখনও উপর নির্ভর করে একটি ভার্চুয়াল মেশিন হয় VirtualBox বিপুল ওভারহেড সঙ্গে (বা অন্যদের)। এটির জন্য আপনার একটি হার্ড ড্রাইভ ফাইল থাকা দরকার যা বিশাল হতে পারে, এটি প্রচুর পরিমাণে রাম নেয় এবং পারফরম্যান্স খুব ভাল নাও হতে পারে।
অন্যদিকে ডকার এলএলসিসির মাধ্যমে কার্নেল সিগ্রুপ এবং নেমস্পেসিং ব্যবহার করে । এর অর্থ হল আপনি হোস্ট এবং একই ফাইল সিস্টেমের মতো একই কার্নেলটি ব্যবহার করছেন। আপনার ধারকটির docker build
বিধান এবং কনফিগারেশন পরিচালনা করতে আপনি কমান্ডটি সহ ডকফাইফিল ব্যবহার করতে পারেন । আপনার ডকফাইফাইল কীভাবে তৈরি করবেন সে সম্পর্কে ডকস.ডোকার.কম এ আপনার একটি উদাহরণ রয়েছে ; এটা খুব স্বজ্ঞাত।
আপনি ভ্যাগ্রান্টটি ব্যবহার করতে চেয়েছিলেন কেবলমাত্র যদি আপনার উবুন্টু বাক্সে বিএসডি, উইন্ডোজ বা অন্যান্য নন-লিনাক্স বিকাশ করা দরকার। অন্যথায়, ডকারের জন্য যান।
দাবি অস্বীকার: আমি ভ্যাগ্র্যান্ট লিখেছি! তবে আমি ভ্যাগ্র্যান্ট লেখার কারণে, আমি আমার বেশিরভাগ সময় ডিভোপ্স বিশ্বে বসবাস করতে ব্যয় করি যার মধ্যে ডকারের মতো সফ্টওয়্যার রয়েছে। আমি ভ্যাগ্র্যান্ট ব্যবহার করে প্রচুর সংস্থার সাথে কাজ করি এবং অনেকগুলি ডকার ব্যবহার করে এবং আমি দেখি কীভাবে দুটি ইন্টারপ্লে হয়।
আমি বেশি কথা বলার আগে একটি প্রত্যুত্তর উত্তর: আপনার নির্দিষ্ট দৃশ্যে (নিজে একা কাজ করছেন, লিনাক্সে কাজ করছেন, উত্পাদনে ডকার ব্যবহার করছেন), আপনি ডকারের সাথে একা থাকতে পারেন এবং জিনিসগুলি সরল করতে পারেন। অন্যান্য অনেক পরিস্থিতিতে (আমি আরও আলোচনা করি), এটি এত সহজ নয়।
ভ্যাগ্রান্টের সরাসরি ডকারের সাথে তুলনা করা ঠিক নয়। কিছু পরিস্থিতিতে তারা ওভারল্যাপ করে এবং বিশাল সংখ্যাগরিষ্ঠে তারা তা করে না। আসলে, আরও উপযুক্ত তুলনাটি ভুটান্ট বনাম বুট 2 ডকারের মতো (নূন্যতম ওএস যা ডকার চালাতে পারে) এর মতো হবে be ভ্যাব্র্যান্ট অ্যাবস্ট্রাকশনগুলির ক্ষেত্রে ডকারের উপরে একটি স্তর, সুতরাং বেশিরভাগ ক্ষেত্রে এটি ন্যায্য তুলনা নয়।
ভ্যাগ্রান্ট বিকাশের উদ্দেশ্যে অ্যাপস / পরিষেবা চালানোর জন্য জিনিসগুলি চালু করে। এটি ভার্চুয়ালবক্স, ভিএমওয়্যার এ থাকতে পারে। এটি এডাব্লুএস, ওপেনস্ট্যাকের মতো দূরবর্তী হতে পারে। এর মধ্যে, আপনি যদি ধারক ব্যবহার করেন তবে ভ্যাগ্র্যান্টের কোনও যত্ন নেই এবং এটি আলিঙ্গন করে: এটি স্বয়ংক্রিয়ভাবে ডকার পাত্রে ইনস্টল করতে, টেনে আনতে, তৈরি করতে এবং চালাতে পারে run ভ্যাগ্র্যান্ট ১.6 সহ ভ্যাগ্র্যান্টের ডকার-ভিত্তিক বিকাশ পরিবেশ রয়েছে এবং লিনাক্স, ম্যাক এবং উইন্ডোজ জুড়ে ভ্যাগ্র্যান্টের মতো একই কর্মপ্রবাহের সাথে ডকার ব্যবহার করে সমর্থন করে। ভ্যাগ্র্যান্ট এখানে ডকারকে প্রতিস্থাপনের চেষ্টা করে না, এটি ডকার অনুশীলনগুলিকে আলিঙ্গন করে।
ডকার বিশেষত ডকারের পাত্রে চালায়। যদি আপনি সরাসরি ভ্যাগ্র্যান্টের সাথে তুলনা করেন: এটি বিশেষত আরও নির্দিষ্ট (কেবলমাত্র ডকারের ধারক চালাতে পারে), কম নমনীয় (কোথাও লিনাক্স বা লিনাক্স হোস্টের প্রয়োজন) সমাধান। অবশ্যই আপনি যদি প্রোডাকশন বা সিআইয়ের কথা বলছেন তবে ভ্যাগ্র্যান্টের সাথে কোনও তুলনা নেই! ভ্যাগ্র্যান্ট এই পরিবেশগুলিতে বাস করে না এবং তাই ডকার ব্যবহার করা উচিত।
যদি আপনার সংস্থাটি তাদের সমস্ত প্রকল্পের জন্য কেবল ডকার পাত্রে চালায় এবং লিনাক্সে কেবল বিকাশকারী চলমান থাকে তবে ঠিক আছে, ডকার অবশ্যই আপনার জন্য কাজ করতে পারে!
অন্যথায়, আমি ডকারকে একা ব্যবহার করার চেষ্টা করার কোনও সুবিধা দেখতে পাচ্ছি না, যেহেতু আপনি ভ্যাগ্র্যান্টের যা দেওয়া আছে তার অনেকটাই হারাবেন, যার আসল ব্যবসা / উত্পাদনশীলতার সুবিধা রয়েছে:
ভ্যাগ্র্যান্ট ভার্চুয়ালবক্স, ভিএমওয়্যার, এডাব্লুএস, ওপেনস্ট্যাক ইত্যাদি মেশিন চালু করতে পারে। আপনার যা প্রয়োজন তা বিবেচনাধীন নয়, ভ্যাগ্র্যান্ট এটি চালু করতে পারে। আপনি যদি ডকার ব্যবহার করে থাকেন তবে ভ্যাগ্র্যান্ট এগুলির যে কোনও একটিতে ডকার ইনস্টল করতে পারে যাতে আপনি সেটিকে সে উদ্দেশ্যে ব্যবহার করতে পারেন।
ভ্যাগ্র্যান্ট আপনার সমস্ত প্রকল্পের জন্য একক কর্মপ্রবাহ। বা অন্য কোনও উপায়ে বলতে গেলে, একটি প্রকল্প যা লোক ডকারের পাত্রে থাকুক না কেন তা চালানো শিখতে হবে কেবল একটি জিনিস। উদাহরণস্বরূপ, ভবিষ্যতে, যদি কোনও প্রতিদ্বন্দ্বী সরাসরি ডকারের সাথে প্রতিযোগিতা করার জন্য উত্থাপিত হয় তবে ভ্যাগ্র্যান্ট সেটিও চালাতে সক্ষম হবে।
ভ্যাগ্র্যান্ট উইন্ডোজ (এক্সপি-তে ফিরে), ম্যাক (10.5-এ ফিরে) এবং লিনাক্সে (কার্নেল ২.6-এ ফিরে) কাজ করে। তিনটি ক্ষেত্রেই কর্মপ্রবাহ একই রকম। আপনি যদি ডকার ব্যবহার করেন তবে ভ্যাগ্র্যান্ট এমন একটি মেশিন (ভিএম বা রিমোট) চালু করতে পারবেন যা এই তিনটি সিস্টেমে ডকার চালাতে পারে।
ভ্যাগ্র্যান্ট জানেন যে কীভাবে কিছু উন্নত বা অ-তুচ্ছ জিনিসগুলি নেটওয়ার্কিং এবং ফোল্ডার সিঙ্ক করার মতো কনফিগার করতে হয়। উদাহরণস্বরূপ: ভ্যাগ্র্যান্ট জানে কীভাবে কোনও মেশিন বা ফরোয়ার্ড পোর্টগুলিতে স্ট্যাটিক আইপি সংযুক্ত করতে হয় এবং কনফিগারেশনটি একই রকম হয় আপনি কোন সিস্টেম ব্যবহার করেন না কেন (ভার্চুয়ালবক্স, ভিএমওয়্যার ইত্যাদি) সিঙ্ক হওয়া ফোল্ডারগুলির জন্য, ভ্যাগ্র্যান্ট আপনার স্থানীয় পাওয়ার জন্য একাধিক প্রক্রিয়া সরবরাহ করে রিমোট মেশিনে ফাইল (ভার্চুয়ালবক্স ভাগ করা ফোল্ডার, এনএফএস, আরএসএনসি, সাম্বা [প্লাগইন] ইত্যাদি)। যদি আপনি ডকার, এমনকী ভোকরেন্ট ব্যতীত কোনও ভিএম সহ ডকার ব্যবহার করেন তবে আপনাকে ম্যানুয়ালি এটি করতে হবে বা তাদের এই ক্ষেত্রে ভ্যাগ্রান্টকে পুনরায় উদ্ভাবন করতে হবে।
ভ্যাগ্র্যান্ট 1.6 এর ডকার-ভিত্তিক বিকাশ পরিবেশের জন্য প্রথম শ্রেণির সমর্থন রয়েছে । এটি লিনাক্সে ভার্চুয়াল মেশিন চালু করবে না এবং স্বয়ংক্রিয়ভাবে ম্যাক এবং উইন্ডোজে ভার্চুয়াল মেশিন চালু করবে। শেষ ফলাফলটি হ'ল ডকারের সাথে কাজ করা সমস্ত প্ল্যাটফর্মগুলিতে সমান, অন্যদিকে ভাইগ্রান্ট এখনও নেটওয়ার্কিং, সিঙ্কড ফোল্ডার ইত্যাদির মতো ক্লান্তিকর বিবরণ পরিচালনা করে while
সুনির্দিষ্ট পাল্টা যুক্তিগুলি সমাধান করার জন্য যা আমি ভ্যাগ্র্যান্টের পরিবর্তে ডকার ব্যবহারের পক্ষে শুনেছি:
"এটি কম চলমান অংশগুলি" - হ্যাঁ, এটি যদি আপনি প্রতিটি প্রকল্পের জন্য একচেটিয়াভাবে ডকার ব্যবহার করেন তবে তা হতে পারে। তারপরেও, এটি ডকার লক-ইনয়ের জন্য নমনীয়তা ত্যাগ করছে। আপনি যদি কোনও প্রকল্প, অতীত, বর্তমান বা ভবিষ্যতের জন্য ডকার ব্যবহার না করার সিদ্ধান্ত নেন তবে আপনার আরও চলমান অংশ থাকবে। যদি আপনি ভ্যাগ্রান্ট ব্যবহার করে থাকেন তবে আপনার কাছে একটি চলন্ত অংশ রয়েছে যা বাকী অংশগুলিকে সমর্থন করে।
"এটি দ্রুত!" - একবার আপনার কাছে হোস্ট রয়েছে যা লিনাক্স পাত্রে চালাতে পারে, কোনও ভার্চুয়াল মেশিন চালু হওয়ার চেয়ে ডকার অবশ্যই একটি ধারক চালানোর ক্ষেত্রে দ্রুততর হয়। তবে ভার্চুয়াল মেশিন (বা রিমোট মেশিন) চালু করা এক সময়ের মূল্য। দিনের পরিক্রমায়, বেশিরভাগ ভ্যাগ্র্যান্ট ব্যবহারকারীরা আসলে তাদের ভিএম কখনই ধ্বংস করে না। এটি বিকাশের পরিবেশগুলির জন্য একটি অদ্ভুত অনুকূলতা। উত্পাদনে, যেখানে ডকার সত্যিই জ্বলজ্বল করে, আমি দ্রুত পাত্রে / ডাউন পাত্রে স্পিন করার প্রয়োজনীয়তাটি বুঝতে পারি।
আমি আশা করি এটি পরিষ্কার হয়ে গেছে যে এটি দেখতে খুব কঠিন, এবং আমি বিশ্বাস করি না ডকারকে ভ্যাগ্রেন্টের সাথে তুলনা করা। দেব পরিবেশের জন্য, ভ্যাগ্র্যান্ট আরও বিমূর্ত, আরও সাধারণ। ডকার (এবং বিভিন্ন উপায়ে আপনি এটিকে ভ্যাগ্র্যান্টের মতো আচরণ করতে পারেন) ভ্যাগ্র্যান্টের একটি নির্দিষ্ট ব্যবহারের ক্ষেত্র, ভ্যাগ্র্যান্টের যে সমস্ত প্রস্তাব দেয় তা উপেক্ষা করে।
উপসংহারে: অত্যন্ত সুনির্দিষ্ট ব্যবহারের ক্ষেত্রে ডকার অবশ্যই ভ্যাগ্র্যান্টের সম্ভাব্য প্রতিস্থাপন। বেশিরভাগ ব্যবহারের ক্ষেত্রে এটি হয় না। ভ্যাগ্র্যান্ট আপনার ডকারের ব্যবহারকে বাধা দেয় না; এটি অভিজ্ঞতাকে মসৃণ করতে আসলে যা করতে পারে তা করে। যদি আপনি এটি সত্য না দেখতে পান তবে বিষয়গুলির উন্নতির জন্য পরামর্শ গ্রহণে আমি খুশি, যেহেতু ভ্যাগ্র্যান্টের একটি লক্ষ্য কোনও সিস্টেমের সাথে সমানভাবে ভাল কাজ করা।
আশা করি এটি পরিষ্কার হয়ে যায়!
vagrant provision
)।
আমি ডকার এর লেখক।
সংক্ষিপ্ত উত্তরটি হ'ল আপনি যদি মেশিনগুলি পরিচালনা করতে চান তবে আপনার ভ্যাগ্রেন্ট ব্যবহার করা উচিত। এবং আপনি যদি অ্যাপ্লিকেশন পরিবেশ তৈরি করতে এবং চালাতে চান তবে আপনার ডকার ব্যবহার করা উচিত।
ভার্চেন্ট হ'ল ভার্চুয়াল মেশিন পরিচালনার জন্য একটি সরঞ্জাম। ডকার হ'ল অ্যাপ্লিকেশনগুলিকে হালকা ওজনের পাত্রে প্যাকেজিং করে বিল্ডিং এবং মোতায়েনের জন্য একটি সরঞ্জাম। একটি ধারক তার নির্ভরতা (এক্সিকিউটেবল, লাইব্রেরি, কনফিগারেশন ফাইল, ইত্যাদি) পাশাপাশি যে কোনও সফ্টওয়্যার উপাদানকে ধরে রাখতে পারে এবং এটিকে একটি গ্যারান্টিযুক্ত এবং পুনরাবৃত্তযোগ্য রানটাইম পরিবেশে কার্যকর করতে পারে। এটি একবার আপনার অ্যাপ্লিকেশনটি তৈরি করা এবং এটি যে কোনও জায়গায় স্থাপন করা খুব সহজ করে তোলে - পরীক্ষার জন্য আপনার ল্যাপটপে, তারপরে লাইভ ডিপ্লোয়মেন্টের জন্য বিভিন্ন সার্ভারে ইত্যাদি etc.
এটি একটি সাধারণ ভুল ধারণা যা আপনি কেবল লিনাক্সে ডকার ব্যবহার করতে পারেন। এটা ভুল; আপনি ম্যাক এবং উইন্ডোজে ডকার ইনস্টল করতে পারেন। ম্যাক ইনস্টল করার সময় ডকার একটি ছোট লিনাক্স ভিএম (ডিস্কে 25 এমবি!) বান্ডিল করে যা আপনার ধারকটির মোড়ক হিসাবে কাজ করে। একবার ইনস্টল এটি সম্পূর্ণ স্বচ্ছ; আপনি ঠিক একইভাবে ডকার কমান্ড-লাইনটি ব্যবহার করতে পারেন। এটি আপনাকে উভয় পৃথিবীর সেরাটি দেয়: আপনি পাত্রে ব্যবহার করে আপনার অ্যাপ্লিকেশনটি পরীক্ষা এবং বিকাশ করতে পারেন, যা খুব হালকা ওজনের, পরীক্ষা করা সহজ এবং চারপাশে সরানো সহজ (উদাহরণস্বরূপ https://hub.docker.com এর সাথে পুনরায় ব্যবহারযোগ্য পাত্রে ভাগ করার জন্য দেখুন) ডকার সম্প্রদায়) এবং আপনার ভার্চুয়াল মেশিনগুলি পরিচালনা করার নিতান্ত-কৌতুকপূর্ণ বিশদ সম্পর্কে উদ্বিগ্ন হওয়ার দরকার নেই, যা যে কোনওভাবেই শেষ করার উপায়।
তত্ত্বের মধ্যে ডকারের জন্য অ্যাবস্ট্রাকশন স্তর হিসাবে ভ্যাগ্রান্ট ব্যবহার করা সম্ভব। আমি এর বিরুদ্ধে দুটি কারণে সুপারিশ করছি:
প্রথমত, ভ্যাগ্রান্ট ডকারের জন্য ভাল বিমূর্ততা নয়। ভার্চেন্ট ভার্চুয়াল মেশিনগুলি পরিচালনা করার জন্য ডিজাইন করা হয়েছিল। ডকার একটি অ্যাপ্লিকেশন রানটাইম পরিচালনা করার জন্য ডিজাইন করা হয়েছিল। এর অর্থ হ'ল নকশাকৃত, ডকার আরও ভালভাবে কোনও অ্যাপ্লিকেশনটির সাথে ইন্টারঅ্যাক্ট করতে পারে এবং অ্যাপ্লিকেশন রানটাইম সম্পর্কে আরও তথ্য রয়েছে has ডকারের আদিমগুলি হ'ল প্রক্রিয়াগুলি, লগ স্ট্রিমগুলি, পরিবেশের ভেরিয়েবলগুলি এবং উপাদানগুলির মধ্যে নেটওয়ার্ক লিঙ্ক। ভ্যাগ্র্যান্টের আদিমগুলি হ'ল মেশিন, ব্লক ডিভাইস এবং এসএসএস কী। ভ্যাগ্রান্ট কেবল স্ট্যাকের নীচে বসে থাকে এবং এটি কেবল একটি অন্য ধরণের মেশিনের ভান করে কেবল একটি পাত্রে সাথে আলাপচারিতা করতে পারে যে আপনি "বুট" করতে পারেন এবং "লগ ইন" করতে পারেন। সুতরাং, অবশ্যই, আপনি একটি ডকার প্লাগইন দিয়ে "ভ্যাগ্র্যান্ট আপ" টাইপ করতে পারেন এবং সুন্দর কিছু ঘটবে। এটি কি ডকার যা করতে পারে তার পূর্ণ প্রশস্ততার বিকল্প? কয়েক দিন নেটিভ ডকার চেষ্টা করে দেখুন এবং নিজের জন্য দেখুন :)
দ্বিতীয়ত, লক-ইন যুক্তি। "আপনি যদি ভ্যাগ্র্যান্টকে বিমূর্ততা হিসাবে ব্যবহার করেন তবে আপনাকে ডকারে লক করা হবে না!"। ভ্যাগ্র্যান্টের দৃষ্টিকোণ থেকে, যা মেশিনগুলি পরিচালনা করার জন্য তৈরি করা হয়েছে, এটি সঠিক ধারণা দেয়: পাত্রে কেবল অন্য ধরণের মেশিন নয়? অ্যামাজন ইসি 2 এবং ভিএমওয়্যারের মতো আমাদের অবশ্যই আমাদের প্রভিশন সরঞ্জামগুলি কোনও নির্দিষ্ট বিক্রেতার সাথে বেঁধে না দেওয়া উচিত! এটি লক-ইন তৈরি করবে - ভ্যাগ্র্যান্টের সাথে এটিকে বিমূর্ত করা আরও ভাল। এটি বাদে ডকারের বিন্দুটি পুরোপুরি মিস করে। ডকার বিধান মেশিন দেয় না; এটি আপনার অ্যাপ্লিকেশনটিকে একটি হালকা ওজনের পোর্টেবল রানটাইমগুলিতে আবৃত করে যা যে কোনও জায়গায় ফেলে দেওয়া যেতে পারে।
আপনার অ্যাপ্লিকেশনটির জন্য আপনি কোন রানটাইম বেছে নেবেন তার সাথে আপনার কীভাবে মেশিন সরবরাহ করা হচ্ছে তার কোনও সম্পর্ক নেই! উদাহরণস্বরূপ এটি অন্য কারও দ্বারা সরবরাহ করা মেশিনগুলিতে অ্যাপ্লিকেশন মোতায়েন করার ক্ষেত্রে প্রায়শই ঘন ঘন (উদাহরণস্বরূপ আপনার সিস্টেম অ্যাডমিনিস্ট্রেটারের দ্বারা প্রবর্তিত ইসি 2 উদাহরণ, সম্ভবত ভ্যাগ্র্যান্ট ব্যবহার করে), বা ভ্যাগ্র্যান্ট একেবারেই বিধান রাখতে পারে না এমন ধাতব মেশিনগুলি খালি করা। বিপরীতভাবে, আপনি প্রভিশন মেশিনগুলিতে ভ্যাগ্র্যান্ট ব্যবহার করতে পারেন যা আপনার অ্যাপ্লিকেশনটি বিকাশের সাথে কোনও সম্পর্কযুক্ত নয় - উদাহরণস্বরূপ একটি ব্যবহারের জন্য প্রস্তুত উইন্ডোজ আইআইএস বাক্স বা অন্য কিছু। অথবা আপনি প্রকল্পগুলির জন্য প্রভিশন মেশিনগুলিতে ভ্যাগ্র্যান্ট ব্যবহার করতে পারেন যা ডকার ব্যবহার করে না - সম্ভবত তারা নির্ভরতা পরিচালনা এবং স্যান্ডবক্সিংয়ের উদাহরণ হিসাবে উদাহরণস্বরূপ রুবিজেমস এবং আরভিএমের সংমিশ্রণ ব্যবহার করে।
সংক্ষেপে: ভ্যাগ্র্যান্ট মেশিন পরিচালনার জন্য এবং ডকার অ্যাপ্লিকেশন পরিবেশ তৈরি এবং পরিচালনা করার জন্য।
আমি ডকারের সাথে আমার কোনও অভিজ্ঞতা নেই বলে স্বীকার করে আমার জবাবটি উপস্থাপন করছি, সত্যিকারের ঝরঝরে সমাধান বলে মনে হচ্ছে এমন একটি আগ্রহী পর্যবেক্ষক ব্যতীত যা অনেকগুলি ট্র্যাকশন অর্জন করছে।
আমার কাছে ভ্যাগ্র্যান্টের সাথে একটি শালীন পরিমাণের অভিজ্ঞতা আছে এবং এটির উচ্চ প্রস্তাব দিতে পারি। এটি অবশ্যই LXC ভিত্তিক পরিবর্তে ভিএম ভিত্তিক হওয়ার দিক থেকে আরও বেশি হেভিওয়েট সমাধান। তবে, আমি একটি শালীন ল্যাপটপ পেয়েছি (8 জিবি র্যাম, আই 5 / আই 7 সিপিইউ) বিকাশ সরঞ্জামের পাশাপাশি ভ্যাগ্রান্ট / ভার্চুয়ালবক্স ব্যবহার করে কোনও ভিএম চালাতে কোনও অসুবিধা নেই।
ভ্যাগ্র্যান্টের সাথে সত্যই দুর্দান্ত জিনিসগুলির মধ্যে একটি হল স্বয়ংক্রিয় কনফিগারেশনের জন্য পুতুল / শেফ / শেল স্ক্রিপ্টগুলির সাথে একীকরণ । আপনি যদি নিজের উত্পাদন পরিবেশকে কনফিগার করতে এই বিকল্পগুলির মধ্যে একটি ব্যবহার করেন তবে আপনি একটি বিকাশ পরিবেশ তৈরি করতে পারেন যা আপনি যাচ্ছেন ঠিক তেমনই নিকটবর্তী এবং আপনি যা চান তা ঠিক এটি।
ভ্যাগ্র্যান্টের সাথে অন্য দুর্দান্ত জিনিসটি হ'ল আপনি নিজের অ্যাপ্লিকেশন কোডের সাথে আপনার ভ্যাগ্রান্টফাইলে সংস্করণ করতে পারেন। এর অর্থ হ'ল আপনার দলের অন্য প্রত্যেকে এই ফাইলটি ভাগ করতে পারে এবং আপনি নিশ্চয়তা দিয়েছেন যে প্রত্যেকে একই পরিবেশ কনফিগারেশন নিয়ে কাজ করছে।
মজার বিষয় হল, ভ্যাগ্র্যান্ট এবং ডকার আসলে প্রশংসামূলক হতে পারে। বিভিন্ন ভার্চুয়ালাইজেশন সরবরাহকারীদের সমর্থন করার জন্য ভ্যাগ্র্যান্টকে বাড়ানো যেতে পারে এবং সম্ভবত ডকর এমনই একজন সরবরাহকারী যা নিকট ভবিষ্যতে সমর্থন পায়। বিষয়টিতে সাম্প্রতিক আলোচনার জন্য https://github.com/dotcloud/docker/issues/404 দেখুন ।
তারা খুব পরিপূরক হয়।
আমি বেশ কয়েক মাস ধরে আমার সমস্ত প্রকল্পের জন্য ভার্চুয়ালবক্স, ভ্যাগ্রান্ট এবং ডকারের সংমিশ্রণটি ব্যবহার করছি এবং নিম্নলিখিত সুবিধাগুলি দৃ strongly়ভাবে অনুভব করেছি।
ভ্যাগ্রান্টে আপনি কোনও শেফ একক প্রভিশন সম্পূর্ণরূপে শেষ করতে পারেন এবং আপনাকে যা করতে আপনার ভ্যাব্রেন্ট ফাইলের দরকার তা হ'ল এমন একটি মেশিন প্রস্তুত করা যা একটি একক ছোট শেল স্ক্রিপ্ট চালায় যা ডকার ইনস্টল করে। এর অর্থ হ'ল প্রতিটি প্রকল্পের জন্য আমার ভ্যাগ্রান্ট ফাইলগুলি প্রায় অভিন্ন এবং খুব সহজ are
এখানে একটি সাধারণ ভ্যাগ্রান্ট ফাইল রয়েছে
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "mark2"
config.vm.box_url = "http://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
[3000, 5000, 2345, 15672, 5672, 15674, 27017, 28017, 9200, 9300, 11211, 55674, 61614, 55672, 5671, 61613].each do |p|
config.vm.network :forwarded_port, guest: p, host: p
end
config.vm.network :private_network, ip: "192.168.56.20"
config.vm.synced_folder ".", "/vagrant", :type => "nfs"
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
vb.customize ["modifyvm", :id, "--cpus", "2"]
end
# Bootstrap to Docker
config.vm.provision :shell, path: "script/vagrant/bootstrap", :privileged => true
# Build docker containers
config.vm.provision :shell, path: "script/vagrant/docker_build", :privileged => true
# Start containers
# config.vm.provision :shell, path: "script/vagrant/docker_start", :privileged => true
end
বুটস্ট্র্যাপ ফাইল যা ডকার ইনস্টল করে এটি দেখতে দেখতে ভাল লাগে
#!/usr/bin/env bash
echo 'vagrant ALL= (ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
apt-get update -y
apt-get install htop -y
apt-get install linux-image-extra-`uname -r` -y
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list
apt-get update -y
apt-get install lxc-docker -y
apt-get install curl -y
এখন আমার যে সমস্ত পরিষেবা চালানো দরকার সেগুলি পেতে আমার কাছে একটি ডকার_স্টার্ট স্ক্রিপ্ট রয়েছে যা দেখতে কিছুটা সুন্দর দেখাচ্ছে
#!/bin/bash
cd /vagrant
echo Starting required service containers
export HOST_NAME=192.168.56.20
# Start MongoDB
docker run --name=mongodb --detach=true --publish=27017:27017 --publish=28017:28017 dockerfile/mongodb
read -t5 -n1 -r -p "Waiting for mongodb to start..." key
# Start rabbitmq
docker run --name=rabbitmq --detach=true --publish=5671:5671 --publish=5672:5672 --publish=55672:55672 --publish=15672:15672 --publish=15674:15674 --publish=61613:61613 --env RABBITMQ_USER=guest --env RABBITMQ_PASS=guest rabbitmq
read -t5 -n1 -r -p "Waiting for rabbitmq to start..." key
# Start cache
docker run --name=memcached --detach=true --publish=11211:11211 ehazlett/memcached
read -t5 -n1 -r -p "Waiting for cache to start..." key
# Start elasticsearch
docker run --name=elasticsearch --detach=true --publish=9200:9200 --publish=9300:9300 dockerfile/elasticsearch
read -t5 -n1 -r -p "Waiting for elasticsearch to start..." key
echo "All services started"
এই উদাহরণে আমি মঙ্গোডিবি, ইলাস্টিস অনুসন্ধান, রাবিট এমকিউ এবং মেমক্যাচ চালাচ্ছি
একটি নন-ডকার শেফ একক কনফিগারেশন যথেষ্ট জটিল হবে।
একটি চূড়ান্ত বড় প্লাস অর্জন করা হয় যখন আপনি উত্পাদনের দিকে চলে যাচ্ছেন, বিকাশের পরিবেশটিকে হোস্টের একটি অবকাঠামোতে অনুবাদ করে যা সব একই রকম যে তাদের কাছে ডকার চালানোর জন্য যথেষ্ট কনফিগার রয়েছে মানে আসলে খুব কম কাজ।
আপনি যদি আগ্রহী হন তবে আমার নিজের ওয়েবসাইটে বিকাশের পরিবেশ সম্পর্কে আরও বিস্তারিত নিবন্ধ আছে
একটি ভ্যাগ্রান্ট / ডকার ডেভলপমেন্ট এনভায়রনমেন্ট বাস্তবায়ন করা
ভ্যাগ্রান্ট-এলএক্সসি ভ্যাগ্র্যান্টের জন্য একটি প্লাগইন যা আপনাকে ভ্যাগ্র্যান্টের বিধানের জন্য LXC ব্যবহার করতে দেয়। এতে ডিফল্ট ভ্যাগ্র্যান্ট ভিএম (ভার্চুয়ালবক্স) এর সমস্ত বৈশিষ্ট্য নেই তবে এটি আপনাকে ডকার পাত্রে তুলনায় আরও নমনীয়তার অনুমতি দেয়। লিঙ্কে একটি ভিডিও রয়েছে যা তার ক্ষমতাগুলি দেখায় যেগুলি দেখার মতো।
ভ্যাগ্র্যান্টের সাথে এখন আপনি সরবরাহকারী হিসাবে ডকার রাখতে পারেন। http://docs.vagrantup.com/v2/docker/ । ভার্চুয়ালবক্স বা ভিএমওয়্যারের পরিবর্তে ডকার সরবরাহকারী ব্যবহার করা যেতে পারে।
দয়া করে নোট করুন যে আপনি ভ্যাগ্র্যান্টের সাথে প্রভিশন দেওয়ার জন্য ডকারও ব্যবহার করতে পারেন। এটি সরবরাহকারীর হিসাবে ডকার ব্যবহার করার চেয়ে খুব আলাদা। http://docs.vagrantup.com/v2/provisioning/docker.html
এর অর্থ আপনি শেফ বা পুতুলকে ডকারের সাথে প্রতিস্থাপন করতে পারেন । আপনি প্রফেসর হিসাবে শেফের সাথে ডকারের মতো সরবরাহকারীর (ভিএম) সংমিশ্রণগুলি ব্যবহার করতে পারেন। অথবা আপনি সরবরাহকারীর হিসাবে ভার্চুয়ালবক্স এবং প্রযোজক হিসাবে ডকার ব্যবহার করতে পারেন।
উভয় ব্যবহার অ্যাপ্লিকেশন বিতরণ পরীক্ষার একটি গুরুত্বপূর্ণ অংশ। আমি কেবল ডকারের সাথে জড়িত হতে শুরু করেছি এবং একটি অ্যাপ্লিকেশন টিম সম্পর্কে খুব কঠোর চিন্তাভাবনা করছি যা এর সফ্টওয়্যারটি তৈরি এবং বিতরণ করার ক্ষেত্রে ভয়ানক জটিলতা রয়েছে। একটি ক্লাসিক ফিনিক্স প্রকল্প / ক্রমাগত বিতরণ পরিস্থিতি সম্পর্কে চিন্তা করুন Think
চিন্তাভাবনা এরকম কিছু হয়:
এটি মিচেলের বক্তব্যটির যৌক্তিক বর্ধন বলে মনে হচ্ছে যে ভ্যাগ্র্যান্ট হ'ল ফার্নি / হাম্বলসকে কন্টিনিউজ ডেলিভারিতে ভাবনার সাথে একত্রিত করে উন্নয়নের জন্য। যদি আমি, একজন বিকাশকারী হিসাবে, ইন্টিগ্রেশন টেস্টিং এবং অ্যাপ্লিকেশন বিতরণের বিষয়ে প্রতিক্রিয়া লুপটি সঙ্কুচিত করতে পারি তবে উচ্চমানের এবং আরও ভাল কাজের পরিবেশ অনুসরণ করবে।
একজন বিকাশকারী হিসাবে আমি ক্রমাগত এবং ধারাবাহিকভাবে ভিএমগুলিতে পাত্রে বিতরণ করছি এবং অ্যাপ্লিকেশনটিকে আরও সামগ্রিকভাবে পরীক্ষা করার অর্থ হ'ল উত্পাদন প্রকাশগুলি আরও সরল করা হবে।
সুতরাং আমি ভ্যাগ্র্যান্টকে অ্যাপ্লিকেশন মোতায়েনের জন্য ডকারের ভয়াবহ পরিণতির কিছু লাভের উপায় হিসাবে বিকশিত হতে দেখছি।
অবশ্যই জয়ের জন্য ডকার!
যেমন আপনি জানেন যে ভ্যাগ্র্যান্ট ভার্চুয়াল মেশিন পরিচালনার জন্য যেখানে ডকার সফটওয়্যার ধারক পরিচালনার জন্য। আপনি যদি পার্থক্য সম্পর্কে অবগত না হন, তা এখানে: একটি সফ্টওয়্যার ধারক একই সফ্টওয়্যার এবং অন্যান্য সফ্টওয়্যার ধারকগুলির সাথে কার্নেল ভাগ করতে পারে। পাত্রগুলি ব্যবহার করে আপনি অর্থ সাশ্রয় করেন কারণ আপনি একাধিক অপারেটিং সিস্টেমে (কার্নেলগুলি) রিসোর্স নষ্ট করেন না, আপনি ভাল ডিগ্রি বিচ্ছিন্ন রেখে সার্ভারে আরও বেশি সফ্টওয়্যার প্যাক করতে পারেন।
অবশ্যই নিজের পিটফালস এবং চ্যালেঞ্জগুলির সাথে যত্ন নেওয়ার জন্য একটি নতুন শৃঙ্খলা।
আপনার প্রয়োজনীয়তা যদি একক মেশিন সংস্থান সীমা অতিক্রম করে তবে ডকার সোর্মের জন্য যান।
ভ্যাগ্র্যান্ট (এবং পুতুল) এর সাথে মিলিয়ে ডকার ব্যবহার সম্পর্কে প্রকৃত ওরাকল জাভা ম্যাগাজিনে একটি সত্যই তথ্যমূলক নিবন্ধ রয়েছে:
উপসংহার
ডকারের লাইটওয়েট কনটেইনারগুলি ক্লাসিক ভিএমগুলির সাথে তুলনায় দ্রুততর হয় এবং বিকাশকারীদের মধ্যে এবং সিডি এবং ডিওপস উদ্যোগের অংশ হিসাবে জনপ্রিয় হয়ে উঠেছে। যদি আপনার উদ্দেশ্য বিচ্ছিন্ন হয় তবে ডকার একটি দুর্দান্ত পছন্দ। ভ্যাগ্র্যান্ট এমন একটি ভিএম ম্যানেজার যা আপনাকে পৃথক ভিএমগুলির স্ক্রিপ্ট কনফিগারেশনের পাশাপাশি প্রভিশিং করতে সক্ষম করে। তবে এটি ভার্চুয়ালবক্সের উপর নির্ভরশীল ভিএম নির্ভর (বা অন্য কোনও ভিএম পরিচালক) তুলনামূলকভাবে বড় ওভারহেড। এটির জন্য আপনার হার্ড ড্রাইভ নিষ্ক্রিয় হওয়া দরকার যা বিশাল হতে পারে, এটি প্রচুর পরিমাণে র্যাম নেয় এবং পারফরম্যান্স সাব-থিম হতে পারে। ডকার LXC এর মাধ্যমে কার্নেল সিগ্রুপ এবং নেমস্পেস বিচ্ছিন্নতা ব্যবহার করে। এর অর্থ আপনি হোস্ট এবং একই আইল সিস্টেমের মতো একই কার্নেলটি ব্যবহার করছেন। ভ্যাব্র্যান্ট বিমূর্ততার ক্ষেত্রে ডকারের উপরে একটি স্তর, তাই এগুলি আসলে তুলনামূলক নয়। কনফিগারেশন পরিচালনার সরঞ্জামগুলি যেমন পুতুল লক্ষ্য পরিবেশের ব্যবস্থা করার জন্য ব্যাপকভাবে ব্যবহৃত হয়। বিদ্যমান পুতুল-ভিত্তিক সমাধানগুলি পুনরায় ব্যবহার করা ডকারের সাথে সহজ। আপনি নিজের সমাধানটি টুকরো টুকরো টুকরো করতে পারেন, তাই পুটপেটের সাথে পরিকাঠামো সরবরাহ করা হয়েছে; মিডলওয়্যার, ব্যবসায়ের অ্যাপ্লিকেশন নিজেই বা উভয়ই ডকারের সাথে সরবরাহ করা হয়েছে; এবং ডকার ভ্যাগ্র্যান্ট দ্বারা আবৃত। এই পরিসরের সরঞ্জামগুলির সাহায্যে আপনি আপনার দৃশ্যের জন্য সবচেয়ে ভাল যা করতে পারেন।
ডিভোপস http://www.javamagazine.mozaicreader.com/JulyAug2015#&pageSet=34&page=0- এ ডকার পাত্রে কীভাবে তৈরি, ব্যবহার এবং অর্কেস্ট্রেট করা যায়