DevOps ও ক্লাউড ইনফ্রাস্ট্রাকচার

DevOps ও CI/CD

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

ম্যানুয়াল ডিপ্লয় থেকে নিয়ন্ত্রিত রিলিজে

রিলিজ যদি ম্যানুয়াল ধাপ, একজন মানুষের ল্যাপটপ বা এমন কোনো স্ক্রিপ্টের ওপর নির্ভর করে, যেটিতে কেউ হাত দিতে চায় না, তাহলে প্রতিটি ডিপ্লয়মেন্টই একটি ঝুঁকি। আমরা এমন CI/CD পাইপলাইন তৈরি করি, যা প্রতিটি পরিবর্তন টেস্ট করে, প্রতিবার একইভাবে ডিপ্লয় করে এবং রোলব্যাকের একটি পথ প্রস্তুত রাখে। পাইপলাইন কনফিগারেশন, কনটেইনার ফাইল ও ইনফ্রাস্ট্রাকচার কোডের খসড়া তৈরিতে এবং ব্যর্থ বিল্ডের লগ পড়তে AI এজেন্ট সাহায্য করে। প্রতিটি পরিবর্তন রিভিউ করেন DevOps ইঞ্জিনিয়াররা, আর রিলিজের আগে কোন কোন চেক পাস করতে হবে, তা তাঁরাই ঠিক করেন। এটি নতুন প্রোডাক্ট ও বিদ্যমান সফটওয়্যারের জন্য উপযুক্ত, AI টুল দিয়ে তৈরি অ্যাপসহ।

AI-সহায়তায় DevOps, ইঞ্জিনিয়ারদের রিভিউসহ

AI যেভাবে সহায়তা করে

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

আমাদের বিশেষজ্ঞদের দায়িত্ব

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

একটি পরিবর্তন, কমিট থেকে প্রোডাকশন পর্যন্ত

একটি ওয়েব প্রোডাক্টের নমুনা রিলিজ-পথ; আপনার ধাপ, চেক ও অনুমোদনকারী ঠিক করা হয় আপনার সাথে মিলে।

  1. কমিট

    একজন ডেভেলপার বা একটি AI কোডিং এজেন্ট একটি পরিবর্তন পুশ করে; লেখক যে-ই হোক, একই পাইপলাইন শুরু হয়।

    চেকপয়েন্ট: মার্জের আগে কোড রিভিউ অনুমোদিত

  2. বিল্ড ও টেস্ট

    অ্যাপটি একবারই বিল্ড করে একটি ভার্সনযুক্ত আর্টিফ্যাক্ট তৈরি করা হয়, তারপর সেটির ওপর ইউনিট, ইন্টিগ্রেশন ও এন্ড-টু-এন্ড টেস্ট চলে।

    চেকপয়েন্ট: যেকোনো টেস্ট ফেল করলে পাইপলাইন থেমে যায়

  3. সিকিউরিটি চেক

    ডিপেনডেন্সি, সিক্রেট ও কনটেইনার ইমেজ স্ক্যান, সাথে পাবলিক অ্যাক্সেসের মতো ঝুঁকিপূর্ণ ইনফ্রাস্ট্রাকচার পরিবর্তনের চেক।

    চেকপয়েন্ট: গুরুতর ফাইন্ডিংয়ে একজন ইঞ্জিনিয়ারের সিদ্ধান্ত প্রয়োজন

  4. স্টেজিং

    মাইগ্রেশন প্রয়োগ করে একই আর্টিফ্যাক্ট স্টেজিংয়ে ডিপ্লয় করা হয়; সেখানে স্মোক টেস্ট ও QA চেক চলে।

  5. অনুমোদনের গেট

    একজন নির্দিষ্ট অনুমোদনকারী টেস্টের ফলাফল, জানা ঝুঁকি ও রোলব্যাক পরিকল্পনা রিভিউ করেন।

    চেকপয়েন্ট: প্রোডাকশন রিলিজ অনুমোদন করেন একজন মানুষ

  6. ধাপে ধাপে প্রোডাকশনে

    রিলিজটি প্রথমে অল্পসংখ্যক ব্যবহারকারীর কাছে পৌঁছায়, তারপর সবার কাছে, আর এ সময় এরর ও মূল মেট্রিকগুলোর ওপর নজর রাখা হয়।

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

আপনি কী পাবেন

পাইপলাইন, এনভায়রনমেন্ট ও রিলিজ নিয়ন্ত্রণ

  • CI/CD পাইপলাইন

    GitHub Actions, GitLab CI, Jenkins বা আপনার বর্তমান টুলে বিল্ড, টেস্ট ও ডিপ্লয় ওয়ার্কফ্লো, যেখানে প্রোডাকশনের আগে টেস্ট ও সিকিউরিটি স্ক্যান পাস করা বাধ্যতামূলক।

  • কনটেইনার, যেখানে কাজে আসে

    সামঞ্জস্যপূর্ণ এনভায়রনমেন্টের জন্য Dockerfile ও Docker Compose সেটআপ। Kubernetes কেবল তখনই, যখন আপনার সার্ভিসগুলোর তা প্রয়োজন; প্রায়ই একটি ম্যানেজড প্ল্যাটফর্মই যথেষ্ট।

  • ইনফ্রাস্ট্রাকচার অ্যাজ কোড

    ভার্সন কন্ট্রোলে রাখা Terraform বা Pulumi ডেফিনিশন, যা অ্যাপ্লিকেশন কোডের মতোই রিভিউ করা হয়, যাতে এনভায়রনমেন্ট আবার তৈরি করা যায় এবং প্রতিটি পরিবর্তন ট্র্যাক করা যায়।

  • রিলিজ স্ট্র্যাটেজি ও রোলব্যাক

    স্টেজিং এনভায়রনমেন্ট, অনুমোদনের ধাপ, ব্লু-গ্রিন বা ক্যানারি রিলিজ এবং ফিচার ফ্ল্যাগ, সাথে লাইভে যাওয়ার আগেই টেস্ট করা রোলব্যাকের পথ।

  • মনিটরিং ও অবজারভেবিলিটি

    Prometheus, Grafana বা আপনার ক্লাউডের নিজস্ব মনিটরিংয়ের মতো টুল দিয়ে মেট্রিক, লগ ও অ্যালার্ট, এমনভাবে টিউন করা যাতে অ্যালার্ট আসল সমস্যার দিকেই ইঙ্গিত করে।

  • রানবুক ও হ্যান্ডওভার

    ডকুমেন্টেশন, রানবুক ও ট্রেনিং, যাতে আপনার টিম সেটআপটি পরিচালনা করতে পারে; অথবা একটি ম্যানেজড অপারেশনস প্ল্যানের আওতায় আমরাই তা চালিয়ে যাই।

কারা আমাদের কাছে CI/CD-এর কাজ চান

প্রতিটি রিলিজ যেন একেকটি বড় আয়োজন: পরিবর্তন জমতে থাকে, চেক চলে কেবল যখন কারও মনে পড়ে, আর একটি খারাপ ডিপ্লয় ফিরিয়ে নেওয়া মানে চাপের মধ্যে তাৎক্ষণিক উপায় খোঁজা।

  • যে ছোট টিমগুলো এখনো SSH দিয়ে বা হোস্টিং ড্যাশবোর্ড থেকে হাতে ডিপ্লয় করে
  • ইঞ্জিনিয়ারিং লিড, যাঁদের বর্তমান পাইপলাইন ধীর, অস্থির বা প্রায়ই এড়িয়ে যাওয়া হয়
  • AI কোডিং এজেন্ট ব্যবহার শুরু করছে এমন টিম, যাদের প্রতিটি রিলিজের আগে যাচাই করার মতো পরিবর্তন এখন আরও বেশি

সাধারণত যে ধরনের CI/CD অনুরোধ আসে

যে ধরনের পরিস্থিতি আমরা সাধারণত স্কোপ করি; এগুলো ক্লায়েন্টের কেস স্টাডি নয়।

  • যে পাইপলাইনের জন্য ইঞ্জিনিয়াররা আর অপেক্ষা করেন না

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

  • যে স্কিমা পরিবর্তন ডিপ্লয় ভেঙে দেয়

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

  • CI সেটিংসে দীর্ঘমেয়াদি অ্যাক্সেস কী

    ডিপ্লয়ের ক্রেডেনশিয়াল CI ভেরিয়েবলে দীর্ঘমেয়াদি কী হিসেবে রাখা আছে, প্রোডাকশনে ব্যাপক অ্যাক্সেসসহ। আমরা সেগুলো একটি সিক্রেটস ম্যানেজারে সরিয়ে নেব, আপনার প্ল্যাটফর্ম যেখানে সাপোর্ট করে, সেখানে স্বল্পমেয়াদি ক্রেডেনশিয়াল ব্যবহার করব, এবং প্রতিটি ক্রেডেনশিয়াল কোন কোন জব পড়তে পারবে, তা সীমিত করব।

একটি DevOps এনগেজমেন্ট যেভাবে চলে

  1. 01

    বর্তমান সেটআপ রিভিউ

    আমরা রিপোজিটরি, এনভায়রনমেন্ট, ডিপ্লয়ের ধাপ, অ্যাক্সেস ও সাম্প্রতিক ইনসিডেন্টগুলো রিভিউ করি। সেটআপের পূর্ণ চিত্র তৈরিতে AI টুল সাহায্য করে; ইঞ্জিনিয়াররা তা যাচাই করেন এবং আপনার সাথে মিলে অগ্রাধিকার ঠিক করেন।

  2. 02

    রিলিজের পথ ডিজাইন

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

  3. 03

    তৈরি ও মহড়া

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

  4. 04

    হ্যান্ডওভার বা পরিচালনা

    আপনার টিমের জন্য রানবুক, ডকুমেন্টেশন ও ট্রেনিং, অথবা সম্মত সাপোর্ট প্ল্যানের আওতায় রিলিজ, মনিটরিং ও প্যাচিংয়ের চলমান ব্যবস্থাপনা।

AI টুল নিয়ে কাজের দুটি উপায়

ইনফ্রাস্ট্রাকচার কোড ও সমস্যা নির্ণয়ে AI সহায়তা করে। এটি আপনার কনফিগারেশন ও লগ কোথায় প্রসেস করতে পারবে, তা বেছে নিন।

নিশ্চিত নন? স্কোপিংয়ের সময় আমরা একটি সুপারিশ করব। AI ব্যবহারের বিকল্প তুলনা করুন

CI/CD-এর কাজে যা অন্তর্ভুক্ত নয়

  • টেস্ট স্যুটগুলো লেখা বা সম্প্রসারণ করা অটোমেটেড টেস্টিংয়ের কাজ। আমরা আপনার বিদ্যমান টেস্টগুলো যুক্ত করি এবং সেগুলো ফেল করলে যেন রিলিজ আটকে যায়, তা নিশ্চিত করি।
  • নতুন ক্লাউড আর্কিটেকচার, প্রোভাইডার বদল বা নেটওয়ার্ক নতুন করে ডিজাইন করা স্কোপ করা হয় ক্লাউড ইনফ্রাস্ট্রাকচার হিসেবে; এই সার্ভিস কভার করে, পরিবর্তনগুলো কীভাবে আপনার চালু এনভায়রনমেন্টে পৌঁছায়।
  • ইনসিডেন্ট রেসপন্স ও অন-কল কভার পাইপলাইন প্রজেক্টের অংশ নয়; এগুলো আলাদাভাবে ঠিক করা হয় ম্যানেজড DevOps ও অপারেশনসের আওতায়।
  • পাইপলাইনের স্ক্যান কোড, ডিপেনডেন্সি ও ইমেজে জানা সমস্যাগুলো ধরে; এগুলো অনুমোদিত পেনেট্রেশন টেস্টিং এনগেজমেন্টের বিকল্প নয়।

ডেভেলপমেন্ট, ডিজাইন, QA ও পরিচালনা যেভাবে যুক্ত থাকে

  • ডেভেলপমেন্ট ওয়ার্কফ্লো

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

  • রিলিজ গেট হিসেবে QA

    প্রতিটি পরিবর্তনে অটোমেটেড টেস্ট স্যুট চলে, আর গুরুত্বপূর্ণ রিলিজ হয় কেবল QA-এর অনুমোদনের পর। কেউ ডিপ্লয় করার আগেই টেস্টের ফলাফল ও জানা ঝুঁকিগুলো দেখা যায়।

  • বাস্তব বিল্ডে ডিজাইন রিভিউ

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

  • চলমান ব্যবস্থাপনা

    সেটআপের পরেও আমরা পাইপলাইন ও এনভায়রনমেন্ট চালিয়ে যেতে পারি: রিলিজ, মনিটরিং, প্যাচিং ও রিকভারি টেস্ট, একটি সাপোর্ট প্ল্যানে সম্মত শর্তে।

প্রশ্নোত্তর

সাধারণ প্রশ্নাবলী

আমাদের কি Kubernetes দরকার?

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

আপনারা কোন CI/CD টুলের সুপারিশ করেন?

সাধারণত যেটি আপনার কোডের সবচেয়ে কাছাকাছি: GitHub রিপোজিটরির জন্য GitHub Actions, GitLab-এর জন্য GitLab CI। আপনার টিম যদি Jenkins বা অন্য কোনো টুলের ওপর নির্ভর করে, তাহলে আমরা সেটি বদলে না দিয়ে উন্নত করতে পারি। কোনটি বেছে নেওয়া হবে, তা নির্ভর করে আপনার রিপোজিটরি, সিকিউরিটি রিকোয়ারমেন্ট এবং পাইপলাইনটি কে রক্ষণাবেক্ষণ করবেন, তার ওপর।

আপনারা কি আমাদের বিদ্যমান সেটআপ উন্নত বা মাইগ্রেট করতে পারেন?

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

AI টুল আমাদের কোড ও কনফিগারেশন কোথায় প্রসেস করে?

কেবল আপনার সম্মতি দেওয়া টুল ও এনভায়রনমেন্টে, যা কাজ শুরুর আগেই ঠিক করে নেওয়া হয়। প্রাইভেট / লোকাল AI ইঞ্জিনিয়ারিংয়ে ব্যবহার করা হয় আপনার নিয়ন্ত্রণাধীন ইনফ্রাস্ট্রাকচারে বা সম্মত একটি আইসোলেটেড এনভায়রনমেন্টে হোস্ট করা মডেল। Claude Code / OpenAI Codex ইঞ্জিনিয়ারিংয়ে ব্যবহার করা হয় বাণিজ্যিক কোডিং এজেন্ট, সম্মত অ্যাকাউন্ট ও ডেটা-রিটেনশন সেটিংসের অধীনে। দুই ক্ষেত্রেই সিক্রেট ও ক্রেডেনশিয়াল আমরা AI টুলের নাগালের বাইরে রাখি।

রিলিজ হোক রুটিন কাজ, ঝুঁকির বিষয় নয়

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