Рубрики
Uncategorized

Введение в строительство без сервера

В этой серии я обсуждаю, какие атрибуты делают приложение подходящим для сервера, и какие преимущества внедряют сервер без сервера. Tagged с помощью сервера, архитектуры, webdev, DevOps.

Строительство без сервера (2 серии деталей)

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

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

Чтобы убрать это в сторону рано — Serverless не буквально означает «нет серверов». Удивительно, как быстро комментаторы перепрыгнут в комментарии, чтобы повторить что -то подобное. Комментарии могут быть правдой, но это не делает их хорошим аргументом против этой идеи, такой как «Облако — это просто чужой компьютер», не так; Их протест не имеет ни веса, ни фактической критики. Без сервера — это обобщение нескольких различных идей. Он объединяет функции как сервис (FAAS), базу данных как Сервис (DBAAS), бэкэнд как сервис (BAAS) и, если вы не заметите шаблон, почти все, что «как услуга».

«Без сервера» — это термин, который суммирует «X как сервис», где X все используется для создания приложения. Вместо того, чтобы перечислять все «x как сервис», которую использует проект, «без сервера» означает использование любого числа этих инструментов в качестве вашего приложения. «Без сервера» — это просто слово, но спорить о значении слова не делает практики, которые оно представляет более или менее жизнеспособные. Это те практики, которые часто дают от ума от людей при попытке визуализировать приложение без сервера или оценить, что значит создавать этот путь и какую ценность предоставляет эта архитектура.

Экосистема вокруг сервера прямо сейчас яркая, но все еще зарождающаяся. Существует ряд сильных технологий для работы, но, поскольку без сервера гораздо более идеология и дизайн, чем чистая технология, нет всеобъемлющего, пугающего графика всех технологий, таких как Есть для облачного коренного , даже несмотря на то, что облачный нативный вычислительный фонд (CNCF) имеет один специально для сервера Анкет Ряд важных практик и технологий вероятно, никогда не быть найденным на графике выше, несмотря на то, что они имеют решающее значение для успеха многих инженеров, просто потому, что это услуги и проекты, а не программное обеспечение или рамки. Тем не менее, ряд технологий, которые помогают инженерам быть «облачными нативными», могут продолжать помочь им создавать надежные приложения без серверов, если они используются правильно.

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

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

Фронт (веб-сайт, UI/UX)

Создание приложения без сервера проще всего на переднем крае. Несмотря на то, что он может быть нелогичным, обычно, что компания, которая только начинает переходить от частного обратного центра к облаку, уже имеет веб-сайт (ы) или фронтальные (ы), которые без серверов или уже используются без серверов/без серверов/Технология — пропуская облако или совершает свой первый набег в облако через сервер. Из тех, основные технологии и практики, которые инженеры фронт-элитной могут использовать для использования без сервера:

  • Приложение для одной страницы (SPA) Фреймворки
  • Статические генераторы сайтов
  • Сети доставки контента (CDN)
  • Обобщенное хранилище объекта в качестве услуги

Следует отметить, что рендеринг на стороне сервера (SSR) явно не в этом списке и будет обсуждаться в более позднем разделе как служба/API. Если поисковая оптимизация (SEO) является проблемой, работайте над вышеуказанной настройкой, а затем следуйте руководствам SSR в разделе API, чтобы улучшить SEO.

Бэк-энд (бизнес-услуги/API)

Тщательные читатели, возможно, заметили, что ландшафт без сервера CNCF был сосредоточен исключительно на вычислении. Справедливая оценка, чтобы сказать, что термин «без серверов», вероятно, произошел из -за набега новичков в вычислительном вычислении в качестве услуги, функционирует как услуга и контейнеры в качестве арены услуг. Однако важно отметить, что просто используя Эти услуги и практики могут сделать ваше приложение без сервера, но поскольку только стек не является сервером, а не сам код, он может потенциально ввести поток головных болей и случайных проблем. Вот почему важно при разработке API и бизнес -сервисов на заднем плане, чтобы помнить о без серверных практик. Бэк-энд имеет тенденцию быть областью, которая все еще изучается командами и часто может быть чреватой ошибочной оптимизацией и неявным ограничением.

Ключевые технологии, которые инженеры будут использовать в течение строительства без сервера,-это:

  • Функции как услуги/работники/лямбдас
  • Обобщенное хранилище объекта в качестве услуги
  • Контейнеры как услуга
  • Хранилище
  • APIS других людей

Базы данных/постоянное хранение/хранение

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

  • Хранилище
    • Очереди
    • Уведомления/события
    • Потоки данных
    • Государственные машины
  • Реляционные базы данных как служба
  • База данных NOSQL как служба
    • Конфигурационные магазины
    • Секреты магазинов
  • Пул подключений состояния/балансировщиков нагрузки в качестве услуги
  • Обобщенное хранилище объекта в качестве услуги
    • ETL (экстракт, преобразование, нагрузка)
    • Бизнес -аналитика
    • Данные озера, потоки, океаны, бассейны и т. Д.

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

Я инженер-инженер по компьютеру/программному обеспечению, ориентированный в основном на облачной архитектуре программного обеспечения. Я профессионально работал с без сервера в течение 3 лет в качестве DevOps/Architect и 10 лет в роли DevOps. Ранее я работал над большим веб -приложением, разработав архитектуру API, React Apps и базы данных для стека без сервера. Недавно я оставил свою предыдущую роль, чтобы запустить компанию, ориентированную на приложения без серверов — Nullserve Анкет Nullserve стремится предоставить инструменты и платформу, необходимую для команд продуктов, чтобы быстро и когерентно создавать свои идеи, используя технологии, которая масштабируется (и вниз) в зависимости от их потребностей. Nullserve использует существующие облачные платформы, чтобы обеспечить производительность и стабильность, которые ожидают клиенты, но он упрощает процесс инфраструктуры и настройки без серверов, чтобы разработчики могли сосредоточиться на создании, а не настройке. Nullserve — это DevOps без сервера в качестве службы.

Строительство без сервера (2 серии деталей)

Оригинал: «https://dev.to/nullserve/thinking-building-serverlessly-part-1-introduction-3mnl»