Dylematy w wyborze metody hostingu, czyli jak to jest z tymi VPS?

1

Nie byłem do końca pewny gdzie umieścić ten wątek bo jest raczej ogólny. Chodzi mi trochę o poradę, podzielenie się Waszymi doświadczeniami a może i rekomendacje konkretnych usług.

Do tej pory hostowałem swoje aplikacje i strony na prostym hostingu pozwalającym po prostu na wystawianie aplikacji ASP.Net Core (web API, komunikacja z bazą SQL) jak i stron statycznych oczywiście (strony-wizytówki, sam HTML, CSS i JS bez backendu). W ramach kosztów hostingu dostępne serwery SQL Server i MySQL. Jednakże przymierzam się do większego projektu "po godzinach" gdzie poza UI i API będę musiał wystawić również procesy działające w tle (wysyłanie notyfikacji itp). Technologia to .Net Core, bazę danych preferuję NoSQL ale z braku laku mogę również użyć MS SQL jeśli nie będzie wyjścia lub koszty alternatyw będą za wysokie. No i teraz mam dylematy jak to najlepiej zrobić żeby było w miarę prosto w obsłudze ale i tanio (co chyba się wyklucza). Aplikacja to system do zarządzania nieduża firmą, maksymalnie kilkunastu użytkowników. Obecnie rozważałem takie opcje:

  1. Azure
    Chyba najbardziej niezawodny wybór z tej listy. Stronę wraz z API mógłbym wystawić jako App Service, procesy w tle odpalone jako Web Job w tymże App Service lub jako funkcje (Azure Functions). Siłą rzeczy baza danych to albo Cosmos DB (preferowany ale droższy) lub Azure SQL (tańszy ale nie preferowany). To co najbardziej przemawia przeciwko tej opcji to koszty oraz stosunkowo ograniczona kontrola (co jednocześnie jest zaletą jako że wymaga najmniej manualnej roboty).

  2. Docker
    Tutaj to tylko luźne dywagacje jako że z Dockerem doświadczenia jeszcze nie mam, a zależy mi na użyciu czegoś co nie wymagało by zbyt dużo czasu na dodatkową naukę (projekt jest bardziej zarobkowy niż hobbystyczny). Wydaje mi się że wyszło by taniej niż Azure, ale fakt że musiałbym się Dockera nauczyć sprawia że jest to raczej najmniej odpowiednia opcja obecnie.

  3. Własny VPS z Windows Server
    Opcja chyba z największa swobodą ale i odpowiedzialnością/koniecznością utrzymania. Wydaje mi się że wyszło by tanio jeśli spojrzeć na niektóre opcje hostingu (przykład 1, przykład 2) ale mam tutaj mieszane uczucia. Gdzie nie czytać o wszelkich usługach VPS to można spotkać się z mieszanymi opiniami rodzącymi duże wątpliwości, szczególnie jeśli chodzi o jakość takich usług. Trochę również niepokoi mnie perspektywa ręcznego zabezpieczania tego wszystkiego, pilnowania aktualizacji, certyfikatów itp. Przemawia za to fakt że mógłbym wszystko postawić w jednymi miejscu a i mógłbym wybrać dowolną technologię (np. baza RavenDB którą zdecydowanie preferuję). Procesy w tle wystawiłbym jako Windows Service.

Jak to u Was wygląda? Gdzie hostujecie swoje aplikacje? Jakie macie z tym doświadczenia i czy możecie coś polecić (lub odradzić)? Szczególnie jeśli chodzi o własny VPS.

0

Nikt, nic? :(

Ośmielam się podbić temat jako że jest w mało uczęszczanej kategorii a może ktoś w godzinach wieczornych to zobaczy.

4

Prywatne zabawkowe aplikacje w ASP.NET Core stawiam sobie na własnym VPS (kupiony w OVH, chyba najtańszy) z wykorzystaniem Dockera, na Linuksie. Kosztuje mnie to około 25 zł/m-c. Nie używam MSSQL, ale akurat w tym pomyśle MySQL/MariaDB. Działa nieprzerwanie (poza moimi błędami) od przynajmniej półtora roku, jak nie dłużej. Nauczenie się Dockera i zrobienie sobie docker-compose aby startowało wszystko czego potrzebuję za jednym zamachem to nie zajęło jakoś specjalnie długo, ale też nie było to niezbędne - da się i bez niego i początkowo tak miałem, ale potem aktualizacje mojego programu i uruchomienie wielu rzeczy na jednym serwerze się uprościły dzięki Dockerowi.

Do certyfikatów SSL używam Let's Encrypt, przychodzi mail, wydaję dwie komendy na krzyż, aktualizuję wpisy DNS (bo to akurat dla wildcarda) i już - bez wildcarda jest jeszcze prościej, bo wystarczą dwie komendy na krzyż i restart nginxa.

Jeśli nie musisz wybrać Windows Server, weź Linuksa, będzie nieco taniej, ASP.NET Core wszystko jedno.

2

A Ja polecam vps w arubacloud, korzystam od kilku lat i nie ma problemów, cenowo też ok.

3

Dzięki za odpowiedzi wyżej, szkoda że więcej osób się nie podzieliło doświadczeniem. Ktoś tu niedawno narzekał że poziom na forum spada, i czasem to widać- wątki z wszelkimi wojenkami są pełne postów ale jak przychodzi pomóc z bardziej konkretnymi kwestiami to chętnych jak na lekarstwo... Trudno mi uwierzyć że na całym forum tylko garstka osób wystawia własne aplikacje.

Z mojej strony drobna aktualizacja po czasie gdyby ktoś był zainteresowany, lub zderzał się z podobnymi dylematami.

Koniec końców mój wybór padł na wykupienie VPS oraz pozostanie przy Windows Server (licencję i tak już miałem). Kupiłem stosunkowo tani serwer Linux bez oficjalnego wsparcia Windows Server, ale z dostępnymi instalkami ISO. Jak na razie serwis z którego korzystam się dobrze sprawdza- ma również bardzo intuicyjny interfejs oraz pewne rzeczy za darmo które w Azure normalnie by kosztowały dodatkowo (Firewall, sieć prywatna). Mój obecny zestaw wygląda następująco, wszystko na jednym serwerze jak na razie (będą regularne backupy):

Baza danych:
RavenDB zainstalowana jako Windows Service, jako że mam to na własnej maszynie, niedostępne publicznie to dostęp kontrolowany jest za pomocą certyfikatu wygenerowanego na serwerze

Strony internetowe i aplikacje Web API:
ASP Core uruchomione pod IIS

Procesy w tle:
Zainstalowane jako Windows Service

Certyfikaty SSL dla publicznych aplikacji:
Jeszcze nie korzystałem z tego ale zapowiada się że użyję win-acme który z tego co widziałem pozwala łatwo instalować certyfikaty Let's Encrypt jak i zajmuje się ich automatyczną odnową.

Dodatkowe kwestie bezpieczeństwa:
Postawiony Firewall odblokowujący tylko port 80 i 443, oraz dodatkowo port 3389 ale tylko dla konkretnych adresów IP dla dostępu RDP.

1

@Aventus: osobiście jak C# jest wspierany na gcpie - to bym szedł w takie rozwiązanie.

Artykuł jak zdeployować apkę na app enginie: https://cloud.google.com/blog/products/gcp/4-ways-you-can-deploy-an-aspnet-core-app-to-gcp

https://cloud.google.com/dotnet/docs/getting-started

  • nieskończenie wielkie skalowanie od 1 maszyny
  • lets encrypt z automatu podłączony
  • cloud repo gita z cloud buildem wbudowanym cd / ci
  • integracja z datastore / firestore nosqlami z real time + notyfikacjami + do 100k operacji dziennie free
  • cloud task - kolejki zadań w tle gdzie implementujesz joby jako requesty post http
  • cloud scheduler - cron w gcpie
  • bigquery - jeden z lepszych warehouesow sqli do analiz
  • datastudio - mieli automatycznie dane z w/w baz do chartow i raportow - tylko wyklikujesz
  • gcs - system plików , google drive na tym działa

Jak postawisz config, to tylko piszesz kod i głownie wdrażasz. App engine przez sterowanie ruchem ma wbudowany blue green i canary deployment na kliknięcie. Nie ma żadnych przere na serwisowanie dzieki session affinity.

Wygoda + bezpieczeństwo + stabilny i pewny hosting.

Dodatkowo możesz w tym configu dzielić apkę na serwisy / mikroserwisy jak Tobie się podoba z wersjonowaniem i wykorzystaniem różnych technologii bez większych problemów

1

Już chyba ze 2 lata wynajmuje jakiegoś VPSa z Linuxem za 20 16 złotych monet w ovh i generalnie polecam

Tak jak wspomniałeś elastyczność - hostowanie strony, serwera do gierki, teamspeaka, raz mongo, raz mssql/mysql itd, a koszty niskie

Konfiguruje nginxa jako reverse proxy, podpinam do tego certy od Let's Encrypt i mam httpsa
Aplikacje rejestruje jako usługę https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-5.0 i zazwyczaj mam spokój.

Od momentu zakupu chyba tylko raz mi się VPS zrestartował i właściwie temu dodałem te usługi aby mieć autostart xd


nawet nie widziałem tego wątku

1 użytkowników online, w tym zalogowanych: 0, gości: 1