<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Cloud | The .NET Blog</title><link>https://thedotnetblog.com/ru/tags/cloud/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>ru</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Fri, 08 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/ru/tags/cloud/index.xml" rel="self" type="application/rss+xml"/><item><title>Обновления Azure Developer CLI (azd) за апрель 2026</title><link>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/azd-april-2026-developer-cli-updates/</link><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/azd-april-2026-developer-cli-updates/</guid><description>В апреле 2026 года azd выпустил пять релизов. Главная новость — поддержка хуков на нескольких языках: Python, JavaScript, TypeScript и .NET, а также публичная предварительная версия azd update, предварительная проверка квоты ИИ и многое другое.</description><content:encoded>&lt;p&gt;&lt;em&gt;Этот пост был переведён автоматически. Для оригинальной версии &lt;a href="https://thedotnetblog.com/ru/news/emiliano-montesdeoca/azd-april-2026-developer-cli-updates/"&gt;нажмите здесь&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-april-2026/"&gt;Azure Developer CLI (azd) выпустил пять релизов в апреле 2026 года&lt;/a&gt; (с 1.23.14 по 1.24.2). Главная тема — хуки, которые теперь работают на Python, JavaScript, TypeScript и .NET, а не только на Bash и PowerShell.&lt;/p&gt;
&lt;h2 id="многоязычные-хуки-в-azureyaml"&gt;Многоязычные хуки в azure.yaml&lt;/h2&gt;
&lt;p&gt;Хуки теперь могут указывать на файлы &lt;code&gt;.py&lt;/code&gt;, &lt;code&gt;.js&lt;/code&gt;, &lt;code&gt;.ts&lt;/code&gt; или &lt;code&gt;.cs&lt;/code&gt; в дополнение к shell-скриптам. Для каждого языка выполняется автоматическое разрешение зависимостей:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt; — обнаруживает &lt;code&gt;requirements.txt&lt;/code&gt; или &lt;code&gt;pyproject.toml&lt;/code&gt;, создаёт virtualenv и устанавливает зависимости перед запуском. Имя окружения настраивается через &lt;code&gt;virtualEnvName&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JavaScript / TypeScript&lt;/strong&gt; — обнаруживает &lt;code&gt;package.json&lt;/code&gt; и автоматически запускает &lt;code&gt;npm install&lt;/code&gt;. TypeScript выполняется через &lt;code&gt;npx tsx&lt;/code&gt; без шага компиляции. Менеджер пакетов выбирается в блоке конфигурации &lt;code&gt;packageManager&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;.NET&lt;/strong&gt; — запускает файлы &lt;code&gt;.cs&lt;/code&gt; с помощью &lt;code&gt;dotnet run&lt;/code&gt;. Однофайловые скрипты поддерживаются на .NET 10+. Целевой фреймворк настраивается через блок &lt;code&gt;configuration/framework&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Это означает, что команды, уже работающие на одном из этих языков, больше не нуждаются в отдельном хуке на Bash или PowerShell только для подключения к событиям жизненного цикла провизионинга.&lt;/p&gt;
&lt;h2 id="azd-update-переходит-в-публичную-предварительную-версию"&gt;azd update переходит в публичную предварительную версию&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd update&lt;/code&gt; теперь доступен в публичной предварительной версии на всех платформах. Одна команда обновляет azd независимо от способа его первоначальной установки — больше не нужно отслеживать пути Homebrew, WinGet или MSI по отдельности.&lt;/p&gt;
&lt;h2 id="неинтерактивный-режим-через-azd_non_interactive"&gt;Неинтерактивный режим через AZD_NON_INTERACTIVE&lt;/h2&gt;
&lt;p&gt;Установка &lt;code&gt;AZD_NON_INTERACTIVE=true&lt;/code&gt; (или использование &lt;code&gt;--non-interactive&lt;/code&gt; / &lt;code&gt;--no-prompt&lt;/code&gt;) теперь вызывает последовательные, детерминированные ошибки в пайплайнах CI/CD, когда необходимый ввод не может быть разрешён автоматически. Ранее поведение было непоследовательным для разных команд.&lt;/p&gt;
&lt;h2 id="предварительная-проверка-квоты-моделей-ии"&gt;Предварительная проверка квоты моделей ИИ&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd provision&lt;/code&gt; проверяет квоту Azure Cognitive Services перед попыткой выделить ресурсы моделей ИИ. Развёртывания, которые завершились бы ошибкой из-за превышения лимитов квоты, теперь показывают ошибку в начале процесса, а не в середине провизионинга.&lt;/p&gt;
&lt;h2 id="исправить-эту-ошибку-в-устранении-неполадок-copilot"&gt;«Исправить эту ошибку» в устранении неполадок Copilot&lt;/h2&gt;
&lt;p&gt;Интеграция устранения неполадок Copilot в azd получает возможность напрямую применять предложенное исправление — не только описывать его. Когда агент выявляет исправимую проблему, он может внести изменение на месте.&lt;/p&gt;
&lt;h2 id="пользовательские-провайдеры-провизионинга-и-резолвер-секретов-key-vault"&gt;Пользовательские провайдеры провизионинга и резолвер секретов Key Vault&lt;/h2&gt;
&lt;p&gt;Авторы расширений теперь могут регистрировать альтернативные инфраструктурные бэкенды с помощью &lt;code&gt;WithProvisioningProvider()&lt;/code&gt;. Кроме того, azd автоматически разрешает ссылки &lt;code&gt;@Microsoft.KeyVault(...)&lt;/code&gt; перед передачей конфигурации расширениям, устраняя необходимость ручного разрешения секретов в пользовательских провайдерах.&lt;/p&gt;
&lt;h2 id="исключения-для-шаблонов-и-режима-наблюдения"&gt;Исключения для шаблонов и режима наблюдения&lt;/h2&gt;
&lt;p&gt;Два новых файла ignore обеспечивают более точный контроль над обработкой файлов:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;.azdignore&lt;/code&gt;&lt;/strong&gt; — исключает файлы только для контрибьюторов (документация, конфигурации CI) из копий шаблонов, чтобы конечные пользователи получали чистый каркас проекта.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;.azdxignore&lt;/code&gt;&lt;/strong&gt; — исключает директории из триггера пересборок во время &lt;code&gt;azd x watch&lt;/code&gt;, снижая шум при итеративной разработке.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="предварительная-проверка-зарезервированных-имён-и-опция-dockernetwork"&gt;Предварительная проверка зарезервированных имён и опция docker.network&lt;/h2&gt;
&lt;p&gt;azd теперь предупреждает, когда прогнозируемые имена ресурсов будут содержать зарезервированные слова Azure (&lt;code&gt;MICROSOFT&lt;/code&gt;, &lt;code&gt;WINDOWS&lt;/code&gt; или префикс &lt;code&gt;LOGIN&lt;/code&gt;), до начала провизионинга. Новая опция &lt;code&gt;docker.network&lt;/code&gt; передаёт &lt;code&gt;--network&lt;/code&gt; в &lt;code&gt;docker build&lt;/code&gt;, что полезно в корпоративных прокси-средах, требующих определённой сети Docker.&lt;/p&gt;
&lt;h2 id="исправления-безопасности"&gt;Исправления безопасности&lt;/h2&gt;
&lt;p&gt;Пакет Windows MSI теперь включает проверку подписи кода. Отдельное исправление устраняет утечку переменных окружения, которая могла раскрывать значения через границы команд расширений.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Насыщенный месяц — поддержка многоязычных хуков, в частности, устраняет реальную точку трения для команд, не работающих преимущественно на Bash. Полный журнал изменений по всем пяти релизам смотрите в &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-april-2026/"&gt;полных примечаниях к выпуску&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Ваши AI-эксперименты в Azure сжигают деньги — Вот как это исправить</title><link>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/cloud-cost-optimization-ai-workloads-azure/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ru/news/emiliano-montesdeoca/cloud-cost-optimization-ai-workloads-azure/</guid><description>AI-нагрузки в Azure могут быстро стать дорогими. Давайте поговорим о том, что действительно работает для контроля расходов без замедления разработки.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Этот пост был переведён автоматически. Оригинал можно прочитать &lt;a href="https://thedotnetblog.com/ru/news/emiliano-montesdeoca/cloud-cost-optimization-ai-workloads-azure/"&gt;здесь&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Если вы сейчас создаёте приложения на базе ИИ в Azure, вы, вероятно, заметили кое-что: ваш счёт за облако выглядит иначе, чем раньше. Не просто выше — странно. Скачкообразно. Трудно предсказать.&lt;/p&gt;
&lt;p&gt;Microsoft только что опубликовал отличную статью о &lt;a href="https://azure.microsoft.com/en-us/blog/cloud-cost-optimization-principles-that-still-matter/"&gt;принципах оптимизации облачных затрат, которые по-прежнему актуальны&lt;/a&gt;, и, честно говоря, момент не мог быть лучше. Потому что AI-нагрузки изменили правила игры, когда речь идёт о затратах.&lt;/p&gt;
&lt;h2 id="почему-ai-нагрузки--это-другая-история"&gt;Почему AI-нагрузки — это другая история&lt;/h2&gt;
&lt;p&gt;Вот в чём дело. Традиционные .NET-нагрузки относительно предсказуемы. Вы знаете свой уровень App Service, знаете свои SQL DTU, можете довольно точно оценить ежемесячные расходы. AI-нагрузки? Не совсем.&lt;/p&gt;
&lt;p&gt;Вы тестируете несколько моделей, чтобы понять, какая подходит. Вы поднимаете инфраструктуру с GPU для дообучения. Вы делаете API-вызовы к Azure OpenAI, где потребление токенов сильно варьируется в зависимости от длины промпта и поведения пользователей. Каждый эксперимент стоит реальных денег, и вы можете провести десятки, прежде чем найдёте правильный подход.&lt;/p&gt;
&lt;p&gt;Эта непредсказуемость делает оптимизацию затрат критически важной — не как запоздалую мысль, а с первого дня.&lt;/p&gt;
&lt;h2 id="управление-vs-оптимизация--знайте-разницу"&gt;Управление vs. оптимизация — знайте разницу&lt;/h2&gt;
&lt;p&gt;Одно различие из статьи, которое, на мой взгляд, разработчики упускают: есть разница между &lt;em&gt;управлением&lt;/em&gt; затратами и &lt;em&gt;оптимизацией&lt;/em&gt; затрат.&lt;/p&gt;
&lt;p&gt;Управление — это отслеживание и отчётность. Вы настраиваете бюджеты в Azure Cost Management, получаете оповещения, смотрите дашборды. Это базовый минимум.&lt;/p&gt;
&lt;p&gt;Оптимизация — это когда вы действительно принимаете решения. Вам правда нужен этот уровень S3, или S1 справится с вашей нагрузкой? Та постоянно работающая вычислительная инстанция простаивает по выходным? Можно ли использовать спот-инстансы для задач обучения?&lt;/p&gt;
&lt;p&gt;Как .NET-разработчики, мы склонны сосредотачиваться на коде и оставлять решения по инфраструктуре «команде эксплуатации». Но если вы деплоите в Azure, эти решения — тоже ваши решения.&lt;/p&gt;
&lt;h2 id="что-действительно-работает"&gt;Что действительно работает&lt;/h2&gt;
&lt;p&gt;Основываясь на статье и собственном опыте, вот что реально даёт результат:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Знайте, на что и где вы тратите.&lt;/strong&gt; Тегируйте свои ресурсы. Серьёзно. Если вы не можете определить, какой проект или эксперимент поедает ваш бюджет, вы не сможете ничего оптимизировать. Azure Cost Management с правильным тегированием — ваш лучший друг.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Установите ограничения перед экспериментами.&lt;/strong&gt; Используйте Azure Policy для ограничения дорогих SKU в средах dev/test. Установите лимиты расходов на ваши развёртывания Azure OpenAI. Не ждите, пока придёт счёт, чтобы обнаружить, что кто-то оставил GPU-кластер работать на выходных.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Постоянно подбирайте правильный размер.&lt;/strong&gt; Та VM, которую вы выбрали при прототипировании? Она, вероятно, не подходит для продакшена. Azure Advisor даёт рекомендации — реально посмотрите на них. Пересматривайте ежемесячно, а не ежегодно.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Думайте о жизненном цикле.&lt;/strong&gt; Ресурсы разработки должны выключаться. Тестовые среды не должны работать 24/7. Используйте политики автоматического выключения. Для AI-нагрузок в частности рассмотрите бессерверные варианты, где вы платите за выполнение, вместо того чтобы держать вычислительные мощности включёнными.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Измеряйте ценность, а не только стоимость.&lt;/strong&gt; Об этом легко забыть. Модель, которая стоит дороже, но даёт значительно лучшие результаты, может быть правильным выбором. Цель — не тратить меньше всего, а тратить разумно.&lt;/p&gt;
&lt;h2 id="итог"&gt;Итог&lt;/h2&gt;
&lt;p&gt;Оптимизация облачных затрат — это не разовая уборка. Это привычка. И поскольку AI-нагрузки делают расходы менее предсказуемыми, чем когда-либо, формирование этой привычки на раннем этапе избавит вас от болезненных сюрпризов в будущем.&lt;/p&gt;
&lt;p&gt;Если вы .NET-разработчик, создающий решения на Azure, начните относиться к своему облачному счёту так же, как к своему коду — регулярно ревьюйте, рефакторите, когда становится беспорядочно, и никогда не деплойте, не понимая, во сколько это обойдётся.&lt;/p&gt;</content:encoded></item></channel></rss>