Дизайн инстаграмма: создавайте дизайн для Instagram в онлайн-редакторе VistaCreate
создавайте дизайн для Instagram в онлайн-редакторе VistaCreate
Запостить картинку в Instagram может любой. А сделать Instagram-публикацию, которую заметят, – целая наука. Но не с VistaCreate! Он заменит целую дизайн-студию – и делать магнетический Instagram-контент станет в разы проще.
Создать первый дизайн
Анимировать легко
Теперь вы – настоящий моушн-дизайнер. С VistaCreate анимировать публикации получится за несколько секунд. Берете шаблон и с помощью простых инструментов добавляете wow-анимацию на фото и фоны. Готово!
В конструктор анимации
Огромный набор простых и интуитивных инструментов
Cоздавайте Instagram-публикации быстро при помощи функционального редактора VistaCreate.
Шаблоны
Анимация
Загрузить
Редактировать
Изменить размер
Объекты
Выберите шаблон
Профессиональные дизайнеры VistaCreate создали внушительную библиотеку из 70,000+ дизайн-шаблонов – тут все, что нужно для быстрого старта.
Отредактируйте шаблон
Добавьте движения в публикации
Хотите, чтобы в вашей Instagram-публикации было больше энергии? Вам нужны видео и анимации – берите любые из нашей обширной коллекции моушн-шаблонов и элементов.
Анимировать
Персонализируйте публикацию
Добавьте свой голос и стиль в дизайн инстаграм постов, которые редактируете. Загружайте фото, видео и графику, а еще добавляйте или убирайте любой элемент, который хочется.
Перейти в редактор
Редактировать дизайн
Настройте макет под себя – отредактируйте надписи, замените шрифты, фоны, изображения и другие элементы.
Начать
Как изменить размер дизайна
Экономьте время: меняйте размеры дизайнов одним кликом. Это просто — выберите один из популярных форматов или установите свои размеры.
Начать
Добавьте финальные штрихи
Пусть оформление постов в инстаграме будет чистым фаном – добавляйте анимацию, иллюстрации, наклейки, иконки, рамки и многое другое.
Смотреть объекты
Стоковые изображения
В VistaCreate 1 млн. бесплатных фото, векторных изображений и другого контента, чтобы поощрять ваше творчество.
Стоковые видео
У вас под рукой 1600+ коротких видео, которые легко использовать в любом моушн-формате.
Коллекция шрифтов
Доступно более стилей шрифтов 680 на 25 языках. А если вам этого мало, загружайте собственные!
Доступ к 70M+ лицензионных фотографий, видео и векторных изображений
Удаляйте фоны на изображениях одним кликом
Создайте несколько наборов фирменных стилей с цветами, шрифтами и логотипами вашего бренда
Загружайте собственные изображения и мгновенно превращайте их в стикеры
Пригласите до 10 участников в командный аккаунт и создавайте дизайны вместе
Получите безлимитное хранилище для всех ваших файлов и дизайнов
В любой момент получайте доступ к истории версий вашего проекта
Как создать Instagram-публикацию: 4 простых шага
шаг 1
Выберите формат
Перейдите в формат Instagram-публикации, чтобы начать создавать.
шаг 2
Выберите шаблон
Просмотрите все шаблоны для инстаграм поста или воспользуйтесь поиском, чтобы погрузиться в огромную коллекцию наших шаблонов – и найти тот самый!
шаг 3
Персонализируй
Добавьте, удалите или отредактируйте любой элемент, чтобы оформление дизайна точно отвечал вашему настроению и стилю.
шаг 4
Скачивайте и делитесь
Скачайте готовую публикацию и поделитесь ею в Instagram прямо из редактора VistaCreate.
Создать первый дизайн
2400+ дизайнов для Instagram
Конструктор VistaCreate – это ваш быстрый помощник для создания постов в Инстаграм на любую тему, для любой аудитории.
Шаблоны instagram-публикации
Частые вопросы
Как загрузить свой дизайн в Instagram?
Нажмите на кнопку «Скачать» – и дизайн сохранится в разделе «Фотопленка». Затем загрузите дизайн в свой аккаунт в Instagram. Наша команда уже разрабатывает функцию, которая позволит публиковать дизайны в Instagram прямо из VistaCreate.
Можно ли бесплатно использовать контент VistaCreate (с изменениями и без), создавая дизайны для соцсетей (Facebook, Instagram и других)?
Можно ли создавать публикацию для соцсетей в VistaCreate, используя только свой контент?
70,000+ премиум-шаблонов
Мы берем дизайн на себя – вам остается чистое творчество. Создавайте в удовольствие!
В редактор
Что говорят наши пользователи о VistaCreate
Использование VistaCreate помогло мне улучшить мои навыки по маркетингу и созданию контента. Моя аудитория заметила, как изменился мой контент в соцсетях, и я получаю множество приятных комментариев.
Прочтите историю Шарлотты
Если вы владелец малого бизнеса и на ваших плечах лежат много хлопот, без инструмента, который будет экономить вам время, например VistaCreate, вам не справиться. Благодаря ему вам также не придется тратить большие суммы, чтобы создавать красивые дизайны для вашей компании.
Прочтите историю Дженнифер
Теперь мой визуальный контент выглядит гораздо лучше, чем все, что приходило мне в голову раньше. С VistaCreate создавать графические дизайны гораздо быстрее и легче, так что у меня остается больше времени на ведение бизнеса. Это такой себе умножитель сил!
Прочтите историю Кирсти
У VistaCreate множество функциональных возможностей, а использовать их удивительно легко. Благодаря этому я могу воплощать свои идеи в жизнь. И это помогло мне увеличить продажи моих продуктов и услуг существующим и потенциальным клиентам в десять раз.
Прочтите историю Лизы
В VistaCreate можно создавать графику так быстро, что не веришь собственным глазам! А поскольку все полностью настраивается, я могу создавать дизайны, соответствующие моему бренду просто молниеносно!
Прочтите историю Рика
Публикации на
Больше дизайн-форматов
Обзор нового дизайна Instagram
#инстаграм
Instagram сделал редизайн главной страницы профиля. Расскажем, что изменилось.
27 июня Инстаграм массово сменил внешний вид главной страницы аккаунтов пользователей в Инстаграм. Пользователи негодуют: действительно ли новый дизайн такой неудобный или это очередной протест принятию нового.
Наши продукты помогают оптимизировать работу в соцсетях
Узнать подробнее
и улучшать аккаунты
с помощью глубокой аналитики
аккаунты с помощью глубокой аналитики
С чего все началось?
Об изменениях в дизайне главной страницы профиля пользователей Инстаграм сообщил в своем блоге 21 ноября прошлого года. В заявлении говорилось, что изменения коснутся верхней части профиля, включая значки, кнопки и способы навигации между вкладками.
Были представлены макеты с возможными обновлениями профиля. В частности у разработчиков были предложения перенести аватар в правую часть шапки профиля, информацию о подписках и подписчиках – под блок «О себе» и сделать меньше шрифт, а количество публикаций и вовсе убрать с главной страницы аккаунта. Единственное, чего не коснулись изменения – сетка фотографий и видео в профиле.
Примеры потенциальных изменений в профиле Инстаграм, представленные соцсетью перед тестированием 21 ноября 2018.
В заявлении также сообщалось , что обновления будет тестироваться поэтапно и в различных комбинациях и в разных странах, с учетом отзывов пользователей. Обновление дизайна в Инстаграм объяснили заботой об удобстве навигации на главной странице профиля.
Что получилось?
Первые тестовые обновления профиля в Инстаграм, которые стали доступны части пользователей после сообщения о редизайне, подверглись жесткой критике в сети Интернет. После нескольких месяцев работы над новым дизайном с учетом мнений пользователей Инстаграм обновил главные страницы профилей. Российские пользователи увидели обновления в своих профилях 27 июня.
Посмотрим, что изменилось.
Счетчик
Счетчик публикаций, подписок и подписчиков остался на месте, даже стал несколько крупнее.
Однако из-за жирного шрифта подписи к цифрам сократились, и стало не совсем понятно, какая цифра относится к числу подписчиков, а какая — к числу подписок.
Кнопки «Написать» и «Похожие пользователи» из шапки убрали.
Описание профиля
Количество знаков для описания профиля, видных на главной странице, сократилось. Чтобы прочесть полный текст описания, нужно щелкнуть по кнопке «Еще». Видимо, сейчас пользователям нужно будет сокращать описание, потому что есть опасение, что никто не будет нажимать кнопку «Еще», чтобы прочитать весь текст в описании. Однако сколько именно знаков требуется, чтобы описание полностью помещалось на главной странице, пока непонятно. Выбрав рандомно 15 аккаунтов, мы посчитали количество видимых знаков в описании. В среднем эта цифра колеблется в диапазоне +/- 70 знаков.
Так выглядит описание профиля после редизайна
Зато сейчас в описании синим шрифтом выделена геолокация пользователя. А также сокращен длинный текст «На обновления этого человека подписаны…» на лаконичное «Подписчики». Кстати, шрифт здесь сделали крупнее и подогнали под общий размер, что смотрится гармоничнее и, с практической точки зрения, удобнее для попадания.
Кнопки
Более всего дизайнеры и разработчики поработали с кнопками навигации. Если раньше они были разнесены по разным частям профиля, то сейчас собраны в одном месте — под описанием профиля.
Кнопки «Написать» и «Похожие пользователи» из шапки «переехали» вниз, под описание профиля ко всем остальным.
Кнопки «Подписаться» и «Написать», а также кнопки с контактами и похожими пользователями располагаются сейчас все вместе.
https://livedune.ru/blog/spisok-blizkih-druzej-v-instagramКнопка «Написать» отправляет пользователя сразу в Direct, а похожие пользователи «скрываются» за кнопкой в виде перевернутого треугольника справа.
Здесь же расположилась кнопка «Подписаться». Она также отвечает за отмену подписки, добавление пользователя в список «Лучшие друзья», а также настройки уведомлений. Щелкнув по кнопке «Подписаться», вам откроется это меню.
Меню под кнопкой «Подписаться» после редизайна.
В бизнес-профилях, если способов связи с пользователем несколько, после редизайна все они собраны под одной кнопкой — Контакты. Войдя в меню, можно выбрать наиболее удобный для вас.
Меню под кнопкой «Контакты» после редизайна.
Если владелец аккаунта указал только один способ связи, вместо кнопки Контакты пользователи увидят кнопки Как позвонить или Электронный адрес, которые сразу направляют в меню набора номера в телефоне или меню выбора электронной почты соответственно.
Если вы еще не переключились на бизнес-аккаунт пошаговая инструкция в статье поможет это сделать.
Внешний вид кнопок тоже претерпел изменения. Вместо яркого синего цвета шрифт стал лаконичным черным, в соответствии с остальным дизайном страницы.
Лента публикаций
С главной страницы профиля над сеткой фотографий также исчезла иконка перехода в ленту публикаций.
Сейчас перейти в ленту публикаций можно, нажав на любое фото или видео пользователя.
Промоакции и Редактировать профиль
Изменения дизайна главной страницы Инстаграм вы увидите, если заходите и в свой профиль.
Кнопки «Промоакции» и «Редактировать профиль» также переместились под описание профиля — туда, где ранее размещались только ваши контакты.
Кнопка «Архив» с главной страницы переехала в меню. Сейчас чтобы посмотреть архив историй, вам нужно войти в меню, нажав «гамбургер» в правом верхнем углу.
Изменения коснулись только мобильной версии Инстаграм. Официально об окончании тестового периода Инстаграм еще не объявил. Видимо, какие-то изменения в дизайн еще будут вноситься.
Понравился, стало лучше.
Непонятно, надо привыкнуть.
Не понравился совсем, старый был лучше.
Отправить |
Спасибо за участие!
Только важные новости в ежемесячной рассылке
Нажимая на кнопку, вы даете согласие на обработку персональных данных.
Что нового в SMM?
Подписывайся сейчас и получи 9 способов бесплатного продвижения в Инстаграм
Популярные статьи
≈ 10 мин на чтение 27.06.2021
Расшифровка статистики stories в Instagram
Как смотреть статистику stories в Instagram и что означает каждая ее метрика.
#вконтакте 30.09.2019
Как провести конкурс самого активного подписчика во Вконтакте
Пошаговая инструкция, как настроить и запуску конкурс самого активного подписчика в сообществе во Вконтакте для увеличения вовлеченности и охватов.
#инстаграм 13.09.2019
Форматы видео для Instagram
Технические требования, которым должно соответствовать видео для публикации в ленту Instagram, stories и IGTV.
#инстаграм 09.09.2019
Как сделать рекламные макеты для stories
Подборка приложений для создания видео и анимированных макетов рекламы в stories Instagram.
Маркетинговые продукты LiveDune — 7 дней бесплатно
Наши продукты помогают оптимизировать работу в соцсетях и улучшать аккаунты с помощью глубокой аналитики
Анализ своих и чужих аккаунтов по 50+ метрикам в 6 соцсетях.
Статистика аккаунтов
Оптимизация обработки сообщений: операторы, статистика, теги и др.
Директ Инстаграм
Автоматические отчеты по 6 соцсетям. Выгрузка в PDF, Excel, Google Slides.
Отчеты
Контроль за прогрессом выполнения KPI для аккаунтов Инстаграм.
Аудит Инстаграм аккаунтов с понятными выводами и советами.
Экспресс-аудит
Поможем отобрать «чистых» блогеров для эффективного сотрудничества.
Проверка блогеров
Стоимость услуг дизайна аккаунтов в Инстаграм
Мастер
Александра Павлова
31 октября 2021, Москва
Дизайн с нуля, шаблоны для постов, Аватарка, Обложка stories. , Тема: продвижение услуг. , Нужен дизайн для аккаунта инстаграм рекрутинговой компании (Домашний персонал, водители). Аудитория покупателей услуг – молодые мамы. , Необходимо оформить в единый стиль, подготовить шаблон для будущих постов и сторис. Можно в похожем дизайне сайта компании , Аккаунт скину , Предложите сроки и стоимость.
Отзыв 5+
Александра делала нам дизайн аккаунта инстаграм. Вначале узнала информацию о целевой аудитории. Сделала несколько вариантов цветового и визуального решения, провели опрос аудитории в двух социальных сетях. Далее уже подготовил не просто шаблоны, а полностью пакет для работы со всеми элементами, …далее
брендбук для инстаграм, описание инструкции по использованию, видеоинструкции для смм-менеджера. Специалист отличный, креативный, перфекционист, слышит заказчика, соблюдает все сроки работы, очень комфортна в работе и общении. Надеемся в будущем Александра согласится с нами еще сотрудничать
—
Натали
Мастер
Лариса Дубовицкая
16 февраля 2022, Москва
Дизайн и фото., Тема: Экспертный аккаунт., Я ищу человека, который оформит мне визуал, отразит меня как эксперта (я продюсер блогеров экспертов) и как личность, сделает дизайн и сам сделает фото для этого визуала, подберёт образы, места для фотосессии, визажиста.
Отзыв 5+
Однозначно рекомендую Ларису. Она просто потрясающий и очень компетентный человек. Мы быстро нашли общий язык и она сразу поняла что мне нужно. Мне нужно было в сжатые сроки выполнить достаточно объёмную задачу: составить визуал, организовать фотосессию, обработать фотографии, подобрать одежду, …далее
макияж, украшения, причёску для фотосессии. Лариса не только помогла со всем этим и в кратчайшие сроки, но даже дала часть своей одежды и украшения. Надо сказать она обладает прекрасным чувством стиля, мне очень понравились образы и места для фотосессии, которые она мне подобрала. За один день мы провели фотосессию на 30 постов, хотя раньше мне казалось, что невозможно успеть сделать это так быстро и Лариса даже сделала мне гораздо больше фотографий, ещё и для сторис, даже обработала их за бесплатно. Помимо этого она очень понимающий и дружелюбный человек 🥰. Обязательно обращусь к ней ещё ❤️❤️❤️
—
Любовь
Мастер
Андрей Тимохин
17 августа 2022, Москва
Дизайн сайта., Лендинг., Платформа: WordPress., Необходимо сделать дизайн лендинга., Для адвоката ., Есть ещё мелкие задачи по внесению правок в макет сайта .
Отзыв 5
Андрей — бесспорно отличный специалист.
Я работал со многими веб дизайнерами, исправлять чужие косяки не каждый дизайнер возьмётся и не у каждого получится. Перед Андреем была поставлена задача — исправить чужой макет в фигме, ориентируясь на выполненную верстку.
Сайт уже был свёрстан. …далее
Соотвественно, правки должны изменять внешний вид макета, но так, чтобы не пришлось переделывать всю верстку. Андрей внёс правки в макет сайта. Все стало красиво, удобно, гармонично. Сайт поменялся кардинально . Наш верстальщик без труда реализовал. Выяснилось, что Андрей сам раньше верстал сайты, поэтому понимает процесс, плюс хорошо работает над деталями. Детали — очень важны. Добавлю, что в портфолио Андрея очень достойные работы. Рекомендую. Будем сотрудничать.
—
Pavel
Мастер
Mpoy Bungu Benedict
1 апреля 2021, Москва
Макет сайта., Сайт-визитка., Платформа: по рекомендации специалиста., Здравствуйте! Мне необходимо сделать макет веб-страницы (без верстки)., Понравилось ваше портфолио о хотелось бы обсудить детали.
Отзыв 5+
Благодарю Бенедикта за отлично проделанную работу. Заказывали адаптивный дизайн макета для веб-сайта (для десктопа, планшета и телефона). Дизайнер учел все пожелания, а результат не только оправдал, но и, без преувелечиния, превысил ожидания:). Все получилось стильно, красиво и лаконично, точно так …далее
как и хотели. Также хочу отметить профессиональный подход к делу. Так как у нас не было сформулированного ТЗ по проекту, то перед началом работы отправил «опросник» для клиента. В процессе разработки постоянно отпрявлял сделанные изменения. В итоге были проработаны даже самые мелкие детали, макет полностью готов к дальнейшей верстке. Будем продолжать сотрудничество 🙂 Однозначно рекомендую!
—
Александра
Анализ дизайна системы Instagram | Ашис Чакраборти
Как вы разрабатываете сервис для обмена фотографиями, такой как Instagram?
Photo by Zane Lee on Unsplash Проектирование системы является одной из наиболее важных частей разработки программного обеспечения. Страшно начинать проектировать систему. Одна из основных причин заключается в том, что терминология, описанная в книгах по архитектуре программного обеспечения, сложна для понимания. И нет никаких фиксированных ориентиров. Везде, где вы проверяете, кажется, есть другой подход. Это становится запутанным для нового ученика.
Итак, я решил спроектировать систему, основываясь на своем опыте изучения архитектурных курсов. Это часть серии статей о проектировании систем для начинающих (ссылка приведена ниже). Для этого давайте разработаем сервис обмена фотографиями, такой как Instagram.
Определение Системы:
Нам нужно уточнить цель системы. Проектирование систем — очень обширная тема; если мы не сузим его до конкретной цели, будет сложно спроектировать систему, особенно для новичков.
Фото Кристиана Видигера на Unsplash Instagram — это служба обмена фотографиями, которая позволяет пользователям загружать и делиться своими фотографиями и видео с другими пользователями, в основном со своими подписчиками. Поскольку это упражнение, мы разработаем более простую версию основного сервиса Instagram.
В этом сервисе пользователь может делиться фотографиями и подписываться на других пользователей. Для каждого пользователя будет новостная лента. Лента новостей состоит из лучших фотографий всех людей, на которых подписан пользователь.
Требования к системе:
В этой части мы выбираем функции системы. Системные требования разделены на две части:
Функциональные требования:
Это тип требований, которые должна обеспечивать система. Можно сказать, что это главная цель системы.
Во-первых, для Instagram пользователи должны иметь возможность загружать/скачивать/просматривать фотографии. Пользователи могут выполнять поиск изображений по названиям фото/видео. Один пользователь может подписываться на других пользователей. Еще одна важная функция заключается в том, что система должна отображать новостную ленту пользователя, состоящую из фотографий всех людей, на которых подписан пользователь.
Поскольку это практика для системы, мы не рассматриваем теги на фотографиях, поиск по тегам, функции лайков и комментариев и т. д.
Нефункциональные требования
Производительность, доступность, согласованность, масштабируемость, надежность и т. д., являются важными требованиями к качеству при проектировании системы. Нам нужно проанализировать эти требования к системе.
Как системный разработчик, мы могли бы захотеть иметь проект, который будет высокодоступным, очень высокопроизводительным, первоклассной согласованностью в системе, высокозащищенной системой и т. д. Но невозможно достичь всех этих целей в одной системе. . Нам нужны требования, которые будут работать как ограничения при проектировании системы. Итак, давайте определим наши NFR:
Наша система должна быть высокодоступной. В случае любого веб-сервиса это обязательное требование. Задержка генерации домашней страницы должна быть не более 200 мс. Если генерация домашней страницы занимает слишком много времени, пользователи будут недовольны, что недопустимо.
Выбирая высокую доступность системы, мы должны помнить, что это может помешать согласованности в системе. Система также должна быть очень надежной, а это означает, что любые загруженные пользователями фото или видео никогда не должны быть потеряны.
В этой системе поиск и просмотр фотографий будет больше, чем загрузка. Поскольку в системе будет больше операций чтения, мы сосредоточимся на создании системы, которая может быстро извлекать фотографии. При просмотре фотографий задержка должна быть как можно меньше.
Поток данных:
Если вы не знаете, с чего начать проектирование системы, всегда начинайте с системы хранения данных. Это поможет держать ваш фокус в соответствии с требованиями системы.
Нам необходимо поддерживать два сценария на высоком уровне, один для загрузки фотографий, а другой для просмотра/поиска фотографий. Нашей системе потребуются серверы хранения объектов для хранения фотографий и серверы баз данных для хранения метаданных.
Определение схемы базы данных — это первый этап понимания потока данных между различными компонентами системы. Нам нужно хранить данные профиля пользователя, такие как список подписчиков, загруженные пользователями фотографии. Должна быть таблица, в которой хранятся все данные о фотографиях. Если мы хотим сначала показать последние фотографии, нам нужно проиндексировать (PhotoID, CreationDate). Таблиц в БД может быть:
Имя таблицы: table indexe1, index2 и т. д.
Фото: PhotoID (pk), UserID, PhotoLocation, CreationDate
Follow: UserID1, UserID2 (парный pk)
FeedItem: FeedID(pk), UserID, Contents, PhotoID ,CreationDate
**pk = первичный ключ
Мы можем хранить указанные выше таблицы в СУБД, такой как MySQL так как нам потребуются соединения между таблицами. Но у реляционных баз данных есть свои проблемы. Хотя реляционную базу данных можно масштабировать на несколько серверов, это сложный процесс. Мы можем хранить фотографии в распределенном файловом хранилище, таком как HDFS или S3.
Когда пользователи загружают фотографии, сохранение их в базе данных является медленным процессом, поскольку они хранятся на диске. Но в случае чтений процесс будет быстрее, особенно если мы будем обслуживать их из кеша.
Рисунок: Отдельная служба загрузки и выгрузки (Изображение автора)Поскольку загрузка — медленный процесс, если мы поместим фотографии для записи и чтения на один и тот же сервер, система может быть слишком занята всеми запросами на «запись». Мы должны учитывать, что веб-серверы имеют ограничение на количество подключений, прежде чем разрабатывать нашу систему.
Допустим, сервер может иметь максимум 5000 подключений в любое время. Таким образом, он не может иметь более 5000 одновременных загрузок или загрузок. Чтобы справиться с этим типом узких мест, мы можем использовать разделение ответственности .
Мы можем разделить операции чтения и записи на две отдельные службы. Итак, у нас будет несколько серверов для чтения и разные серверы для записи. Это разделение также даст нам возможность независимо масштабировать каждую операцию.
Доступность и надежность:
Мы не можем потерять фотографии, загруженные пользователями. Надежность является огромным фактором для этой системы. Итак, нам нужно иметь более одной копии каждого файла. В этом случае, если один сервер мертв, у нас все еще есть другие копии этих фотографий.
В системе не может быть единой точки отказа. Если мы храним несколько копий компонента, это может устранить единую точку отказа в системе. Для создания высокодоступной системы нам необходимо хранить несколько реплик служб в системе. Таким образом, даже если некоторые из серверов не работают, система может оставаться доступной. Создание избыточности в системе также обеспечивает резервную копию в кризисной ситуации.
Рисунок: Несколько копий служб и баз данных для доступности (Изображение автора)Масштабируемость:
Для поддержки миллионов пользователей нам необходимо разделить нашу базу данных, чтобы разделить и хранить наши данные на разных серверах БД. Мы можем использовать сегментирование базы данных для метаданных.
Разделение на основе UserID:
Если мы разделим базу данных метаданных на основе UserID, мы можем хранить все фотографии пользователей в одном сегменте. Кажется, у одного пользователя почти 3 ТБ данных. Если один сегмент БД составляет 1 ТБ, нам потребуется три сегмента данных каждого пользователя.
Для повышения производительности и масштабируемости мы можем оставить десять осколков. В таком случае мы можем найти номер шарда по UserId%10 и хранить там данные.
При таком подходе мы можем столкнуться с некоторыми проблемами, если пользователь является популярной знаменитостью. Эта часть осколков будет часто подвергаться ударам.
Кроме того, некоторые пользователи могут загружать больше фотографий, чем другие. В этом случае распределение может быть неравномерным.
Что еще более важно, если мы не можем хранить все изображения пользователей в одном сегменте, нам может потребоваться распределить фотографии по разным сегментам.
И если сегмент не работает, мы можем столкнуться с проблемой недоступности для пользователя.
Разделение на основе PhotoID:
Другим способом разделения БД может быть использование PhotoID. Нам нужно создать уникальный идентификатор для каждой фотографии. Каждый сегмент БД должен иметь свою последовательность автоинкремента для PhotoID, но тогда каждый сегмент будет иметь один и тот же идентификатор фотографии в своей части. Мы можем добавить ShardId к каждому фотоID; это может сделать фотоID уникальным в системе.
Балансировщик нагрузки:
Поскольку мы используем несколько копий сервера, нам необходимо эффективно распределять пользовательский трафик на эти серверы. Балансировщик нагрузки будет равномерно распределять пользовательские запросы на различные серверы. Мы можем использовать маршрутизацию на основе IP для службы новостей, поскольку одни и те же запросы пользователей отправляются на один и тот же сервер, а кэширование можно использовать для получения более быстрого ответа.
Если таких требований нет, циклический перебор должен быть простым и хорошим решением для стратегии выбора серверов балансировщиков нагрузки.
API GateWay:
У нас есть много сервисов для нашей системы. Некоторые будут генерировать новостную ленту, некоторые помогут хранить фотографии, некоторые будут просматривать фотографии и т. д. Нам нужна единая точка входа для всех клиентов. Эта точка входа — шлюз API.
Он будет обрабатывать все запросы, отправляя их в несколько служб. А для некоторых запросов он просто будет перенаправляться на конкретный сервер. Шлюз API также может обеспечивать безопасность, например проверку разрешения клиента на выполнение запроса.
Генерация новостной ленты:
Новостная лента для любого пользователя содержит самые свежие, самые популярные и актуальные фотографии людей, на которых подписан пользователь. Если мы будем генерировать новостную ленту в режиме реального времени, это будет очень большая задержка. Итак, попробуем предварительно сгенерировать новостную ленту. Таким образом, почтовый сервис будет хранить фотографии в базе данных. Служба новостных лент предварительно вычисляет ленту для всех пользователей.
Нам нужны определенные серверы, которые бы постоянно генерировали пользовательские новостные ленты и сохраняли их в базе данных. Итак, когда пользователю нужны последние фотографии для ленты новостей, нам нужно запросить таблицу.
Рисунок: Предварительный расчет ленты новостей и уведомление (Изображение автора)Теперь, как пользователь получает последнюю ленту новостей с сервера? Мы можем рассмотреть следующие подходы:
Подход на основе извлечения
В этом подходе каждый пользователь может опросить сервер через регулярные промежутки времени, чтобы проверить, есть ли у кого-либо из друзей новое обновление. Сервер должен найти все подключения пользователей и проверить каждого друга, чтобы создать новый пост. Если есть новые сообщения, запрос к базе данных получит все последние сообщения, созданные соединениями пользователя, и покажет их на своей домашней странице.
Пользователи могут пинговать серверы новостных лент для предварительно сгенерированных лент через регулярные промежутки времени. Чем меньше временной интервал, тем более свежие данные будут найдены в ленте.
Этот подход требует много времени. Поскольку пользователи опрашивают базу данных через регулярные промежутки времени, это создаст огромную ненужную нагрузку на базу данных.
Подход, основанный на отправке
В этом подходе серверы могут отправлять новые данные пользователям, как только они становятся доступными. Пользователи должны поддерживать длинный запрос на опрос сервера для получения обновлений.
Поскольку служба новостей предварительно создает каналы, служба уведомлений будет уведомлять активных пользователей о новых сообщениях. БД сессий будет хранить данные о подключениях пользователей, которые находятся в сети.
Вы можете ознакомиться с различными способами уведомления по этой ссылке.
Мы можем внедрить модель на основе вытягивания для всех пользователей с большим количеством подписчиков. И мы можем использовать push-подход для тех, у кого есть несколько сотен подписчиков.
Пагинация:
Лента новостей пользователей может быть большим откликом. Таким образом, мы можем разработать API для возврата одной страницы фида. Допустим, мы отправляем не более 50 сообщений каждый раз, когда делается запрос фида.
Пользователь может отправить другой запрос на следующую страницу каналов в следующий раз. И в течение этого периода, если ленты недостаточно, лента новостей может сгенерировать следующую страницу. Этот метод называется пагинацией.
Чтобы обеспечить доступность системы, мы использовали репликацию серверов, чтобы другие могли по-прежнему предоставлять услуги, если один из них выйдет из строя. Базы данных также реплицируются для обеспечения надежности данных. так как мы не можем позволить себе потерять данные. Мы можем использовать гибридный подход, основанный на вытягивании и проталкивании для пользовательской новостной ленты. Мы предварительно вычисляем фид, потому что в режиме реального времени это заняло бы много времени.
Ресурс: Grokking the System Design Interview, Video Designing Instagram
Эта статья является частью серии статей о системном проектировании. Ссылки на некоторые статьи этой серии приведены здесь:
Основы проектирования системы: начало работы с кэшированием
Основы проектирования системы: клиент-серверная архитектура
.
Проектирование системы уведомлений с очередями сообщений
Проектирование Instagram: вопрос собеседования по проектированию системы
Что такое Instagram?
Instagram — это социальная сеть для обмена фотографиями и видео, которая позволяет пользователям делиться своими творениями с другими. Оригинальный постер может установить видимость этих сообщений (фото/видео) как частное или общедоступное. Посты могут лайкаться и комментироваться пользователями. Пользователи могут следить и просматривать новостные ленты других пользователей (набор сообщений от пользователей, на которых они подписаны).
Пользователи также могут искать контент по всей платформе. Редактирование изображений, теги местоположения, личные сообщения, push-уведомления, групповые сообщения, хэштеги, фильтры и многое другое доступны в Instagram.
Требования к системе
Функциональные требования
- Пользователи должны иметь возможность загружать и просматривать фотографии.
- Пользователи могут искать фотографии по их названиям.
- Пользователь может быть подписан на других пользователей.
- Создайте настраиваемую ленту новостей для каждого пользователя, которая включает лучшие фотографии всех людей и учетных записей, на которые подписан пользователь.
Нефункциональные требования
- Тяжелое чтение : Соотношение чтения и записи очень велико.
- Ожидается низкая задержка при просмотре фотографий.
- Шаблон доступа к сообщениям : оптимизируйте так, чтобы медиаконтент был легко доступен, когда сообщение получает наибольшее количество взаимодействий.
- Доступно по всему миру : работает на широком спектре устройств, поддерживает множество языков и работает с широким диапазоном пропускной способности Интернета.
- Наша система должна быть масштабируемой и надежной.
Оценка емкости
Важно помнить, что количество запросов на чтение будет в 100 раз больше, чем количество запросов на загрузку (запись). Предположим, что на нашей платформе зарегистрировано 500 миллионов пользователей, из которых 1 миллион активны в день. Если каждый день публикуется 5 миллионов изображений, количество фотографий, загружаемых за одну секунду, составляет:
1 с = 5M / (24*60*60) ≈ 57 фотографий
Если средний размер фотографии составляет 150 КБ, следующее ежедневное использование хранилища:
5M * 150 КБ = 716 ГБ
716 ГБ * 365 * 10 ≈ 2553 ТБ ≈ 2,6 ПБ
Высокоуровневый дизайн
Архитектура
Пользовательская служба управляет регистрацией пользователей, входом в систему и профилем сопутствующие действия. Пользовательский сервис работает в базе данных MySQL, которая выбрана, поскольку данные структурированы относительно реляционным образом. Кроме того, пользовательские данные будут интенсивно читаться, а не записываться, и MySQL будет достаточно для такого шаблона запроса. Пользовательский сервис также связан с базой данных Redis, в которой хранятся все данные пользователя. Когда пользовательский сервис получает запрос, он первым делом ищет его в Redis. Пользовательская служба проверяет базу данных MySQL, вставляет информацию в Redis для будущего использования, а затем возвращает пользователю, если Redis содержит информацию. Кроме того, всякий раз, когда вводится новый пользователь или информация.
Компоненты системы
Система будет состоять из нескольких микросервисов, каждый из которых будет выполнять свою задачу. Данные будут храниться в графической базе данных, такой как Neo4j. Поскольку наши данные будут содержать сложные отношения между элементами данных, такими как пользователи, публикации и комментарии, как узлы графа, мы выбрали графовую модель данных. После этого мы будем использовать ребра графика для записи отношений, таких как подписки, лайки и комментарии, среди прочего. Кроме того, столбцовые базы данных, такие как Cassandra, можно использовать для хранения такой информации, как пользовательские каналы, действия и счетчики.
Общий поток данных и дизайн API
Поток данных
- Пользователь отправляет запрос API.
- Балансировщик нагрузки получает запрос, который затем отправляет его на сервер приложений.
- Этот запрос получен сервером приложений.
- После проверки ввода и очистки сервер приложений пытается выполнить запрос.
- Если все прошло хорошо, сервер приложений выдает положительный ответ с требуемыми данными или без них; в противном случае он отправляет указанный ответ об ошибке.
Дизайн API
регистрация (имя пользователя, первое имя , фамилия с солью пароль хэш, номер телефона, электронная почта, биография, фото)
- добавляет пользователя в таблицу пользователей
логин (логин, пароль с солью хеш)
- войдите в систему и обновите время последнего входа
search_user (строка поиска , авторизация токен)
- вернуть общедоступные данные пользователя для заданной строки поиска (можно искать по имени, фамилии и имени пользователя)
получить пользователя by_id (userid, auth_token)
- вернуть общедоступные данные пользователя для заданного идентификатора пользователя
follow_user (идентификатор пользователя , идентификатор пользователя цели , токен аутентификации )
- Добавить данные отслеживания в БД
add_post (файл, заголовок, идентификатор пользователя , токен аутентификации )
- загрузить файл на сервер хранения файлов
delete_post (идентификатор пользователя , идентификатор сообщения , auth_token)
- удалить сообщение данного пользователя вместе с его метаданными (использовать мягкое удаление).
- удалить сообщение данного пользователя вместе с его метаданными (использовать мягкое удаление).
get_feed (идентификатор пользователя , количество, смещение, метка времени, токен аутентификации )
- возвращать верхние сообщения после заданной метки времени пользователей, за которыми следует данный пользователь в соответствии с количеством и смещением.
получить пользователя сообщений (идентификатор пользователя , количество, смещение, токен аутентификации )
- вернуть посты данного пользователя по количеству и смещению
post_like (идентификатор пользователя , идентификатор сообщения , auth_token)
- добавить указанный идентификатор сообщения в лайки данного пользователя
post_unlike (идентификатор пользователя , идентификатор сообщения , auth_token)
- удалить данный идентификатор сообщения из лайков данного пользователя
add_comment (идентификатор пользователя , идентификатор сообщения , комментарий)
- добавить комментарий, чтобы оставить комментарий пользователя к данному сообщению
delete_comment (идентификатор пользователя , идентификатор комментария )
- удалить данный комментарий пользователя с заданным идентификатором комментария
Проектирование базы данных
В начале собеседования определите структуру базы данных, чтобы помочь понять поток данных между различными компонентами и, в конечном итоге, сегментацию данных.
Данные о пользователях, размещенных ими изображениях и людях, на которых они подписаны, должны храниться. Нам нужен индекс для (PhotoID, CreationDate), поскольку нам нужно сначала получить последние фотографии из таблицы фотографий, в которой будут храниться все данные, связанные с фотографией.
Поскольку нам нужны объединения, простым вариантом хранения вышеупомянутой структуры будет использование РСУБД, такой как MySQL. Однако у реляционных баз данных есть свой набор проблем, особенно когда речь идет о масштабировании. Фотографии можно хранить в распределенной файловой системе, такой как HDFS 5 или S3 10.
Чтобы использовать функции NoSQL, мы можем сохранить вышеупомянутую схему в распределенном хранилище ключей и значений. Все метаданные фотографий могут храниться в таблице с «ключом» «PhotoID» и «значением» объекта, включая PhotoLocation, UserLocation, CreationTimestamp и т. д.
Чтобы узнать, кому принадлежит какая фотография, нам нужно сохранить отношения между пользователями и фотографиями. Нам также нужно отслеживать, за кем следит пользователь. Мы можем использовать хранилище данных с широкими столбцами, такое как Cassandra 28, для обеих этих таблиц. «Ключом» для таблицы «UserPhoto» будет «UserID», а «значением» будет пользовательский список «PhotoID», хранящийся в отдельных столбцах. Таблица «UserFollow» будет следовать аналогичному шаблону.
Cassandra, как и все хранилища ключей и значений, имеет определенное количество реплик для обеспечения надежности. Удаление в таких хранилищах данных также осуществляется не сразу; данные хранятся в течение определенного количества дней (чтобы их можно было восстановить) перед удалением из системы.
Генерация новостной ленты
Генерация новостной ленты
Разработка индивидуальной новостной ленты для каждого пользователя, включающей в себя самые последние сообщения от каждого пользователя, на которого он или она подписан, является одной из наиболее важных потребностей службы, подобной Instagram. Для простоты представьте, что каждый пользователь и его подписчики загружают 200 новых уникальных фотографий в день. В результате новостная лента пользователя будет состоять из комбинации этих 200 уникальных фотографий, за которыми следует репутация предыдущих материалов.
Таким образом, чтобы сгенерировать новостную ленту для пользователя, мы сначала получим метаданные (лайки, комментарии, время, местоположение и т. д.) самых последних 200 фотографий и передадим их алгоритму ранжирования, который определить, как фотографии должны быть размещены в ленте новостей на основе метаданных.
Основным недостатком описанного выше подхода к созданию ленты новостей является то, что он требует одновременного запроса большого количества таблиц и последующего их ранжирования на основе заранее определенных критериев. В результате такой подход приведет к более высокой задержке, т.е. создание новостной ленты займет много времени.
Предварительное создание новостной ленты : Чтобы избежать проблем с описанным выше алгоритмом создания новостной ленты, мы настроим сервер, который заранее создаст уникальную новостную ленту для каждого пользователя и сохранит ее в отдельной таблице новостных лент. С помощью этого метода мы будем просто запрашивать эту таблицу всякий раз, когда пользователь хочет получить доступ к самой последней ленте новостей.
Обслуживание ленты новостей
Теперь мы увидели, как создать ленту новостей. Следующей большой проблемой в дизайне архитектуры Instagram является определение того, как пользователь будет получать сгенерированную ленту новостей.
Push : Один из способов — оповещать всех подписчиков пользователя всякий раз, когда он или она загружает новую фотографию. Мы можем сделать это, используя Long-Pooling.
Потенциальная проблема с этой стратегией заключается в том, что если пользователь следит за большим количеством людей или знаменитостей, серверу придется довольно часто отправлять обновления/доставлять уведомления.
Pull : когда пользователи хотят увидеть новый контент, они обновляют свои новостные ленты (отправляя запрос на включение на сервер). Сложность этой стратегии заключается в том, что новый пост не появится до тех пор, пока пользователи не обновятся, и большинство обновлений возвращают пустые результаты.
Гибридный подход : Гибридная стратегия будет использовать подход на основе вытягивания для всех пользователей с большим количеством подписчиков (знаменитостей) и подход на основе проталкивания для всех остальных пользователей.
Балансировка нагрузки
Для запросов пользователей нам требуется балансировщик нагрузки. Для распределения запросов между серверами приложений мы можем использовать метод циклического перебора. Однако, если сервер недоступен, на него может быть отправлен запрос. В качестве решения мы можем использовать систему сердцебиения, в которой каждый сервер пингует LB с заданным интервалом, чтобы сообщить ему, что он не отключен. Балансировщики нагрузки необходимы для серверов БД и кэша, поскольку они также рассредоточены. Мы можем использовать последовательное хеширование, чтобы решить, какой запрос должен быть отправлен на какой сервер, потому что они оба зависят от пользователя.
Метод наименьшей пропускной способности будет использоваться для распределения нагрузки между серверами. Этот алгоритм выбирает сервер с наименьшим объемом трафика (измеряется в мегабитах в секунду) (Мбит/с).
Балансировщики нагрузки могут быть размещены между:
- Клиентом и сервером.
- База данных и сервер.
В случае каких-либо вопросов и отзывов, не стесняйтесь писать нам по адресу [email protected]. Наслаждайтесь обучением, наслаждайтесь дизайном системы!
Просматривайте тысячи изображений в Instagram, чтобы найти вдохновение для дизайна
Fashion Instagram Stories — Исследование
Посты в социальных сетях
Дизайн социальных сетей
Пост Таниши в Instagram — Разведка
Tik Tik — Интеграция с социальной сетью 💃
Сообщение в социальных сетях
шаблон ленты инстаграм
Дизайн социальных сетей | Сообщение в Instagram | Социальные сети | Баннерная реклама
PalmPalm Брендинг
Фитнес-пост в Instagram — Исследование
Ярко-оранжевая медийная реклама в социальных сетях
Дизайн социальных сетей | Сообщение в Instagram | Социальные сети | Баннерная реклама
Talkin — сообщение в социальных сетях
Sports Bros — Дизайн социальных сетей | Сообщение в Instagram | Баннерная реклама
Sosmad — приложение для социальных сетей
РУМПИ – Сообщение в социальных сетях
ловушка — брендинг
Редизайн Instagram (приложение)
РЕДАКТИРОВАТЬ.