পার্ট 2: গিটল্যাব এবং ওপেন সোর্স সহ আপনার কুবেরনেটস সিআই / সিডি পাইপলাইনগুলি কীভাবে উন্নত করবেন

পিক্সবে মাধ্যমে চিত্র বৈশিষ্ট্য।

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

অ্যাপ্লিকেশন মোতায়েন উন্নত করুন

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

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

আমাদের বিদ্যমান YAML উদ্ভাসকে কাস্টমাইজ করতে, আমাদের কেবলমাত্র আমাদের কাস্টমাইজেশনগুলি একটি কাস্টমাইজেশন.আইএমএল-এ সংজ্ঞায়িত করতে হবে, যা কাস্টমাইজ তারপরে ফলাফলের ওয়াইএএমএল সংজ্ঞাগুলি তৈরি করার জন্য একটি রুলসেট হিসাবে ব্যবহার করে। আমাকে একটি উদাহরণ দেই (আপনি এখানে পুরো উদাহরণটি পর্যালোচনা করতে পারেন):

apiVersion: kustomize.config.k8s.io/v1beta1 ধরণের: কাস্টমাইজেশন বেস: - ../../base সাধারণ লেবেল: এনভ: দেব প্যাচস্ট্রেটিকর্মিজ: - রেপ্লিকা.আইএমএল - এনভ.আইএমএল নামপ্রিফিক্স: দেব-

এই কাস্টমাইজেশন.আইএমএল, উদাহরণস্বরূপ, একটি উন্নয়ন পরিবেশে অ্যাপ্লিকেশন স্থাপন করতে ব্যবহৃত হয়। অতএব, এটি আমাদের বিদ্যমান YAML ম্যানিফেস্টকে কাস্টমাইজ করে (বেসগুলির প্যারামিটারের সাথে সংযুক্ত) এবং কিছু নির্দিষ্ট কনফিগারেশন যুক্ত করে:

  • সমস্ত সংস্থানগুলিতে একটি env = দেব লেবেল যুক্ত করে।
  • সংজ্ঞায়িত ফাইলগুলির ভিত্তিতে বিদ্যমান YAML ম্যানিফেস্টকে প্যাচ করে; এই উদাহরণে এটি প্রতিরূপ গণনা আপডেট করে এবং একটি নির্দিষ্ট ধারক পরিবেশের ভেরিয়েবল যুক্ত করে।
  • উপসর্গটি নামটি সমস্ত সংস্থানগুলিতে যুক্ত করে।

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

আসুন আমরা কীভাবে কাস্টমাইজকে একটি ধারক পাইপলাইনে সংহত করতে পারি তা একবার দেখে নেওয়া যাক (আপনি এখানে পুরো উদাহরণটি পর্যালোচনা করতে পারেন):

পর্যায়ে: - চলকগুলি মোতায়েন করুন: চিত্র: "রেজিস্ট্রি.gitlab.com/nmeisenzahl/dockerfiles/kubectl:latest" ENV: "dev" অ্যাপ-মোতায়েন: পর্যায়: ট্যাগ লাগানো: - কুবেরনেটস চিত্র: নাম: $ চিত্র এন্ট্রিপয়েন্ট: "" ] স্ক্রিপ্ট: - kubectl প্রয়োগ করুন -k স্থাপনা / ওভারলে / $ ENV কেবল: - মাস্টার

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

আপনার অ্যাপ্লিকেশন ইনগ্রেশন সুরক্ষিত করুন

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

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

উপরে উল্লিখিত হিসাবে, গিটল্যাব ডাব্লুএএফ ডিফল্টরূপে সনাক্তকরণের জন্য কনফিগার করা হয়েছে। ওয়েব অ্যাপ্লিকেশন ফায়ারওয়াল সুরক্ষার সাথে সম্পর্কিত সমস্ত সমস্যা ইনগ্রিস কন্ট্রোলার পডের একটি নিরীক্ষণ লগ (/var/log/modsec/audit.log) এ লগ করবে, যা আরও বিশ্লেষণ বা অভিনয় করার জন্য যে কোনও লগ ম্যানেজমেন্টে ফরোয়ার্ড করা যেতে পারে। সুরক্ষা সমস্যার একটি উদাহরণ আউটপুট:

আপনার ব্যবসায়ের যুক্তি সম্পর্কে আপনার কেবল কেন যত্ন করা উচিত

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

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

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

.Gitlab-ci.yml যা আমাদের ফাংশনটি তৈরি এবং স্থাপনের জন্য পাইপলাইনটি সংজ্ঞায়িত করে:

অন্তর্ভুক্ত: টেমপ্লেট: সার্ভারলেস.gitlab-ci.yml ফাংশন: বিল্ড: প্রসারিত:। সার্ভারলেস: বিল্ড: ফাংশন পরিবেশ: উত্পাদন ফাংশন: মোতায়েন: প্রসারিত: সার্ভারলেস: স্থাপনা: ফাংশন পরিবেশ: উত্পাদন

একটি সার্ভারলেস.আইএমএল যা ফাংশনগুলি এবং প্রয়োজনীয় রানটাইম বর্ণনা করে:

পরিষেবা: ফাংশন সরবরাহকারী: নাম: ট্রিগারমেশ ফাংশন: ইকো-জেএস: হ্যান্ডলার: ইকো-জেএস উত্স: ./echo-js রানটাইম: গিটল্যাব / রানটাইমস / নোডেজ

গিটল্যাব সার্ভারলেস আপনার ফাংশনটির স্কেলিং সম্পর্কিত বিশদ মেট্রিক সরবরাহ করবে:

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

খুশি মোতায়েন!

এই নিবন্ধটি প্রথম দ্য নিউ স্ট্যাক-এ প্রকাশিত হয়েছিল।

আরো দেখুন

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