GH GambleHub

Ops автоматика ва скриптҳо

1) Чаро амалиётро автоматӣ мекунад

Хатогии MTTR/инсонро коҳиш медиҳад, релизҳо ва аксуламалҳоро суръат мебахшад.
Амалҳоро такроршаванда ва аудиторӣ мекунад (мувофиқат).
Муҳандисонро "вақти такмил медиҳад, на реҷа.

2) Принсипҳои асосӣ

1. Idempotency: rerun → натиҷаи якхела.
2. Панелҳои бехатарӣ: хушккунӣ, тасдиқкунӣ, маҳдудиятҳо, рельсҳои худкор.
3. Мушоҳида: дар ҳар як скрипт/қубур гузоришҳо/ченакҳо/роҳҳо сохта мешаванд.
4. Конфигуратсия> константҳо дар рамз: ҳама тавассути параметрҳо/зуҳурот.
5. Gitops/Docs-as-Code: Рамзи транзаксия санҷида, баррасӣ карда мешавад, санҷида мешавад.
6. Қадамҳои хурд: лобаҳои канарӣ, партияҳо, бозпас бо буҷа.
7. Сирри репо нест: танҳо тавассути анборҳои махфӣ.

3) Синфҳои вазифаи автоматизатсия

Барқарорсозӣ ва ҳодисаҳо: нуқсонҳо, коммутаторҳои провайдерҳо, парчамҳои хусусияти таназзул.
Корҳои банақшагирифташуда: гардиши шаҳодатномаҳо/калидҳо, муҳоҷирати махзани маълумот (тавсеа → migrate → шартнома).
Идоракунии инфраструктура: Ia-C (Terraform), конфигуратсияҳо (Ansible), K8s намоёнҳо.
Маълумот ва маълумотҳо: backfills, ETL, санҷиши сифат.
Машқҳои Xaoc/DR: моделиронии нокомӣ бо дарвозаҳои амниятӣ.

4) Тарзи интихоби асбоб

Bash - скриптҳои ширеши кӯтоҳ, оркестри CLI.
Python - мантиқ/SDK, retrai, API, кор бо JSON/YAML.
Конфигуратсияи Ansible - idempotent, ягон агент лозим нест.
Terraform инфрасохтори декларативӣ мебошад.
Kubernetes Jobs/Cronjobs - вазифаҳои гурӯҳӣ/ҷадвал.
Argo/Airflow - DAG-ҳо ва оркестр вобастаанд.
Chatops - оғози бехатар аз сӯҳбат бо аудит.

5) Меъмории автоматика (истинод)

CLI/Chat

6) Идоракунии номуайянӣ ва шартҳо

"Санҷед, пас тағир диҳед": муайян кунед-баъд-амал кунед (агар аллакай хуб бошад - ҳеҷ кор накунед).
Барои расмиёти дароз "давлат/қулф" -ро нигоҳ доред.
Тартиботро ба қадамҳои атомӣ бо имконияти такрори такрорӣ тақсим кунед.

7) Хатогиҳо, ақибнишинӣ ва гардишҳо

Retrai бо таъхири экспоненсиалӣ ва jitter.
Буҷаи вақти корӣ (ҳамагӣ SLA барои як вазифа).
Рӯйпӯшҳо ва рахи барқ ​ ​ ҳамеша таъмин карда мешаванд.
Рамзҳои возеҳи бозгашт ва хатогиҳои сохторӣ.

8) Амният ва асрори

RBAC/ABAC, имтиёзҳои ҳадди аққал, нишонаҳои муваққатӣ (JIT/JEA).
Асрҳо аз менеҷери махфии Vault/KMS/Cloud; калидҳо чарх мезананд.
"Ҷудошавии вазифаҳо": кӣ менависад, касе нест, ки дар prod тасдиқ ва оғоз кунад.
Сабти аудит: кӣ/вақте/чӣ/бо чӣ натиҷа.

9) Гитопс и Чатопс

Озмоишҳои PR → баррасии → якҷоя кардан → худкор ба муҳитҳо.
Фармонҳо дар чат (масалан, '/ops кассаро ҷойгир мекунанд --canary 5% ') боиси қубурҳо мешаванд; ботҳо далелҳо ва пайвандҳоро ба панели панелҳо истифода мебаранд.

10) Банақшагирӣ ва оркестр

CronJobs/DAG бо вобастагӣ ва мӯҳлатҳо.
Озмун: 'Манъ кардан', 'Иваз кардан', 'Иҷозат додан' (K8s) вобаста аз вазифа.
Сиёсатҳои захиравӣ/квотаҳо, то протсессро "нахӯранд".

11) Мушоҳидаи автоматизатсия

Нишондиҳандаҳо: муваффақият/хатогӣ, давомнокӣ, бозсозӣ, объектҳои зарардида.
Гузоришҳо: сохташуда, коррелятсия-ID, хати сурх дар хатогӣ.
Нишонаҳо: Қадамҳои амалиёти тӯлонӣ дар пайҳои тақсимшуда намоёнанд.
Огоҳиҳо: аз рӯи аломатҳо (SLO) ва ченакҳои техникӣ (мӯҳлат,% хатогиҳо).

12) Озмоиш ва моделсозӣ

Санҷишҳои воҳиди мантиқ ва артефактҳо.
Санҷишҳои ҳамгироӣ дар қуттича ва канарӣ.
"Симуляторҳо" (провайдерҳои хушккардашуда + dummy), сенарияҳои воқеиро такрор мекунанд.
Машқҳо: ҳадафҳои возеҳ, дарвозаҳои амниятӣ, AAR → RCA → CAPA.

13) Қолабҳои рамзӣ

Баш (скелет бо панелҳо)

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 "$@"

Python (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())

Ansible (вазифаи idempotent)

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

Кубернетес 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 }

Амалҳои Git

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) Рӯйхати назорати амалисозӣ

  • Асбоб барои ҳар як амалиёт интихоб карда мешавад ва дафтарчаи корӣ тавсиф карда мешавад.
  • хушкӣ, тасдиқкунӣ ва маҳдудиятҳо мавҷуданд (панелҳо).
  • Гузоришҳо сохторӣ шудаанд, ченакҳо ва огоҳиҳо пайваст карда шудаанд.
  • Асрори нигаҳдорӣ, дастрасии ҳадди ақал ва муваққатӣ.
  • Санҷишҳо (воҳиди/ҳамгироӣ/канарӣ) ва моделсозӣ.
  • Бознигариҳои GIT/PR талаб карда мешаванд, аудит мавҷуд аст.
  • Нақшаи бозгашт ва меъёрҳои муваффақият ҳуҷҷатгузорӣ шудааст.
  • Автоматика ба буҷаҳои SLO/хатогӣ алоқаманд аст.

15) Анти-намунаҳо

Скриптҳо бе idempotency ва rollbacks.
"Асрори рамз", суперадмин ҳама чизро ба назар мегирад.
Таҳрири дастӣ дар фурӯш бидуни аудит.

Зоопаркии Chunky Bash ба ҷои эъломияи Ia

Параметрҳои "ҳифзшуда" дар рамз - истифодаи такрорӣ нест.
Не хушккунӣ/канарейка § таркишҳои калон.
Гузоришҳои "барои одамон" бидуни сохтор ва таносуб.

16) Нишондиҳандаҳои камолоти автоматика

Фарогирӣ:% амалиётҳои автоматизатсия ва дафтарчаи корӣ.
Сатҳи муваффақият/Сатҳи такрории вазифаҳои автоматӣ.
Вақти миёна барои иҷро ва сари вақт.
Тағйир додани сатҳи нокомӣ пеш аз/баъд аз автоматизатсия.
Аудит-пуррагӣ:% амалиёт бо далелҳои пурра.
Амният: вақти гардиши калид/шаҳодатнома, ҳиссаи дастрасии JIT.

17) Сатри поён

Автоматикунонии Ops маҷмӯи скриптҳои нобаробар нест, балки система: амалҳои номатлуб, панелҳои бехатар, мушоҳидакорӣ, асрори дастрасӣ ва дастрасӣ дар зери назорат, Git Дар чунин система, амалиётҳо зуд, пешгӯишаванда ва аудиторӣ мешаванд - ва тиҷорат релизҳои устувор ва хатари ками ҳодисаҳоро мегирад.

Contact

Тамос гиред

Барои саволҳо е дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Telegram
@Gamble_GC
Оғози интегратсия

Email — муҳим аст. Telegram е WhatsApp — ихтиерӣ.

Номи шумо ихтиерӣ
Email ихтиерӣ
Мавзӯъ ихтиерӣ
Паем ихтиерӣ
Telegram ихтиерӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиерӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.