Рубрики
Uncategorized

Что такое DAPR?

Добро пожаловать обратно в серию DAPR! В прошлый раз мы говорили о проблемах получения программного обеспечения прямо … Теги от распределенныхSystems, Kubernetes, Docker, DevOps.

DAPR (серия 3 части)

Добро пожаловать обратно в серию DAPR!

В прошлый раз мы говорили о проблемах получения программного обеспечения права. Если вам нужна быстрая освежайка:

  • Самая легкая вещь о программном обеспечении написано это
  • Следующее самое сложное получение правильно
  • Самое сложное не врезается и не горит в производстве

Вы можете задать этот очень разумный вопрос:

Но написание кода уже довольно сложно. Это действительно только становится все сложнее?

И я ударю тебя одним увлажнем:

да

Производство?

Прежде чем мы движемся дальше, позвольте мне взять секунду, чтобы объяснить, что «производство»:

  • Это Распределенная система Отказ Википедия говорит лучше: Распределенная система - это система, компоненты которых расположены на разных сетевых компьютерах
  • Ваш код не беспорядочно стучал силами природы

(Если у вас есть приложение с БД, вы используете распределенную систему)

Другими словами, «Production» — это жесткий, жестокий HELLSCAPE, который жует ваш код и выпленет так, как будто не было ничего.

Э-э, большое спасибо, грустный человек!

Да, это было немного гипербола, но, честно говоря, я ударяю вас всеми этими страшными вещами, чтобы напугать тебя. Но только немного.

Почему? Чтобы получить мою точку зрения, конечно! И рекомендовать некоторые инструменты, чтобы сделать вашу жизнь проще сейчас и вниз по линии.

Очевидно, я говорю о DAPR здесь, но вот и другие хорошие инструменты, которые вы можете и должны рассмотреть. Вот некоторые я могу лично рекомендовать от опыта:

  • PAAS Systems Возьмите свой код, запустите его на некоторой внутренней/проприетарной системе, и дайте вам несколько API, которые вы можете позвонить, чтобы сделать полезные вещи.

    • Azure App Services, Google App Engine, Heroku
  • Платформы FAAS Позвольте вам загрузить функцию на языке по вашему выбору в систему и сообщить ему, когда запустить функцию (например, HTTP-запрос на Get/Dostuff )

    • Функции Azure, функции Google Cloud
  • Оркестраторы возьмите свой код и убедитесь, что он всегда работает точно так, как вы говорите

  • Сервисные сетки Позаботьтесь о том, чтобы разговаривать через любую сеть более надежными. Вы получаете MTLS бесплатно тоже 🎉

Дапр

DAPR принимает некоторые из вышеперечисленных вещей и строит на некоторых других. Идея в том, что вы запускаете это ДАПРД Процесс (и, может быть, некоторые другие) «рядом с» вашим кодом (на localhost ). Вы говорите с этим через стандартную API (http или GRPC ) Чтобы получить много вещей:

  • Открытие услуг
    • Получение IP для API для отдыха, которые вам нужны, когда все, что вы знаете, это имя. Вид как DNS для вашего приложения, но предназначен для приложений в производстве вместо миллиардов подключенных устройств в Интернете. Дизайн компромиссов, амирит!?
  • Базы данных
    • Хранение ваших данных где-то, конечно:)
    • DAPR называет эти «государственные магазины»
  • Опубликовать/Подписаться
    • Одна часть вашего приложения широковещает «Я сделал х» в мир. Другое приложение услышает это и делает вещи
  • Привязки
    • Автоматически вызывание вашего приложения, когда происходит что-то во внешнем мире
    • Или автоматически звонить что-то во внешнем мире, когда ваше приложение что-то делает
    • Они имеют несколько перекрытий с публикацией/подписки
  • Актеры
    • Напишите кусочки вашего приложения, как он работает самостоятельно, и пусть Dapr запускает каждую часть в нужном месте в нужное время (или держите их навсегда!)
    • Это здорово, если вам нужно разбить ваше приложение в тонны маленьких кусочков
  • Наблюдаемость
    • Сбор журналов и различных метрик, чтобы вы могли понять, как исправить свое приложение, когда он впечатляет не удается:)
    • Итак, вы можете выяснить, как это делает, прежде чем он не удается!
  • Управление секретами
    • Безопасное хранение пароля базы данных, ключи API и других вещей, которые вы предпочитаете не проверить свой репо GitHUB
    • И , возвращая их, когда ваше приложение запускается

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

Как я пишу это, есть 15 реализаций Вы можете использовать для баз данных, от AerosPike до зоокедра.

Возможно, самое главное, вам не нужно поднимать какие-либо SDK, чтобы использовать любой из этого материала. Он скомпилирован в сам Дапр.

Следующий

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

Я думаю, что DAPR является одним из тех инструментов. Прямо, когда я начну здание, я могу просто использовать простой (ish) api отдых для моей базы данных вместо того, чтобы поднять некоторые новые SDK и чтение всех DB Docts Front Front. То же самое касается некоторых других функций, они просто приходят позже. Я рекомендую дать Readme Скидка и видя, если он соответствует вашему приложению.

DAPR (серия 3 части)

Оригинал: «https://dev.to/arschles/what-is-dapr-526a»