Напишите нам прямо сейчас, наши специалисты расскажут об услугах и ответят на все Ваши вопросы.
Напишите нам прямо сейчас, наши специалисты расскажут об услугах и ответят на все Ваши вопросы.
Наш специалист свяжется с Вами, обсудит оптимальную стратегию сотрудничества, поможет сформировать бизнес требования и рассчитает стоимость услуг.
Наш специалист свяжется с Вами, обсудит оптимальную стратегию сотрудничества, поможет сформировать бизнес требования и рассчитает стоимость услуг.
Заполните онлайн-заявку и получите выгодное спецпредложение прямо сейчас.
За вами будет закреплен персональный менеджер, который расскажет о платформе, ответит на все ваши вопросы и сформирует для вас коммерческое предложение.
Наш специалист свяжется с Вами и
обсудит время собеседования.
1. Java
Существует несколько фреймворков для разработки архитектуры микросервисов с использованием языка программирования Java:
— Spring Boot — Spring Boot — это популярный фреймворк микросервисов на Java. Позволяет создавать как небольшие, так и крупномасштабные приложения. Spring boot легко интегрируется с другими популярными фреймворками с помощью инверсии управления.
— Dropwizard — фреймворк Dropwizard используется для разработки удобных, высокопроизводительных и Restful веб-сервисов. Без дополнительных настроек поддерживает инструменты конфигурации, метрики приложения, протоколирования и работы.
— Restlet — фреймворк Restlet следует архитектурному стилю RST, который помогает Java-разработчикам создавать микросервисы. Принят и поддерживается Apache Software License.
— Helidon — Коллекция библиотек Java для написания микросервисов. Простой в использовании, с инструментальными возможностями, поддержкой микропрофилей, реактивным веб-сервером, наблюдаемый и отказоустойчивый.
— AxonIQ — Событийно-ориентированный фреймворк микросервисов с открытым исходным кодом, сфокусированный на Command Query Responsibility Segregation (CQRS), Domain-Driven Design (DDD) и скоринге событий.
— Micronaut — full-stack фреймворк на основе JVM для построения модульных, легко тестируемых микросервисных и бессерверных приложений. Создает полнофункциональные микросервисы, включая внедрение зависимостей, автоконфигурацию, обнаружение служб, маршрутизацию HTTP и клиент HTTP. Micronaut стремится избежать недостатков фреймворков Spring, Spring Boot, обеспечивая более быстрое время запуска, уменьшение объема памяти, минимальное использование рефлексии и спокойное юнит-тестирование.
— Lagom — Реактивный фреймворк микросервисов с открытым исходным кодом для Java или Scala. Lagom базируется на Akka и Play.
2. GoLang
Доступно несколько фреймворков для разработки архитектуры микросервисов с использованием языка программирования Go
— GoMicro — подключаемая библиотека RPC предоставляет фундаментальные строительные блоки для написания микросервисов на языке Go. Поддерживаются API-шлюз, интерактивный CLI, сервисный прокси, шаблоны и веб-панели.
3. Python
Доступно несколько фреймворков для разработки архитектуры микросервисов с использованием языка программирования Python:
— Flask — Web Server Gateway Interface (WSGI) Веб-ориентированный легкий фреймворк микросервисов на языке Python. Flask-RESTPlus — расширение для Flask, которое предоставляет поддержку для быстрого создания REST API.
— Falcon — веб-фреймворк API для построения надежных бэкендов приложений и микросервисов в Python. Фреймворк отлично работает как с асинхронным интерфейсом шлюза сервера (ASGI), так и с WSGI.
— Bottle — Быстрый, легкий и простой WSGI микросервисный веб-фреймворк на основе Python. Распространяется одним файловым модулем и не имеет зависимостей, кроме стандартной библиотеки Python.
— Nameko — Фреймворк Nameko для построения микросервисов на Python со встроенной поддержкой RPC через AMQP, асинхронных событий, HTTP GET и POST, а также WebSocket RPC.
— CherryPy — CherryPy позволяет разработчикам создавать веб-приложения, используя объектно-ориентированное программирование на Python.
4. NodeJS
Существует несколько фреймворков для разработки архитектуры микросервисов с использованием языков программирования NodeJS
— Molecular — событийно-ориентированная архитектура микросервисов, построенная с использованием NodeJS. Содержит встроенный реестр сервисов и выполняет их динамическое обнаружение, осуществляет балансировку нагрузки на запросы и события, а также функцию отказоустойчивости и встроенное кэширование.
5. .NET
ASP.Net, фреймворк, используемый для веб-разработки и делающий ее API. Микросервисы поддерживают встроенные функции, для их (микросервисов) построения и развертывания с помощью контейнеров Docker.
6. MultiLanguage
Существует несколько фреймворков для разработки архитектуры микросервисов с использованием нескольких языков
— Spark — создание веб-приложений микросервисов с использованием Kotlin и Java. Выразительный и простой веб-фреймворк DSL на Java/Kotlin, созданный для быстрой разработки.
1. Java
Существует несколько фреймворков для разработки архитектуры микросервисов с использованием языка программирования Java:
— Spring Boot — Spring Boot — это популярный фреймворк микросервисов на Java. Позволяет создавать как небольшие, так и крупномасштабные приложения. Spring boot легко интегрируется с другими популярными фреймворками с помощью инверсии управления.
— Dropwizard — фреймворк Dropwizard используется для разработки удобных, высокопроизводительных и Restful веб-сервисов. Без дополнительных настроек поддерживает инструменты конфигурации, метрики приложения, протоколирования и работы.
— Restlet — фреймворк Restlet следует архитектурному стилю RST, который помогает Java-разработчикам создавать микросервисы. Принят и поддерживается Apache Software License.
— Helidon — Коллекция библиотек Java для написания микросервисов. Простой в использовании, с инструментальными возможностями, поддержкой микропрофилей, реактивным веб-сервером, наблюдаемый и отказоустойчивый.
— AxonIQ — Событийно-ориентированный фреймворк микросервисов с открытым исходным кодом, сфокусированный на Command Query Responsibility Segregation (CQRS), Domain-Driven Design (DDD) и скоринге событий.
— Micronaut — full-stack фреймворк на основе JVM для построения модульных, легко тестируемых микросервисных и бессерверных приложений. Создает полнофункциональные микросервисы, включая внедрение зависимостей, автоконфигурацию, обнаружение служб, маршрутизацию HTTP и клиент HTTP. Micronaut стремится избежать недостатков фреймворков Spring, Spring Boot, обеспечивая более быстрое время запуска, уменьшение объема памяти, минимальное использование рефлексии и спокойное юнит-тестирование.
— Lagom — Реактивный фреймворк микросервисов с открытым исходным кодом для Java или Scala. Lagom базируется на Akka и Play.
2. GoLang
Доступно несколько фреймворков для разработки архитектуры микросервисов с использованием языка программирования Go
— GoMicro — подключаемая библиотека RPC предоставляет фундаментальные строительные блоки для написания микросервисов на языке Go. Поддерживаются API-шлюз, интерактивный CLI, сервисный прокси, шаблоны и веб-панели.
3. Python
Доступно несколько фреймворков для разработки архитектуры микросервисов с использованием языка программирования Python:
— Flask — Web Server Gateway Interface (WSGI) Веб-ориентированный легкий фреймворк микросервисов на языке Python. Flask-RESTPlus — расширение для Flask, которое предоставляет поддержку для быстрого создания REST API.
— Falcon — веб-фреймворк API для построения надежных бэкендов приложений и микросервисов в Python. Фреймворк отлично работает как с асинхронным интерфейсом шлюза сервера (ASGI), так и с WSGI.
— Bottle — Быстрый, легкий и простой WSGI микросервисный веб-фреймворк на основе Python. Распространяется одним файловым модулем и не имеет зависимостей, кроме стандартной библиотеки Python.
— Nameko — Фреймворк Nameko для построения микросервисов на Python со встроенной поддержкой RPC через AMQP, асинхронных событий, HTTP GET и POST, а также WebSocket RPC.
— CherryPy — CherryPy позволяет разработчикам создавать веб-приложения, используя объектно-ориентированное программирование на Python.
4. NodeJS
Существует несколько фреймворков для разработки архитектуры микросервисов с использованием языков программирования NodeJS
— Molecular — событийно-ориентированная архитектура микросервисов, построенная с использованием NodeJS. Содержит встроенный реестр сервисов и выполняет их динамическое обнаружение, осуществляет балансировку нагрузки на запросы и события, а также функцию отказоустойчивости и встроенное кэширование.
5. .NET
ASP.Net, фреймворк, используемый для веб-разработки и делающий ее API. Микросервисы поддерживают встроенные функции, для их (микросервисов) построения и развертывания с помощью контейнеров Docker.
6. MultiLanguage
Существует несколько фреймворков для разработки архитектуры микросервисов с использованием нескольких языков
— Spark — создание веб-приложений микросервисов с использованием Kotlin и Java. Выразительный и простой веб-фреймворк DSL на Java/Kotlin, созданный для быстрой разработки.
Один из ярких примеров успешного масштабирования приложений – это разработка и запуск мобильного приложения «Яндекс.Такси». Это приложение было создано в 2011 году и с тех пор стало одним из самых популярных и удобных способов вызова такси в России. Благодаря высокому качеству сервиса и удобству использования, «Яндекс.Такси» быстро завоевало доверие пользователей и стало популярным не только в России, но и за ее пределами. Сегодня это приложение предоставляет свои услуги в нескольких странах и активно развивается, привлекая все больше пользователей.
Еще одним примером успешного масштабирования приложений является разработка и запуск мессенджера «Telegram». Это приложение было создано в 2013 году и с тех пор стало одним из самых популярных и безопасных способов общения в мире. Благодаря своей простоте, надежности и высокому уровню защиты данных, «Telegram» привлек миллионы пользователей со всего мира. Команда разработчиков «Telegram» активно работает над улучшением функционала и расширением возможностей приложения, что позволяет ему успешно масштабироваться и привлекать все больше пользователей.
Еще одним примером успешного масштабирования приложений является разработка и запуск онлайн-сервиса «Delivery Club». Этот сервис был создан в 2009 году и стал одним из самых популярных способов заказа еды с доставкой. Благодаря широкой сети партнеров и удобному интерфейсу, «Delivery Club» быстро завоевал популярность среди пользователей и начал активно развиваться. Сегодня этот сервис предоставляет свои услуги во многих городах России и активно расширяется за ее пределами.
Еще одним примером успешного масштабирования приложений является разработка и запуск онлайн-платформы «Wildberries». Эта платформа была создана в 2004 году и стала одной из крупнейших интернет-магазинов в России и СНГ. Благодаря широкому ассортименту товаров, удобному интерфейсу и быстрой доставке, «Wildberries» завоевал доверие миллионов пользователей и стал популярным не только в России, но и за ее пределами. Сегодня платформа «Wildberries» успешно масштабируется и продолжает привлекать все больше клиентов, предлагая им широкий выбор товаров и удобные условия покупки.
При оценке производительности и масштабируемости программного приложения учитывается несколько факторов. Знакомство с этими факторами может помочь разработчикам выявить узкие места, устранить неэффективность и оптимизировать свои системы для удовлетворения растущих требований:
— Проектирование программного обеспечения. Правильная разработка программного обеспечения имеет решающее значение для достижения масштабируемости и производительности. Такие методы, как модульность, развязка и разделение задач, могут помочь создать более удобные в обслуживании и масштабируемые приложения.
— Хранение и извлечение данных. Эффективная обработка данных необходима для масштабируемого программного обеспечения. Различные системы хранения, такие как реляционные базы данных, базы данных NoSQL и механизмы кэширования, могут использоваться для оптимизации операций хранения и извлечения данных.
— Сети. Задержка, пропускная способность и надежность сети существенно влияют на производительность программного обеспечения. Использование соответствующих сетевых протоколов, алгоритмов сжатия и сетей доставки контента (CDN) может помочь устранить узкие места сети и повысить производительность.
— Аппаратное обеспечение. Базовое оборудование, на котором работает программное обеспечение, включая серверы, хранилища и сетевые устройства, может ограничивать производительность и масштабируемость. Регулярные обновления оборудования и стратегии эффективного использования ресурсов могут помочь решить эти проблемы.
— Шаблоны пользователей: прогнозирование поведения пользователей и соответствующая разработка программного обеспечения могут значительно повысить производительность. Анализ пользовательских шаблонов для выявления часто используемых функций, пикового времени использования и распространенных узких мест может помочь в оптимизации программного обеспечения.
Поэтому копать нужно в эту сторону, решений достаточно много.
Убирайте транзакции, нафиг вам тут innodb когда хватит myisam, оно на запись быстрее, у вас база write once read… тоже once.
У вас там база данных упирается случайно не в работу с диском? в облаке можно взять несколько дисков, они будут независимыми, раскидай по ним таблицы (myisam штатно поддерживает симлинки), что может дать прирост в скорости в разы только за счет этого, даже если они ssd, например отделить хранение индексов от данных или отделить старые данные от сегодняшних.
На время обработки аналитики можно потюнить файловую систему и отключить flush для файлов таблиц (например ext4 data writeback и можно отключить журнал) — сильно ускоряет именно запись, особенно если много ram, это включает большой риск потери/порчи данных при сбросе ос но с другой стороны вероятность этого очень мала и как я понимаю, данные в базу и так пишутся из какого то другого хранилища, т.е. при проблеме с сервером просто перезапускается обработка за текущие сутки.
Уберите индексы на запись, все, сначала пусть идет вставка данных без их индексации, затем создаете индекс (это на порядок быстрее) и уже потом строите аналитику.
Общая аналитика должна не работать с самими данными, а с их посуточной выжимкой (возможно в результате и хранить их не придется) считай это самодельные индексы. Грубо говоря если в запросе на аналитику стоит count,max,min,… то достаточно сложить посуточные значения и для глобальных считать уже по ним… само собой если запросы с условиями и сложными группировками, то надо думать но все решаемо… грубый пример нужно считать агрегацию по часам, вот в индексы и пиши суточные значения по часам, а если надо постранично то для каждой страницы для каждых суток считаешь, потом агрегируешь уже по этим результатам.
День добрый.
Хотелось бы получить мнение экспертов по базам данных или кого то, кто уже работал с какими либо базами данных для Big Data.
Дано
Имеется некая аналитическая система которая работает на нескольких сайтах. Она для каждой страницы, для каждого элемента сохраняет некую статистику (к примеру, сколько раз элемент был виден, сколько раз на него кликнули и т.д., но в целом это не так важно). Все данные аггрегируются в памяти, а затем раз в сутки скидываются в табличку в БД. Затем аналитики могут генерировать отчет за определенный период для определенного сайта + определенной страницы + определенного сегмента. Либо за определенный период для определенного сайта + определенной страницы + отдельного элемента.
Структура таблицы примерно такая:
1. ID сайта
2. ID страницы
3. ID елемента
4. Дата (день)
5. ID сегмента пользователя (все пользователи поделены на некое количество разных сегментов)
6+. Все остальные поля с данными
На данный момент мы используем Amazon Aurora (MySQL 5.7) с движком InnoDB
Поля с 1-5 это первичный ключ.
Ежедневно в таблицу записывается порядка 80М строчек (но это не конечная цель, в будущем возможна запись и намного большего количества)
Запись оптимизированна и происходит блоками по 1000 строчек в каждом INSERT запросе.
Проблемы текущего подхода
1. Когда таблица пустая, то запись такого количества данных занимает несколько часов, но уже через месяц, из-за увеличения индекса, скорость падает до примерно 12 часов. Т.е. если данных будет в 2 раза больше, то уже не получится вложиться в 24 часовое окно, когда еще не закончилась запись предыдущего дня, а надо уже писать следующий.
2. Скорость генерации отчет оставляет желать лучшего. Для страницы с большим количеством элементов, генерация репорта за месяц может занимать 2-3 минуты, это слишком долго.
3. Иногда нужно удалить данные для определенного сайта, изза огромного количества данных такая процедура блокирует не только саму таблицу, но и всю БД, в которой еще много других таблиц к которым постоянно идет обращение чтение/запись. Пытались решить данную проблему партицированием, но это не особо помогло.
Какие будут предложения?
Кроме того, если вы хотите обслуживать внешние запросы, то нужно еще использовать прокладку в виде api gateway (за это тоже нужно платить).
Мороки с настройками тоже свои есть. Мониторить лямбды тоже задача со своими нюансами. Если у вас просто сайт/api и более-менее регулярная загрузка есть, то я бы serverless не советовал. Elastic beanstalk на самом деле удобнее и практичнее. А вот для задач вроде selenium тестирования, когда нужно 1000 тестов параллельно запустить и потом до следующего билда вам мощности не нужны — serverless это очень хорошо.
Что касается serverless, название больше отражает не факт отсутствия сервера и работы с ним как таковым, а скорее еще меньше возни с настройкой и поддержкой серверного окружения (даже меньше чем с докером после того как все настроено и поднято). Те это следующие шаг после условных микросервисов.
Его часто удобнее называть функция как услуга, так как де факто часто реализуется запуск именно функции по запросу.
Если кратко описать для чего это нужно, то представим себе что у нас есть микросервис у которого затраты на содержания его постоянного аптайма как то слишком велики относительно времени работы/потребления ресурсов в живую. Да и в целом сервис выходит как то слишком микро даже для микросервиса.
Вот тут мы и придумываем такую штуку, которая будет ОЧЕНЬ быстро(относительно старта минимальной виртуалки/образа и чего другого) запускаться, быстро делает свою маленькую работу и выключается.
Из ключевых особенностей отмечу что функции должно быть в целом пофиг на своего состояние, она не знает изначально о предыдущем запуске и тп(те быть stateless). Все что нужно приходит в запросе.
Ври значит если у вас есть задача, которая удовлетворяет этим условиям, можно использовать этот удобный сервис и для масштабируемости, и для экономии и для кучи других фич.
Примеры:
ресайз изображений.
Генератор статистических сайтов(через админку производим обновление статистических файлов, это бывает не часто).
Чат боты
Разные спец информеры с определенной логикой.
И тд и тп, что хорошо ложится в определенную относительно простую функцию с простым входом данных(или без) и простым результатом работы.
В целом это решение не панацея, более того нужно четко понимать насколько выгодно/невыгодно переделывать на серверлесс платформы свою функцию, ведь мы точно жертвуем той же производительностью(помним что сервис не висит и не ждет нас постоянно, а пусть и очень быстро, но запускается), понижается прозрачность исполнения и усложняется отладка и прочее.
Но в любом случае, достаточно часто плюсы перебивают минусы, популярность у этого принципа есть. люди активно пользуются, так что много шишок уже набито, в целом зрелая штука.
А и да, насчет конкретного вашего вопроса.
PHP AWS Lambda нативно не поддерживает, все через костыли, впрочем с почти вменяемой производительностью.
И так как все таки AWS Lambda все же ближе к самому популярному нынче принципу serverless — функция как сервис, я не уверен что это правильная идея будет запускать атм Ларавел.
Те мы имеем минусы: отсутствие нативной поддержки PHP и такие заточенность под что-то простое, в итоге… ну не знаю.
Я думаю плюшки serverless в виде нет мороки с настройкой сервера/облака можно решить многими другими сервисами. Впрочем может быть это будет не так выгодно в вашем случае, нужно исходить и рассчитывать по вашему сценарию работы вашего приложения. А потом решать, что лучше подходит.
В общем недавно Lambda выкатила поддержку PHP, что довольно радостно.
Но у меня возникли некоторые вопросы по архитектуре проектов с ее использованием.
В контенксте Lambda+PHP я вижу следующие варианты использования:
1. Реализация микросервисной архитектуры ( где каждый микросервис выступает функцией)
2. Реализация монолитной архитектуры ( например закинуть монолитный Laravel как одну функцию )
На сколько этот подход оптимальный/верный/логичный в контексте serverless и AWS Lambda в часности?
2) решите задачу подъема самого сервера с запущенным Docker, в контейнерах задаете политику всегда перезапускаться — они вместе с самим Docker запустятся
3) в идеале по контейнеру на процесс либо логическую часть, к примеру MariaDB это один, Python сервер это второй и так далее
4) внимательно изучать внутренности, кроме официальных выбирать только те, которые имеют автоматические билды с отрытым Dockerfile и поддерживаются актуальными, иногда придется делать свои
5) ответ тот же что и 1) + резервное копирование/восстановление из томов
6) не встраивайте чувствительные данные в образы и не попадут
В качестве неплохого примера можете посмотреть мою разработку (правда, ориентирована на PHP, но суть та же, посмотрите как устроено
1) docs.docker.com/engine/userguide/dockervolumes/
2) docs.docker.com/engine/articles/host_integ…
3) Ответ простой — как хотите. Как лучше знаете только вы, звучит банально, но это так. Хотите хоть всё в один контейнер запихните, это ваше дело. Хотя рекомендуют 1 компонент на 1 контейнер. В этом есть своя логика — хочется обновить только mysql — обновляете этот контейнер и не думаете, поломался ли у вас uwsgi или nginx или ещё чего.
4) Напишите свой первый Dockerfile, станет куда яснее как выбирать. А пока доверяйте только официальным образам.
5) git? Этот вопрос — следствие непонимания вопроса 1)
6) Уже ответили. Самое простое, если не понимаете — не используйте dockerhub вообще. Или начните понимать. Или платите за приватные репозитории, чтобы не думать об этом.
Например, моя ситуация: VDS c Debian, нужно поставить внутри MySQL(MariaDB), Python/Django, Nginx, Memcached, Sphinx Search.
Задачи, которую я хочу решить Докером:
— разграничения по ресурсам некоторых особо прожорливых компонентов (швыряю булыжник в окно MySQL)
— возможность немного поэксперементировать с версиями и настройками компонентов
— если что-то не устроит на хостинге — взял свои контейнеры и пошел на другой
За последние дни я прочитал кучу мануалов и объяснений зачем, и как работает докер, кучу примеров по разработке приложений, но вот моего юзкейса в чистом виде, решения моих задач я не нашел — только намеки, полунамеки и скупые строчки, что да, вот так вот сделать можно, но ничего подробного, исчерпывающего для понимания и уж тем более никаких инструкций такого плана: отсюда бери — туда клади, тут запускай эту команду, потому что…
Основные вопросы, которые у меня остались:
1) т/к контейнеры стейтлес, а мне нужно все же хранить и создавать данные, как создавать, записывать и хранить изменения?
2) как автоматически стартовать контейнеры с изменениями, если какой-то пьяный дебил перерубил лопатой провод из ДЦ и все потухло? Т/е как стейтлес контейнеры превратить в стейтфул простыми способами. Т/е сервер падает, поднимается и все работает с того места где он упал.
3) Как лучше разбить на контейнеры мою обвязку сервера?
4) Как выбирать необходимые контейнеры приложений на Докерхабе?
5) Как и где хранить данные (например проекты Django), чтобы их не потерять, но вместе с тем удобно мигрировать на другой хост в случае чего
6) Из-за недопонинимания как все работает: как (и возможно ли вообще такое) не допустить утечки каких-либо чувствительных данных в докерхаб вместе с образом какого-нибудь моего контейнера?
1. Формировать задачи в трекере, например gitlab
2. Использовать релизы
3. С выходом релиза фиксировать задачи/фикс багов, релиза в CHANGELOG.md
Есть проект, в нем есть разные механизмы. Я хочу вести какую-нибудь базу знаний, в которую буду делать записи обо всех нововведениях, вносимых в проект. Главное: нужна какая-нибудь система «тегов», чтобы можно было для записи об обновлении указать в «теге» конкретный механизм, который это обновление затрагивает. И в будущем, если мне нужно будет просмотреть все обновления, связанные с каким-то конкретным механизмом, я бы искал по этим «тегам».
Наверняка есть какой-то термин для того, что я описал. И наверняка существуют сервисы, созданные для этого.
Системы контроля версий прошу не предлагать — база знаний должна быть отдельно от системы контроля версий.
В случае, если вы используете в таких рекламных кампаниях модель атрибуции «Последний переход из Яндекс.Директа» может получится так, что вы будете переплачивать за конверсии. Например, человек зашел на ваш сайт по рекламе из поиска, совершил целевое действие и оставил открытой вкладку браузера на несколько часов. После истечения таймаута визита и обновления страницы засчитается еще одно достижение цели. Вторая «конверсия» будет также отнесена к Директу и вы, фактически, оплатите одного целевого посетителя во второй раз.
Также эта модель атрибуции в сочетании с этими типами автостратегий не позволит вам определить, какой именно канал дает вам больше целевого трафика. Например, пользователь переходит по объявлению из директа, но не совершает конверсии. Затем переходит второй раз, через социальные сети и совершает ее. В данном случае лучшим вариантом будет заплатить за переход из соцсети, ведь она стала решающим фактором для конверсии, а вместо этого вы заплатите за конверсию в директе.
Чтобы избежать излишнего расхода бюджета для таких стратегий рекомендуем использовать модель атрибуции «Последний значимый переход». Это поможет расходовать бюджет Директа рациональнее и правильно подбирать каналы для взаимодействия с целевой аудиторией.
— товары;
— программное обеспечение, игры;
— рецепты;
— сериалы, кино;
— вопросы и ответы для мобильной выдачи;
— рефераты, научные работы;
— организация;
— изображения;
— видеозаписи.
Специальный сниппет включает те виды информации об объекте, которые важны для пользователя. Например, для товаров это название, описание, цена. Для компьютерных программ — назначение, платформа, размер файла, количество скачиваний.
Google применяет расширенные сниппеты других видов, в том числе:
— статья или запись из блога в виде заголовка с изображением;
— контент, созданный пользователями, — формат похож на предыдущий, но включает статьи меньшего размера и с комментариями читателей после текста;
— действия с книгой — возможность купить книгу прямо из выдачи;
— строка навигации — информация «хлебных крошек» о том, в каком разделе сайта находится страница;
— карусель — список или галерея страниц с одного сайта, работает для рецептов, фильмов, ресторанов, обучающих курсов;
— рейтинг организации-работодателя — сводная оценка от разных пользователей в сниппете вакансии;
— ориентировочная зарплата — минимальная и максимальная ставки в профессии с учетом среднего заработка в регионе;
— список концертов, фестивалей и других мероприятий с местом и временем проведения.
В итоге поисковая выдача становится информативнее, на страницы переходят заинтересованные пользователи.