কীভাবে ছোট ওয়েব দলের জন্য স্থানীয় ডাটাবেস বিকাশ প্রক্রিয়া সেটআপ করবেন?


14

পটভূমি

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

পূর্বে, আমরা সবাই এফটিপি-র মাধ্যমে একটি সার্ভারে সিঙ্গল ডেটাবেস সহ কাজ করেছিলাম। এটি হবে "কাজ" * কিছুদিনের জন্য, কিন্তু আমরা একটি নতুন দিক এ আসছেন হয়, তাই এটি আমাদের প্রক্রিয়ার পরিপক্ক করার সময়।

আমরা পারকোনা সার্ভার 5.5 ব্যবহার করি তবে ব্যয় কম রাখার ধারণার সাথে এটি ডাটাবেস অজ্ঞাবলিক হওয়া উচিত।

লক্ষ্যসমূহ :

আমি নিম্নলিখিতটি মাথায় রেখে ডাটাবেস বিকাশের জন্য একটি অবিচ্ছিন্ন ইন্টিগ্রেশন (সিআই) প্রক্রিয়া তৈরির দিকে তাকাচ্ছি

  1. বিকাশকারীদের কাছে ডেভেলপমেন্ট কোড চালানোর জন্য ডেটার স্থানীয় কপি থাকে
  2. পূর্ববর্তী চেঞ্জসেটে ডাটাবেস কাঠামো রোলব্যাক করতে সক্ষম
  3. নতুন বৈশিষ্ট্য স্কিমা পরিবর্তন বনাম স্কিমা ডিজাইন ফিক্স পরিবর্তনগুলি পৃথক করতে সক্ষম
  4. পরীক্ষার জন্য স্থানীয়ভাবে ডাটাবেস কাঠামো পরিবর্তন করতে সক্ষম

প্রাথমিক ধারণা

আমি এসভিএন এবং লিকুইবেস ব্যবহার করে নীচে একটি প্রক্রিয়া স্কেচ করেছি, যদিও এটি সম্পূর্ণরূপে সরিয়ে ফেলে #4

  • ট্রাঙ্ক থেকে একটি 'উন্নয়ন' শাখা তৈরি করুন
  • কেন্দ্রীয় 'উন্নয়ন' ডিবি সার্ভারটি 'উন্নয়ন' শাখাটি বন্ধ করে দেয়
  • স্থানীয় বিকাশকারীদের উন্নয়ন শাখার দাস হিসাবে সেট আপ করা হয়েছে ( #1উপরের সরবরাহগুলি)
  • তরলবীজ পরিবর্তনগুলি নিয়মিত বিকাশ শাখায় প্রতিশ্রুতিবদ্ধ হয়, যা কেন্দ্রীয় বিকাশের ডেটাবেস আপডেট করার জন্য একটি পোস্ট-কমিট হুক চালায় (যা এই বিকাশের সার্ভারের দাস হিসাবে চালিত স্থানীয় মেশিনগুলিকে চালিত করবে) (তরলবাইজ #2উপরে সরবরাহ করে)
  • যখন বৈশিষ্ট্য বা স্কিমা ফিক্সগুলি কিউএ যেতে প্রস্তুত থাকে, ডিবিএ (আমি) বিকাশ শাখা থেকে যথাযথ পরিবর্তনগুলি ট্রাঙ্কে একীভূত করবে। এই আইনটি একটি মঞ্চের ডেটাবেস সার্ভারে প্রয়োগ করতে একটি স্কয়ার স্ক্রিপ্ট তৈরি করবে।
  • স্টেজিং সার্ভারের ট্রাঙ্ক প্রতিবিম্বিত করা উচিত, যার উত্পাদনের মতো একই কাঠামো থাকতে হবে, এবং কিউএতে থাকা পরিবর্তনগুলি
  • স্টেজিং সার্ভারে স্কেল স্ক্রিপ্টটি সম্পাদন করার পরে, পরিবর্তনগুলি সম্পর্কে কিছু QA করুন।
  • যদি সমস্ত ভাল দেখাচ্ছে, কাঠামোটি ট্যাগ করুন। এটি ডিবিএ দ্বারা ম্যানুয়ালি উত্পাদনে চালিত .sql স্ক্রিপ্ট তৈরি করবে (প্রয়োজনে অফ-পিক আওয়ারের জন্য)

এই প্রক্রিয়াটির জন্য সমস্ত বিকাশকারী একই 'বিকাশ' শাখাটি চালিত করে, অর্থাত যে কোনও সময়ে ডাটাবেস স্কিমার একমাত্র সংস্করণ রয়েছে (আমি নিশ্চিত এটি নিশ্চিত নই)।

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

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


* 'কাজ' করার অর্থ, এটি যথেষ্ট হয়েছে তবে পিটা ছিল was

উত্তর:


12

পরিবেশ ব্যবস্থাপনা

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

সংস্করণগুলি আপগ্রেড করতে প্যাচ স্ক্রিপ্টগুলি উত্পাদন করতে আপনি লিকুইবেস বা একটি ম্যানুয়াল প্রক্রিয়া ব্যবহার করতে পারেন। আমি একটি ম্যানুয়াল প্রক্রিয়া শুরু করার এবং প্যাচগুলিতে QA এর জন্য স্কিমা তুলনা সরঞ্জামটি ব্যবহার করার পরামর্শ দিচ্ছি। কোনও স্বতঃস্ফূর্তভাবে জটিল ডাটাবেসের পরিষ্কার, স্বয়ংক্রিয়, স্বচ্ছ সিঙ্ক্রোনাইজেশন হ'ল কিছুটা ইউটোপিয়ান।

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

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

আমি যা করেছি

আমি অতীতে নিম্নলিখিতগুলি সম্পাদন করেছি যখন আমি বিকাশের পরিবেশগুলি পরিচালনা করি। এটি বিশেষত উচ্চ প্রযুক্তি নয়, তবে এটি সংস্করণ নিয়ন্ত্রণ এবং স্বয়ংক্রিয় বিল্ডগুলিতে কার্যকর so

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

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

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

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

প্যাচ স্ক্রিপ্টস: আপনার প্রকাশিত প্রতিটি সংস্করণ থেকে সম্ভবত রোল ফরোয়ার এবং রোল ব্যাক স্ক্রিপ্টগুলির প্রয়োজন হবে।

সংগ্রহস্থল মডেল থেকে পরীক্ষার পরিবেশ তৈরি করুন: এটি নিশ্চিত করে যে সংগ্রহস্থলের সাথে সিঙ্কের বাইরে থাকা পরিবেশগুলির বিকাশ পরীক্ষায় ধরা পড়ে।

স্থাপনার প্রক্রিয়াটি পরীক্ষা করুন: স্বয়ংক্রিয় প্যাচিং স্ক্রিপ্টগুলি তবে সেগুলি তৈরি হয় তা পরীক্ষামূলক হওয়া উচিত। স্কিমা তুলনা সরঞ্জামগুলি এর জন্য বেশ ভাল, আপনি প্যাচ স্ক্রিপ্টগুলি তৈরি করতে সেগুলি ব্যবহার না করলেও।

  • আপনার বিরুদ্ধে পরীক্ষিত সংগ্রহস্থল মডেল তৈরি করে একটি রেফারেন্স এনভায়রনমেন্ট তৈরি করুন

  • আপনার উত্পাদনের মুক্তির ব্যাকআপ বা বর্তমান প্রকাশিত সংস্করণের উপর ভিত্তি করে বিল্ড দিয়ে ধোঁয়া পরীক্ষার পরিবেশ তৈরি করুন।

  • ধোঁয়া পরীক্ষার পরিবেশের বিরুদ্ধে প্যাচ স্ক্রিপ্টটি চালান।

  • ধোঁয়া পরীক্ষার পরিবেশকে রেফারেন্স এনভায়রনমেন্টের সাথে তুলনা করতে স্কিমা তুলনা সরঞ্জামটি ব্যবহার করুন। প্যাচ স্ক্রিপ্টের ফলে দুটি ডাটাবেস একরকম হওয়া উচিত, যাতে আপনি কোনও পার্থক্য তদন্ত করতে পারেন।

এই প্রক্রিয়াটি সম্পর্কে আমি কী পছন্দ করি

এটি কিছুটা ভারী ওজনযুক্ত এবং মোটামুটি আমলাতান্ত্রিক এবং অস্বচ্ছ উত্পাদন পরিবেশে স্থাপনের জন্য তৈরি করা হয়েছিল। তবে এটির নিম্নোক্ত শক্তি রয়েছে:

  • বিকাশকারীরা যেখানে প্রয়োজন সেখানে টিঙ্কার করতে পারেন।

  • একাধিক শাখা এবং উন্নয়নের স্রোতে জায়গা করা যায়।

  • স্থাপনার স্ক্রিপ্টগুলি নিজেরাই পুনরাবৃত্তিযোগ্য উপায়ে পরীক্ষা করা যেতে পারে। এটি পুনরুদ্ধারযোগ্যতা প্রদর্শন করা যেতে পারে, কারণ মোতায়েন বনফাইটগুলি বন্ধ করতে খুব সহায়ক।

  • স্কিমা তুলনা সরঞ্জামগুলি ডিপ্লোয়মেন্টে নিজেই কিউএ সরবরাহ করে।

  • যা প্রকাশিত হবে বলে আশা করা যায় তার বিরুদ্ধে সর্বদা পরীক্ষা করা হয় এবং এটি পরিবেশের সিঙ্কের বাইরে থাকা থেকে উদ্ভূত সমস্যাগুলিকে ধরে ফেলবে।

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

  • প্রক্রিয়া প্রচুর স্বয়ংক্রিয়ভাবে করা যেতে পারে, যদিও প্রায়শই প্যানেল স্ক্রিপ্টগুলি নিজেই প্রস্তুত ও পরীক্ষামূলকভাবে আকাঙ্ক্ষিত হয়।

  • হুপের মধ্যে দিয়ে ঝাঁপিয়ে না পড়ে পরিবেশগুলি সস্তা এবং স্থাপন করা সহজ।

  • বিকাশকারীরা এমন একটি সিস্টেম তৈরি করতে বাধ্য হন যা একটি সাধারণ বিল্ডিং এবং মোতায়েন প্রক্রিয়াতে সহায়ক।

  • বিকাশকারীরা বেসিক ডাটাবেস প্রশাসনের কাজগুলি শিখতে বাধ্য হয়, তবে পরীক্ষা এবং উত্পাদন পরিবেশগুলি নুব ভুল থেকে অন্তরক হয়।

এটি আপনার প্রয়োজনীয়তাগুলিকে কীভাবে সম্বোধন করে

  1. বিকাশকারীদের কাছে ডেভলপমেন্ট কোডটি চালানোর জন্য ডেটার স্থানীয় কপি থাকে

    ডিপ্লোয়মেন্ট স্ক্রিপ্ট বা ডিবি চিত্রের অর্থ তারা উপলব্ধ যে কোনও সংস্করণ থেকে একটি পরিবেশ সেট আপ করতে পারে।

  2. পূর্ববর্তী চেঞ্জসেটে

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

  3. নতুন বৈশিষ্ট্য স্কিমা পরিবর্তনগুলি পৃথক করতে সক্ষম বনাম স্কিমা ডিজাইন ফিক্স পরিবর্তনগুলি

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

  4. পরীক্ষার জন্য স্থানীয়ভাবে ডেটাবেস কাঠামো পরিবর্তন করতে সক্ষম

    সাধারণ স্থাপনা প্রক্রিয়াটি ডিভগুলিকে স্থানীয় অঞ্চলে সহজেই একটি পরিবেশ ফিরিয়ে আনতে বা তুলনামূলকভাবে পরিবর্তন করার জন্য একটি রেফারেন্স এনভায়রনমেন্ট নিয়ে আসে।

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