Защо AI не може да избере правилния хостинг вместо теб
Защо AI не може да взема добри решения за инфраструктура
AI моделите вече пишат код доста уверено. За бизнес логиката – роути, заявки към базата, помощни функции – това работи добре. Но когато стигне до инфраструктурата, нещата се променят.
Проблемът не е в синтаксиса
Моделът може да генерира валиден Terraform без проблем. Въпросът е дали разбира какво всъщност трябва да направи този код.
Да кажем, че искаш да добавиш ново събитие в системата – например „order created“. Моделът ще създаде SNS топик, SQS опашка, dead-letter queue и IAM политики. На хартия изглежда правилно. Но стойностите – visibility timeout, retention period, обхват на правата – са произволни. Те не отразяват реалното натоварване, историята на инцидентите или начина, по който работи екипът ти.
Ревюто става по-тежко, а не по-лесно
Когато AI генерира инфраструктурен код, някой трябва да го провери. И този преглед не е прост. Трябва да се сравнят:
- HCL синтаксисът с IAM правилата
- Новите ресурси с текущата архитектура
- Конвенциите в екипа, които често не са документирани
- Дали ролите на свързаните услуги съществуват
Рецензентът поема ролята на компилатор. Ако нещо е сбъркано – грешно време за изчакване или прекалено широки права – проблемът се появява в продукция, не в CI.
Отделни репозитори, отделни контексти
Причината е структурна. Приложението и инфраструктурата живеят в различни хранилища, с различни процеси за одобрение. AI взема решения за инфраструктурата, без да вижда какъв код ще я използва. Затова липсва нужният контекст.
Повече инструменти и валидатори не решават този проблем. Те просто добавят още слой върху счупена основа.
По-добър подход: инфраструктурата като част от кода
Вместо да се описва инфраструктурата отделно, тя може да се генерира директно от типизирания код на приложението. Рамката сама решава какви ресурси са нужни – топици, опашки, права – на база на това, което кодът декларира.
Пример:
export const orderCreated = new Topic<OrderCreatedEvent>("order-created", {
deliveryGuarantee: "at-least-once",
});
Няма отделен Terraform файл. Няма ръчно проверявани политики. Всичко се определя от типа на събитието и начина, по който се използва.
Защо това има значение при „vibe coding“
Можеш да оставиш AI да пише приложен код, защото той е изолиран и тестван. При инфраструктурата обаче контекстът е разпръснат. Затова решението не е в по-добри prompt-ове, а в премахване на разделението между приложение и инфраструктура.
Когато инфраструктурата се компилира от самия код, AI вече не трябва да „предполага“. А рецензентът не трябва да играе ролята на човешки компилатор в три сутринта.