По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Использование REST API является полезной функцией для реализации ваших сценариев. Вы можете получить доступ к новым функциям, а также расширить возможности создания новых, более продвинутых сценариев. Опыт многих пользователей показывает, что, когда начинаешь использовать REST API в скриптах, то чувствуешь себя довольно неуклюже и непривычно. В этой заметке мы обсудим: Что такое REST API Как читать документацию Как использовать API REST с PowerShell Некоторые советы и подсказки, как облегчить и улучшить практику Что такое "REST"? REST, или RESTful API, это API, который использует HTTP запросы для получения, добавления, удаления или манипулирования данными в различных сервисах. Как правило, то, что нужно сделать с данными, решается тем, какой HTTP-метод вы используете. Вот краткий список методов HTTP и их применение в REST API: GET-Read POST-Create PATCH-Partial update/modify PUT-Update/replace DELETE-Remove Данные, которые возвращает API REST, обычно представляются в формате JSON. Теперь давайте начнём с нашего первого API запроса! Что такое API Работа с документацией Для использования различных API REST необходимо научиться читать и интерпретировать документацию. К счастью, если вы знаете, как читать один тип документации, вы сможете быстро научиться читать другие. В этой статье мы используем petstore.swagger.io, так как он использует популярный фреймворк Swagger, который довольно часто используется в разработке. На предыдущем рисунке показана наиболее важная информация о конечных точках REST API: HTTP-метод-GET/POST/DELETE и т.д. URL-адрес, связанный с конечной точкой REST API (Базовый URL, как правило, представлен в верхней части страницы документации) Краткое описание Подробности Первая страница документации просто замечательная, и, как правило, с помощью этой информации можно выполнить большинство запросов, требующих использования метода HTTP GET. Но такие методы, как POST и SET, обычно требуют, чтобы вы щелкнули и развернули строку, чтобы получить больше информации. Если вы нажмете на одну из строк, то получите информацию, которая выглядит так: Здесь мы представили конечную точку REST, которая может создать новый объект pet. Здесь указывается, как должен выглядеть JSON, предоставленный в теле POST, и какой тип контента он принимает. Другие конечные точки REST указывают, что это за параметры, каким типом данных они должны быть и т.д. Это основы для чтения документации. Теперь, когда общие принцип более-менее ясны, пора начать использовать REST API с PowerShell. Получение первых данных (GET) Используя REST API с PowerShell обычно довольно просто, используется встроенные командлеты, таким образом, нет необходимости в дополнительных модулях. Мы собираемся извлечь данные с помощью метода GET в конечной точке /pet/{ petId}. Если развернуть конечную точку /pet/{ petId} в документации, можно увидеть, что {petId} на самом деле является параметром, который принимает целое число. Это делает URL-адрес для выборки объекта pet с идентификатором 1: https://petstore.swagger.io/v2/pet/1 В документации SWAGGER REST API обычно отображается базовый URL-адрес в верхней части страницы. Теперь начнем с PowerShell. Откройте окно терминала и введите: PS51 > Invoke-RestMethod -Method GET -ContentType "application/json" -Uri "https://petstore.swagger.io/v2/pet/1" id : 1 category : @{id=0; name=string} name : doggie photoUrls : {string} tags : {@{id=0; name=string}} status : available Поскольку в ответе от сервера возвращается тип содержимого "application/json" используется метод Invoke-RestMethod, который автоматически преобразует возвращаемый JSON в объект. Ошибка 404 Not found, как правило, означает, что объект не найден или URL-адрес введен неправильно. Итак, мы выполнили первый вызов REST API. Но возможности метода GET для получения данных довольно ограничены, так что давайте создадим что-нибудь с помощью метода POST. Создание объекта методом POST Метод POST чаще всего используется для создания, например, пользователей или записей и т.д. Запрос POST отправляет BODY, содержащий информацию, конечной точке REST, обычно в формате JSON, но он также может быть в виде формы с кодировкой URL. Вы узнаете, как создать объект JSON, который можно отправить в конечную точку/pet. Можно увидеть, как должен выглядеть JSON, если развернуть строку POST/pet в документации. Начнем с создания хэштаблицы, который можно преобразовать в объект JSON. Raw JSON следует избегать в скриптах PowerShell, поскольку он ограничивает его возможности. $Body = @{ id = 19 category = @{ id = 45 name = "Whatever" } name = "Dawg" photoUrls = @( "string" ) tags = @( @{ id = 0 name = "string" } ) status = "available" } Если вам трудно создать хештаблицу, который преобразуется в нужный JSON, установите модуль PsdKit и используйте команду $ JsonString | ThreadTo-Psd Теперь имеется хэш-таблица, которую можно преобразовать в строку JSON и POST в конечную точку/pet: $JsonBody = $Body | ConvertTo-Json $Uri = "https://petstore.swagger.io/v2/pet" Invoke-RestMethod -ContentType "application/json" -Uri $Uri -Method Post -Body $JsonBody id : 19 category : @{id=45; name=Whatever} name : Dawg photoUrls : {string} tags : {@{id=0; name=string}} status : available При создании объекта он обычно получает созданный для подтверждения объект. Использование DELETE. Метод DELETE используется для удаления данных, а применение очень схоже с методом GET. PS51 > Invoke-RestMethod -Method DELETE -ContentType "application/json" -Uri "https://petstore.swagger.io/v2/pet/1" Только убедитесь, что не удалите ничего важного Использование PUT Метод PUT используется для обновления данных. Это делается аналогично методу POST путем представления полного или частичного объекта JSON: PS51> $Body = [PSCustomObject]@{ id = 19 name = "Dawg with a new name" } PS51> $JsonBody = $Body | ConvertTo-Json PS51> $Uri = "https://petstore.swagger.io/v2/pet" PS51> Invoke-RestMethod -ContentType "application/json" -Uri $Uri -Method PUT -Body $JsonBody id name photoUrls tags -- ---- --------- ---- 19 Dawg with a new name {} {} Обычно API REST возвращает объект JSON с использованными и/или обновленными данными. Можно увидеть, что объект был обновлен с помощью метода GET: PS 51> Invoke-RestMethod -ContentType "application/json" -Uri "https://petstore.swagger.io/v2/pet/19" id : 19 category : @{id=45; name=Whatever} name : Dawg with a new name photoUrls : {string} tags : {@{id=0; name=string}} status : available Создание функций Писать эти команды каждый раз вручную может стать довольно утомительным и на самом деле не масштабируемым. Если мы вызываем конечную точку несколько раз, то лучше создать для нее функцию. Это довольно просто и нужно написать всего несколько строк: Function Get-PetstorePet { [cmdletbinding()] param( # Id of the pet [Parameter(Mandatory,ValueFromPipeline)] [int]$Id ) Begin{} Process{ $RestMethodParams = @{ Uri = "https://petstore.swagger.io/v2/pet/$Id" ContentType = "application/json" Method = "GET" } Invoke-RestMethod @RestMethodParams } End{} } После создания функции ее можно вызвать в сценарии: PS51> Get-PetstorePet -Id 1 id name photoUrls tags -- ---- --------- ---- 1 Doggie {http://picture.url} {} Это можно сделать и для метода POST для создания нового объекта pet в Petstore: Function Add-PetstorePet { [cmdletbinding()] param( # Id of the pet [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [int]$Id, # Name of the pet [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string]$Name, # Status of the pet (available, sold etc) [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string]$Status, # Id of the pet category [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [int]$CategoryId, # Name of the pet category [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string]$CategoryName, # URLs to photos of the pet [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string[]]$PhotoUrls, # Tags of the pets as hashtable array: @{Id=1;Name="Dog"} [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [Hashtable[]]$Tags ) Begin{} Process{ $Body = @{ id = $Id category = @{ id = $CategoryId name = $CategoryName } name = $Name photoUrls = $PhotoUrls tags = $Tags status = $Status } $BodyJson = $Body | ConvertTo-Json $RestMethodParams = @{ Uri = "https://petstore.swagger.io/v2/pet/" ContentType = "application/json" Method = "Post" Body = $BodyJson } Invoke-RestMethod @RestMethodParams } End{} } И вызов этой функции PowerShell намного упрощает задачу: PS51> $AddPetStorePetsParams = @{ Id = 44 Name = "Birdie" Status = "available" CategoryId = 50 CategoryName = "Hawks" PhotoUrls = "https://images.contoso.com/hawk.jpg" Tags = @( @{ Id=10 Name="Not eagles" } ) } PS51> Add-PetStorePet @AddPetStorePetsParams id : 44 category : @{id=50; name=Hawks} name : Birdie photoUrls : {https://images.domain.com/hawk.jpg} tags : {@{id=0}} status : available Возможно, что многие модули, которые вы ежедневно используете, состоят из функций, который за кулисами используют REST API. Заключение Обучение работы с REST API, главным образом основано на чтении документации. Мы использовали документацию на основе SWAGGER в этом посте, так как она представляет, как могут выглядеть другие стили документации. Кроме того, преобразование вызовов API в функцию может сэкономить много времени, упростить работу и очистить сценарии.
img
Kubernetes и Red Hat OpenShift сегодня являются двумя ведущими инструментами оркестрации контейнеров на рынке. В этой статье мы обсудим эти инструменты и различия между ними. Большинство производственных сред начали использовать контейнеры, поскольку они легко масштабируемы, экономичны, лучше, чем виртуальные машины, и быстрее развертываются. Конечно, проще работать с 10-20 контейнерами, но представьте, если ваша производственная среда кластера Kubernetes имеет сотни контейнеров. Управление жизненным циклом контейнера с параллельным запуском нескольких контейнеров становится сложной задачей. Поэтому для управления всем автоматизированным развертыванием, масштабированием, организацией и управлением контейнерами необходима платформа/инструмент для управления контейнерами. Сравнение Kubernetes с OpenShift было бы несправедливым, поскольку эти инструменты оркестровки контейнеров представляют собой два разных проекта. Kubernetes - проект с открытым исходным кодом, в то время как OpenShift - продукт предлагаемый Red Hat. Сравнивать Kubernetes с OpenShift - все равно что сравнивать двигатель автомобиля с автомобилем. Это связано с тем, что сам Kubernetes является основной частью общей архитектуры OpenShift. Сначала кратко разберемся, что такое Kubernetes и OpenShift. Что такое Kubernetes? В настоящее время Kubernetes является наиболее популярным инструментом оркестровки контейнеров с открытым исходным кодом и широко используется для автоматического развертывания и масштабирования контейнеров. Этот инструмент с открытым исходным кодом был создан в 2014 году компанией Google и разработан облачным вычислительным фондом с использованием языка программирования Go. Kubernetes имеет архитектуру master-slave, в кластере Kubernetes есть главный узел и множество рабочих узлов. Внутри каждого рабочего узла будет работать несколько деталей, которые представляют собой не что иное, как группу контейнеров, объединенных как рабочая единица. Kubernetes использует YAML для определения ресурсов, отправляемых на сервер API для создания самого приложения. Преимущества Kubernetes Поскольку Kubernetes имеет открытый исходный код, он может свободно использоваться для любой платформы Имеет огромное активное сообщество разработчиков и инженеров, что помогает непрерывно разрабатывать новые функции Для избегания простоев вы можете легко выполнить откат или новое развертывание Для распределения сетевого трафика он предлагает возможности балансировки нагрузки Он поддерживает различные языки и структуры программирования, что обеспечивает гибкость для разработчиков и администраторов Kubernetes помогает очень эффективно использовать ресурсы инфраструктуры и сокращать общие затраты Она поставляется с панелью мониторинга по умолчанию, которая предлагает кучу информации, достаточной, чтобы следить за состоянием кластера. Red Hat OpenShift OpenShift - контейнерная платформа корпоративного уровня, разработанная Red Hat. Написан на языках программирования Go и AngularJS, а первоначальный релиз вышел в 2011 году. Red Hat OpenShift можно использовать как для облачных, так и для традиционных приложений. За кулисами Red Hat OpenShift работает Kubernetes, что позволяет запускать приложения внутри контейнеров. OpenShift поставляется с панелью веб-интерфейса и CLI, которая помогает разработчикам и программистам создавать свои коды приложений. Это также позволяет инженерам DevOps управлять и контролировать кластер Kubernetes. Преимущества Red Hat OpenShift: Поддерживает инициативу открытых контейнеров (OCI - open container initiative) для размещения контейнеров и среды выполнения Содержит множество исправлений проблем безопасности, дефектов и производительности Может быстро и гибко создавать и развертывать приложения Легко интегрировать со многими другими инструментами DevOps Проверяет несколько подключаемых модулей сторонних производителей для каждой версии Использование унифицированной консоли на Red Hat позволяет быстро внедрять и применять политики Поддерживает Prometheus и Grafana, что помогает в мониторинге кластера Его можно легко использовать с любым поставщиком облачных технологий или в локальной среде. OpenShift против Kubernetes 1. Открытый исходный код по сравнению с коммерческим Наиболее фундаментальное отличие Kubernetes от OpenShift заключается в том, что Kubernetes - проект с открытым исходным кодом, а OpenShift - коммерческий продукт корпоративного уровня. Это означает, что Kubernetes является самоподдерживаемым инструментом. В случае, если в этом инструменте выявлена какая-либо проблема или ошибка, люди обращаются к сообществу Kubernetes, которое состоит из многих разработчиков, администраторов, архитекторов и т. д. В то время как в OpenShift вы получаете хороший платный вариант поддержки для устранения любой проблемы с этой подпиской на продукт Red Hat. Подписка OpenShift позволяет управлять общедоступной, частной и виртуальной инфраструктурой с помощью Red Hat CloudForms. 2. Развертывание Развертывание приложения в производственной среде является решающим этапом процесса DevOps, и OpenShift делает его очень простым. Он автоматически выполняет каждый шаг от разработки до развертывания, поэтому вам не нужно беспокоиться о каждом шаге в конвейере CI/CD, чтобы сделать все вручную. Даже будучи новичком, вы будете чувствовать себя очень комфортно, используя OpenShift при конвеерном развертывания приложений. В OpenShift развертывание выполняется с помощью команды DeploymentConfig. С другой стороны, развертывание в Kubernetes сложнее и часто выполняется только экспертом. Необходимо настроить каждый шаг конвейера для развертывания приложения вручную. В случае развертывания приложений в Kubernetes используются объекты развертывания и могут обрабатывать несколько параллельных обновлений. 3. Управление В Kubernetes можно управлять кластером с помощью панели мониторинга по умолчанию. Но из-за его ограниченных возможностей и базового пользовательского интерфейса, по мере роста размера кластера, чтобы легко управлять кластером вам придется добавить более расширенные инструменты, такие как Istio, Prometheus, Grafana. Red Hat OpenShift предоставляет удобную панель управления кластером. Веб-консоль OpenShift предоставляет возможности для выполнения некоторых расширенных операций в кластере для улучшения управления. OpenShift также предлагает интегрировать кластер со стеком EFK и Istio. И, наконец, доступные в OpenShift плейбуки Ansible и установщик помогают плавно управлять кластером. 4. Масштабируемость Независимо от того, является ли кластер виртуализированным или он развернут на голом железе, в нем будет несколько виртуальных машин. В Kubernetes добавление виртуальных машин занимает много времени. Он требует от разработчиков создания для него сценариев YAML. Тогда как в OpenShift масштабирование выполняется без особых усилий. OpenShift позволяет быстрее выводить виртуальные машины в кластер с помощью доступных установщиков и плейбуков Ansible. Кроме того, процесс масштабирования в OpenShift тоже прост. 5. Гибкость Kubernetes поставляется с большой гибкостью, так как нет фиксированного способа работы с ним. Для запуска Kubernetes можно использовать любую операционную систему с большими ограничениями. Kubernetes помогла многим организациям выйти из устаревших архитектур, поскольку они не отвечали текущим потребностям рынка. При работе с OpenShift нельзя использовать все операционные системы. В OpenShift можно использовать только дистрибутивы Red Hat, FedoraOS и CentOS. 6. Безопасность Политики безопасности в OpenShift строже по сравнению с Kubernetes. Например, OpenShift не позволяет запускать контейнеры как корневые. Это также ограничивает использование пользователями многих официальных образов, представленных на DockerHub. Итак, во время работы с OpenShift сначала нужно будет узнать о его политиках безопасности. Но из-за этих ограничений, возможности аутентификации и авторизации в OpenShift более надежны, чем Kubernetes. В то время как в Kubernetes настройка надлежащей возможности аутентификации и авторизации потребует много усилий. В отличие от OpenShift, кластеры Kubernetes могут иметь много уязвимых образов, если в кластер не интегрированы средства сканирования контейнеров. Kubernetes предлагает функции управления доступом на основе ролей (RBAC - role-based access control), но этого недостаточно для расширенного уровня безопасности, необходимого в производственных средах. Так, по сравнению с OpenShift, в Kubernetes ещё предстоит сделать много улучшений в плане безопасности. 7. Веб-интерфейс Для выполнения всей работы по администрированию кластера необходим подходящий и простой в использовании веб-интерфейс, что и предлагает OpenShift. У него есть простая форма аутентификации для каждого пользователя. После входа пользователь получает полную визуализацию кластера, которую очень легко прочитать и понять. OpenShift имеет удобную веб-консоль, которая позволяет инженерам DevOps выполнять задачи Kubernetes, а операционным группам - комфортно контролировать приложение. Элемент управления имеет несколько возможностей типа построения, развертывания, обновления, масштабирования, раскрытия и т.д., которые могут быть реализованы одним нажатием кнопки. Kubernetes поставляется с базовой панелью управления, которая может помочь только с основными задачами. Кроме того, панель мониторинга не очень удобна для пользователей по сравнению с другими панелями мониторинга, доступными на рынке. Именно поэтому инженеры DevOps предпочли бы интегрировать инструментальную панель Kubernetes по умолчанию с другими инструментами визуализации, такими как Prometheus и Grafana. Подводя итог, приведем таблицу различий между Red Hat OpenShift и Kubernetes: ОтличияKubernetesOpenShiftРазработчикCloud-Native Computing FoundationRed Hat SoftwareДата первого релиза7 июня 20144 мая 2011Язык программированияGoGo, Angular, JSУправлениеСложное управления контейнерамиИспользование ImageStreams для упрощения управления несколькими контейнерамиРазвертываниеПоддерживает все облачные и Linux платформыПоддерживает только дистрибутивы на базе RedHat: CentOS и FedoraГибкостьС открытым исходным кодом, соответственно гибкийОграниченная гибкостьБезопасностьМожно легко управлять уровнем безопасностиСтрогие политики безопасностиСетевая поддержкаЕму не хватает хорошего сетевого решения, но он позволяет добавлять сетевые плагины сторонних производителей.Поставляется с собственным сетевым решениемОбучениеСложен для начинающих, больше подходит для профессиональных DevOpsПодходит для начинающих Заключение Все дело было в Kubernetes, OpenShift и их различиях. Обе платформы оркестрации контейнеров востребованы в ИТ-отрасли. Таким образом, в зависимости от ваших требований, вы можете выбрать наиболее подходящую платформу оркестрации контейнеров для вашей организации. Если вам нужна гибкость с вашими проектами, то скорее всего должны выбрать Kubernetes. Но если вы можете следовать определенному подходу и хотите использовать платформу оркестрации контейнеров с простотой развертывания и управления, OpenShift - лучший выбор. Так же если вы уже опытный DevOps и хотите попробовать что-то новое, то можно попытаться перейти на Kubernetes. Если же делаете первые шаги на поприще DevOps, выберите OpenShift, так как он сделает большую часть дел за вас.
img
Друг, начнем с цитаты: Redis – это высокопроизводительная БД с открытым исходным кодом (лицензия BSD), которая хранит данные в памяти, доступ к которым осуществляется по ключу доступа. Так же Редис это кэш и брокер сообщений. Надо признаться, определение не дает точного понимания, что же такое Redis. Если это так круто, то зачем вообще нужны другие БД? На самом деле, Redis правильнее всего использовать в определенных кейсах, само собой, зная про подводные камни – именно об этом и поговорим. Про установку Redis в CentOS 8 мы рассказываем в этой статье. Redis как база данных Говорим про случай, когда Redis выступает в роли базы данных: Пару слов про ограничения такой модели: Размер БД ограничен доступной памятью Шардинг (техника масштабирования) ведет к увеличению задержки Это NoSQL - никакого языка SQL LUA скриптинг в качестве альтернативы Это нереляционная СУБД! Нет сегментации на пользователей или группы пользователей. Отсутствует контроль доступа Доступ по общему паролю. Что скажут ваши безопасники? Теперь про преимущества модели: Скорость Хранение данных в памяти делает быстрее работу с ними Скрипты на LUA Выполнение прямо в памяти, опять же, ускоряет работу Удобные форматы запросов/данных Geospatial – геоданные (высота, ширина, долгота и так далее) Hyperloglog – статистическе алгоритмы Hash – если коротко, то хэш в Redis делают между строковыми полями и их значениями Алгоритмы устаревания данных Примеры использования Представь, у нас есть приложение, где пользователям необходимо авторизоваться, чтобы выполнять какие – либо действия внутри приложения. Каждый раз, когда мы обновляем авторизационные данные клиента, мы хотим их получать для последующего контроля. Мы могли бы отправлять лист авторизационных параметров (с некими номерами авторизаций, сроком действия с соответствующими подписями), чтобы каждое действие внутри приложения, сопровождалось авторизацонной транзакцией из листа, который мы прислали клиенту. С точки зрения безопасности, в этом подходе нет ничего плохого, если мы храним на своей стороне данные в безопасности и используем Javascript Object Signing and Encryption (JOSE), например. Но проблема появится в том случае, когда наш пользователь имеет более одной авторизации внутри приложения – такие схемы плохо поддаются масштабированию. А что если вместо отправки листа авторизационных параметров, мы сохраним его у себя, а пользователю отправим некий токен, который они должны отправлять для авторизации? Далее, по этому токену, мы легко сможем найти авторизации юзера. Это делает систему гораздо масштабируемой. Redis, такой Redis. Итого, для указанной выше схемы, мы хотим: Скорость Мы не хотим, чтобы пользователь долго ожидал авторизации Масштабирумость системы Сопоставление ключа (токена) с авторизациями юзера А вот, что на эти вызовы может ответить Redis: Redis хранит данные в памяти – он быстрый. Redis можно кластеризовать через компонент Sentinel. Масштабируемость? Пожалуйста. В Redis куча вариантов хранения списков. Самый простой будет являться набором данных. В качестве бонуса от Redis, вы получите механизм экспайринга токенов (устаревания). Все будет работать. Redis как кэш! Redis почти заменил memcached в современных приложениях. Его фичи делают супер – удобным кэширование данных. Ограничения: Значения не могут превышать 512 МБ Отсутствует искусственный интеллект, который будет очищать ваше хранилище данных Профит: Совместное использование кэша разными сервисами по сети Удобные фичи, такие как LUA скриптинг, который упрощает работы с кэшом Временные ограничения для данных Еще один кейс Предположим, перед нами такая задача: приложение, отображает пользователям данные с определенными значениями, которые можно сортировать по множеству признаков. Все наши данные хранятся в БД (например, MySQL) и показывать отсортированные данные нужно часто. Дергать БД каждый раз весьма тяжело и ресурсозатратно, а значит, нам нужно кэшировать данные в отсортированном порядке. Окей, кейс понятен. Рэдис, что скажешь на такие требования? Кэш должен хранить сортированные наборы данных Нам нужно вытаскивать наборы данных внутри наборов данных (для пагинации, например, то есть для переключения между страницами) Это должно быть быстрее, чем пересчет данных с нуля Что скажет Redis: Хранить наборы данных - легко Может вытаскивать сабсеты из наборов - легко Конечно быстрее. Ведь данные хранятся в памяти Redis как брокер сообщений Редис может выступать в качестве брокера сообщений. Схема обычная и весьма базовая - publish–subscribe (pub/sub), или как можно перевести на русский язык «Издатель - подписчик». Как и раньше, давайте обсудим плюсы и минусы, хотя их тут и не так много. Минусы: Только тривиальная модель pub/sub Отсутствие очередей сообщений Ну а плюсы, как обычно для Редиса – скорость и стабильность. Кейс напоследок Простой пример – коллаборация сотрудников одной компании. Предположим, у них есть приложение, где они работают над общими задачами. Каждый пользователь делает свой набор действий, о котором другие пользователи должны знать. А так же, юзеры могут иметь разные экземпляры приложений – десктоп, мобильный или что то еще. Требования по этой задаче: Низкая задержка Мы не хотим иметь трудности в процессе совместной работы сотрудников Стабильная работа и непрерывность Масштабирование Кампания растет и развивается Редис, твой выход! Низкая задержка – да, говорили об этом ранее Стабильность – минимальное количество точек отказа в Redis Стабильная работа и непрерывность Масштабирование – сделаем кластер, нет проблем. Выводы Redis - крутая штука, которая позволяет объединять сервисы и следовать 12 принципам приложений. Для приложений, в которых нагрузка ориентирована на быстрое изменение наборов данных и высокая безопасность данных не имеет завышенных требований – Redis прекрасный выбор. Если данные нуждаются в усиленной защите, Редис подойдет в меньшей степени, лучше посмотрите в сторону MongoDB или Elasticsearch.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59