Serverless для перс. сайта (.Net Core)
От: Shmj Ниоткуда  
Дата: 13.05.20 20:55
Оценка:
Хочется чтобы платить копейку, если не заходят. Но при этом знать, что если дал новость и на твой сайт в один день зайдет 100 тыс. чел. — то он корректно отработает.

Варианта для .Net Core 2 с половиной:

1. Amazon Lambda.
2. Azure Functions.
3. Немного не то, но близко: IBM Cloud Foundry

Google Cloud Functions нет .Net Core:



IBM Cloud Functions нет .Net Core:



1. Amazon Lambda безбожно тормозит при первом запуске. Держать горячим с помощью периодических запросов? Тогда сколько это будет стоить?

3. Cloud Foundry аналогично — проблема с первым запуском. Кроме того, оно не дешевое — просто есть бесплатный ресурс — а это не одно и то же.

2. Azure Functions — не помню.

В общем — кто что рассматривал и на чем остановился?
Отредактировано 13.05.2020 20:56 Shmj . Предыдущая версия .
Re: Serverless для перс. сайта (.Net Core)
От: Ночной Смотрящий Россия  
Дата: 18.05.20 10:33
Оценка:
Здравствуйте, Shmj, Вы писали:

S>1. Amazon Lambda безбожно тормозит при первом запуске. Держать горячим с помощью периодических запросов? Тогда сколько это будет стоить?


Недорого.

S>2. Azure Functions — не помню.


Что не помнишь?

S>В общем — кто что рассматривал и на чем остановился?


Для кора Azure AppServices наиболее безпроблемен.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: Serverless для перс. сайта (.Net Core)
От: Shmj Ниоткуда  
Дата: 18.05.20 10:45
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>>В общем — кто что рассматривал и на чем остановился?


НС>Для кора Azure AppServices наиболее безпроблемен.


Хотелось бы платить за каждый запрос, а не от $0.013/hour. Специфика — обычно на сайт заходит 50 чел. в день. Но! Если дал новость платную — может зайти 100 тыс. чел.
Re[3]: Serverless для перс. сайта (.Net Core)
От: Ночной Смотрящий Россия  
Дата: 18.05.20 11:13
Оценка:
Здравствуйте, Shmj, Вы писали:

НС>>Для кора Azure AppServices наиболее безпроблемен.

S>Хотелось бы платить за каждый запрос, а не от $0.013/hour.

Это только для према, который подразумеваем выделение VM персонально под твое приложение. Если тебя устраивает ферма, то:

Azure Functions consumption plan is billed based on per-second resource consumption and executions. Consumption plan pricing includes a monthly free grant of 1 million requests and 400.000 GB-s of resource consumption per month per subscription in pay-as-you-go pricing across all function apps in that subscription.

... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[4]: Serverless для перс. сайта (.Net Core)
От: Shmj Ниоткуда  
Дата: 18.05.20 11:25
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>

НС>Azure Functions consumption plan is billed based on per-second resource consumption and executions. Consumption plan pricing includes a monthly free grant of 1 million requests and 400.000 GB-s of resource consumption per month per subscription in pay-as-you-go pricing across all function apps in that subscription.


А вы смотрели те Azure Functions? Там нельзя задеплоить Web-приложение простым образом. По умолчанию создается 1 файл C#, где даже NuGet-пакеты нужно подключать странным образом. В Amazon Lambda можно просто задеплоить приложение.
Re[5]: Serverless для перс. сайта (.Net Core)
От: Ночной Смотрящий Россия  
Дата: 18.05.20 11:51
Оценка:
Здравствуйте, Shmj, Вы писали:

S>А вы смотрели те Azure Functions?


Смотрел.

S> Там нельзя задеплоить Web-приложение простым образом.


Undefied identifier "простым образом". Выбираешь пункт в студии Publish, указываешь куда. Куда уж проще?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[6]: Serverless для перс. сайта (.Net Core)
От: Shmj Ниоткуда  
Дата: 18.05.20 12:04
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

S>> Там нельзя задеплоить Web-приложение простым образом.


НС>Undefied identifier "простым образом". Выбираешь пункт в студии Publish, указываешь куда. Куда уж проще?


Видимо попутали с App Service. В Azure Functions нельзя задеплоить сайт (быть может если вручную делать конвеер запросов или как то так — то можно, но не проверял).

Re[7]: Serverless для перс. сайта (.Net Core)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.05.20 12:58
Оценка:
Здравствуйте, Shmj, Вы писали:


S>Видимо попутали с App Service. В Azure Functions нельзя задеплоить сайт (быть может если вручную делать конвеер запросов или как то так — то можно, но не проверял).

https://docs.microsoft.com/ru-ru/azure/azure-functions/functions-develop-vs
и солнце б утром не вставало, когда бы не было меня
Re[8]: Serverless для перс. сайта (.Net Core)
От: Shmj Ниоткуда  
Дата: 18.05.20 13:37
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>Видимо попутали с App Service. В Azure Functions нельзя задеплоить сайт (быть может если вручную делать конвеер запросов или как то так — то можно, но не проверял).

S>https://docs.microsoft.com/ru-ru/azure/azure-functions/functions-develop-vs

Ну так установите и посмотрите. Там получается вот такой файл:

using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;

namespace FunctionApp3
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            string name = req.Query["name"];

            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data = JsonConvert.DeserializeObject(requestBody);
            name = name ?? data?.name;

            string responseMessage = string.IsNullOrEmpty(name)
                ? "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
                : $"Hello, {name}. This HTTP triggered function executed successfully.";

            return new OkObjectResult(responseMessage);
        }
    }
}


Это похоже на шаблон полноценного сайта? Amazon Lambda поддерживает полноценный Razor-сайт.

Возможно поверх этого, если обработаете req и отдадите нужную responseMessage — то и получите сайт. Но это не реализовано.
Отредактировано 18.05.2020 13:39 Shmj . Предыдущая версия .
Re[7]: Serverless для перс. сайта (.Net Core)
От: Ночной Смотрящий Россия  
Дата: 18.05.20 14:22
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Видимо попутали с App Service.


Так тебе App Service м нужен. Зачем тебе именно голый Function?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[8]: Serverless для перс. сайта (.Net Core)
От: Shmj Ниоткуда  
Дата: 18.05.20 14:25
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Так тебе App Service м нужен. Зачем тебе именно голый Function?


App Service начинается от Monthly cost $9.49. По сути это просто вирт. машина с упрощенным деплоем, там нет Serverless. Даже на начальном плане — это просто шаред-хостинг, на чуть более дорогом плане — это вирт. машина.

Serverless — это когда не думаешь о мощностях — платишь за запрос или ресурс. Т.е. когда 100 пользователей в день — платишь 1 цент в день. Когда 100 тыс. пользователей в день — платишь $10 в день.
Отредактировано 18.05.2020 14:30 Shmj . Предыдущая версия . Еще …
Отредактировано 18.05.2020 14:29 Shmj . Предыдущая версия .
Re[9]: Serverless для перс. сайта (.Net Core)
От: Ночной Смотрящий Россия  
Дата: 18.05.20 14:37
Оценка:
Здравствуйте, Shmj, Вы писали:

S> По сути это просто вирт. машина с упрощенным деплоем, там нет Serverless.


Вот это читал?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[10]: Serverless для перс. сайта (.Net Core)
От: Shmj Ниоткуда  
Дата: 20.05.20 11:07
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Вот это читал?


Это как сделать статический сайт + сервисы для вызова из JS. Но не нужно делать вид, что поисковики прекрасно индексируют динамический контент.

AWS Lambda умеет хостить статический Razor сайт — причем деплой одной кнопкой. MS до такого не додумались...

Может и можно сделать надстройку над их Functions, но это нужно делать.
Отредактировано 20.05.2020 11:42 Shmj . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.