Облако нативные Времена | распределенные системы карта дизайн знания (с 22 точек знаний)

файл
Мы были в полном компьютерном возрасте распределенных системных решений, независимо от того, или не популярной концепции сокровища, микро-канал так, чтобы верхние продукты потока, или блок цепь, ВГД и т.д., или полный ход контейнера экологических технологий, таких как Kubernetes, технология архитектура ядро ​​позади распределенные системы неотделимы друг от друга.

Для того, чтобы понять, почему распределенную архитектуру

Распределенные методы проектирования системы обучения архитектуры для роста человека имеет решающее значение для облачных нативных разработчиков, как разработать приложение отвечает облако родной философии дизайна распределенных систем часто неотделимых от использования знаний и методологии. Как создать очень гибкая, настраиваемые, распределенный, высокопроизводительное, отказоустойчивая, более безопасная, более твёрдость, родное приложение быстрая доставки часто является важным эталоном мера разработчиков.

И тогда распределенная система является большим понятием, глубокие знания, которые могут быть использованы в различных ракурсах проектирования архитектуры, разработки технологических процессов, эксплуатации и техническому обслуживанию, развертывание инженерной эффективности и т.д. являются изучение затрат и сделать относительно большой. Последние консолидации в прошлом и читать некоторые книги и статьи, связанные распространена вместе с их собственного опытом распределенной разработки, чтобы поделиться с вами некоторыми из бумаги, как открытие, в целом дает обзор знаний, в сочетании с последующими статьями будут разделено на кодирование практики разработать. Редакционный короткий, ограниченный уровень, поприветствовал всех, чтобы узнать, поправьте меня.

Распределенные системы Big Picture

Во-первых, дизайн

Режим шлюза, шлюз

функция

  • Запрос маршрутизации, клиент непосредственно вызов через шлюз, шлюз отвечает за маршрутизацию, чтобы направить регистратору
  • Регистрационная служба, фоновая служба регистрация API, шлюз отвечает за маршрутизацию
  • Балансировка нагрузки, поддержка нескольких стратегий нагрузки
    • по-круговой
    • Алгоритм Random балансирование
    • Multi-вес груза
    • сессия спайки
    • другое
  • Функции безопасности, поддержка HTTPS, аутентификации учетной записи, а также другие функции безопасности
  • Серый опубликовывать, вы можете сделать серую версию для службы или других характеристик освобождения арендатора
  • полимеризации по API, полимеризация множество интерфейса бэкэнда, уменьшая количество клиентских вызовов
  • API, гармоническое сочетание, чтобы завершить размещение серии из множества конкретной услуги по API

Дизайн очки

  • Наличие, необходимо обеспечить высокую доступность
  • Масштабируемость, гибкость расширения для поддержки конкретных услуг, таких как конкретное управление бизнесом-потока
  • Высокая производительность, как правило, с использованием асинхронной модели рамки ввода-вывода для достижения, такие как Java Нетти, Go Channel
  • Безопасные, зашифрованные сообщения, такие как, аутентификация и другие защиты от DDOS
  • Эксплуатация и техническое обслуживание
    • Мониторинг приложений, в том числе мощности, производительности, обнаружение аномалий
    • Упругое растяжение, высокая гибкость и способность справиться с пиковым значением при низких затратах
  • архитектура
    • И развязка операции, обеспечивая расширенный механизм расширения, такие как плагин, Serverless поддерживают идею фоновым бизнеса
    • Изоляция службы, может быть разделена в соответствии со шлюзом фоновых услуг, так что различные службы используют разные шлюзы
    • Шлюз развертывается вблизи заднего конца, чтобы обеспечить минимальные потери сети, лучшее исполнение

      Режим коляски, коляска

      значение

  • Контроль разделения логики, дискретная бизнес-логика и маршрутизация, управление потоком, плавление, идемпотентный, открытие услуга, такие как аутентификация узел управления
  • Применяемая сцена
    • Преобразование старой системы расширения, боковая панель и обслуживание процесса процессы развернуты в том же самом узле, протокол сети связи
    • Расширение распределенной системы нескольких языков гибрид
    • Заявки, представленные сторонами

      Дизайн очки

  • Стандартное соглашение о предоставлении услуг, Sidebar к службе, Sidebar Sidebar соглашение как можно отвязать язык
  • Логика управления, например, полимерное управление потоком, сплавление, идемпотент, повторите, бизнес-логику, чтобы уменьшить
  • Не используйте службы инвазивный способ межпроцессного взаимодействия, такие как семафоры, разделяемая память, приоритетное использование местных средств сети связи, такие как HTTP или TPCP

    Service Grid, Service Mesh

    Следующее поколение архитектуры микро-сервис, природа между коммуникацией слоя сервисной инфраструктуры.

    файл
    диаграмма

    особенность

  • Inter-приложений связи промежуточный слой
  • Легкий Агент
  • Развязывающие приложения
  • Нет, известно применение

    Mainstream рамки

  • то же
  • неловкий человек

    Распределенные блокировки

    Решения

  • Redis распределенной блокировки, SETNX значение ключа PX expiretime
    • генерирования значения, предпочтительно глобально уникальный пример TraceID, могут быть использованы / DEV / urandom генерируется
    • expiretime миллисекунды, истек срок действия автоматически освободить фиксатор, держатель замка для обеспечения конкуренции за ресурсы, чтобы завершить вычисление времени истечения
  • Пессимистический замок, чтобы получить блокировку, то операция пропускной способности нижней
  • Оптимистическая блокировка, используйте номер версии способов, высокие пропускную способность, замок может появиться ненормальным, случаем для мульти-чтения
  • CAS, изменить общий источник данных в кадре может быть заменен на Distributed блокировки

    Дизайн очки

  • Исключительный, только один клиент может быть в любом состоянии приобрести замок
  • Автоматический шаблон снятия блокировки, например, выпуск тайм-аута
  • Замки должны быть очень доступны, и настойчивость
  • И замок без блокировки должен быть возвратным
  • Избегайте тупиковую ситуацию, клиент в конечном итоге будет иметь возможность приобрести замок, замок не может быть освобожден ненормальная ситуация не существует
  • Кластерный допуск вина, кластеризация часть машины не удается, операция блокировки по-прежнему доступна

    Center Configuration

  • Статическая конфигурация, окружающая среда и настройка программного обеспечения
  • Динамическая конфигурация, время выполнения динамической регулировки конфигурации в качестве регулятора потока выключателя, плавких выключателей и т.д.

    Асинхронные связи

  • По требованию типа, отправитель посылает запрос непосредственно получателю
    • Активный отправитель опроса
    • Зарегистрировать функцию обратного вызова отправитель, получатель после завершения процесса обратного вызова отправителя
  • Событийный дизайн (EDA)
    • Подписка на новости, объявил подписку отправителя, получателя и потребителя новостей
    • Брокер-посредник выпуск Брокера направление передачи сообщения, принимающее направление Брокер подписка сообщение, развязан друг от друга, например, промежуточного программного обеспечения RocketMQ
    • Управляемые событиями преимущества дизайна
      • Обслуживание номеров полагается лифт
      • Высокая степень изоляции Услуги

        идемпотентность

  • Не является по существу операцией, независимо от того, сколько раз выполняется, результаты всегда одинаковы
  • Ядро питания глобально уникальный идентификатор, ссылка ID сделать в соответствии с глобальной власти и так далее, в зависимости от сложности бизнеса можно выбрать различные реализации
    • Поскольку рост ID базы данных
    • Локально генерируется UUID
    • Redis производство идентификатор
    • Twitter с открытым исходным кодом алгоритм Снежинка
  • HTTP идемпотентная добавление POST, HEAD, GET, OPTIONS, DELETE, PUT удовлетворяют идемпотент

    Во-вторых, производительность

    распределенный кэш

  • Режим обновления кэша
    • Cache Кроме, общий режим, приложение не может поддерживать кэш, хит, обновление и другие мероприятия
    • Чтение / запись через, операции кэширования обновления базы данных прокси, только точки зрения приложений один для хранения
    • Опережающая запись кэша, один из режима ускорения ввода-вывода, обновление завершено только в закрытом бета-версии, обновление базы асинхронным насыпной

      асинхронная обработка

  • Нажмите модель, диспетчерские центры, высокая сложность
  • модель потянет, не ЦДУ, сложность дна
  • Нажмите + модель Толкай

    Расширенная база данных

  • фрагментация базы данных
    • Вертикальные срезы
      • Разделить поле, поле будет меняться в разных частотах разделяется на разные таблицы
    • уровень Slice
      • Хеш алгоритм точек, дискретные данные является высоким, уменьшая возможность горячих точек
      • По времени нарезки, чтобы обеспечить непрерывность данных
      • Разделенные по типу сервиса, такие как классификация данных, разделение жилец
    • дизайн Фрагмент точки
      • Для того, чтобы обеспечить достаточное пространство фрагментации, избежать повторного дробления
      • Параллельно фрагменты полимеризации сделать
      • Не делать бизнес по ломтику дела как можно больше

        В-третьих, отказоустойчивые

        Доступность системы

  • MTTF, наработка на отказ, среднее повреждения операционной системы происходит до тех пор, дольше, тем лучше
  • MTTR, среднее время восстановления, среднее время ремонта неисправности, короче, тем лучше
  • Наличие формула расчета, Наличие = MTTF / (MTTF + MTTR)

    Услуги понижены

  • Уменьшить консистенцию
    • Сильная непротиворечивость, согласованность все синхронное переключение на возможную последовательность, повышение пропускной способности
    • Слабая согласованность, последовательность, когда необходимая жертва в обмен на общую надежность обслуживания
  • Закрыть вторичное обслуживание
    • Различные приложения, закрытое вторичное применение, освобождение ресурса физического
    • Же приложение, закройте вторичную функцию приложения, дают больше ресурсов для основной функциональности
  • Упростить услуги
    • Оптимизации бизнес-процессов, сокращение передачи данных

      Ограничение услуг

  • Ограничение назначения
    • Один из способов гарантировать SLA
    • Сделка с неожиданным движением пиков колючек, до некоторой степени, экономия мощности планирования
    • Один арендатор стратегии изоляции, чтобы избежать некоторых пользователей, занятых другими пользователями ресурсов, что привело к широкому спектру услуг, не доступных
  • Ограничение пути
    • Услуги понижены
    • Отказ в обслуживании
  • Решения
    • Услуги весовой категории, многопользовательских сред вес, деленный на ресурсы, чтобы обеспечить важный ресурс клиента
    • задержка обработки, Услуги очереди буфера задержки дополнительное давление службы, для отсечения
    • Упругое растяжение службы, в зависимости от службы мониторинга, упругая и эластичной емкость
  • Алгоритм управления потоком
    • счетчик
      • Сохранение один кластер или пользователь запрашивает определенный период времени, достигает порогового значения срабатывания управления потоком
    • алгоритм Queue
      • очередь FIFO
        • Запрос колебание скорости, даже потребление скорости, очередь управления потоком полная
      • Взвешенная очередь
        • К услугам разделения приоритетной очереди, различные очереди различных весов
      • Очереди алгоритма ключ конструкции: длина очереди по умолчанию является критической
        • Очередь слишком долго, управление потоком не действует, служба была убита
        • Очередь слишком коротка, управление потоком срабатывает часто испытывают бедные
    • алгоритм Воронка
      • + Очередь, по существу, реализован ограничитель, ограничитель потока, чтобы обеспечить равномерную скорость потребления на основе протокола TCP накопившихся синхронизации
      • Forwarding скорость равномерной
    • Token Bucket
      • Посредник была постоянная скоростью до выдачи маркеров ведра, запрос на услугу, чтобы получить маркер запуск службы, или не иметь дело с
      • Скорость движения вперед неравномерно, движение час накопление, большой расход потока
    • Динамическое управление потоками
      • Возможности КООТ, такие как в режиме реального времени вычислительных услуг, сравнение сервис RT RT, если слишком большой, снижение запросов в секунду
  • Дизайн очки
    • Ручной переключатель режима и техническое обслуживание, а также использование аварийного активного
    • Уведомление Мониторинг, когда ограничение возникновения заинтересованных сторон, чтобы быть ясно,
    • восприятие пользователя, например, возврат конкретного сообщения об ошибке (код ошибки / ошибка)
    • Идентификатор ссылки, RPC-идентификатор ссылки добавлен, чтобы облегчить ограничитель потока вниз по течению операции делает различные сцены идентификации потока обработки ограничителя

      конструкция предохранителя

  • сцена
    • Защита от перегрузки, нагрузка на систему слишком высока, чтобы предотвратить случаи отказа генерировать, принимать
    • Приложения продолжают пытаться предотвратить операции может произойти сбой
  • Три состояния
    • Закрытое, закрытое состояние, нормальное состояние, система требует времени линии на основе счетчика ошибок, если накопленная ошибка достигает порога переключается в состояние Open
    • Open, разъединение состояние, все сервисный запрос возвращает ошибку сразу, без вызова фоновой службы рассчитываются
    • Полуоткрытые, полуоткрытое состояние, позволяя ввод трафика и часть обработки запроса, если запрос успешно хэндовер в закрытом состоянии в соответствии с некоторой стратегией
  • Дизайн очки
    • Defined вызвать предохранитель неправильного типа
    • Все вызывают предохранитель плохого запроса должны быть унифицирован вывод журнала
    • Механизм предохранителя должен иметь диагностики обслуживания и автоматическое восстановление
    • Он предпочтительно установлен ручной механизм переключатель предохранителя для коммутации трех состояний
    • Предохранитель быть раздробленным бизнесом, делать бизнес изоляцию предохранителя

      Компенсирующие сделки

  • КОЛПАЧОК
    • Последовательность (Консистенция), доступность (Availability), толерантность раздела (Partition Tolerance)
  • БАЗА
    • Основные Availabillity, основной доступен
    • Мягкое государство, мягкое состояние
    • Eventual Последовательность, в конечном итоге консистенция
  • Дизайн для Failure
  • Экспоненциальный Blackoff, экспоненциальная потеря мощность

    Четыре, DevOps

    развертывание

  • инфраструктура
    • облако
      • Открытое облако
      • Частное облако
      • Гибридные облака
    • технология Container
      • докер
      • Kubernetes
  • Стратегия развертывания
    • развертывание Stop
    • Свиток развертывания
    • Сине-зеленый развертывания
    • Развертывание серой шкалы
    • Тест / B

      управление конфигурацией

  • анзибль
  • Марионетка
  • транспортируемого

    монитор

  • Nagios
  • DynaTrace

    CI данный CD

    В-пятых, эффективность инженерного

    Agile Управление

  • Scrum

    Непрерывная интеграция

  • Дженкинс
  • CodeShip

    Непрерывная поставка

Написанная в последний

Распределенные системы имеют широкий спектр экономических приложений Alibaba, эластичная техническая команда, в которой автор, например, когда бизнес в достаточно широком масштабе, технические проблемы, с которыми столкнутся в финале практики круглых концепциями и методами распределенной архитектуры систем решить, можно сказать, что знание и методология распределенной системы архитектура текущие крупномасштабные интернет-приложений общие решения.

Научитесь распределенная система проектирования не делается в одночасье, мы должны продолжать изучать теоретические знания, а затем перейти к теории на практике, и, в конечном счете, чтобы максимизировать ценность знаний путем настройки снова и снова. Окончательное предложение является первой теорией автора, после практики, практики тяжелых, не ставит под угрозой, так называемые бумаги приходят Zhongjue знает, эта практика имеет важное значение, и король взаимной поддержки.


«Alibaba Cloud родной микро-общественный канал номер (ID: Alicloudnative) сосредоточить внимание на микро-сервисе, Serverless, контейнер, служба сетка и другие технические области, сосредоточив внимание популярных тенденции технологии в облаке родного, облако родная крупномасштабная посадка практика, как и большинство понимает облако нативных разработчиков технология общедоступный номер ".

рекомендация

отwww.cnblogs.com/alisystemsoftware/p/11589349.html