serverless в 2026 — это не магия и не бесплатный обед, а способ запускать код и API без управления серверами, если вам важны всплески нагрузки, короткие задачи и предсказуемая эксплуатация. Для команды это экономия времени на инфраструктуре, для бизнеса — более гибкая модель затрат, но только пока вы понимаете, где у этой модели есть потолок.
Что такое serverless в 2026 — без хайпа
Если убрать маркетинг, современный serverless — это три разные истории, которые часто смешивают в один мешок. Первая: функции по событию, где вы платите за вызовы и время выполнения. Вторая: edge-исполнение, где код живет ближе к пользователю и решает HTTP-задачи с минимальной задержкой. Третья: управляемое состояние, когда поверх функций появляется база или объект с памятью между запросами.
В 2026 году главный смысл serverless уже не в том, что вы «не платите за простои». Это слишком грубо. Смысл в том, что вы переносите операционную сложность на платформу: автоскейлинг, обновления рантайма, изоляцию, мониторинг, часть лимитов и часть аварийной рутины. Но плата за это знакомая: vendor lock-in, ограниченное время выполнения, нестандартные модели состояния и неожиданные счета, если забыть, что «без серверов» не означает «без архитектуры».
Практически это выглядит так: Lambda хороша, когда вам нужны события, интеграции и зрелая облачная экосистема. Cloudflare Workers выигрывает там, где важны глобальный edge, низкая задержка и быстрый HTTP-пайплайн. Vercel Functions и Netlify Edge удобны, если весь стек крутится вокруг фронтенда и деплоя из git. Yandex Cloud Functions и локальные облачные альтернативы чаще выбирают за региональную близость, привычную цену в рублях/тенге и более предсказуемую интеграцию с локальными сервисами.
Есть еще один нюанс: в 2026 году serverless — это не только FaaS. Сюда же попадают edge-функции, managed AI inference, очереди, workflow-оркестрация и stateful-объекты. Поэтому вопрос звучит уже не «использовать ли serverless», а «какую часть приложения стоит вынести в serverless, а какую оставить в VM, k8s или managed database».
| Критерий | Когда serverless хорош | Когда лучше не мучиться |
|---|---|---|
| Нагрузка | Рваная, событийная, от нуля до пиков | Постоянная и высокая 24/7 |
| Состояние | Почти нет или легко вынести наружу | Нужна плотная локальная память и долгоживущие сессии |
| Латентность | Допустимы миллисекунды и редкие cold start | Нужны стабильные single-digit ms без сюрпризов |
| Команда | Маленькая, ценит скорость разработки | Есть SRE/Platform и нужна тонкая настройка |
Именно отсюда стоит читать весь гайд дальше: не как религию, а как набор инженерных компромиссов.
AWS Lambda: возможности и pricing
AWS Lambda — это классика FaaS, которая до сих пор задает планку по зрелости экосистемы. У сервиса более 220 интеграций с AWS-сервисами и десятки типовых событийных сценариев: API, очереди, хранилища, cron, стриминг, обработка файлов. Lambda автоматически масштабируется, а одна функция может разгоняться до 1 000 новых execution environments каждые 10 секунд, пока не упрется в quota аккаунта.
С точки зрения границ сервис остается очень земным. Таймаут — до 15 минут. Память — от 128 MB до 10 240 MB с шагом 1 MB. CPU растет пропорционально памяти; на 1 769 MB функция получает эквивалент 1 vCPU. Это важная деталь: Lambda продает не «абстрактный compute», а вполне конкретный профиль ресурсов, который можно подбирать под latency или throughput.
Pricing тоже понятный, хоть и не самый простой для красивых презентаций. Free tier дает 1 млн запросов и 400 000 GB-секунд в месяц. Далее базовая цена запросов — $0.20 за 1 млн, а duration — $0.00001667 за GB-секунду в первом тарифном слое. Для ARM/Graviton2 AWS отдельно подчеркивает лучшую price-performance, и для многих веб- и медиа-задач это реально имеет смысл. Дополнительно есть Provisioned Concurrency и SnapStart, если вам нужна более жесткая история по старту функций.
Важный практический вывод: Lambda хорошо подходит для бэкендов с интеграцией в AWS, событийных пайплайнов, обработчиков вебхуков и задач, где нужна широкая облачная экосистема. Но если вы строите продукт вокруг edge и быстрых ответов по всему миру, Lambda чаще становится не первой, а второй или третьей опцией.
| Параметр | AWS Lambda |
|---|---|
| Бесплатный уровень | 1 млн запросов и 400 000 GB-секунд в месяц |
| Цена запросов | $0.20 за 1 млн после free tier |
| Цена duration | $0.00001667 за GB-секунду в первом слое |
| Память | 128 MB - 10 240 MB |
| Таймаут | До 15 минут |
| Лимит vCPU | Примерно 1 vCPU на 1 769 MB |
Отдельно стоит помнить про Provisioned Concurrency. AWS прямо говорит, что она держит функции в инициализированном состоянии и снижает старт до двузначных миллисекунд. Это уже не абстрактная «оптимизация», а отдельная строка в бюджете. Если вам нужно резать cold start, вы платите не за обещание, а за готовность.
Cloudflare Workers и Workers AI
Cloudflare Workers — это serverless на краю сети, а не в классическом облачном регионе. Платформа исполняет код на V8 isolates, а не в контейнере на каждый запрос. За счет этого старт очень быстрый, а классический cold start почти исчезает как категория боли. Cloudflare сама пишет, что isolate start примерно на порядок быстрее, чем Node-процесс в контейнере или VM, а рабочий runtime обновляется как минимум раз в неделю.
Здесь важны лимиты, потому что именно они формируют стиль кода. На Paid плане у Workers нет лимита по количеству запросов в общем смысле, но есть 5 минут CPU на HTTP request, 128 MB памяти, 10 000 subrequests per invocation и 1 секунда на startup для глобального scope. Для Free плана все жестче: 100 000 запросов в день, 10 ms CPU и 50 subrequests. Иными словами, Worker должен быть быстрым, компактным и без любви к тяжелой инициализации на верхнем уровне файла.
Pricing у Cloudflare тоже не из серии «узнайте у менеджера, когда придете с кошельком». На Paid plan минимальная стоимость аккаунта — $5 в месяц. В нее входят 10 млн запросов, затем $0.30 за каждый дополнительный миллион. CPU time оплачивается отдельно: 30 млн CPU milliseconds включены, затем $0.02 за 1 млн CPU-ms. Важная деталь: Cloudflare не берет деньги за subrequests как таковые, а статические assets вообще бесплатны и неограниченны.
Workers AI добавляет еще один слой. Модель тарифицируется через Neurons: $0.011 за 1 000 Neurons, при этом бесплатный ежедневный лимит — 10 000 Neurons. Это удобно для легких AI-сценариев, когда нужен inference рядом с HTTP-логикой, а не отдельный GPU-стек в соседнем дата-центре.
| Сервис | Что полезно помнить |
|---|---|
| Workers | JavaScript, TypeScript, Python Workers, Rust, Wasm; edge-исполнение и быстрый старт |
| Workers AI | 10 000 Neurons/day free, затем $0.011 за 1 000 Neurons |
| D1 | Scale-to-zero SQL база с биллингом по строкам |
| Durable Objects | Stateful-слой для сессий, локов и координации |
Cloudflare особенно хорош там, где надо быстро принять решение у пользователя на краю: редиректы, персонализация, аутентификация, lightweight BFF, вебхуки, антибот-логика, AI middleware. Это не замена всему backend-стеку. Это очень хороший слой на входе и для «быстрых мозгов» приложения.
Vercel Functions, Netlify Edge
Vercel Functions — это не просто «функции для Next.js». В 2026 году Vercel активно продвигает Fluid Compute: модель, где биллинг идет по Active CPU, Provisioned Memory и invocations, а CPU оплачивается только во время реального выполнения кода. Это полезно для I/O-heavy задач: код ждет ответ от базы или AI API, а CPU billing приостанавливается. На странице pricing у Vercel публично видны диапазоны: Active CPU от $0.128 в час в США до $0.221 в час в São Paulo, Provisioned Memory от $0.0106 до $0.0183 за GB-hour, invocations — $0.60 за 1 млн.
У Vercel есть и понятная модель по планам: на Hobby включены 1 млн invocations, 4 часа Active CPU и 360 GB-hours memory. Дальше начинается региональный и тарифный слой, а для Pro и Enterprise условия уже завязаны на контракт. Практически это значит: если вы живете внутри Vercel-экосистемы, вам удобно. Если нет — экономику надо считать аккуратно, потому что красивый DX легко маскирует более дорогой runtime.
Netlify Edge Functions — это другой подход к той же проблеме. Там важнее HTTP-персонализация и работа на edge, чем «выполнить backend-логику как можно дешевле». Runtime основан на Deno, код пишется на JavaScript или TypeScript, а ограничения довольно строгие: 20 MB compressed bundle, 512 MB memory per set of deployed edge functions, 50 ms CPU per request и response header timeout 40 s. Для web-ориентированных сценариев этого достаточно, но тяжелый расчет сюда тащить не стоит.
Общая логика проста: Vercel и Netlify хорошо покупают скорость поставки продукта и тесную связку с фронтенд-командой. Если ваш стек — React, Next.js, Remix, Astro, SSG/SSR и edge middleware, эти платформы экономят время. Если вам нужен сложный backend с длинными транзакциями и тонким контролем над ресурсами, они быстро упираются в архитектурный потолок.
| Платформа | Сильная сторона | Жесткий предел |
|---|---|---|
| Vercel Functions | Fluid compute, активный CPU только во время выполнения | Региональная цена, завязанная на план и usage |
| Netlify Edge | Edge-логика для фронтенда и персонализации | 50 ms CPU на запрос, 20 MB bundle |
Если коротко: Vercel — для продуктовых команд, которые живут рядом с фронтендом. Netlify Edge — для тех же команд, когда edge-слой нужен как часть сайта, а не как универсальный backend.
Yandex Cloud Functions, VK Cloud Functions
Yandex Cloud Functions — самый понятный вариант для тех, кто работает в российском или соседнем контуре и хочет price sheet без квеста по корпоративным письмам. Сервис поддерживает Node.js, Python, Go, PHP, Bash, Java, Kotlin, R и .NET Core. Формально это полноценный FaaS: код запускается по запросу или триггеру, а платформа автоматически масштабирует инстансы. Таймаут здесь до 1 часа, RAM на инстанс — до 8 GB, а JSON request/response ограничен 3.5 MB.
Pricing у Yandex Cloud Functions вполне инженерный: $0.049229992 за GB-hour и $0.143999977 за 1 млн вызовов. Free tier каждый месяц включает 1 млн invocations и 10 GB×hour исполнения. Плюс первые 100 GB исходящего трафика в месяц бесплатны. Если нагрузка маленькая или скачкообразная, это очень щедрая база. Если нагрузка стабильно высокая, счет уже не кажется магией, но хотя бы понятен до копейки.
У Yandex есть и важная эксплуатационная деталь: provisioned instance гарантирует отсутствие cold start. Для длинно живущих функций также есть режимы, где таймаут свыше 10 минут доступен только для long-lived функций. Квоты тоже вполне конкретные: 10 функций на облако, 100 triggers per cloud, 10 concurrent function calls, 20 GB суммарной RAM для running functions в зоне. Это не бесконечная платформа, а управляемый сервис с довольно жесткими guardrails.
VK Cloud в публичной витрине выглядит иначе. На сайте сильнее всего видны VM, базы данных, S3, Kubernetes и pay-as-you-go с расчетом до секунды. Для Казахстанской версии есть welcome bonus 24 000 ₸ на 60 дней, а сама платформа подчеркивает локализацию в QazCloud и работу по договору в тенге. Публичная документация по отдельному FaaS-слою заметно беднее, чем у AWS, Cloudflare или Yandex, поэтому сравнивать его по открытым цифрам нужно осторожно.
| Провайдер | Что видно публично | Кому подходит |
|---|---|---|
| Yandex Cloud Functions | Четкий прайс, 1 млн вызовов free, 1 час timeout, 8 GB RAM | Региональные проекты, интеграции, понятный billing |
| VK Cloud | Pay-as-you-go, калькулятор, сильный упор на VM и Kubernetes | Когда важны локальная инфраструктура и договорная модель |
Практический вывод здесь такой: Yandex Cloud Functions — это зрелый и прозрачно описанный serverless-сервис. VK Cloud — скорее платформа для более широкой инфраструктуры, где serverless может быть частью схемы, но не всегда главным героем витрины.
Cold start: проблема и обходы
Cold start по-прежнему остается главным раздражителем serverless, хотя в 2026 году он уже давно не один и тот же для всех платформ. Условно есть три типа стартов: контейнерный, isolate-старт и почти мгновенный старт за счет заранее прогретого окружения. Разница в пользовательском опыте огромная, а в проде она часто выглядит как «почему первый запрос в час ночи тормозит, а следующие бегают нормально».
AWS предлагает самый прямой инструмент — Provisioned Concurrency. Функции держатся в инициализированном состоянии и готовы отвечать в двузначных миллисекундах. Для Java есть SnapStart: AWS создает snapshot уже инициализированного окружения при публикации версии, и это дает sub-second startup без сложной ручной магии. Cloudflare идет другим путем: изоляторы стартуют очень быстро, а startup time лимит для Worker — 1 секунда. На практике это делает классический cold start гораздо менее заметным.
У Yandex Cloud Functions есть provisioned instance, который прямо гарантирует отсутствие cold start. Это хороший вариант для тех случаев, когда latency чувствителен, но нагрузка при этом не настолько равномерная, чтобы тащить отдельные VM 24/7. Vercel упирается в Fluid Compute и concurrency inside instance: чем больше I/O вы делаете без жесткой блокировки CPU, тем меньше смысл в дорогом прогреве новых процессов. Netlify Edge, наоборот, требует дисциплины в bundle size и CPU time: если вы стартуете с тяжелым глобальным кодом и 50 ms budget, проблемы будут не только от cold start, но и от архитектуры.
Общие обходы известны и скучны, а значит работают: уменьшать bundle, выносить тяжелую инициализацию из top-level scope, не делать на старте походы в базу, использовать lazy init, прогревать критичные функции расписанием, держать горячие пути короткими и не смешивать «быстрый ответ пользователю» с «тяжелой фоновой обработкой».
- Снижайте размер пакета и число зависимостей.
- Не выполняйте дорогой I/O на уровне модуля.
- Разделяйте HTTP-ответ и фоновые задачи.
- Для критичных сценариев используйте provisioned concurrency или provisioned instances.
- Следите за time-to-first-byte отдельно от среднего latency.
Главная мысль проста: cold start редко убивает систему сам по себе. Чаще он лишь вскрывает то, что код слишком тяжелый для выбранной платформы.
Stateless vs stateful: D1, Durable Objects
У serverless есть репутация безбашенно stateless-мира, и это ровно тот случай, когда миф уже давно мешает думать. В 2026 году у Cloudflare экосистема состояния вполне взрослая: D1 и Durable Objects решают разные задачи и друг друга не заменяют. D1 — это serverless SQL database с scale-to-zero и биллингом по rows read / rows written. Durable Objects — это stateful-объекты, которые держат консистентность и локальное состояние для конкретного идентификатора.
D1 хорош, когда вам нужен SQL, транзакции, выборки и простая relational-модель. Free tier дает 5 млн rows read в день, 100 000 rows written в день и 5 GB storage. На Paid плане первые 25 млрд rows read в месяц включены, затем $0.001 за 1 млн read; на writes первые 50 млн включены, затем $1 за 1 млн; storage — первые 5 GB, далее $0.75 за GB-month. Это уже не игрушка, а вполне рабочая база для edge-backed приложений.
Durable Objects нужны там, где важнее последовательность, чем SQL. Счета, блокировки, очереди в одном ключе, чаты, игровые комнаты, live sessions, rate limiting и координация distributed state — это их территория. На Paid плане billing строится на requests и compute duration: 1 млн requests в месяц включены, затем $0.15 за 1 млн; 400 000 GB-s включены, затем $12.50 за 1 млн GB-s. Для SQLite-backed Durable Objects Cloudflare сейчас явно двигает модель как рекомендованную, а для Free plan поддерживает только SQLite backend.
| Механизм | Что хранит | Лучший кейс |
|---|---|---|
| D1 | Реляционные данные и запросы SQL | Каталоги, аккаунты, админки, аналитика малого и среднего масштаба |
| Durable Objects | Состояние одного объекта и его последовательность | Сессии, локи, таймеры, real-time coordination |
Хорошее правило такое: если вы думаете «мне нужна база», смотрите сначала на D1. Если вы думаете «мне нужен объект, который сам помнит, что происходит», смотрите на Durable Objects. Пытаться решить обе задачи одной сущностью — типичная причина лишней сложности в serverless-проекте.
Когда serverless — а когда нет
Serverless стоит брать не по моде, а по форме нагрузки. Если у вас всплески трафика, вебхуки, cron, backend-for-frontend, обработка файлов, легкий AI inference, интеграции и маленькая команда, выгода обычно очевидна. Вы быстрее выкатываетесь, меньше спорите о железе и не тратите день на sizing инстанса, который большую часть времени скучает.
Но есть сценарии, где serverless превращается в дорогой и неудобный способ делать обычную работу. Долгие CPU-bound задачи, постоянная высокая нагрузка, тяжелые библиотеки с большим cold start, жесткая stateful-логика, постоянные соединения с низкой латентностью и сложные фоновые воркеры — все это часто лучше живет на VM или в k8s. Причина не идеологическая, а экономическая: платформе надо платить за абстракцию, а она начинает мешать, когда абстракция нужна каждую секунду.
Есть и промежуточная зона, где serverless остается правильным, но только как один слой архитектуры. Например, внешний HTTP-слой на edge, а core-обработка в managed queue или VM; ingestion через функции, а агрегация в базу; вебхуки через Lambda, а массовая обработка в workers pool; региональный API в Yandex Cloud Functions, а state и аналитика в отдельном сервисе. Иными словами, serverless лучше использовать там, где он снимает операционную боль, а не там, где он просто звучит современно.
| Сценарий | Что выбрать | Почему |
|---|---|---|
| Вебхуки и event-driven API | Serverless | Короткий код, редкие пики, минимум ops |
| Постоянный API с высоким трафиком | VM или k8s | Дешевле держать горячий сервис постоянно |
| Edge-персонализация и редиректы | Workers / Edge Functions | Минимальная задержка у пользователя |
| Очереди, сессии, блокировки | Durable Objects / managed state | Нужно последовательное состояние, а не просто вызовы |
Если сформулировать грубо, serverless — это не универсальный ответ, а хороший ответ для правильных задач. Именно поэтому у зрелых команд он обычно соседствует с VM и Kubernetes, а не героически вытесняет их из архитектуры.
Cost-анализ: serverless vs VM vs k8s
Считать cost надо не по лозунгу «serverless дешевле», а по профилю использования. На коротких, непостоянных и событийных нагрузках он действительно часто выигрывает. На постоянной нагрузке выигрывает сервер, который не делает вид, что умеет выключаться. На средней и сложной нагрузке начинается математика, где роль играют не только compute, но и сеть, storage, observability, команда и время на сопровождение.
Пример. Допустим, у вас 1 млн запросов в месяц, средняя работа 100 ms и 128 MB памяти. AWS Lambda после free tier — это примерно $0.20 за requests плюс около $0.208 за duration, то есть чуть больше сорока центов без учета других сервисов. У Yandex Cloud Functions тот же профиль может вообще уехать в free tier: 1 млн вызовов и около 3.47 GB-hours execution укладываются в бесплатные 10 GB-hours. На Cloudflare Workers при таком профиле вы уже будете смотреть на minimum monthly charge $5, потому что это цена аккаунта, а не только исполнения.
Но если та же функция живет 24/7 и получает условно 30-50% постоянной загрузки, экономическая картина меняется. VM с 1 vCPU и 2 GB RAM часто оказывается дешевле и предсказуемее, особенно если у вас все равно есть контейнеризация, системные метрики и DevOps-процедуры. В k8s имеет смысл уходить, когда у вас много сервисов, единая платформа деплоя и команда уже умеет управлять сложностью. Если же k8s нужен только ради одной функции, это не архитектура, а ритуал.
| Нагрузка | Чаще всего дешевле | Комментарий |
|---|---|---|
| Редкие события, пики, вебхуки | Serverless | Оплата за фактическую активность, а не за воздух |
| Постоянный API 24/7 | VM | Стабильный простой стек обычно дешевле в длительной работе |
| Много сервисов, единая платформа | k8s | Оправдан, если у вас есть масштаб и команда |
Практический ориентир такой: если функция занята большую часть времени и трафик ровный, VM почти всегда выигрывает. Если она спит, просыпается и отвечает коротко, serverless почти всегда удобнее. А если вы не знаете, где находитесь между этими полюсами, сначала померьте реальный utilization, а потом уже выбирайте облачный флаг.
Архитектурные паттерны serverless
Хорошая serverless-архитектура строится не вокруг одной функции, а вокруг набора коротких и понятных переходов. Первый паттерн — HTTP ingress на edge: Cloudflare Workers, Vercel Functions или Netlify Edge принимают запрос, быстро проверяют auth, делают легкую персонализацию и отправляют дальше. Это особенно удобно, когда нужно сократить latency на входе и не тащить все в центральный регион.
Второй паттерн — event-driven chain. Здесь AWS Lambda или Yandex Cloud Functions принимают событие из очереди, S3/Object Storage, API Gateway или cron, валидируют payload и отдают задачу в следующий этап. Это хороший способ строить ingestion, обработку файлов, уведомления и интеграции с внешними системами. Главное правило — одна функция, одна ответственность. Как только функция начинает и парсить, и валидировать, и писать в БД, и ретраить, и отправлять письма, вы уже строите не pipeline, а маленький монолит.
Третий паттерн — stateful coordinator. Тут в игру входят Durable Objects или аналогичный managed state слой. Они пригодны для чатов, rate limiting, активных сессий, realtime room coordination и последовательной обработки событий по ключу. Рядом лежит D1 или другая SQL-база для постоянных данных. То есть state не исчезает, а распределяется по уровням: объект для живой координации, база для долговременной памяти.
Четвертый паттерн — async boundary. Любую тяжелую работу нужно отделять от пользовательского запроса. Пользователь получает быстрый 202 или immediate response, а функция ставит задачу в очередь, шлет webhook, запускает workflow или пишет в storage. Это особенно полезно в serverless, где платформа любит короткие и предсказуемые транзакции.
- Ingress на edge для auth, redirects и personalization.
- Event chain для обработчиков событий и интеграций.
- Stateful coordinator для сессий, локов и realtime.
- Async boundary для фоновых задач и тяжелой обработки.
- Hybrid stack, где serverless не заменяет backend, а подчеркивает его сильные стороны.
Если собрать все вместе, хороший serverless-проект в 2026 году выглядит не как магический кубик, а как аккуратно разрезанная система. Короткий вход, ясное состояние, явный background, прозрачный cost, минимум лишнего кода. И да, именно в такой форме он живет дольше, чем очередной «микросервис ради микросервиса».
FAQ о serverless
Serverless заменяет Kubernetes?
Нет. Это разные инструменты для разных задач. Serverless закрывает короткие, событийные и edge-сценарии, а Kubernetes остается удобным там, где нужен контроль над платформой, постоянная высокая нагрузка и сложная сервисная сетка.
Что выбрать для старта в 2026 году?
Если вы строите продукт с глобальным edge и фронтенд-центричным стеком, начните с Cloudflare Workers или Vercel Functions. Если у вас много AWS-интеграций, берите Lambda. Если важен региональный контур и понятный прайс в рублях или тенге, смотрите на Yandex Cloud Functions.
Почему cold start до сих пор обсуждают?
Потому что он никуда не исчез, а просто стал менее заметным на части платформ. На Lambda и некоторых edge-сценариях его можно сильно смягчить, но тяжелый bundle, дорогая инициализация и лишний I/O на старте все еще ломают latency.
serverless подходит для AI-инференса?
Да, если inference короткий или вы используете managed AI слой вроде Workers AI. Для тяжелых моделей и постоянной GPU-нагрузки лучше отдельный managed inference stack или специализированные GPU-инстансы.
Что делать со state в serverless?
Не хранить его в памяти функции и не надеяться на чудо. Для SQL используйте D1 или аналог, для координации и сессий — Durable Objects или похожий stateful слой, а тяжелую долговременную логику выносите в базу или очереди.
Как понять, что serverless стал дорогим?
Когда нагрузка стала ровной и высокой, а не рваной. Если сервис постоянно работает под заметной загрузкой, обычно дешевле и проще держать VM или контейнерный кластер, чем платить за удобство на каждой миллисекунде.
Какая платформа самая универсальная?
По широте экосистемы и корпоративной глубине чаще всего выигрывает AWS Lambda. По edge и скорости старта — Cloudflare Workers. По удобству для фронтенд-команд — Vercel и Netlify. Универсальность тут почти всегда означает компромисс, а не победу во всех дисциплинах.
Следите за обновлениями itech-news.ru — мы держим эту страницу актуальной.
