<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>VibeAdmin</title><author><name>VibeAdmin</name></author><id>https://teletype.in/atom/undercode_ii</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/undercode_ii?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@undercode_ii?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=undercode_ii"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/undercode_ii?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-05-28T07:17:03.915Z</updated><entry><id>undercode_ii:vibecoding_1</id><link rel="alternate" type="text/html" href="https://teletype.in/@undercode_ii/vibecoding_1?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=undercode_ii"></link><title>Урок 1: Как начать работать через ИИ и собрать основу для вайб кодинга за 30 минут</title><published>2026-03-26T18:18:21.194Z</published><updated>2026-03-26T18:22:52.913Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/26/5c/265ce418-da9d-4535-904f-6758c344b5d6.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/7f/90/7f906a69-ad37-49e9-b0cc-bc41791dc1fc.png&quot;&gt;Добро пожаловать на первый урок! Если вы здесь, значит, у вас есть идея, которая давно просится в мир. Возможно, вы давно хотели запустить свой сервис или протестировать бизнес-гипотезу, но каждый раз, когда дело доходило до старта, включался внутренний тормоз.</summary><content type="html">
  &lt;figure id=&quot;lw1U&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7f/90/7f906a69-ad37-49e9-b0cc-bc41791dc1fc.png&quot; width=&quot;512&quot; /&gt;
    &lt;figcaption&gt;https://t.me/Undercode_ai&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;bFwH&quot;&gt;Добро пожаловать на первый урок! Если вы здесь, значит, у вас есть идея, которая давно просится в мир. Возможно, вы давно хотели запустить свой сервис или протестировать бизнес-гипотезу, но каждый раз, когда дело доходило до старта, включался внутренний тормоз.&lt;/p&gt;
  &lt;p id=&quot;K8Ng&quot;&gt;Дайте угадаю, что вас останавливало.&lt;/p&gt;
  &lt;ul id=&quot;wJHH&quot;&gt;
    &lt;li id=&quot;A2kE&quot;&gt;&lt;strong&gt;&amp;quot;Темный лес&amp;quot;&lt;/strong&gt; - нужно с нуля учить языки программирования, копаться в серверах и настраивать базы данных.&lt;/li&gt;
    &lt;li id=&quot;GDIO&quot;&gt;&lt;strong&gt;&amp;quot;Долго запрягаем&amp;quot;&lt;/strong&gt; - на создание даже самого простого IT-продукта уйдут месяцы, а то и годы тяжелой работы.&lt;/li&gt;
    &lt;li id=&quot;c0Qh&quot;&gt;&lt;strong&gt;&amp;quot;Влетит в копеечку&amp;quot;&lt;/strong&gt; - нужно нанимать целую команду разработчиков, платить им зарплату и надеяться, что они сделают то, что нужно, а не &amp;quot;как всегда&amp;quot;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;dt9A&quot;&gt;Раньше все эти страхи были абсолютно оправданы. Без вариантов. Но сейчас лед тронулся! Правила игры изменились кардинально.&lt;/p&gt;
  &lt;h3 id=&quot;WY4n&quot;&gt;Что изменилось в разработке?&lt;/h3&gt;
  &lt;p id=&quot;0s3o&quot;&gt;Мы перешли от эпохи &amp;quot;писать код руками&amp;quot; к эпохе &amp;quot;управлять искусственным интеллектом&amp;quot;.&lt;/p&gt;
  &lt;p id=&quot;Px0Y&quot;&gt;Раньше программист был эдаким Левшой - он вручную вытачивал каждую деталь, каждую строчку кода, чтобы кнопка просто заработала. Сегодня всю эту черновую работу нейросети берут на себя. ИИ знает синтаксис всех языков программирования в мире лучше любого сеньора-разработчика.&lt;/p&gt;
  &lt;p id=&quot;i970&quot;&gt;&lt;strong&gt;Ваша новая роль - это архитектор и прораб на стройке.&lt;/strong&gt; Вам больше не нужно знать, &lt;em&gt;как именно&lt;/em&gt; замешивать бетон (писать код). Вам нужно понимать, &lt;em&gt;что&lt;/em&gt; вы хотите построить, и уметь четко поставить задачу своему цифровому напарнику.&lt;/p&gt;
  &lt;h3 id=&quot;aDav&quot;&gt;Что такое Vibe Coding?&lt;/h3&gt;
  &lt;p id=&quot;mzyy&quot;&gt;&lt;strong&gt;Vibe Coding (вайб-кодинг)&lt;/strong&gt; - это современный подход к созданию продуктов, при котором вы общаетесь с ИИ на нормальном, человеческом языке. Вы описываете логику и внешний вид приложения, а нейросеть сама пишет, тестирует и внедряет готовый код.&lt;/p&gt;
  &lt;p id=&quot;oOiE&quot;&gt;Вы буквально передаете ИИ &amp;quot;вайб&amp;quot; - настроение, суть и бизнес-логику вашей идеи.&lt;/p&gt;
  &lt;ul id=&quot;ziUj&quot;&gt;
    &lt;li id=&quot;Q8gR&quot;&gt;&lt;strong&gt;Пример из прошлого:&lt;/strong&gt; Чтобы создать форму регистрации, вы бы писали десятки строк на HTML, CSS и JavaScript, ломая голову, почему поля разъехались на мобильном телефоне.&lt;/li&gt;
    &lt;li id=&quot;GyZ6&quot;&gt;&lt;strong&gt;Пример Vibe Coding:&lt;/strong&gt; Вы пишете ИИ: &lt;em&gt;&amp;quot;Сделай современный лендинг с bento-сетками (как у топовых B2B SaaS проектов). Нужна форма регистрации: email, пароль и черная кнопка &amp;#x27;Войти&amp;#x27;. Если пользователь ввел пароль короче 6 символов - покажи красную ошибку&amp;quot;&lt;/em&gt;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;1u3u&quot;&gt;Через 5 секунд у вас есть готовый рабочий код, и все выглядит с иголочки.&lt;/p&gt;
  &lt;h3 id=&quot;T1hm&quot;&gt;Анатомия приложения (просто о сложном)&lt;/h3&gt;
  &lt;p id=&quot;LpDv&quot;&gt;Чтобы ИИ понимал вас с полуслова, нужно говорить на одном языке. Любое приложение в мире состоит из трех китов. Представьте себе обычный ресторан:&lt;/p&gt;
  &lt;ol id=&quot;eoKl&quot;&gt;
    &lt;li id=&quot;uRuY&quot;&gt;&lt;strong&gt;Frontend (Фронтенд)&lt;/strong&gt; - это зал ресторана, красивые столики, меню и вежливые официанты. Это все, что видит пользователь и с чем он взаимодействует: кнопки, модные сетки дизайна, картинки, тексты, анимации. Когда вы просите ИИ &amp;quot;сделать красивую карточку товара&amp;quot; - вы строите фронтенд.&lt;/li&gt;
    &lt;li id=&quot;4afs&quot;&gt;&lt;strong&gt;Backend (Бэкенд)&lt;/strong&gt; - это святая святых, кухня ресторана и шеф-повар. Посетитель не видит, как жарится стейк, он только получает готовое блюдо. Бэкенд скрыт от глаз: он принимает запрос (клик по кнопке оплаты), проверяет безопасность, проводит транзакцию и отправляет письма. Это мозг системы.&lt;/li&gt;
    &lt;li id=&quot;kBqe&quot;&gt;&lt;strong&gt;База данных&lt;/strong&gt; - это ваша кладовка с продуктами и амбарная книга. Здесь надежно, как в швейцарском банке, хранится вся информация: логины, пароли, история покупок, тексты постов.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;Poln&quot;&gt;Вам не придется с нуля выстраивать всю эту &amp;quot;кухню&amp;quot;. В следующих модулях мы покажем, как ИИ и готовые облачные сервисы сделают это за вас. Сейчас главное - просто понять общую картину.&lt;/p&gt;
  &lt;h3 id=&quot;6BhY&quot;&gt;Как теперь происходит процесс разработки?&lt;/h3&gt;
  &lt;p id=&quot;wCvu&quot;&gt;Забудьте про пугающий черный экран с непонятными зелеными символами. Теперь работа идет как по маслу:&lt;/p&gt;
  &lt;ol id=&quot;Vop8&quot;&gt;
    &lt;li id=&quot;1Lnv&quot;&gt;&lt;strong&gt;Постановка задачи:&lt;/strong&gt; Вы формулируете, что нужно сделать, простым языком (например, &amp;quot;добавь на страницу шапку с логотипом слева и меню справа&amp;quot;).&lt;/li&gt;
    &lt;li id=&quot;sGVs&quot;&gt;&lt;strong&gt;Генерация:&lt;/strong&gt; ИИ думает пару секунд и предлагает вам готовый кусок кода.&lt;/li&gt;
    &lt;li id=&quot;ZtpG&quot;&gt;&lt;strong&gt;Проверка:&lt;/strong&gt; Вы смотрите на результат. Нравится - берем в работу.&lt;/li&gt;
    &lt;li id=&quot;MhRg&quot;&gt;&lt;strong&gt;Корректировка:&lt;/strong&gt; Если ИИ промахнулся (а на старуху бывает проруха), вы не лезете исправлять код руками. Вы просто пишете ему: &lt;em&gt;&amp;quot;Ты сделал меню вертикальным, а мне нужно горизонтальное. Исправь&amp;quot;&lt;/em&gt;. И он покорно переделывает.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h3 id=&quot;Ry5Y&quot;&gt;Минимальные инструменты (наш новый арсенал)&lt;/h3&gt;
  &lt;p id=&quot;4mHQ&quot;&gt;Чтобы начать, нам не понадобятся десятки сложных программ. Вся магия будет происходить в связке трех инструментов. Сегодня мы просто кинем на них взгляд, а настраивать будем в следующем уроке:&lt;/p&gt;
  &lt;ul id=&quot;gSVR&quot;&gt;
    &lt;li id=&quot;TPu1&quot;&gt;&lt;strong&gt;Cursor (или аналогичная AI IDE):&lt;/strong&gt; Это ваш главный пульт управления. Внешне это программа для работы с кодом, но внутри нее живет мощный ИИ, который видит все ваши файлы проекта и пишет код прямо в них по вашей команде. Это как умный автопилот в машине.&lt;/li&gt;
    &lt;li id=&quot;VlM9&quot;&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; Это облачное хранилище для вашего кода. Представьте, что это Google Drive, но специально созданный для разработчиков. Он сохраняет все версии вашего продукта, так что если вы случайно что-то сломаете, всегда можно откатиться назад. Надежно и сердито.&lt;/li&gt;
    &lt;li id=&quot;aXYW&quot;&gt;&lt;strong&gt;Vercel:&lt;/strong&gt; Магическая платформа для запуска. Она берет ваш готовый код и по щелчку пальцев выкладывает его в интернет. Буквально минута - и вы уже можете отправлять ссылку на рабочий сайт друзьям или первым клиентам.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;IZSC&quot;&gt;Типичные ошибки новичков на старте&lt;/h3&gt;
  &lt;ol id=&quot;p12G&quot;&gt;
    &lt;li id=&quot;G92i&quot;&gt;&lt;strong&gt;Лезть в дебри теории.&lt;/strong&gt; Вы начинаете гуглить &amp;quot;как работает язык JavaScript&amp;quot; и тонете в учебниках. Не изобретайте велосипед! Ваша задача - учиться ставить задачи ИИ, а не зубрить синтаксис.&lt;/li&gt;
    &lt;li id=&quot;bH5o&quot;&gt;&lt;strong&gt;Пытаться съесть слона целиком.&lt;/strong&gt; Не пишите ИИ: &lt;em&gt;&amp;quot;Сделай мне аналог Инстаграма&amp;quot;&lt;/em&gt;. Он выдаст нерабочую кашу. Двигайтесь шаг за шагом: сначала просим сделать структуру страницы, потом добавляем на нее картинки, потом прикручиваем лайки.&lt;/li&gt;
    &lt;li id=&quot;RUZV&quot;&gt;&lt;strong&gt;Бояться ошибок.&lt;/strong&gt; ИИ может выдать кривой код. Первый блин комом - это абсолютно нормально! Не впадайте в ступор. Просто скопируйте текст ошибки с экрана и отправьте ее ИИ со словами: &lt;em&gt;&amp;quot;Вылезла вот такая ошибка, почини&amp;quot;&lt;/em&gt;. Он сам найдет, где напортачил.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;XUrT&quot;&gt;Практическое задание&lt;/h3&gt;
  &lt;p id=&quot;ZVFp&quot;&gt;Разработка начинается не с кода, а с понимания сути того, что мы делаем. Сегодня мы заставим ИИ поработать вашим личным бизнес-аналитиком.&lt;/p&gt;
  &lt;p id=&quot;izJY&quot;&gt;&lt;strong&gt;Шаг 1:&lt;/strong&gt; Откройте ChatGPT, Claude, Codex GPT 5.3 или любой другой доступный вам мощный ИИ. &lt;br /&gt;&lt;strong&gt;Шаг 2:&lt;/strong&gt; Скопируйте и отправьте ему этот промпт (запрос), подставив свою идею:&lt;/p&gt;
  &lt;blockquote id=&quot;WxUm&quot;&gt;&lt;em&gt;&amp;quot;Я хочу создать веб-приложение: [ОПИШИТЕ ВАШУ ИДЕЮ В 1-2 ПРЕДЛОЖЕНИЯХ. Например: лендинг для моего нового IT-аутсорс агентства, где клиенты могут оставлять заявки]. Выступи в роли опытного продакт-менеджера и архитектора. Распиши мне базовую структуру этого приложения понятным языком, без сложного кода. Что конкретно должен видеть пользователь на главном экране (фронтенд) и какие данные нам нужно будет собирать и хранить (база данных)?&amp;quot;&lt;/em&gt;&lt;/blockquote&gt;
  &lt;p id=&quot;Pvzz&quot;&gt;&lt;strong&gt;Шаг 3:&lt;/strong&gt; Изучите ответ. Задайте ИИ уточняющие вопросы, если что-то непонятно. Сохраните этот диалог - это фундамент логики вашего будущего продукта. &lt;br /&gt;&lt;strong&gt;Шаг 4:&lt;/strong&gt; Зайдите на сайты &lt;a href=&quot;https://www.google.com/search?q=Cursor.com**&quot; target=&quot;_blank&quot;&gt;https://www.google.com/search?q=Cursor.com&lt;/a&gt;, &lt;strong&gt;&lt;a href=&quot;http://GitHub.com&quot; target=&quot;_blank&quot;&gt;GitHub.com&lt;/a&gt;&lt;/strong&gt; и &lt;strong&gt;&lt;a href=&quot;http://Vercel.com&quot; target=&quot;_blank&quot;&gt;Vercel.com&lt;/a&gt;&lt;/strong&gt;. Создайте там бесплатные аккаунты. Ничего там пока не нажимайте - просто застолбите за собой место.&lt;/p&gt;
  &lt;h3 id=&quot;1yyk&quot;&gt;Итог урока&lt;/h3&gt;
  &lt;p id=&quot;xkCU&quot;&gt;Поздравляем с почином! Вы сделали первый важнейший шаг. Теперь вы понимаете, что &lt;strong&gt;Vibe Coding&lt;/strong&gt; стирает глухую стену между вашей идеей и реальным продуктом. Вы знаете, что любое приложение - это фронтенд (витрина), бэкенд (кухня) и база данных (склад).&lt;/p&gt;
  &lt;p id=&quot;AmYH&quot;&gt;Ваше мышление уже начало перестраиваться: вы больше не пытаетесь понять, &lt;em&gt;как написать программу&lt;/em&gt;, вы начинаете думать, &lt;em&gt;как грамотно объяснить нейросети, что вам нужно получить&lt;/em&gt;.&lt;/p&gt;
  &lt;p id=&quot;fdf5&quot;&gt;В следующем уроке мы свяжем наш рабочий арсенал (Cursor + GitHub + Vercel) и с помощью ИИ выложим ваш первый, реальный сайт в интернет. Готовы задать жару?&lt;/p&gt;
  &lt;p id=&quot;Z4sZ&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;JmZb&quot;&gt;Большинство на этом этапе сливаются.&lt;/p&gt;
  &lt;p id=&quot;VTSt&quot;&gt;Потому что не понимают, что делать дальше.&lt;/p&gt;
  &lt;p id=&quot;Svpn&quot;&gt;Я у себя в Telegram разбираю:&lt;br /&gt;- как реально работать с ИИ&lt;br /&gt;- какие ошибки ломают проекты&lt;br /&gt;- как доводить до результата&lt;/p&gt;
  &lt;p id=&quot;1CK5&quot;&gt;👉 &lt;a href=&quot;https://t.me/Undercode_ai&quot; target=&quot;_blank&quot;&gt;https://t.me/Undercode_ai&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>undercode_ii:VX83AJ-Fjgb</id><link rel="alternate" type="text/html" href="https://teletype.in/@undercode_ii/VX83AJ-Fjgb?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=undercode_ii"></link><title>Infrastructure as Code: как &quot;кодить&quot; инфраструктуру, а не кликать мышкой в интерфейсе облака</title><published>2025-05-16T16:13:30.307Z</published><updated>2025-05-16T16:18:18.018Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/a3/bd/a3bd6d15-6060-407d-8c58-002947992792.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/c8/b3/c8b32f1e-6f16-45ba-98d6-708a40f6680b.png&quot;&gt;Вы всё ещё разворачиваете окружения вручную? Переключаетесь между вкладками браузера? Пора менять подход.</summary><content type="html">
  &lt;p id=&quot;UEFj&quot;&gt;Вы всё ещё разворачиваете окружения вручную? Переключаетесь между вкладками браузера? Пора менять подход.&lt;/p&gt;
  &lt;p id=&quot;V49K&quot;&gt;В этой статье разберёмся, что такое &lt;strong&gt;Infrastructure as Code (IaC)&lt;/strong&gt;, почему это основа современного DevOps, какие инструменты реально работают в &lt;strong&gt;Yandex Cloud&lt;/strong&gt; и &lt;strong&gt;VK Cloud&lt;/strong&gt;, и покажем, как всё это выглядит на практике через Terraform.&lt;/p&gt;
  &lt;figure id=&quot;NhiR&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c8/b3/c8b32f1e-6f16-45ba-98d6-708a40f6680b.png&quot; width=&quot;640&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;rg8d&quot;&gt;Что такое IaC и зачем это бизнесу&lt;/h2&gt;
  &lt;p id=&quot;OXBe&quot;&gt;&lt;strong&gt;Infrastructure as Code (IaC)&lt;/strong&gt; — это когда вы описываете инфраструктуру так же, как пишете код.  И этот код можно версионировать, тестировать и разворачивать за считанные минуты.&lt;/p&gt;
  &lt;p id=&quot;p176&quot;&gt;💡 &lt;em&gt;В 2024 году компании, внедрившие IaC, ускорили развертывание в 2.4 раза и снизили проблемы возникающие из-за &amp;quot;человеческого фактора&amp;quot; на 53%.&lt;/em&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;mWdM&quot;&gt;Золотые принципы IaC&lt;/h2&gt;
  &lt;ul id=&quot;eZ3z&quot;&gt;
    &lt;li id=&quot;Ckl0&quot;&gt;&lt;strong&gt;Идемпотентность&lt;/strong&gt;: сколько раз не запускай — результат будет один.&lt;/li&gt;
    &lt;li id=&quot;0oL0&quot;&gt;&lt;strong&gt;Декларативность&lt;/strong&gt;: описываем, &lt;em&gt;что хотим получить&lt;/em&gt;, а не &lt;em&gt;как это сделать&lt;/em&gt;.&lt;/li&gt;
    &lt;li id=&quot;ZyYB&quot;&gt;&lt;strong&gt;Версионирование&lt;/strong&gt;: всё в Git, всё под контролем.&lt;/li&gt;
    &lt;li id=&quot;Co8o&quot;&gt;&lt;strong&gt;Модульность&lt;/strong&gt;: не дублируем, переиспользуем.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;mCmx&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;vb2e&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b5/7b/b57baedd-2b2a-4353-9de3-a2fddd70f397.png&quot; width=&quot;963&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;onTp&quot;&gt;Пример: разворачиваем сервис в Yandex Cloud&lt;/h2&gt;
  &lt;p id=&quot;88BB&quot;&gt;Создадим виртуалку, балансировщик и S3 бакет в &lt;strong&gt;Яндекс.Облаке&lt;/strong&gt; — не заходя в веб-панель.&lt;/p&gt;
  &lt;pre id=&quot;D4a7&quot;&gt;provider &amp;quot;yandex&amp;quot; {
  token     = var.yc_token
  cloud_id  = var.cloud_id
  folder_id = var.folder_id
  zone      = &amp;quot;ru-central1-a&amp;quot;
}

resource &amp;quot;yandex_compute_instance&amp;quot; &amp;quot;vm1&amp;quot; {
  name        = &amp;quot;dev-vm&amp;quot;
  platform_id = &amp;quot;standard-v1&amp;quot;
  resources {
    cores  = 2
    memory = 4
  }
  boot_disk {
    initialize_params {
      image_id = &amp;quot;fd8f9sba7b7p6&amp;quot;
    }
  }
  network_interface {
    subnet_id = var.subnet_id
    nat       = true
  }
}
&lt;/pre&gt;
  &lt;p id=&quot;MvRA&quot;&gt;📦 &lt;strong&gt;Команды:&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;yVIu&quot;&gt;terraform init
terraform plan
terraform apply
&lt;/pre&gt;
  &lt;p id=&quot;oxMa&quot;&gt;⏱ &lt;em&gt;Вместо 2 часов в вебке— 5 минут в терминале.&lt;/em&gt;&lt;/p&gt;
  &lt;figure id=&quot;wPCw&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a3/17/a3177204-3dd9-49b5-a418-4abe849ac9a7.png&quot; width=&quot;480&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;izCA&quot;&gt;Как структурировать репозиторий IaC&lt;/h2&gt;
  &lt;pre id=&quot;TYXZ&quot;&gt;infra/
├── modules/
│   └── yandex_vm/
├── environments/
│   ├── dev/
│   └── prod/
├── backend.tf
├── variables.tf
└── main.tf
&lt;/pre&gt;
  &lt;ul id=&quot;7qqD&quot;&gt;
    &lt;li id=&quot;QKAN&quot;&gt;&lt;strong&gt;Модули&lt;/strong&gt; — повторно используемые куски (например, VM, сеть, S3).&lt;/li&gt;
    &lt;li id=&quot;CXqk&quot;&gt;&lt;strong&gt;Окружения&lt;/strong&gt; — разные настройки для dev/prod/stage.&lt;/li&gt;
    &lt;li id=&quot;KR0z&quot;&gt;&lt;strong&gt;backend.tf&lt;/strong&gt; — настройка хранения state-файла (например, в Yandex Object Storage + Locking в YDB).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;bFQV&quot;&gt;Лучшие практики IaC в реальном проекте&lt;/h2&gt;
  &lt;p id=&quot;JJTD&quot;&gt;✅ &lt;strong&gt;Бэкенд для хранения состояния&lt;/strong&gt;&lt;br /&gt; Используй защищённый стор (например, &lt;code&gt;s3&lt;/code&gt; в VK Cloud или Yandex Cloud).&lt;/p&gt;
  &lt;p id=&quot;NvJC&quot;&gt;✅ &lt;strong&gt;Аудит и безопасность&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;fIb2&quot;&gt;
    &lt;li id=&quot;frXf&quot;&gt;Подключи &lt;strong&gt;Checkov&lt;/strong&gt; или &lt;strong&gt;Terrascan&lt;/strong&gt; к CI.&lt;/li&gt;
    &lt;li id=&quot;CsyY&quot;&gt;Храни секреты в &lt;strong&gt;Vault&lt;/strong&gt; или &lt;strong&gt;Yandex Lockbox&lt;/strong&gt;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;DgaO&quot;&gt;✅ &lt;strong&gt;Тесты&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;wPuJ&quot;&gt;
    &lt;li id=&quot;Zuy1&quot;&gt;Юнит-тесты с &lt;strong&gt;Terratest&lt;/strong&gt;.&lt;/li&gt;
    &lt;li id=&quot;sZgT&quot;&gt;Smoke-тесты через &lt;code&gt;curl&lt;/code&gt; после apply.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;lppq&quot;&gt;А что насчёт VK Cloud?&lt;/h2&gt;
  &lt;p id=&quot;Rni3&quot;&gt;VK Cloud тоже отлично работает с Terraform. Вот базовый пример:&lt;/p&gt;
  &lt;pre id=&quot;ZxVh&quot;&gt;provider &amp;quot;vkcs&amp;quot; {
  auth_url    = &amp;quot;https://iam.vkcloud.io/v3&amp;quot;
  tenant_id   = var.tenant_id
  username    = var.username
  password    = var.password
  region      = &amp;quot;ru-msk&amp;quot;
}

resource &amp;quot;vkcs_compute_instance_v2&amp;quot; &amp;quot;vm1&amp;quot; {
  name        = &amp;quot;app-server&amp;quot;
  flavor_name = &amp;quot;basic-2-4&amp;quot;
  image_name  = &amp;quot;Ubuntu 22.04&amp;quot;
  network {
    name = &amp;quot;default&amp;quot;
  }
}
&lt;/pre&gt;
  &lt;hr /&gt;
  &lt;figure id=&quot;0e5J&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8e/14/8e14d69e-819e-41df-84ed-f48d0ba06690.png&quot; width=&quot;511.5&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;IjlS&quot;&gt;Ближайшее будущее IaC в России&lt;/h2&gt;
  &lt;p id=&quot;aJwt&quot;&gt;🧠 &lt;strong&gt;AI + IaC&lt;/strong&gt;&lt;br /&gt; В 2025 появились инструменты вроде &lt;strong&gt;Lightspeed&lt;/strong&gt; от Ansible и &lt;strong&gt;Auto-Terraform Prompt&lt;/strong&gt;, генерирующие код из описания на русском.&lt;/p&gt;
  &lt;p id=&quot;2dN1&quot;&gt;🛡 &lt;strong&gt;Policy as Code&lt;/strong&gt;&lt;br /&gt; Через &lt;strong&gt;OPA (Open Policy Agent)&lt;/strong&gt; можно автоматически проверять, не открыта ли ваша БД во внешний мир 😬&lt;/p&gt;
  &lt;p id=&quot;1Z2J&quot;&gt;🌐 &lt;strong&gt;Multi-cloud ready&lt;/strong&gt;&lt;br /&gt; Большинство инфраструктур в РФ уже используют минимум 2 облака: &lt;strong&gt;Яндекс + VK&lt;/strong&gt;, либо плюс свои bare-metal.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;SplY&quot;&gt;Вывод&lt;/h2&gt;
  &lt;p id=&quot;rtjf&quot;&gt;IaC — это не просто &amp;quot;автоматизация&amp;quot;, это &lt;strong&gt;страховка от бардака&lt;/strong&gt; в инфраструктуре.&lt;br /&gt; Писать инфраструктуру как код — быстрее, безопаснее и масштабируемо.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;LYGZ&quot;&gt;⚡️ &lt;strong&gt;Хочешь шаблон Terraform под Yandex Cloud?&lt;/strong&gt;&lt;br /&gt; Пиши — пришлём репозиторий и пример пайплайна для GitLab CI 🧰&lt;/p&gt;
  &lt;p id=&quot;TOdo&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;9WSU&quot;&gt;&lt;strong&gt;Спасибо что дочитали, ниже как можно снами связаться:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;B0RN&quot;&gt;Мы готовы провести консультацию по внедрению DevOps-подходов или полностью реализовать DevOps-практики под ключ в вашем бизнесе. Пишите нам: &lt;a href=&quot;https://t.me/undercode_ii&quot; target=&quot;_blank&quot;&gt;https://t.me/undercode_ii&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;WwdE&quot;&gt;📡 &lt;strong&gt;Больше о DevOps, ИИ и технологиях будущего — в нашем Telegram-канале:&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;https://t.me/+MGmSPONc29EzNmM6&quot; target=&quot;_blank&quot;&gt;https://t.me/+MGmSPONc29EzNmM6&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;7G7M&quot;&gt;Наш сайт: &lt;a href=&quot;https://undercode.group/&quot; target=&quot;_blank&quot;&gt;https://undercode.group/&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>undercode_ii:wLqBjlEIXHB</id><link rel="alternate" type="text/html" href="https://teletype.in/@undercode_ii/wLqBjlEIXHB?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=undercode_ii"></link><title>Kubernetes простым языком: Как оркестрировать контейнеры без головной боли</title><published>2025-05-14T17:12:38.365Z</published><updated>2025-05-14T17:12:38.365Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/09/f1/09f1b364-f729-4c0e-84ae-881b574f36c1.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/c7/47/c747a843-f8f2-4dd1-9141-d30f99594520.png&quot;&gt;Kubernetes - это как дирижёр для ваших контейнеров. Представьте, что ваше приложение - это оркестр, а каждый музыкант (контейнер) играет свою партию. Без дирижёра музыканты могут запутаться, играть невпопад или вообще замолчать. Kubernetes автоматически:</summary><content type="html">
  &lt;h2 id=&quot;kubernetes&quot;&gt;Что такое Kubernetes и зачем он нужен?&lt;/h2&gt;
  &lt;p id=&quot;uHoO&quot;&gt;&lt;strong&gt;Kubernetes&lt;/strong&gt; - это как дирижёр для ваших контейнеров. Представьте, что ваше приложение - это оркестр, а каждый музыкант (контейнер) играет свою партию. Без дирижёра музыканты могут запутаться, играть невпопад или вообще замолчать. Kubernetes автоматически:&lt;/p&gt;
  &lt;ul id=&quot;krV2&quot;&gt;
    &lt;li id=&quot;OlUN&quot;&gt;Распределяет контейнеры между серверами (узлами)&lt;/li&gt;
    &lt;li id=&quot;nGPt&quot;&gt;Масштабирует приложение при нагрузке&lt;/li&gt;
    &lt;li id=&quot;oi6D&quot;&gt;Лечит сломанные контейнеры (как дирижёр поправляет фальшивящую скрипку)&lt;/li&gt;
    &lt;li id=&quot;oHpi&quot;&gt;Обновляет приложение без остановки&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;oZjv&quot;&gt;&lt;strong&gt;Зачем это нужно?&lt;/strong&gt;&lt;br /&gt;Раньше приложения запускали на физических серверах. Если сервер падал - приложение умирало. С появлением облаков и контейнеров (Docker) всё стало проще, но управлять сотнями контейнеров вручную - как собирать пазл из 1000 деталей вслепую. Kubernetes решает эту проблему.&lt;/p&gt;
  &lt;p id=&quot;pQX9&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;htn5&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c7/47/c747a843-f8f2-4dd1-9141-d30f99594520.png&quot; width=&quot;5000&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;4&quot;&gt;Основные компоненты: 4 кита, на которых всё держится&lt;/h2&gt;
  &lt;h2 id=&quot;8cTs&quot;&gt;1. &lt;strong&gt;Pod (Под) - иногда называют модули (ужас)&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;Romu&quot;&gt;Минимальная &amp;quot;боевая единица&amp;quot;. Это как конверт, в который можно положить:&lt;/p&gt;
  &lt;ul id=&quot;4L2V&quot;&gt;
    &lt;li id=&quot;8jYK&quot;&gt;1 основной контейнер (например, Node.js-приложение)&lt;/li&gt;
    &lt;li id=&quot;RTeG&quot;&gt;1-2 вспомогательных контейнера (например, для логирования или обновления конфигов) - sidecar контейнеры &lt;/li&gt;
    &lt;li id=&quot;4Iya&quot;&gt;Общие ресурсы: дисковое пространство, сетевой адрес&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Kj0w&quot;&gt;&lt;strong&gt;Важно:&lt;/strong&gt; Под - временная единица. Если он умирает, Kubernetes создаёт новый.&lt;/p&gt;
  &lt;h2 id=&quot;WgfJ&quot;&gt;2. &lt;strong&gt;Deployment (Деплоймент)&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;4s0w&quot;&gt;Инструкция для Kubernetes, как управлять подами:&lt;/p&gt;
  &lt;ul id=&quot;zYNz&quot;&gt;
    &lt;li id=&quot;txpZ&quot;&gt;Сколько копий приложения запустить (реплик)&lt;/li&gt;
    &lt;li id=&quot;lN7Y&quot;&gt;Как обновлять (постепенно заменять старые поды новыми)&lt;/li&gt;
    &lt;li id=&quot;YyU7&quot;&gt;Как откатиться при ошибке&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;JNZP&quot;&gt;Пример YAML-файла:&lt;/p&gt;
  &lt;pre id=&quot;F9JF&quot;&gt;textapiVersion: apps/v1  
kind: Deployment  
metadata:  
  name: my-app  
spec:  
  replicas: 3  
  template:  
    spec:  
      containers:  
      - name: nginx  
        image: nginx:1.25  
&lt;/pre&gt;
  &lt;h2 id=&quot;YiON&quot;&gt;3. &lt;strong&gt;Service (Сервис)&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;iF9u&quot;&gt;Визитная карточка вашего приложения. Даже если поды умирают и пересоздаются, сервис:&lt;/p&gt;
  &lt;ul id=&quot;x1EZ&quot;&gt;
    &lt;li id=&quot;BcYz&quot;&gt;Даёт постоянный IP-адрес&lt;/li&gt;
    &lt;li id=&quot;TTa7&quot;&gt;Распределяет нагрузку между подами (балансировка)&lt;/li&gt;
    &lt;li id=&quot;Au5I&quot;&gt;Позволяет общаться микросервисам внутри кластера&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;xr1r&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ef/9a/ef9ade46-2fae-4b16-a9c9-e0fc7e953faf.png&quot; width=&quot;1706&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;Wr49&quot;&gt;4. &lt;strong&gt;Ingress (Вход)&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;JSIx&quot;&gt;Швейцар вашего приложения. Управляет входящим трафиком в основном используют для общения сервисов с интернетом:&lt;/p&gt;
  &lt;ul id=&quot;ExMw&quot;&gt;
    &lt;li id=&quot;l4vI&quot;&gt;Маршрутизирует запросы (например, &lt;code&gt;/blog&lt;/code&gt; → блогу, &lt;code&gt;/api&lt;/code&gt; → API)&lt;/li&gt;
    &lt;li id=&quot;QgRj&quot;&gt;Поддерживает HTTPS&lt;/li&gt;
    &lt;li id=&quot;JnPn&quot;&gt;Может балансировать нагрузку между сервисами&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;rTui&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bb/63/bb634949-dd60-4c2d-ac83-bb31a1690a63.png&quot; width=&quot;731&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;5&quot;&gt;Пример: Разворачиваем веб-приложение за 5 шагов&lt;/h2&gt;
  &lt;p id=&quot;wDni&quot;&gt;&lt;strong&gt;Цель:&lt;/strong&gt; Запустить Nginx с надписью &amp;quot;Hello Kubernetes!&amp;quot;&lt;/p&gt;
  &lt;ol id=&quot;ccyH&quot;&gt;
    &lt;li id=&quot;OiXE&quot;&gt;&lt;strong&gt;Создаём Deployment&lt;/strong&gt; (чтобы Kubernetes знал, какие поды создавать):&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;rHrd&quot;&gt;Сам деплоймент мы описывали выше &lt;br /&gt;Важно по дефолту kubectl стоит на MASTER ноде/дах&lt;/p&gt;
  &lt;pre id=&quot;F46c&quot;&gt;kubectl create deployment nginx --image=nginx:1.25  
&lt;/pre&gt;
  &lt;ol id=&quot;Cv5S&quot;&gt;
    &lt;li id=&quot;Cx47&quot;&gt;&lt;strong&gt;Меняем конфиг Nginx&lt;/strong&gt; (добавляем свою страницу):&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;P1cT&quot;&gt;kubectl exec &amp;lt;имя_пода&amp;gt; -- sh -c &amp;quot;echo &amp;#x27;Hello Kubernetes!&amp;#x27; &amp;gt; /usr/share/nginx/html/index.html&amp;quot;  
&lt;/pre&gt;
  &lt;ol id=&quot;hcuK&quot;&gt;
    &lt;li id=&quot;Mw54&quot;&gt;&lt;strong&gt;Открываем доступ через Service&lt;/strong&gt;:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;dPkt&quot;&gt;kubectl expose deployment nginx --port=80 --type=NodePort  
&lt;/pre&gt;
  &lt;ol id=&quot;8HdK&quot;&gt;
    &lt;li id=&quot;GkLK&quot;&gt;&lt;strong&gt;Настраиваем Ingress&lt;/strong&gt; (если нужен домен/HTTPS):&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;Ueyj&quot;&gt;apiVersion: networking.k8s.io/v1  
kind: Ingress  
metadata:  
  name: nginx-ingress  
spec:  
  rules:  
  - host: myapp.local  
    http:  
      paths:  
      - path: /  
        pathType: Prefix  
        backend:  
          service:  
            name: nginx  
            port:  
              number: 80  
&lt;/pre&gt;
  &lt;ol id=&quot;fMY5&quot;&gt;
    &lt;li id=&quot;syo1&quot;&gt;&lt;strong&gt;Проверяем&lt;/strong&gt;:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;RbEU&quot;&gt;kubectl get pods,deployments,services,ingress  &lt;/pre&gt;
  &lt;h2 id=&quot;5&quot;&gt;5 проблем новичков и как их избежать&lt;/h2&gt;
  &lt;h2 id=&quot;HRLA&quot;&gt;1. &amp;quot;Мои поды исчезают!&amp;quot;&lt;/h2&gt;
  &lt;p id=&quot;py6L&quot;&gt;&lt;strong&gt;Проблема:&lt;/strong&gt; Создавали поды вручную (без Deployment).&lt;br /&gt;&lt;strong&gt;Решение:&lt;/strong&gt; Всегда используйте Deployment - он следит за количеством работающих реплик.&lt;/p&gt;
  &lt;h2 id=&quot;9S9j&quot;&gt;2. &amp;quot;Приложение тормозит/падает&amp;quot;&lt;/h2&gt;
  &lt;p id=&quot;MUYc&quot;&gt;&lt;strong&gt;Проблема:&lt;/strong&gt; Не указали лимиты CPU/RAM в конфиге.&lt;br /&gt;&lt;strong&gt;Решение:&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;NYyH&quot;&gt;textresources:  
  limits:  
    memory: &amp;quot;512Mi&amp;quot;  
    cpu: &amp;quot;1&amp;quot;  
  requests:  
    memory: &amp;quot;256Mi&amp;quot;  
    cpu: &amp;quot;0.5&amp;quot;  
&lt;/pre&gt;
  &lt;h2 id=&quot;6jSB&quot;&gt;3. &amp;quot;Не могу подключиться к сервису&amp;quot;&lt;/h2&gt;
  &lt;p id=&quot;mYYO&quot;&gt;&lt;strong&gt;Проблема:&lt;/strong&gt; Забыли указать порт в Service или не настроили Ingress.&lt;br /&gt;&lt;strong&gt;Решение:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;pMKk&quot;&gt;
    &lt;li id=&quot;HfWy&quot;&gt;Проверьте &lt;code&gt;kubectl describe service &amp;lt;имя&amp;gt;&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;xwKs&quot;&gt;Используйте &lt;code&gt;kubectl port-forward&lt;/code&gt; для локальной отладки&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;lWir&quot;&gt;4. &amp;quot;YAML-файлы - это ад!&amp;quot;&lt;/h2&gt;
  &lt;p id=&quot;LFcl&quot;&gt;&lt;strong&gt;Проблема:&lt;/strong&gt; Ошибки в отступах, опечатки в параметрах.&lt;br /&gt;&lt;strong&gt;Решение:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;wNc8&quot;&gt;
    &lt;li id=&quot;A2G8&quot;&gt;Установите плагин YAML для IDE (VS Code, IntelliJ)&lt;/li&gt;
    &lt;li id=&quot;CFuV&quot;&gt;Используйте &lt;code&gt;kubectl apply --dry-run=client -f file.yaml&lt;/code&gt; для проверки&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;RQy2&quot;&gt;5. &amp;quot;Всё сломалось после обновления!&amp;quot;&lt;/h2&gt;
  &lt;p id=&quot;ENc4&quot;&gt;&lt;strong&gt;Проблема:&lt;/strong&gt; Обновили все поды сразу.&lt;br /&gt;&lt;strong&gt;Решение:&lt;/strong&gt; Настройте стратегию обновления в Deployment:&lt;/p&gt;
  &lt;pre id=&quot;wPg0&quot;&gt;textstrategy:  
  type: RollingUpdate  
  rollingUpdate:  
    maxSurge: 25%  
    maxUnavailable: 25%  
&lt;/pre&gt;
  &lt;h2 id=&quot;AOKO&quot;&gt;Заключение&lt;/h2&gt;
  &lt;p id=&quot;QX6E&quot;&gt;Kubernetes - не волшебная таблетка, но мощный инструмент. Начните с малого:&lt;/p&gt;
  &lt;ol id=&quot;O55K&quot;&gt;
    &lt;li id=&quot;6Ea0&quot;&gt;Разверните локальный кластер (Minikube/Docker Desktop)&lt;/li&gt;
    &lt;li id=&quot;S7Ju&quot;&gt;Поиграйтесь с Deployment/Service&lt;/li&gt;
    &lt;li id=&quot;wDA0&quot;&gt;Подключите мониторинг (Prometheus+Grafana)&lt;/li&gt;
    &lt;li id=&quot;xQFv&quot;&gt;Автоматизируйте деплой с Helm - про него мы поговорим в следующих статьях &lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;fgwp&quot;&gt;Помните: Kubernetes - это оркестр, где вы дирижёр. Не пытайтесь контролировать каждую скрипку, думайте прежде чем что-то сделать, как вы скажите, так и будет.&lt;/p&gt;
  &lt;h2 id=&quot;NnCk&quot;&gt;Итоги&lt;/h2&gt;
  &lt;p id=&quot;lZ03&quot;&gt;Управление конфигурацией — не дань моде, а ваша страховка от ночных аварий и нервных релизов.&lt;br /&gt; Автоматизируйте всё, что можно, и держите инфраструктуру под контролем.&lt;/p&gt;
  &lt;p id=&quot;9WSU&quot;&gt;&lt;strong&gt;Спасибо что дочитали, ниже как можно снами связаться:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;B0RN&quot;&gt;Мы готовы провести консультацию по внедрению DevOps-подходов или полностью реализовать DevOps-практики под ключ в вашем бизнесе. Пишите нам: &lt;a href=&quot;https://t.me/undercode_ii&quot; target=&quot;_blank&quot;&gt;https://t.me/undercode_ii&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;WwdE&quot;&gt;📡 &lt;strong&gt;Больше о DevOps, ИИ и технологиях будущего — в нашем Telegram-канале:&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;https://t.me/+MGmSPONc29EzNmM6&quot; target=&quot;_blank&quot;&gt;https://t.me/+MGmSPONc29EzNmM6&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;7G7M&quot;&gt;Наш сайт: &lt;a href=&quot;https://undercode.group/&quot; target=&quot;_blank&quot;&gt;https://undercode.group/&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>undercode_ii:uWFMZVBEhA9</id><link rel="alternate" type="text/html" href="https://teletype.in/@undercode_ii/uWFMZVBEhA9?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=undercode_ii"></link><title>Ansible, Puppet, Chef: Управление конфигурацией без боли</title><published>2025-05-13T17:20:37.099Z</published><updated>2025-05-13T21:35:15.360Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/e6/22/e6228ffc-9005-4780-8f00-509017dbd9e4.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/85/e0/85e0305a-c489-44d5-baec-13b565542230.png&quot;&gt;Вы всё ещё вручную настраиваете сервера, а прод неожиданно «ложится» из-за человеческой ошибки? Добро пожаловать в клуб выгорающих инженеров.</summary><content type="html">
  &lt;p id=&quot;W9JK&quot;&gt;Вы всё ещё вручную настраиваете сервера, а прод неожиданно «ложится» из-за человеческого фактора? Добро пожаловать в клуб выгорающих инженеров.&lt;/p&gt;
  &lt;p id=&quot;X7lg&quot;&gt;В этой статье расскажем, как не быть одним из них. Познакомим с тремя китами управления конфигурацией — &lt;strong&gt;Ansible&lt;/strong&gt;, &lt;strong&gt;Puppet&lt;/strong&gt; и &lt;strong&gt;Chef&lt;/strong&gt;, покажем примеры и поможем выбрать свой инструмент.&lt;/p&gt;
  &lt;h2 id=&quot;vc1m&quot;&gt;Почему управление конфигурацией — не мода, а необходимость&lt;/h2&gt;
  &lt;p id=&quot;KTBx&quot;&gt;В эпоху DevOps конфигурация инфраструктуры — как код. Принцип &lt;strong&gt;Infrastructure as Code (IaC)&lt;/strong&gt; позволяет автоматизировать всё: от настройки до масштабирования.&lt;/p&gt;
  &lt;p id=&quot;OBmN&quot;&gt;&lt;strong&gt;Зачем?&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;Og6o&quot;&gt;
    &lt;li id=&quot;27ez&quot;&gt;Снижение ошибок (человеческий фактор — ваш худший враг).&lt;/li&gt;
    &lt;li id=&quot;xVpP&quot;&gt;Масштабируемость (от 1 до 1000 серверов).&lt;/li&gt;
    &lt;li id=&quot;TtpX&quot;&gt;Предсказуемость (сегодня настроили — завтра получили тот же результат).&lt;/li&gt;
    &lt;li id=&quot;t0xs&quot;&gt;Аудит и контроль (всё в гите, всё прозрачно).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;5FAZ&quot;&gt;Ansible — просто, быстро, без лишних агентов&lt;/h2&gt;
  &lt;p id=&quot;tHpz&quot;&gt;&lt;strong&gt;Ansible&lt;/strong&gt; — ваш выбор, если хотите настроить инфраструктуру &lt;strong&gt;быстро и просто&lt;/strong&gt;. Агентов не нужно, всё по SSH. Пишем YAML — и работаем.&lt;/p&gt;
  &lt;h3 id=&quot;ymbh&quot;&gt;Пример Ansible playbook:&lt;/h3&gt;
  &lt;pre id=&quot;EpCI&quot;&gt;yamlКопироватьРедактировать---
- name: Установка nginx
  hosts: webservers
  become: true
  tasks:
    - name: Установка nginx
      apt:
        name: nginx
        state: present

    - name: Включить nginx
      service:
        name: nginx
        state: started
        enabled: yes
&lt;/pre&gt;
  &lt;p id=&quot;8zZs&quot;&gt;&lt;strong&gt;Фишки Ansible:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;oMeZ&quot;&gt;
    &lt;li id=&quot;jCCw&quot;&gt;Агент-лесс (через SSH).&lt;/li&gt;
    &lt;li id=&quot;k1Fi&quot;&gt;Простота и низкий порог входа.&lt;/li&gt;
    &lt;li id=&quot;AK0a&quot;&gt;Отлично работает в гибридных и облачных средах.&lt;/li&gt;
    &lt;li id=&quot;LU4p&quot;&gt;&lt;strong&gt;Lightspeed AI&lt;/strong&gt; — генерация плейбуков через ИИ (уже в продакшене!).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;RCv8&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/85/e0/85e0305a-c489-44d5-baec-13b565542230.png&quot; width=&quot;820&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;Z0Uv&quot;&gt;Puppet — классика жанра с декларативным подходом&lt;/h2&gt;
  &lt;p id=&quot;OIW4&quot;&gt;&lt;strong&gt;Puppet&lt;/strong&gt; — старый добрый инструмент для больших и сложных инфраструктур.&lt;/p&gt;
  &lt;p id=&quot;W4rU&quot;&gt;&lt;strong&gt;Архитектура:&lt;/strong&gt; клиент-сервер, где агенты регулярно тянут конфигурации с центрального сервера.&lt;/p&gt;
  &lt;h3 id=&quot;l3R5&quot;&gt;Пример Puppet-манифеста:&lt;/h3&gt;
  &lt;pre id=&quot;0dd4&quot;&gt;class webserver {
  package { &amp;#x27;apache2&amp;#x27;: ensure =&amp;gt; installed }
  service { &amp;#x27;apache2&amp;#x27;: ensure =&amp;gt; running, enable =&amp;gt; true }
  file { &amp;#x27;/var/www/html/index.html&amp;#x27;:
    content =&amp;gt; &amp;#x27;Hello, World!&amp;#x27;
  }
}
&lt;/pre&gt;
  &lt;p id=&quot;7HSU&quot;&gt;&lt;strong&gt;Фишки Puppet:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;eAeH&quot;&gt;
    &lt;li id=&quot;z3OK&quot;&gt;Декларативность (описываете состояние — Puppet добивается его).&lt;/li&gt;
    &lt;li id=&quot;Whdy&quot;&gt;Сильное сообщество и библиотека модулей.&lt;/li&gt;
    &lt;li id=&quot;4wfm&quot;&gt;Идеален для больших инфраструктур с требованиями к политике безопасности.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;HgWZ&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b9/1c/b91c5027-357c-4133-a0d4-f1b97bbdbe7a.png&quot; width=&quot;799.5&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;pt8W&quot;&gt;Chef — когда хочется гибкости на Ruby&lt;/h2&gt;
  &lt;p id=&quot;cGuV&quot;&gt;&lt;strong&gt;Chef&lt;/strong&gt; — это Ruby для вашей инфраструктуры. Подходит тем, кто любит кодить.&lt;/p&gt;
  &lt;p id=&quot;Hvcp&quot;&gt;&lt;strong&gt;Архитектура:&lt;/strong&gt; клиент-сервер, рецепты (cookbooks) пишутся на Ruby DSL.&lt;/p&gt;
  &lt;h3 id=&quot;X88Y&quot;&gt;Пример Chef-рецепта:&lt;/h3&gt;
  &lt;pre id=&quot;Fqfu&quot;&gt;package &amp;#x27;mysql-server&amp;#x27;

service &amp;#x27;mysql&amp;#x27; do
  action [:enable, :start]
end
&lt;/pre&gt;
  &lt;p id=&quot;dMuK&quot;&gt;&lt;strong&gt;Фишки Chef:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;4cpP&quot;&gt;
    &lt;li id=&quot;4AwR&quot;&gt;Гибкость и мощь Ruby DSL.&lt;/li&gt;
    &lt;li id=&quot;tkoG&quot;&gt;Сложнее вход, но больше возможностей для кастомизации.&lt;/li&gt;
    &lt;li id=&quot;n6Ao&quot;&gt;Хорошая интеграция с облаком и CI/CD пайплайнами.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;56tO&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8e/39/8e392fbe-dca3-4b3e-903e-a20419fa30f0.png&quot; width=&quot;640&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;STuO&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;RoKz&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/28/14/2814a142-3278-4d24-a8bd-1eb8eddf3bfe.png&quot; width=&quot;839&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;unes&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/90/55/90557e64-4739-4a3c-9637-192bbbe13ac9.png&quot; width=&quot;709&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;wilo&quot;&gt;Как выбрать инструмент 🚀&lt;/h2&gt;
  &lt;ul id=&quot;AjZQ&quot;&gt;
    &lt;li id=&quot;JRAj&quot;&gt;&lt;strong&gt;Ansible&lt;/strong&gt; — для быстрого старта, малых и средних инфраструктур, гибридных облаков.&lt;/li&gt;
    &lt;li id=&quot;S0ym&quot;&gt;&lt;strong&gt;Puppet&lt;/strong&gt; — когда нужна предсказуемость, декларативность и строгая политика.&lt;/li&gt;
    &lt;li id=&quot;q2o4&quot;&gt;&lt;strong&gt;Chef&lt;/strong&gt; — когда команда любит Ruby и нужна максимальная кастомизация.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Jos6&quot;&gt;⚠️ &lt;strong&gt;Совет от практиков:&lt;/strong&gt;&lt;br /&gt; Для старта — Ansible.&lt;br /&gt; Для зрелой инфраструктуры — Puppet или Chef.&lt;/p&gt;
  &lt;h2 id=&quot;MYKc&quot;&gt;А что дальше?&lt;/h2&gt;
  &lt;p id=&quot;ePW8&quot;&gt;Контейнеризация, Kubernetes и микросервисы меняют ландшафт. Все инструменты управления конфигурацией активно адаптируются под эти реалии. Например, Ansible уже интегрируется с Kubernetes через Operator SDK, а Chef развивается в сторону политики и compliance as code.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;NnCk&quot;&gt;Итоги&lt;/h2&gt;
  &lt;p id=&quot;lZ03&quot;&gt;Управление конфигурацией — не дань моде, а ваша страховка от ночных аварий и нервных релизов.&lt;br /&gt; Автоматизируйте всё, что можно, и держите инфраструктуру под контролем.&lt;/p&gt;
  &lt;p id=&quot;9WSU&quot;&gt;&lt;strong&gt;Спасибо что дочитали, ниже как можно снами связаться:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;B0RN&quot;&gt;Мы готовы провести консультацию по внедрению DevOps-подходов или полностью реализовать DevOps-практики под ключ в вашем бизнесе. Пишите нам: &lt;a href=&quot;https://t.me/undercode_ii&quot; target=&quot;_blank&quot;&gt;https://t.me/undercode_ii&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;WwdE&quot;&gt;📡 &lt;strong&gt;Больше о DevOps, ИИ и технологиях будущего — в нашем Telegram-канале:&lt;/strong&gt;&lt;br /&gt; &lt;a href=&quot;https://t.me/Undercode_ai&quot; target=&quot;_blank&quot;&gt;https://t.me/Undercode_ai&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;7G7M&quot;&gt;Наш сайт: &lt;a href=&quot;https://undercode.group/&quot; target=&quot;_blank&quot;&gt;https://undercode.group/&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>undercode_ii:dPBS4Cj-XcL</id><link rel="alternate" type="text/html" href="https://teletype.in/@undercode_ii/dPBS4Cj-XcL?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=undercode_ii"></link><title>CI/CD: Простым языком, для новичков или опытных в IT . Как не бояться релизов и не превращать разработку и релизы в болото</title><published>2025-05-12T16:49:28.703Z</published><updated>2025-05-12T16:49:28.703Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/ee/a0/eea01bb8-22a2-44f7-92e2-e95e36e3a197.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/37/25/37256bfd-ec77-45ab-af6d-32d88256f5e5.png&quot;&gt;Команда долго-долго пилит фичи. Пятница, вечер — пора релизить. Все в напряжении.
И... сюрприз: всё ломается. Баги лезут отовсюду. Продукт не запускается.
Админ ругается, Dev’ы не спят, а клиент злится.</summary><content type="html">
  &lt;figure id=&quot;peUF&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/37/25/37256bfd-ec77-45ab-af6d-32d88256f5e5.png&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;Оригинал: https://i.ytimg.com/vi/rqCxl4yI3s8/maxresdefault.jpg&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;B3HS&quot;&gt;Почему без CI/CD ваш проект обречён на хаос&lt;/h2&gt;
  &lt;p id=&quot;aO7z&quot;&gt;Команда долго-долго пилит фичи. Пятница, вечер — пора релизить. Все в напряжении.&lt;br /&gt;И... сюрприз: всё ломается. Баги лезут отовсюду. Продукт не запускается.&lt;br /&gt;Админ ругается, Dev’ы не спят, а клиент злится.&lt;/p&gt;
  &lt;p id=&quot;ftke&quot;&gt;Знакома ситуация? ( для тех кто работал в IT в в 1990-2015 +- пару лет) думаю очень знакомая картина&lt;/p&gt;
  &lt;p id=&quot;HczR&quot;&gt;До появления CI/CD так работали почти все. Каждый сидел в своей песочнице. А интеграция была адом: конфликты, баги, дедлайны летят к чертям. Релизы раз в полгода и то с риском уронить продакшн.&lt;/p&gt;
  &lt;p id=&quot;tgeI&quot;&gt;CI/CD решает эту боль.&lt;/p&gt;
  &lt;p id=&quot;cErU&quot;&gt;Сегодня расскажем простым языком — что это, как работает, почему это must-have даже для вашего пэт-проекта.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;Wo9n&quot;&gt;Что такое CI(Continuous Integration&lt;strong&gt;)&lt;/strong&gt; — непрерывная интеграция&lt;/h2&gt;
  &lt;h3 id=&quot;jcwr&quot;&gt;История на пальцах&lt;/h3&gt;
  &lt;p id=&quot;wZuV&quot;&gt;CI придумали в 90-х использовать начали в 2001, а по настоящему научились пользоваться в 2010+- год. CI (Continuous Integration) — это практика, где разработчики часто (каждый день или чаще) коммитят код в общий репозиторий. И сразу — происходит автоматическая сборка и тесты данного коммита.&lt;/p&gt;
  &lt;h3 id=&quot;RkGm&quot;&gt;Как это выглядит в жизни:&lt;/h3&gt;
  &lt;ol id=&quot;fBg2&quot;&gt;
    &lt;li id=&quot;CWNh&quot;&gt;Dev ( разработчик ) пушит код.&lt;/li&gt;
    &lt;li id=&quot;5U6j&quot;&gt;CI-сервер (Jenkins, GitLab CI, GitHub Actions) запускает пайплайн.&lt;/li&gt;
    &lt;li id=&quot;hubU&quot;&gt;Проект собирается.&lt;/li&gt;
    &lt;li id=&quot;tV4x&quot;&gt;Запускаются тесты.&lt;/li&gt;
    &lt;li id=&quot;SYg8&quot;&gt;Линтеры и анализаторы проверяют стиль, безопасность, опечатки в коде.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;D0XQ&quot;&gt;🚨 Сломалось? Dev сразу получает алерт. Пока баг маленький, его проще фиксить.&lt;/p&gt;
  &lt;figure id=&quot;DXpD&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/85/fb/85fb825b-ee14-4a6d-8c43-43b3dc7d8c34.png&quot; width=&quot;1024&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;7LG1&quot;&gt;&lt;strong&gt;Зачем это всё:&lt;/strong&gt;&lt;/h3&gt;
  &lt;ul id=&quot;HH0E&quot;&gt;
    &lt;li id=&quot;bUSb&quot;&gt;Чтобы не накапливать баги и технический долг.&lt;/li&gt;
    &lt;li id=&quot;CDVH&quot;&gt;Чтобы весь код всегда был в состоянии &amp;quot;работает и не падает&amp;quot;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;3phN&quot;&gt;Что такое CD — непрерывная доставка и деплой&lt;/h2&gt;
  &lt;p id=&quot;J9ah&quot;&gt;CD — логичное продолжение CI.&lt;/p&gt;
  &lt;ul id=&quot;UY1G&quot;&gt;
    &lt;li id=&quot;eorw&quot;&gt;&lt;strong&gt;Continuous Delivery (доставка)&lt;/strong&gt; — после CI билд готов к деплою. Релиз можно делать по кнопке.&lt;/li&gt;
    &lt;li id=&quot;6Z4h&quot;&gt;&lt;strong&gt;Continuous Deployment (развёртывание)&lt;/strong&gt; — релизы выкатываются сразу, без участия человека, но в критичных проектах скорее всего будет кнопка апрува ответственного лица ( в РФ и некоторых странах СНГ это точно так)  на проектах в Европе и США я не видел такой практики.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;YfFX&quot;&gt;Пример:&lt;/h3&gt;
  &lt;ol id=&quot;ZymB&quot;&gt;
    &lt;li id=&quot;XLki&quot;&gt;CI прошёл.&lt;/li&gt;
    &lt;li id=&quot;YUtM&quot;&gt;CD собрал артефакт (например, Docker-образ), jar файл, любая библиотека, без разницы&lt;/li&gt;
    &lt;li id=&quot;Fswy&quot;&gt;Система запушила данный артефакт в Nexus или Harbor ( хранилища артефактов) - есть и другие.&lt;/li&gt;
    &lt;li id=&quot;Vcz3&quot;&gt;Система задеплоила билд в staging ( препрод ).&lt;/li&gt;
    &lt;li id=&quot;cXP5&quot;&gt;Запустились smoke-тесты, мониторинг.&lt;/li&gt;
    &lt;li id=&quot;ecVN&quot;&gt;Всё ок? Можно на прод.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;LqPg&quot;&gt;&lt;em&gt;( Это очень примерный пайплайн от проекта к проекту он будет меняться, но в целом процессы +- похожи )&lt;/em&gt;&lt;/p&gt;
  &lt;h3 id=&quot;PDXT&quot;&gt;Топовые инструменты:&lt;/h3&gt;
  &lt;ul id=&quot;OHxK&quot;&gt;
    &lt;li id=&quot;NKOr&quot;&gt;ArgoCD&lt;/li&gt;
    &lt;li id=&quot;ATtn&quot;&gt;GitLab Ci&lt;/li&gt;
    &lt;li id=&quot;EtJP&quot;&gt;Jenkins&lt;/li&gt;
    &lt;li id=&quot;VP51&quot;&gt;Spinnaker&lt;/li&gt;
    &lt;li id=&quot;aPKh&quot;&gt;Flux&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;9kQu&quot;&gt; &lt;/p&gt;
  &lt;figure id=&quot;2DHX&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/ce/49/ce496286-0169-48fc-9311-b1e4b40292aa.png&quot; width=&quot;375&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;jTg0&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/60/9a/609a95e9-95e3-4265-a9e9-db1a782a0e0b.png&quot; width=&quot;455&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;AZkm&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0f/0c/0f0c2b1a-e466-4aa2-9226-e870dd78a10f.png&quot; width=&quot;468.5&quot; /&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;Gcxd&quot;&gt;Чем CI/CD помогает бизнесу и команде&lt;/h2&gt;
  &lt;p id=&quot;vaOF&quot;&gt;✅ Быстрые релизы — код выходит к пользователю сразу, без бюрократии - я ранее упоминал о показатели time to market, речь как раз про него.&lt;br /&gt; ✅ Меньше багов — всё тестируется сразу после коммита ( должно тестироваться, но увы это не всегда так).&lt;br /&gt; ✅ Надёжность — процессы автоматизированы, отсутствует практически человеческий фактор.&lt;br /&gt; ✅ Честная DevOps культура — Dev и Ops работают как одна команда, а не перетягивают канат.&lt;br /&gt; ✅ Фокус на фичах и продукте, а не на  процессах ручной сборки и деплое кода в прод, когда релиз занимал целый день, а то и несколько.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;hAti&quot;&gt;Как внедрить CI/CD по шагам (пошаговая карта)&lt;/h2&gt;
  &lt;h3 id=&quot;Pcao&quot;&gt;1. Система контроля версий (Git)&lt;/h3&gt;
  &lt;p id=&quot;htZ3&quot;&gt;Без Git никуда. Вся команда должна работать с единым репозиторием.&lt;/p&gt;
  &lt;h3 id=&quot;lr37&quot;&gt;2. Настройка CI (сборка и тесты)&lt;/h3&gt;
  &lt;ul id=&quot;dWzu&quot;&gt;
    &lt;li id=&quot;Rsrf&quot;&gt;Поставьте Jenkins, GitLab CI или Actions.&lt;/li&gt;
    &lt;li id=&quot;aqgD&quot;&gt;Подключите юнит-тесты, интеграционные, линтеры.&lt;/li&gt;
    &lt;li id=&quot;t0Gx&quot;&gt;Включите алерты — чтобы Разраб знал, когда что-то сломалось.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;dRwL&quot;&gt;3. Настройка CD (доставка и деплой)&lt;/h3&gt;
  &lt;ul id=&quot;pzRG&quot;&gt;
    &lt;li id=&quot;VKA8&quot;&gt;Сборка артефактов (Docker, пакеты).&lt;/li&gt;
    &lt;li id=&quot;NY4v&quot;&gt;Автоматический деплой в staging (препрод).&lt;/li&gt;
    &lt;li id=&quot;VhLy&quot;&gt;Проверки и мониторинг.&lt;/li&gt;
    &lt;li id=&quot;veKA&quot;&gt;По желанию — автоматический деплой в продакшн или кнопка &amp;quot;Deploy to prod&amp;quot;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;gZSt&quot;&gt;4. Постоянная оптимизация процессов&lt;/h3&gt;
  &lt;ul id=&quot;15Sq&quot;&gt;
    &lt;li id=&quot;uk2n&quot;&gt;Анализируйте, что ломается.&lt;/li&gt;
    &lt;li id=&quot;QtpZ&quot;&gt;Смотрите на скорость релизов.&lt;/li&gt;
    &lt;li id=&quot;ysXY&quot;&gt;Автоматизируйте всё, что тратит ваше время.&lt;/li&gt;
    &lt;li id=&quot;uYjQ&quot;&gt;Всегда пуште сообщения о проблемах, аномалиях и так далее в телеграмм или в любой другой ваш рабочий месенджер&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;PkYV&quot;&gt;Мифы о CI/CD (и почему это не отмазки)&lt;/h2&gt;
  &lt;p id=&quot;k0Ey&quot;&gt;❌ &lt;strong&gt;&amp;quot;Это только для больших компаний&amp;quot;&lt;/strong&gt;&lt;br /&gt; Нет. Даже фрилансеру CI/CD экономит нервы и время.&lt;/p&gt;
  &lt;p id=&quot;XcqY&quot;&gt;❌ &lt;strong&gt;&amp;quot;Это сложно и дорого&amp;quot;&lt;/strong&gt;&lt;br /&gt; Почти все популярные CI/CD платформы бесплатные (GitLab, GitHub Actions).&lt;/p&gt;
  &lt;p id=&quot;bIHP&quot;&gt;❌ &lt;strong&gt;&amp;quot;Автоматизация убивает гибкость&amp;quot;&lt;/strong&gt;&lt;br /&gt; Наоборот. Она даёт команде возможность сосредоточиться на продукте, а не на рутине.&lt;/p&gt;
  &lt;p id=&quot;A9Pt&quot;&gt;❌ &lt;strong&gt;&amp;quot;CI/CD — это только про тесты и деплой&amp;quot;&lt;/strong&gt;&lt;br /&gt; Это про культуру: прозрачность, фидбек, стабильность.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;6or3&quot;&gt;Аналогия с заводом&lt;/h2&gt;
  &lt;p id=&quot;4ZjQ&quot;&gt;Представьте себе автозавод:&lt;br /&gt; Каждая машина проходит контроль на каждом этапе.&lt;br /&gt; Брак — сразу на доработку.&lt;br /&gt; В конце — только идеальные машины.&lt;br /&gt; CI/CD — ваш завод для кода.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;XFkR&quot;&gt;Заключение: CI/CD — как перейти из каменного века разработки в XXI век&lt;/h2&gt;
  &lt;p id=&quot;V0If&quot;&gt;CI/CD — это не &amp;quot;доп опция&amp;quot;, а база, нет CI/CD рынок вас съест.&lt;/p&gt;
  &lt;p id=&quot;60Cc&quot;&gt;Даже если вы один на проекте — подключите CI/CD.&lt;br /&gt;Автоматизация = меньше стресса и багов, больше фич и довольных пользователей, скорость релизов и их частота, прямо влияет на пользовательский опыт&lt;/p&gt;
  &lt;p id=&quot;CRiD&quot;&gt;&lt;strong&gt;Совет:&lt;/strong&gt;&lt;br /&gt; Начните с самого простого — автоматический запуск тестов при коммите.&lt;br /&gt; Дальше — по нарастающей: сборка, деплой, мониторинг.&lt;/p&gt;
  &lt;p id=&quot;OrXY&quot;&gt;🚀 Даже если кажется сложно — пробуйте. CI/CD — это путь, и каждый может его освоить.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;tNih&quot;&gt;Полезняк для внедрения:&lt;/h2&gt;
  &lt;p id=&quot;YDON&quot;&gt;&lt;strong&gt;CI:&lt;/strong&gt; Jenkins, GitLab CI, GitHub Actions, CircleCI&lt;br /&gt; &lt;strong&gt;CD:&lt;/strong&gt; GitLab CD, ArgoCD, Spinnaker, Flux&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
  &lt;p id=&quot;9WSU&quot;&gt;&lt;strong&gt;Спасибо что дочитали, ниже как можно снами связаться:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;B0RN&quot;&gt;Мы готовы провести консультацию по внедрению DevOps-подходов или полностью реализовать DevOps-практики под ключ в вашем бизнесе. Пишите нам: &lt;a href=&quot;https://t.me/undercode_ii&quot; target=&quot;_blank&quot;&gt;https://t.me/undercode_ii&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;WwdE&quot;&gt;📡 &lt;strong&gt;Больше о DevOps, ИИ и технологиях будущего — в нашем Telegram-канале:&lt;/strong&gt;&lt;br /&gt; &lt;a href=&quot;https://t.me/Undercode_ai&quot; target=&quot;_blank&quot;&gt;https://t.me/Undercode_ai&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;7G7M&quot;&gt;Наш сайт: &lt;a href=&quot;https://undercode.group/&quot; target=&quot;_blank&quot;&gt;https://undercode.group/&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>undercode_ii:PH5mNd2Pwe9</id><link rel="alternate" type="text/html" href="https://teletype.in/@undercode_ii/PH5mNd2Pwe9?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=undercode_ii"></link><title>Контейнеры в разработке: зачем они нужны и как экономят ваши нервы  и время🐳</title><published>2025-05-11T20:33:58.028Z</published><updated>2025-05-11T20:33:58.028Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/35/49/35491a49-5e1f-4f59-99eb-e53dc25fe291.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/95/de/95de77bc-9366-494b-a545-4fb1961da1da.png&quot;&gt;Устали от &quot;у меня локально все работает, а на проде - нет&quot;?
Вы когда-нибудь сталкивались с тем, что код отлично запускается у вас на машине локально и все прекрасно работает, но стоит передать код на прод, к вам прибегает сис админ/DevOps и говорит что ничего не работает код не запускается? Или что тесты проходят в одной среде, а в другой - все тесты красные?</summary><content type="html">
  &lt;p id=&quot;gW9g&quot;&gt;&lt;strong&gt;Устали от &amp;quot;у меня локально все работает, а на проде - нет&amp;quot;?&lt;/strong&gt;&lt;br /&gt;Вы когда-нибудь сталкивались с тем, что код отлично запускается у вас на машине локально и все прекрасно работает, но стоит передать код на прод, к вам прибегает сис админ/DevOps и говорит что ничего не работает код не запускается? Или что тесты проходят в одной среде, а в другой - все тесты красные?&lt;/p&gt;
  &lt;p id=&quot;Z2Dz&quot;&gt;Добро пожаловать в мир, где контейнеры решают эти боли. Сегодня расскажу, как они помогают разработчикам спать спокойнее, а DevOps специалистам быть уверенным в том что если &amp;quot;контейнер&amp;quot; протестирован, он запустится со 100% вероятностью ( с некоторыми оговорками ).&lt;/p&gt;
  &lt;h2 id=&quot;c9Be&quot;&gt;Что такое контейнеры и с чем их едят?&lt;/h2&gt;
  &lt;p id=&quot;mFEB&quot;&gt;&lt;strong&gt;Контейнер&lt;/strong&gt; - это изолированная среда, которая упаковывает ваше приложение вместе со всеми зависимостями (библиотеки, настройки, окружение), чтобы оно везде работало одинаково - хоть на ноутбуке, хоть в облаке.&lt;/p&gt;
  &lt;p id=&quot;bkDr&quot;&gt;⚙️ &lt;strong&gt;Как это работает:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;BvMT&quot;&gt;
    &lt;li id=&quot;xmRm&quot;&gt;Использует &lt;strong&gt;namespaces&lt;/strong&gt; для изоляции процессов, сетевых интерфейсов и файловой системы - &lt;a href=&quot;https://habr.com/ru/companies/otus/articles/858780/&quot; target=&quot;_blank&quot;&gt;тут подробнее&lt;/a&gt; .&lt;/li&gt;
    &lt;li id=&quot;jRTC&quot;&gt;Ограничивает ресурсы через &lt;strong&gt;cgroups&lt;/strong&gt; (CPU, RAM, диск) - &lt;a href=&quot;https://habr.com/ru/companies/otus/articles/858780/&quot; target=&quot;_blank&quot;&gt;тут подробнее&lt;/a&gt;.&lt;/li&gt;
    &lt;li id=&quot;MDWQ&quot;&gt;Запускается поверх ядра хостовой  ОС  это ВАЖНО! (в отличие от ВМ, где своё ядро) - &lt;a href=&quot;https://www.atlassian.com/ru/microservices/cloud-computing/containers-vs-vms&quot; target=&quot;_blank&quot;&gt;читаем тут детали&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;blockquote id=&quot;cSB7&quot;&gt;Пример: вы кладёте ваш код, Python 3.11, нужные пакеты и конфиги - всё это упаковываете как &amp;quot;контейнер&amp;quot; и запускаете где угодно.&lt;/blockquote&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;4HS8&quot;&gt;&lt;strong&gt;!!&lt;/strong&gt;Кстати последний пункт очень часто спрашивают на собесах, имейте ввиду что именно это главное отличие является ключевым и часто сходит за правильный ответ&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;9vos&quot;&gt;Чем контейнеры круче обычных виртуалок?&lt;/h2&gt;
  &lt;figure id=&quot;6f6n&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/95/de/95de77bc-9366-494b-a545-4fb1961da1da.png&quot; width=&quot;747&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;OMvC&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2a/c2/2ac20d74-7833-412c-849b-b6ae9e98e172.png&quot; width=&quot;1280&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;umI7&quot;&gt;Главные преимущества контейнеров&lt;/h2&gt;
  &lt;h3 id=&quot;g0vx&quot;&gt;🚀 1. Портативность&lt;/h3&gt;
  &lt;p id=&quot;VGhC&quot;&gt;Написал на Linux - работает на Mac, Windows, сервере, в облаке. Один и тот же контейнер = одинаковое поведение везде&lt;/p&gt;
  &lt;h3 id=&quot;QgQy&quot;&gt;📈 2. Масштабируемость&lt;/h3&gt;
  &lt;p id=&quot;fnUM&quot;&gt;Нужна новая копия приложения? &lt;strong&gt;Kubernetes&lt;/strong&gt; автоматически поднимет 10 контейнеров за минуту. Идеально для микросервисов&lt;/p&gt;
  &lt;h3 id=&quot;G6Jh&quot;&gt;⚡ 3. Молниеносный запуск&lt;/h3&gt;
  &lt;p id=&quot;3rrg&quot;&gt;Контейнеры стартуют за секунды. Это ускоряет CI/CD, разработку и отладку&lt;/p&gt;
  &lt;h3 id=&quot;8OI5&quot;&gt;🔐 4. Изоляция (но не абсолютная)&lt;/h3&gt;
  &lt;p id=&quot;adDY&quot;&gt;Каждое приложение живёт в своём «пузыре»&lt;/p&gt;
  &lt;p id=&quot;9g2r&quot;&gt;&lt;strong&gt;Ограничение:&lt;/strong&gt; общее ядро ОС → для критичных задач используйте &lt;strong&gt;Kata Containers&lt;/strong&gt; (микро-ВМ) или &lt;strong&gt;gVisor&lt;/strong&gt; (эмуляция системных вызовов) - Про это я писал в своей одной предыдущей статье - &lt;a href=&quot;https://telegra.ph/Docker-vs-Drugie-Runtime-Sredy-Arhitektura-Bezopasnost-i-Primenenie-05-06&quot; target=&quot;_blank&quot;&gt;жми&lt;/a&gt;&lt;/p&gt;
  &lt;h3 id=&quot;eFCi&quot;&gt;💰 5. Экономия ресурсов&lt;/h3&gt;
  &lt;p id=&quot;eQGZ&quot;&gt;Вместо тяжёлых виртуалок - лёгкие контейнеры. На одном сервере можно запустить в 2-3 раза больше приложений.&lt;/p&gt;
  &lt;h2 id=&quot;pSRo&quot;&gt;Как используют контейнеры в реальной разработке&lt;/h2&gt;
  &lt;h3 id=&quot;y06j&quot;&gt;👨‍💻 Локальная разработка&lt;/h3&gt;
  &lt;ul id=&quot;wOWA&quot;&gt;
    &lt;li id=&quot;VJm3&quot;&gt;Поднимите PostgreSQL, Redis и Python 3.11 одной командой:bash&lt;code&gt;docker-compose up -d &lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;OyDW&quot;&gt;&lt;strong&gt;ВАЖНО:&lt;/strong&gt; Избегайте конфликтов версий - у каждого проекта свой контейнер.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;6Oft&quot;&gt;🧪 CI/CD&lt;/h3&gt;
  &lt;ul id=&quot;TbDX&quot;&gt;
    &lt;li id=&quot;RfwA&quot;&gt;В GitLab/GitHub Actions контейнеры:&lt;/li&gt;
    &lt;ul id=&quot;exHU&quot;&gt;
      &lt;li id=&quot;aa3M&quot;&gt;Запускают тесты в изолированной среде.&lt;/li&gt;
      &lt;li id=&quot;Q2mF&quot;&gt;Собирают артефакты.&lt;/li&gt;
      &lt;li id=&quot;BnUZ&quot;&gt;Разворачивают приложения без зависимостей&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;o3rR&quot;&gt;☁️ Облака и Kubernetes&lt;/h3&gt;
  &lt;ul id=&quot;xduL&quot;&gt;
    &lt;li id=&quot;2vw6&quot;&gt;Pod(в некотором переводе, переводится как модуль, это сущность которая в себе может содержать несколько контейнеров которые гарантировано запускаются на одном узле) - базовая единица в Kubernetes .&lt;/li&gt;
    &lt;li id=&quot;nn6c&quot;&gt;&lt;strong&gt;Пример:&lt;/strong&gt; Автомасштабирование веб-сервиса при пиковой нагрузке в AWS/Yandex.Cloud etc&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;DK1M&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2a/64/2a64528b-29c2-4fe6-9e95-ea6796f34655.png&quot; width=&quot;2003&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;YudD&quot;&gt;Что часто упускают новички?&lt;/h2&gt;
  &lt;h3 id=&quot;BwJB&quot;&gt;🗃️ Постоянное хранение данных&lt;/h3&gt;
  &lt;ul id=&quot;qUIu&quot;&gt;
    &lt;li id=&quot;eAUf&quot;&gt;Контейнеры по умолчанию &lt;strong&gt;не сохраняют данные&lt;/strong&gt; после остановки.&lt;/li&gt;
    &lt;li id=&quot;RPv7&quot;&gt;Решение: &lt;strong&gt;тома (volumes)&lt;/strong&gt; и &lt;strong&gt;PersistentVolumes&lt;/strong&gt; в Kubernetes.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;Hugi&quot;&gt;🔧 Оркестрация&lt;/h3&gt;
  &lt;ul id=&quot;4WjD&quot;&gt;
    &lt;li id=&quot;wCPr&quot;&gt;Для управления сотнями контейнеров нужны:&lt;/li&gt;
    &lt;ul id=&quot;5q3V&quot;&gt;
      &lt;li id=&quot;es2r&quot;&gt;&lt;strong&gt;Kubernetes&lt;/strong&gt; (золотой стандарт).&lt;/li&gt;
      &lt;li id=&quot;miCt&quot;&gt;&lt;strong&gt;Openshift &lt;/strong&gt;(разработка RedHat на основе K8s)&lt;/li&gt;
      &lt;li id=&quot;Aqqq&quot;&gt;&lt;strong&gt;Deckhouse &lt;/strong&gt;(разработка Флант на основе K8s есть сертификация ФСТЭК)&lt;/li&gt;
      &lt;li id=&quot;m36T&quot;&gt;&lt;strong&gt;Docker Swarm&lt;/strong&gt; (проще, но менее мощный).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;VwF2&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e9/50/e950fd6a-2022-4eb8-934d-01a85a0c4326.png&quot; width=&quot;471&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;tMI5&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/45/32/453287ae-d7f7-4d82-b6ad-58b85e510525.png&quot; width=&quot;437.5&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;1EUy&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/04/8b/048b7966-8f23-4316-90c4-a4e2adf3e7ed.png&quot; width=&quot;403&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;4YhR&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;EDtu&quot;&gt;🛡️ Безопасность&lt;/h3&gt;
  &lt;ul id=&quot;kBG2&quot;&gt;
    &lt;li id=&quot;AcFC&quot;&gt;Ограничьте ресурсы через &lt;strong&gt;cgroups&lt;/strong&gt; (не дайте контейнеру сожрать всю память).&lt;/li&gt;
    &lt;li id=&quot;hhr4&quot;&gt;Сканируйте образы на уязвимости (&lt;strong&gt;Trivy&lt;/strong&gt;, &lt;strong&gt;Clair&lt;/strong&gt;).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;F9JS&quot;&gt;Заключение: Пора перестать страдать&lt;/h2&gt;
  &lt;p id=&quot;NZCQ&quot;&gt;Контейнеры - не мода, а необходимость. Они делают разработку предсказуемой, а эксплуатацию - масштабируемой.&lt;/p&gt;
  &lt;p id=&quot;7RuY&quot;&gt;&lt;strong&gt;Советы:&lt;/strong&gt;&lt;/p&gt;
  &lt;ol id=&quot;rR6B&quot;&gt;
    &lt;li id=&quot;vfW8&quot;&gt;Начните с &lt;strong&gt;Docker&lt;/strong&gt; или &lt;strong&gt;Podman&lt;/strong&gt; (безопасная альтернатива с rootless-режимом).&lt;/li&gt;
    &lt;li id=&quot;5YCo&quot;&gt;Для продакшена освойте &lt;strong&gt;Kubernetes&lt;/strong&gt; + мониторинг (&lt;strong&gt;Prometheus&lt;/strong&gt;, &lt;strong&gt;Grafana&lt;/strong&gt;).&lt;/li&gt;
    &lt;li id=&quot;g3un&quot;&gt;Всегда проверяйте образы на уязвимости.&lt;/li&gt;
    &lt;li id=&quot;iR46&quot;&gt;Не запускайте в k8s (kubernetes) - базы данных :)&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;9WSU&quot;&gt;&lt;em&gt;&lt;strong&gt;P.S.&lt;/strong&gt; Если код всё ещё «не работает», возможно, проблема не в контейнерах  и не в k8s😉.&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;strong&gt;Спасибо что дочитали, ниже как можно снами связаться:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;B0RN&quot;&gt;Мы готовы провести консультацию по внедрению DevOps-подходов или полностью реализовать DevOps-практики под ключ в вашем бизнесе. Пишите нам: &lt;a href=&quot;https://t.me/undercode_ii&quot; target=&quot;_blank&quot;&gt;https://t.me/undercode_ii&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;WwdE&quot;&gt;📡 &lt;strong&gt;Больше о DevOps, ИИ и технологиях будущего — в нашем Telegram-канале:&lt;/strong&gt;&lt;br /&gt; &lt;a href=&quot;https://t.me/Undercode_ai&quot; target=&quot;_blank&quot;&gt;https://t.me/Undercode_ai&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;7G7M&quot;&gt;Наш сайт: &lt;a href=&quot;https://undercode.group/&quot; target=&quot;_blank&quot;&gt;https://undercode.group/&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>undercode_ii:pbES9sIwUx_</id><link rel="alternate" type="text/html" href="https://teletype.in/@undercode_ii/pbES9sIwUx_?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=undercode_ii"></link><title>DevOps: философия, которая меняет подход к разработке и эксплуатации</title><published>2025-05-10T20:47:46.846Z</published><updated>2025-05-10T20:47:46.846Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/06/71/067176b3-8f5f-4852-bfed-a5511ac9e083.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/93/62/9362be88-c6be-4b1b-95e3-4af88a822f78.png&quot;&gt;💥 Устали от вечной войны между разработкой и админами?
 🐌 Бесконечные багфиксы, релизы в пятницу и падения в проде?</summary><content type="html">
  &lt;p id=&quot;7SPD&quot;&gt;💥 &lt;strong&gt;Устали от вечной войны между разработкой и админами?&lt;/strong&gt;&lt;br /&gt; 🐌 Бесконечные багфиксы, релизы в пятницу и падения в проде?&lt;/p&gt;
  &lt;p id=&quot;ohe9&quot;&gt;&lt;strong&gt;DevOps — это не просто набор инструментов. Это культура сотрудничества, автоматизации и ответственности можно сказать целая ФИЛОСОФИЯ.&lt;/strong&gt; В этой статье разберём, что стоит за термином DevOps, какие у него принципы и как он реально помогает бизнесу и командам.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;TXFO&quot;&gt;Что такое DevOps и почему это важно&lt;/h2&gt;
  &lt;p id=&quot;SEbN&quot;&gt;&lt;strong&gt;DevOps (Development + Operations)&lt;/strong&gt; — это подход, который объединяет разработчиков и специалистов по эксплуатации в одну команду с общей целью: быстро и безопасно доставлять ценность пользователям.&lt;/p&gt;
  &lt;blockquote id=&quot;kLQk&quot;&gt;🧠 &lt;strong&gt;DevOps = Быстрые релизы + Надёжная инфраструктура + Командная работа&lt;/strong&gt;&lt;/blockquote&gt;
  &lt;p id=&quot;uMI2&quot;&gt;По данным &lt;em&gt;State of DevOps Report&lt;/em&gt;, компании, внедрившие DevOps:&lt;/p&gt;
  &lt;ul id=&quot;NrUL&quot;&gt;
    &lt;li id=&quot;OxqA&quot;&gt;релизят &lt;strong&gt;в 30 раз чаще&lt;/strong&gt;,&lt;/li&gt;
    &lt;li id=&quot;9QSy&quot;&gt;сокращают время отката и восстановления после инцидентов &lt;strong&gt;в 168 раз&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;MHNQ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/93/62/9362be88-c6be-4b1b-95e3-4af88a822f78.png&quot; width=&quot;800&quot; /&gt;
    &lt;figcaption&gt;изображение взято из https://quasa.io/storage/photos/Фото/00%20Дев%201.png&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;bkiR&quot;&gt;Основные принципы DevOps&lt;/h2&gt;
  &lt;h3 id=&quot;1WHI&quot;&gt;1. 🚀 &lt;strong&gt;Непрерывная интеграция и доставка (CI/CD)&lt;/strong&gt;&lt;/h3&gt;
  &lt;p id=&quot;5pEy&quot;&gt;Автоматизация всего пайплайна — от коммита до продакшена.&lt;br /&gt; Пример: каждый пуш в &lt;code&gt;main(ранее master)&lt;/code&gt; запускает сборку, тесты и деплой на препрод( стейджинг).&lt;/p&gt;
  &lt;p id=&quot;oBQ3&quot;&gt;&lt;strong&gt;Зачем:&lt;/strong&gt; уменьшает ручной труд, снижает число багов, ускоряет вывод фич на рынок.&lt;br /&gt;Есть очень важный показатель Time to market, вот  как раз таки DevOps и нужен для максимального сокращения данного показателя, почитать подробнее можно по ссылке &lt;a href=&quot;https://habr.com/ru/companies/usetech/articles/753964/&quot; target=&quot;_blank&quot;&gt;https://habr.com/ru/companies/usetech/articles/753964/&lt;/a&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;TqqC&quot;&gt;2. 🔄 &lt;strong&gt;Непрерывный мониторинг и фидбек&lt;/strong&gt;&lt;/h3&gt;
  &lt;p id=&quot;F0O5&quot;&gt;Всё должно логироваться и мониториться: метрики, логи, трассировки.&lt;br /&gt; Важно не просто “замерять температуру”, но и &lt;strong&gt;быстро реагировать&lt;/strong&gt; на отклонения и анамалии.&lt;/p&gt;
  &lt;p id=&quot;UWjN&quot;&gt;🛠 Примеры инструментов: Prometheus + Grafana, Loki, Sentry, ELK stack.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;2LeV&quot;&gt;3. 🛡 &lt;strong&gt;Инфраструктура как код (IaC)&lt;/strong&gt;&lt;/h3&gt;
  &lt;p id=&quot;mByc&quot;&gt;Все ресурсы (серверы, базы, сети) описываются в коде и версионируются.&lt;br /&gt; Terraform, Ansible, Pulumi, AWS CDK/Yandex Cloud/Vk Cloud etc. — мастхев в DevOps-арсенале.&lt;/p&gt;
  &lt;p id=&quot;Jcyz&quot;&gt;&lt;strong&gt;Зачем:&lt;/strong&gt; воспроизводимость, контроль версий, быстрая миграция и откат.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;xd03&quot;&gt;4. 🤝 &lt;strong&gt;Сотрудничество и ответственность&lt;/strong&gt;&lt;/h3&gt;
  &lt;p id=&quot;C6F9&quot;&gt;DevOps размывает границы: Dev отвечает не только за код, но и за то, как он живёт в проде. Ops — не просто  &amp;quot;Техподдержка&amp;quot;, а активный участник жизненного цикла продукта.&lt;/p&gt;
  &lt;p id=&quot;Sy6R&quot;&gt;📌 &lt;strong&gt;Ключ:&lt;/strong&gt; общие OKR(Objectives and Key Results*), общее владение системой, постоянный диалог(да-да куча созвонов, увы без них никуда).&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;qtBg&quot;&gt;5. 🧪 &lt;strong&gt;Автоматизация тестирования&lt;/strong&gt;&lt;/h3&gt;
  &lt;p id=&quot;OuPJ&quot;&gt;Юнит-тесты, интеграционные, e2e — всё должно быть автоматизировано.&lt;/p&gt;
  &lt;p id=&quot;2o4Y&quot;&gt;➡️ Чем раньше найдена ошибка — тем дешевле она обходится.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;ivC6&quot;&gt;Как DevOps помогает в реальности&lt;/h2&gt;
  &lt;h3 id=&quot;NRQV&quot;&gt;✅ Разработке:&lt;/h3&gt;
  &lt;ul id=&quot;eOuB&quot;&gt;
    &lt;li id=&quot;3x4x&quot;&gt;Меньше “ручных” задач — больше времени на код&lt;/li&gt;
    &lt;li id=&quot;FCOA&quot;&gt;Быстрая проверка гипотез&lt;/li&gt;
    &lt;li id=&quot;X0pf&quot;&gt;Предсказуемость окружения (благодаря Docker, IaC)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;HgzF&quot;&gt;✅ Эксплуатации:&lt;/h3&gt;
  &lt;ul id=&quot;tpqA&quot;&gt;
    &lt;li id=&quot;M9CM&quot;&gt;Меньше ночных аварий и понятная инфраструктура&lt;/li&gt;
    &lt;li id=&quot;4SHA&quot;&gt;Чёткое понимание, что и как задеплоено&lt;/li&gt;
    &lt;li id=&quot;CvLj&quot;&gt;Возможность быстро масштабировать и обновлять сервисы&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;H4rA&quot;&gt;✅ Бизнесу:&lt;/h3&gt;
  &lt;ul id=&quot;fzg6&quot;&gt;
    &lt;li id=&quot;ygtl&quot;&gt;Быстрее выходят на рынок&lt;/li&gt;
    &lt;li id=&quot;82u9&quot;&gt;Повышается стабильность систем&lt;/li&gt;
    &lt;li id=&quot;gEj0&quot;&gt;Снижается стоимость поддержки и время восстановления&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;XZr0&quot;&gt;Заключение: DevOps — это не модный тренд, а необходимость&lt;/h2&gt;
  &lt;p id=&quot;TRae&quot;&gt;Философия DevOps — это путь от &amp;quot;разделённых ролей&amp;quot; к &lt;strong&gt;единым командам и целям&lt;/strong&gt;.&lt;br /&gt; Внедрение DevOps — это &lt;strong&gt;не только про Jenkins и Docker&lt;/strong&gt;, это про &lt;strong&gt;мышление, процессы и доверие&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;OKR (Objectives and Key Results) — это система целеполагания, в которой команда (или несколько команд) разделяют одну и ту же цель (Objective) и согласованные ключевые результаты (Key Results) для её достижения&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;vDCa&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;9Hgg&quot;&gt;P.s&lt;br /&gt;&lt;br /&gt;⚡ &lt;strong&gt;Хотите внедрить DevOps в команде? Начните с CI/CD и мониторинга — они дают максимальный эффект в кратчайшие сроки.&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;oJsH&quot;&gt;&lt;strong&gt;А так же Вы  можете заказать консультацию по внедрению подходов DevOps или мы можем помочь вам с внедрением практик DevOps под ключ в ваш бизнес, пишите:   &lt;a href=&quot;https://t.me/Undercode_ai&quot; target=&quot;_blank&quot;&gt;https://t.me/undercode_ii&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Еще больше про DevOps,ИИ и современные технологии:&lt;a href=&quot;https://t.me/Undercode_ai&quot; target=&quot;_blank&quot;&gt;https://t.me/Undercode_ai&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</content></entry></feed>