কী কারণে ডকারকে ডাটাবেসের জন্য ব্যবহার করা উচিত নয়?


25

আমি ডকারের ব্যবহারের ক্ষেত্রে একটি বন্ধুর সাথে আলোচনা করছি । দলের একজন লোক সমস্ত কিছুর জন্য ডকার ব্যবহার করতে চান - যেমন একধরনের সর্বজনীন ইউনিক্স প্রক্রিয়া মোড়ক। অন্যান্য মনে করেন যে Docker শুধুমাত্র জন্য ব্যবহার করা উচিত আড়ম্বরহীন মত অ্যাপ্লিকেশনের Microservices এবং ডেস্কটপ AWS ল্যামডা শৈলী অ্যাপ্লিকেশন রয়েছে।

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

আমার বন্ধুটি তার বিপরীত প্রমাণ দেখানো সত্ত্বেও এখনও তার অবস্থানকে আঁকড়ে ধরেছে। (তিনি আরও যুক্তি দিয়েছিলেন যে ডকার স্ট্যাকটিতে জটিলতা যুক্ত করে অপ্রয়োজনীয় ঝুঁকি যুক্ত করে ))

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

প্রশ্নের পিছনে প্রশ্নের ধরণটি হল: ডাটাবেসগুলি গবাদি পশু ? এই মন্তব্যটি পরামর্শ দেয় যে আপনার ডাটাবেসের জন্য একটি ভাল স্বয়ংক্রিয় ব্যাকআপ এবং পুনরুদ্ধার কৌশল একটি গবাদি পশুর সার্ভার থেকে পৃথক করা যায়।

আমার প্রশ্ন হ'ল: কী কারণে ডকারকে ডাটাবেসগুলির জন্য ব্যবহার করা উচিত নয়?

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

কিছু মন্তব্যকারী পরামর্শ দিয়েছেন যে ডকার ভলিউম ড্রাইভাররা খুব ভালভাবে ডেটাবেস লেখার সাথে কাজ করে না। (বা সেই প্রভাবের কিছু)। আপনি দয়া করে এটি প্রসারিত করতে পারেন?



এই ব্লগের লেখকের মতে মেঘ সরবরাহকারীরা পরিচালিত ডাটাবেসগুলি সরবরাহ করার কারণে পাত্রে কোনও ডাটাবেস চালানো উচিত নয়।
২030

উত্তর:


20

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

ভলিউমগুলি ডকারের একটি অত্যাবশ্যকীয় অংশ এবং এটি এমন কিছু নয় যা ফ্লেকি বা কেবল সজ্জিত। ডকার কেবল স্টেটহীন (মাইক্রো) পরিষেবার জন্য তৈরি হয় না

আমি যেমন চাই, আমি কোনও ডকারে ডাটাবেস না চালানোর কোনও প্রযুক্তিগত কারণ খুঁজে পাচ্ছি না , সুতরাং দুর্ভাগ্যক্রমে আমি যুক্তির অন্য দিকটি বেছে নেব এবং তাই আপনাকে যা উত্তর খুঁজছেন তা আপনাকে দিতে না পারছি।

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

  • কনটেইনে নিজেই ডিবি সফ্টওয়্যার প্যাকেজিং আপনাকে স্বাভাবিক সুবিধা দেয় - সর্বত্র একই সংস্করণ থাকা, নির্ভরতা / ভাগ করা লাইব্রেরির সমস্যাগুলি এড়ানো, বিকাশকারী ল্যাপটপে বা যেখানে আপনার প্রয়োজন যেখানে ঠিক একই ডিবি স্পিন করতে সক্ষম।
  • এটি যে কোনও জায়গায় চালানোর জন্য এটি একটি স্ন্যাপ ; আপডেট করা তুচ্ছ, এবং আরও অনেক কিছু। সমস্ত ডকার সুবিধাগুলি প্রযোজ্য। ডকারহাবের উপর একটি ওরাকল চিত্র রয়েছে যা আপনাকে এক মিনিট বা তিন (এবং অবশ্যই অন্যদের জন্য) একটি কার্যকারী ডিবি স্পিন করতে দেয়।
  • লোকেরা পারফরম্যান্স পরীক্ষা করে এবং ভলিউম এবং খালি ধাতব মধ্যে কোনও I / O পার্থক্য খুঁজে পায় না ( https://www.percona.com/blog/2016/02/11/measuring-docker-io-overhead/ , https: // stackoverflow .কম / প্রশ্নগুলি / 21889053 / দেক-রান-টাইম-পারফরম্যান্স-এ-ডকার-ধারক-এর )
  • হুডের নীচে, ডকার কোনওভাবেই সমস্ত আই / ওকে বাধা দেয় না। এটি কেবলমাত্র স্ট্যান্ডার্ড লিনাক্স সরঞ্জামগুলির সাথে সৃজনশীল হয়ে উঠেছে (এক্ষেত্রে মাউন্টগুলি বাঁধাই করুন, অভ্যন্তরীণ কার্নেল টেবিলগুলির ম্যাঙ্গলিং যা ডকার-ফুকে একেবারেই সম্ভব করে তোলে)।
  • স্পষ্টতই এর অর্থ এই নয় যে আপনি ডিবি এর দুটি উদাহরণ চালাতে পারেন এবং কেবল সেগুলি একই ফাইলগুলিতে কাজ করতে পারেন, তবে কেউ তা বোঝাচ্ছে না। ডকার আপনাকে স্বয়ংক্রিয়ভাবে যুগপত এবং যাদুবিদ্যায় রেস-ফ্রি ভলিউমে অ্যাক্সেস দেয় না এবং এটি করার ভান করে না। বাকি সুবিধাগুলি এখনও প্রয়োগ হয়। যদি আপনার ডিবি নিজেই এর মতো দ্বন্দ্বগুলি সনাক্ত না করে তবে আপনি ভালভাবে একটি চিত্রের সিএমডি স্ক্রিপ্ট সরবরাহ করবেন যা ভলিউম ইতিমধ্যে ব্যবহৃত অবস্থায় দ্বিতীয় পাত্রে কাটতে অস্বীকার করবে।
  • আপনাকে কন্টেইনারটি স্পিনিং আপ / শাট ডাউন করতে আরও একটু যত্নবান হতে হবে (ঠিক যেমন আপনি কেবল একটি খালি ধাতব ডিবি সার্ভারটি স্যুইচ করবেন না), তবে এটি বেশ পরিচালনাযোগ্য হওয়া উচিত।

এখন, পরিস্থিতির উপর নির্ভর করে এটি না করার নীতিগত কারণ থাকতে পারে:

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

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


বিকল্পটি হ'ল বনাম আপনার নিজের হোস্টিং বনাম কোনও পরিচালিত ডিবি পরিষেবা ব্যবহার করছেন Another
এভিআই

3

আমি এ সম্পর্কে গভীরতার সাথে লিখেছিলাম তবে সংক্ষিপ্তসারটি এখানে:

  • বিভক্ত মস্তিষ্কের প্রতিরোধ (একাধিক মাস্টার নোড নির্বাচন করা) সমাধান করা দরকার। এটি করতে ব্যর্থতা বিপর্যয়কর হতে পারে

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


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

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

ফ্লাইএন.আইও দেখেছেন? তারা সম্ভবত উত্পাদন-প্রস্তুত এবং একটি কোরাম স্টেট মেশিন (জয়েন্ট মানাতে ভিত্তিক) ব্যবহার করে বিভক্ত-মস্তিষ্কের পরিস্থিতি এড়ায়।
অ্যালিক্স অ্যাক্সেল

এই পয়েন্টগুলির কোনওটিই ক্যাসান্দ্রা বা অন্যান্য বিতরণ করা ডাটাবেসের ক্ষেত্রে প্রযোজ্য নয় তবে আমি এখনও মনে করি না যে এটি একটি ধারকটিতে চালানো একটি ভাল ধারণা।
dres

0

আপনি যখন বলেন যে ডেটাটি একটি ডকার পাত্রে স্থাপন করা হয়েছে, তখন কি এটি বলা সঠিক হবে না যে "ডাটাবেস" ডকার পাত্রে মাউন্ট করা আছে? আপনি যদি কনটেইনার বাইরে আপনার ডেটা অবিরত রাখছেন তবে আপনি আপনার ডাটাবেসটিকে একটি পাত্রে না রাখার "সঠিক" কাজটি করছেন।

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

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

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