Сенбілік deploy: 12 қорғаныс қабаты
Сенбі. Сағат он бір. Бір терминал.
Бір апта бұрын imarch.dev сайтына AI-чатбот іске қостым. Менің тәжірибем, қызметтерім туралы келушілердің сұрақтарына жауап беретін виртуалды клон. FastAPI, Docker, Hetzner Cloud. Бірақ бұл API үстіне үлкен system prompt жапсырған қарапайым wrapper емес. Өмірбаян, жобалар, технологиялар, бәрі векторлық базада жатыр. Әрбір сұраққа бот алдымен embeddings арқылы қатысты фрагменттерді іздейді, содан кейін ғана Claude Haiku 3.5-ке шағын контекст жібереді. Векторлық база кэш сияқты жұмыс істейді: аз токен, жылдам жауап, арзан шот. Жұмыс істейді. Бірақ «жұмыс істейді» мен «production-ға дайын» екі бөлек нәрсе.
Бүгін техникалық қарызды жабуға отырдым. Бір күнде «жұмыс істейді» деңгейінен «жабылды» деңгейіне жеттім.

Деректерді тексеру
Деректерден бастадым. Чатботтың system prompt-ы мен нақты CV сәйкес келмейтін. Uptime 99.92% орнына 99.9%. Жетіспейтін жобалар. Бот келушілерге менің өз өмірбаянымнан қате ақпарат беріп жатқан, оның үстіне сенімді түрде. Қолмен синхрондадым, жол-жолымен.
Алты осалдық
Содан кейін қауіпсіздік. Терминалды ашып, чатботты бөтен адамның сервисін тексергендей тексере бастадым. Python деңгейінде rate limit бар. Nginx деңгейінде? Жоқ. Демек DDoS кезінде сұраулар қосымшаға жетеді. X-Forwarded-For клиент header-інен алынады, жалған IP қойсаң, rate limit-ті толық айналып өтесің. Контейнер root-тан жұмыс істейді. Body size шектелмеген. Claude API шақыруына timeout жоқ, тұрып қалса, worker-ді мәңгілікке бұғаттайды.
Алты осалдық. Ешқайсысы сыни емес. Бәрі көз алдында.
12 қорғаныс қабаты
Бірнеше сағатта жаптым:
- Nginx: rate limit 5 req/s, burst 10, бір IP-ден максимум 5 қосылым, body 2 килобайт
- X-Forwarded-For нақты мекенжаймен қайта жазылады
- Fail2ban 20 бұзушылықтан кейін IP-ді бір сағатқа бұғаттайды
- Docker: non-root user,
.dockerignore, concurrency limit - FastAPI: API-ға 15 секунд timeout, сессияларды мерзімді тазалау, жадқа hard cap
- SSH: парольдерді өшірдім, тек кілттер
- OOM жағдайына swap қостым
- Anthropic-ке spending limit
Он екі қабат. Алдыңғы жақтағы Cloudflare-дан артқы жақтағы iptables-ге дейін.
Терминалдағы серіктес
Терминалда қасымда Claude Code жұмыс істеді. Автопилот емес. Екінші инженер ретінде.
Мен «қауіпсіздікті тексер» деймін, ол конфигтерді оқиды, осалдықтарды табады, түзетулер ұсынады. «Қолдан» деймін, ол код жазады, commit жасайды, deploy жасайды, серверге SSH арқылы кіріп nginx-ті түзейді. Мен әрбір өзгерісті тексеремін. Бірақ өз қолыммен дерлік ештеңе жазбаймын.
Бұл болашақ емес. Бұл сенбі.
Екі жылдан кейін бағдарламалау қалай болатынын білмеймін. Бірақ бүгін AI-серіктесі бар бір архитектор бұрын үш адамдық команда бір аптада жасайтын жұмысты жапты.
Ал чатбот енді uptime туралы өтірік айтпайды.
Өз сайтыңызға осындай AI-ассистент қажет пе? Немесе бар өнімге AI енгізгіңіз келе ме? Хабарласыңыз, бірге шешеміз.


