Строительство Serverless (2 части серии)
В моем последнем посте я представила концепции поддержки Serserless Engineering и перечислела некоторые из технологий, используемых каждым «уровнем» трехуровневого применения (передний/задний/конец/данные). Целью этого поста было в первую очередь, чтобы проиллюстрировать границы каждого уровня в отношении неверной конструкции. В этом посте я обсудим интерфейс уровня и как применять практику без промежуток без сервеса. Чтобы быстро обновить некоторые основные моменты, последний пост отметил, что интерфейс часто является самым простым для разрабатываний без простых, и многие могут быть уже практикующие стратегии, разделяемые неверным дизайном. Использование технологии, обсуждаемой в предыдущем посте, эта статья изложит практику и стратегии для разработчиков для создания. Основные технологии обсуждались:
- Приложение для одиночных страниц (SPA) Каркасы
- Статические генераторы сайта
- Сетевые сети доставки контента (CDNS)
- Обобщенное хранилище объектов как услуга
Для того, чтобы построить приложение, которое вы должны построить приложение. Это больше, чем просто какая рамка или языка используется, но как среда сборки автоматизирована и управляется. Практика кодификации и автоматизации сборки называется «непрерывная интеграция» (CI); Это обычно используется в сочетании с «непрерывным развертыванием» (CD), который будет обсуждаться позже, как «CI/CD». Преимущества Ci/CD в сокращении времени сборки, время восстановления, устойчивость к сборке и повторяемостью постройки были любительными почти на каждом углу разработки программного обеспечения. Бесплатно-концевую конструкцию без прослушивания, CI обеспечивает надежное здание и точку тестирования на самом важном событии в режиме ожидания Front-End Software Lifecycle — изменение кода.
Большинство интерфейсных разработчиков уже строят с помощью бессвесовой технологии. Критический аспект процесса сборки и проектирования сервера безсетесового интерфейса следует за одним простым правилом:
- Создайте и развернитесь как статические активы, то есть HTML, CSS, JS и файлы изображений. Избегайте использования шаблонов, которые предназначены для оценки В свободное время Вместо этого выберите, чтобы она представлена на стороне клиента, используя каркасную оценку шаблона шаблона для создания вещей.
Хотя можно просто написать ваше приложение непосредственно в этом формате, существует ряд рамки, которые упрощают этот процесс и позволяют разработчикам легко нацелиться на свои сборки к этим активам. Если приложение будет в основном статичным или в зависимости от текста или плоского, закодированного контента, может быть хорошо, чтобы оценить статические генераторы сайта, как:
Статические генераторы сайта могут быть использованы для поддержания согласованного стиля и предотвращения повторения для сайтов, в которых содержимое является в основном текстовым или легко повторяемым (например, в блоге или магазине) и где содержимое не обязательно меняется мгновенно. Если некоторые из контента динамичны, он все еще может быть возможно интегрировать его со статическим генератором сайта, в зависимости от выбора, но с достаточным количеством динамического контента, возможно, это может быть время для оценки фреймворки приложения для одной страницы (SPA), как:
Есть еще много спа-каркасов и вариантов, перечисленных в перечисленных вами вариантах, которые могут увеличить или уменьшить сложность приложения, но идея такая же — до тех пор, пока они не являются серверными каркасами (SSR), которые требуют сервера Backeng И они нацеливаются на статические активы по сборке, перечисленные выше, они хорошие подходят для безмерного интерфейса. SSR, который «предварительно оказанные» или целевые статические активы в порядке. В то время как SSR является важным темой для производительности, она будет обсуждаться позже в спине в блоге. Также стоит отметить, что популярные веб-каркасы, такие как Ruby on Rails, Django, Phoenix, несмотря на их популярность, потому что они связывают свой шаблон рендеринга к запросу, а не в сборку. Еще можно построить безсетежеспособное безвестеннее, но это потребует отказаться от того, что механизм отказался от шаблонного движения, предоставленного этими структурами.
Как только приложение будет построено, а статические файлы готовы к развертыванию, практика непрерывного развертывания (CD) стала следующим приоритетом. В сердечном дизайне CD важно не только для удобства разработчика, а также для повторного развертывания повторяемости, но также потому, что самих серверов производства — это услуга, которую использует разработчик. Работа с этими услугами должно быть похоже на запись взаимодействия клиента API. Основные услуги, упомянутые ранее, которые вызываются во время развертывания:
- Обобщенный магазин объектов как услуга
- Сетевые сети доставки контента (CDNS)
Некоторые примеры обобщенных магазинов объектов в качестве услуги:
- AWS Простая служба хранения (S3)
- Backblaze B2
- Цифровые пространства океана
- Google Cloud Storage (GCS)
- Microsoft Azure Blob хранение
- Стечные пространства облачных файлов
А также Примеры CDNS, которые могут быть использованы:
- Акамай
- AWS Cloudfront.
- CloudFlare ( Рабочие сайты или CDN )
- Цифровые пространства океана CDN
- Быстро
- Google Cloud CDN.
- Microsoft Azure CDN
Решающие факторы между который Служба для использования для данного артефакта добивается несколько относительно простых правил:
- Если подается файл, который должен быть обслужин из пользовательского доменного имени с пользовательским сертификатом TLS/SSL, используйте CDN.
- Если файл — это большой носитель или доступен отдельными пользователями, а не все или большинство пользователей, используйте обобщенный магазин объектов.
Рекомендуется от точки зрения стоимости и простоты для предпочтения обобщенных магазинов объектов, когда они не попадают в эти явные категории. К счастью, традиционные CDNS эксплуатируют хорошо над объектами, для формирования кэша и более современных CDN, интегрирующих свой собственный магазин объектов, поэтому переходные объекты между этими двумя являются относительно легкими.
Разработчики должны создавать свой CD-трубопровод, чтобы сборки, созданные в CI, в конечном итоге загружены в магазин объектов или CDN через его API, то кэш CDN недействителен для завершения развертывания. Команды могут необязательно сохранить старые развертывания для более простых откатов, но с быстрым конвейером CI/CD, который может потребоваться не требуется. Есть ряд инструментов/услуг, которые могут помочь вашей команде со зданием и упростить этот трубопровод — этот автор начал Nullserve сделать только это.
Во время строительства приложений для бесквесных приложений могут быть забавной физическими упражнениями в ограниченном дизайне, также важно для многих оправдывающих Почему Изменение должно произойти и почему не старый путь. Что эта статья и Nullserve здесь, чтобы показать, что это то, что это это Старый путь, прежде чем мы привезли в Backeng Server Bloat, которое замедлило наши сайты вниз и сделали их более сложными. Эта «старая вещь» просто под напряжением и уполномочена сильной экосистемой API и рамочных рам для поддержки разработчиков, которые сосредоточены на первых метриках.
Время Для первого показателя краски/скорости
Помимо просто уменьшения размера расклада и улучшению маршрутизации/сетевой задержки в вашей инфраструктуре, окончательная линия улучшения является кэш-хиты и близость клиента. CDN значительно улучшит последние задержки в милю и команды помощи в кэшировании ресурсов для клиентов. Использование Static Site Frameworks и SPA могут помочь уменьшить сетевые вызовы и, надеюсь, уменьшите размер пунса в некоторых случаях, когда доступна инструментарий. С помощью этой конструкции приложение уже построено для масштаба любого размера, большого или маленького, поэтому нет серверов, чтобы убедиться, что ваши пользователи получают быстрый и положительный опыт.
Время интерактивного/времени для первой кончанной краски
Кэширование, предоставляемое CDN, также может значительно помочь, когда дело доходит до интерактивности и кончальной краски. Хотя интерактивность в значительной степени зависит от работоспособности рамок, его способность получать данные и заполнять страницу не является. JavaScript, который уже загружен, всегда быстрее, чем тот же JavaScript, но и загруженный. Получение данных из API — одна загрузка коротки; Кроме того, поскольку услуги очень слабо сочетаются с интерфейсом, данные, которые они отправляют обратно, могут быть намного резащителя и сосредоточены исключительно на значениях и не появления.
Прогрессивное веб-приложение (PWA)
Разделение визуальных проблем от проблем с данными и обслуживанием и обслуживания, намного проще для разработки команды разработки преследуют работников службы для опыта PWA для низкой пропускной способности или оффлайн клиентов. Поскольку развертывание является только нацеленным только в интерфейсные активы, и они подаются от Edge-CDN, производительность уже учитывается предыдущими усилиями.
В этом посте я объявил грубый дизайн для настройки интерфейсного веб-приложения WEB Serverless и детализировал, какую технологию будет использоваться для каждого аспекта. У более поздних постов этой серии я буду набросать API и соображения данных.
Я компьютерный/программный инженер, ориентированный в основном на облачную первую программную архитектуру. Я профессионально работал с приложениями без сервеса в течение 3 лет в качестве DevOps/Architect и 10 лет в целом в роли DevOps. Ранее я работал над большим веб-приложением, разработав архитектуру API, React Apps и баз данных для Serverless Stack. Я недавно оставил свою прежнюю роль, чтобы начать компанию, ориентированную на серверу без сервеса — Nullserve Отказ NullServe стремится обеспечить инструментальную и платформу, необходимую для продуктов-команд, чтобы быстро построить свои идеи и свидетельствовать с использованием технологий, которые масштабируются вверх (и вниз) на основе их потребностей. Nullserve использует существующие облачные платформы для обеспечения производительности и стабильности клиентов, но упрощает бессвесовую инфраструктуру и процесс установки, чтобы разработчики могли сосредоточиться на строительстве, а не настраивать. Nullserve — это сервис с сервисом.
Строительство Serverless (2 части серии)
Оригинал: «https://dev.to/nullserve/thinking-building-serverlessly-part-2-front-end-28ki»