Logo GH

اتوماسیون عملیات و اسکریپت

1) چرا عملیات خودکار

کاهش MTTR/خطای انسانی، تسریع انتشار و واکنش.
باعث می شود اقدامات تکرار و حسابرسی (انطباق).
زمان مهندسان را برای بهبود آزاد می کند، نه روال.

2) اصول اساسی

1. Idempotency: تکرار → همان نتیجه.
2. نرده های ایمنی: خشک اجرا، تایید، محدودیت، بازگشت خودکار.
3. قابلیت مشاهده: logs/metrics/trails در هر اسکریپت/خط لوله ساخته شده است.
4. پیکربندی> ثابت در کد: همه از طریق پارامترها/مانیفست ها.
5. GitOps/Docs-as-Code: کد معامله نسخه، بررسی، آزمایش شده است.
6. گام های کوچک: لوب قناری، دسته، retrays با بودجه.
7. هیچ رازی در انبار نیست: فقط از طریق انبارهای مخفی.

3) کلاس های کار اتوماسیون

بازسازی و حوادث: بازگشت، سوئیچ های ارائه دهنده، پرچم های ویژگی تخریب.
کار برنامه ریزی شده: چرخش گواهینامه ها/کلید ها، مهاجرت پایگاه داده (گسترش → مهاجرت → قرارداد).
مدیریت زیرساخت: IaC (Terraform)، پیکربندی (Ansible)، K8s آشکار می شود.
Data and DataOps: backfills، ETL، اعتبار سنجی کیفیت.
تمرینات Xaoc/DR: شبیه سازی شکست با دروازه های امنیتی.

4) چگونه یک ابزار را انتخاب کنید

BASH - اسکریپت چسب کوتاه، ارکستراسیون CLI.
پایتون - منطق/SDK، retrai، API، کار با JSON/YAML.
غیر ممکن - پیکربندی idempotent، هیچ عامل مورد نیاز است.
Terraform یک زیرساخت اعلانی است.
Kubernetes جابز/CronJobs - وظایف دسته ای/برنامه ریزی.
آرگو/جریان هوا - DAG ها وابسته و ارکستراسیون.
ChatOps - راه اندازی امن از چت با حسابرسی.

5) معماری اتوماسیون (مرجع)

CLI/ChatOps → Controller (GitOps/orchestrator) → Performers (Ansible/Terraform/K8s Job) → Monitoring (logs/metrics/trails) → Auditing/ticketing → Docking artifacts (evidence).

6) بی نظمی و مدیریت شرایط

«Check, then change»: detect-then-action (if already OK - do nothing) را انتخاب کنید.
«حالت/قفل» را برای مراحل طولانی ذخیره کنید.
مراحل را به مراحل اتمی با امکان تکرار اجرا تقسیم کنید.

7) اشکالات، عقب نشینی و عقب نشینی

Retray با تاخیر نمایی و لرزش.
بودجه زمان عملیات (کل SLA در هر کار).
رول بک ها و قطع کننده مدار همیشه ارائه می شوند.

کدهای بازگشتی صریح و خطاهای ساختاری

8) امنیت و اسرار

RBAC/ABAC، حداقل امتیازات، نشانه های موقت (JIT/JEA).
اسرار از Vault/KMS/Cloud Secret Manager ؛ کليدها چرخيده اند.
«جدایی از وظایف»: کسی که می نویسد کسی نیست که تایید و راه اندازی در تولید.
گزارش حسابرسی: چه کسی/چه زمانی/چه چیزی/با چه نتیجه ای.

9) GitOps и ChatOps

PR → tests → review → merge → auto-promotion to environments.
دستورات در چت (به عنوان مثال، '/ops deploy checkout --canary 5٪ ') باعث خطوط لوله ؛ رباتها شواهد و پیوندها را به داشبورد اعمال می کنند.

10) برنامه ریزی و ارکستراسیون

CronJobs/DAG با وابستگی ها و مهلت ها.
رقابت: «ممنوع»، «جایگزین»، «اجازه» (K8s) بسته به کار.
سیاست های منابع/سهمیه به طوری که برای «خوردن» تحریک.

11) قابلیت مشاهده اتوماسیون

معیارها: موفقیت/خطا، مدت زمان، بازپرداخت، اشیاء آسیب دیده.
سیاهههای مربوط: ساختار یافته، شناسه همبستگی، خط قرمز در خطا.
ردپاها: مراحل عملیات طولانی در ردپاهای توزیع شده قابل مشاهده است.
هشدارها: با علائم (SLO) و معیارهای فنی (مهلت،٪ خطاها).

12) تست و شبیه سازی

تست واحد منطق و تجزیه کننده مصنوعی.

تست های یکپارچه سازی در sandbox و canary

«شبیه سازی» (خشک اجرا + ارائه دهندگان ساختگی), پخش حالات واقعی.
تمرینات: اهداف روشن، دروازه های امنیتی، AAR → RCA → CAPA.

13) قالب کد

Bash (اسکلت با نرده)

bash
!/usr/bin/env bash set -Eeuo pipefail trap 'echo "[ERR] line $LINENO"; exit 1' ERR

log(){ printf '%s %s\n' "$(date -Iseconds)" "$"; }
DRY=${DRY_RUN--true}

ensure_dep(){ command -v "$1" >/dev/null          { echo "need $1"; exit 2; }; }

apply_change(){
local target="$1"
if [[ "$DRY" == "true" ]]; then log "[DRY] would update $target"
else kubectl apply -f "$target"
fi
}

main(){
ensure_dep kubectl for f in manifests/.yaml; do apply_change "$f"
done log "done"
}
main "$@"

پایتون (Retrai + Idempotency)

python import argparse, time, json, sys from pathlib import Path import requests

def with_retries(fn, attempts=5, base=0. 2):
for i in range(attempts):
try:
return fn()
except Exception as e:
sleep = base (2i)
time. sleep(sleep)
raise

def already_done(marker):
return Path(marker). exists()

def mark_done(marker):
Path(marker). write_text("ok")

def main():
ap = argparse. ArgumentParser()
ap. add_argument("--endpoint", required=True)
ap. add_argument("--marker", default="/tmp/op. marker")
args = ap. parse_args()

if already_done(args. marker):
print("idempotent: nothing to do"); return

def call():
r = requests. post(args. endpoint, json={"action":"rotate"})
r. raise_for_status()
return r. json()

resp = with_retries(call)
print(json. dumps(resp))
mark_done(args. marker)

if __name__ == "__main__":
sys. exit(main())

امکان پذیر (کار ایده آل)

yaml
- hosts: web become: true tasks:
- name: Ensure nginx present and enabled ansible. builtin. package:
name: nginx state: present
- name: Deploy config ansible. builtin. template:
src: nginx. conf. j2 dest: /etc/nginx/nginx. conf mode: '0644'
notify: restart nginx handlers:
- name: restart nginx ansible. builtin. service:
name: nginx state: restarted

Kubernetes CronJob (چرخش برنامه ریزی شده)

yaml apiVersion: batch/v1 kind: CronJob metadata:
name: cert-rotate spec:
schedule: "0 3  "
concurrencyPolicy: Forbid jobTemplate:
spec:
template:
spec:
serviceAccountName: ops-automation restartPolicy: OnFailure containers:
- name: rotator image: registry/ops/rotator:1. 2. 3 args: ["--rotate", "--budget-ms=60000"]
envFrom:
- secretRef: { name: rotator-secrets }

اقدامات GitHub (ماشه ChatOps)

yaml name: ops-deploy on:
workflow_dispatch:
inputs:
service: {required: true}
canary: {required: false, default: "5"}
jobs:
deploy:
runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- run:./scripts/deploy. sh "${{ inputs. service }}" --canary "${{ inputs. canary }}"

14) چک لیست پیاده سازی

  • یک ابزار برای هر عملیات انتخاب شده و یک runbook توصیف شده است.
  • خشک اجرا، تایید و محدودیت (نرده) وجود دارد.
  • سیاههها ساختار یافته اند، معیارها و هشدارها متصل هستند.
  • اسرار از ذخیره سازی، حداقل و دسترسی موقت.
  • تست (واحد/ادغام/قناری) و شبیه سازی انجام شده است.
  • بررسی GitOps/PR مورد نیاز است، ممیزی وجود دارد.
  • برنامه ریزی و معیارهای موفقیت مستند شده است.
  • اتوماسیون به بودجه SLO/خطا گره خورده است.

15) ضد الگوهای

اسکریپت بدون idempointency و برگشت.
«اسرار در کد»، superadmin برای همه چیز حساب می شود.
ویرایش دستی در فروش بدون حسابرسی.
باغ وحش Chunky Bash به جای IaC اعلانی.
پارامترهای «محافظت شده» در کد - بدون استفاده مجدد.
بدون خشک اجرا/قناری → انفجار بزرگ.
سیاهههای مربوط «برای مردم» بدون ساختار و همبستگی.

16) معیارهای بلوغ اتوماسیون Ops

پوشش:٪ از عملیات اتوماسیون و runbook.
میزان موفقیت/میزان تکرار وظایف خودکار.
میانگین زمان برای اجرا و به موقع.
نرخ شکست را قبل/بعد از اتوماسیون تغییر دهید.
حسابرسی کامل:٪ از عملیات با شواهد کامل.
امنیت: زمان چرخش کلید/گواهی، سهم دسترسی JIT.

17) خط پایین

اتوماسیون Ops مجموعه ای از اسکریپت های متفاوت نیست، بلکه یک سیستم است: اقدامات بی نظیر، نرده های امن، قابلیت مشاهده، اسرار و دسترسی تحت کنترل، GitOps/ChatOps، آزمایش ها و تمرینات. در چنین سیستمی، عملیات سریع، قابل پیش بینی و حسابرسی می شوند - و کسب و کار نسخه های پایدار و خطر کم حوادث را دریافت می کند.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.