Opłacalność korzystania z Heroku/EC2

Witam,
Planuję budowę większej aplikacji, która mam nadzieje, że w niedalekiej przyszłości rozrośnie się w content (głównie zdjęcia) i użytkowników.
Zawsze hostowałem swoje aplikacje na dedyku i chciałbym zasięgnąć rady osób, które mają większe doświadczenie z Heroku lub EC2. Czy to się opłaca i do jakiego stopnia? Opowiem jak wygląda to z mojego punktu widzenia:

Opłaca się ponieważ:

  • nie musze martwić się o backupy
  • zasoby sprzętowe
  • aktualizacje oprogramowania
  • wygodna obsługa przez git heroku etc.

Przy wykorzystaniu pluginów m.in: memcache, solr, airbrake, redis, ssl w wyższych opcjach cenowo nie wygląda to bajecznie.
Czy jest jakiś limit dla chmurkowych hostingów tego typu? Czy np. opłaca się wykorzystywać heroku/EC2 do pewnego momentu, albo od pewnego momentu?

Heroku i EC2 to dwie różne sprawy. Na heroku konfigurujesz sobie prawie wszystko przez wyklikanie, robisz git push i aplikacja działa. EC2 trzeba dodatkowo skonfigurować jak vps czy dedyka, ale oferuje za to kilka rzeczy jak robienie kopii odmontowywane dyski (ebs) itd.

Wszystko zależy czego oczekujesz lub na co ciebie stać. Bywają ludzie, co wolą mieć wszystko na Amazon AWS, mimo że daje im się tańszą alternatywe.

Dodatkowo wybór powinien zależeć od rodzaju aplikacji, jak np. masz wprowadzone opłaty za konkretna ilosc miejsca na dysku lub transfer, to można iść w chmure, chociaż to też zależy. Jeżeli masz zwykły serwis informacyjny, to ja bym się raczej zdecydował na vps/dedyka.

Dzięki bardzo za odpowiedź. Czy uważasz, że postawienie na którejś z tych opcji serwisu pokroju instagram z przykładowo kilkoma milionami użytkowników i z dużą ilością zdjęć to już abstrakcja ?

jak pisałem, zależy od profilu biznesowego. Na początku będziesz miał pewnie małą oglądalność więc i mały transfer/pojemość będzie potrzebna. Z czasem wykorzystanie tych parametrów będzie większe i od pewnego momentu w chmurze będziesz miał wysokie koszty.

w niezły poziom oglądalności celujesz, napisz pw to dokladniej przeanalizujemy co i jak.

Nie chce zabrzmieć jak reklama ale jeżeli martwią Cie dodatkowe opłaty za usługi typu memcache czy redis to powinieneś też rzucić okiem na https://shellycloud.com/ – tam płacisz za wirtualny serwer na którym odpalasz dostępne usługi bez dodatkowych kosztów.

Z tego co porównywaliśmy jakiś czas temu to jeżeli płacisz cokolwiek na heroku, to na shelly prawdopodobniej wyjdzie taniej / szybciej (oczywiście nie da się zejść poniżej darmowego konta :P). Najlepiej samemu sprawdzić i porównać cenę do wydajności.

Jeżeli chodzi o dedyk vs rozwiązanie typu shelly/heroku w chmurze to imho z chmurą łatwiej wystartować, bo można skupić się na rozwoju aplikacji.

M.in dlatego przymierzam się do takiego rozwiązania. Założyłem temat ponieważ chce się dowiedzieć czy w pewnym momencie taka chmurka może już nie podołać przez co bedzie trzeba przenosic wszystko na dedyki/replikować baze etc.

Wcześniej już trafiłem na ofertę shellycloud i rzeczywiście wszedzie pisali ze jest wydajniej i taniej, ale nie brałem tego pod uwagę ponieważ w gronie moich znajomych nikt z tego nie korzystał. Teraz sie zastanowie :smile: THX

Bazę danych zawsze można przenieść na dedyki. W shelly oferujemy takie rozwiązania dla klientów, którym przestaje wystarczać baza na wirtualnym serwerze. Nie sądzę żeby serwery aplikacyjne w chmurze przestały się w pewnym momencie skalować pod względem wydajności.

Moim zdaniem EC2 jest dobrym wyborem o ile potrzebujesz największych zalet EC2 (czyli dynamicznej skalowalności poprzez automatyczne dodawanie instancji). Ceny spadły, ale można moim zdaniem trafić na wydajniejsze rozwiązania za lepszą cenę.

Heroku to platforma mit, ilość problemów z nią związanych jest niesamowita jeśli próbujesz zrobić coś ponad standardowe rozwiązania. A aplikacja na wiele milionów użytkowników na pewno będzie skomplikowana. Im bardziej wejdziesz w Heroku tym trudniej z niego wyjść. Szczerze mówiąc to nie wiem, czy moje serwery dedykowane, zarządzane po amatorsku przeze mnie, nie są bardziej stabilne niż Heroku.

1 Like

Dzięki za odpowiedź, mógłbyś podać przyklady? Wole pytać o sprawdzone rzeczy, a nie sugerować się tylko wpisami PR-owców w internecie :smile:

Takiej odpowiedzi oczekiwałem :smile: Z tym, ze czy testowałeś to na wyższej opcji pluginów i z większą ilością dyno’sów ?

Ostatnio korzystałem z Hetznera i byłem bardzo zadowolony, ale kilka drobnych rzeczy zmusiło mnie do przeniesienia się do OVH (ale tylko związanych z możliwością konfiguracji sieci). Wydaje mi się, że OVH lepiej się nadaje do budowania skomplikowanych architektur.

Z Heroku korzystam z różnymi wielkościami i ilościami dynosów, z różnymi dodatkami. O dziwo, najwięcej problemów jest z samymi dynosami i Postgresem (ostatnio jakby jednak mniej).

Administruje pięcioma dedykami w Hetznerze i również jestem zadowolony. Jedyne co mnie wkurza to to ze nie raz, a za kazdą dodadkową opcję doliczają sobie tego flexipack’a. W sumie nie mam porównania jak to działa u innych. Znajomi, którzy korzystają z ovh mówią, ze support jest piętą achillesową, też tak uważasz?
Jaki miałeś problem z konfiguracją sieci jeśli można wiedzieć ? :smile:

Kilka lat temu Heroku wysadziło na ponad 72h (przynajmniej dla małych, bo wiem, że swoich największych klientów podnieśli dużo wcześniej). Mniejsza o to, że tradycyjnie winny był Amazon ze swoim EBSem (przy czym Heroku miało swoje serwery tylko w jednym AZ, co już przy ich ówczesnej skali było lekko kompromitujące). Komunikacja z klientami podczas tej akcji była na fatalnym poziomie. Od tego czasu przestałem korzystać z ich usług do czegokolwiek. Wiem, ze później również były mniejsze czy większe awarie.

Moim zdaniem - zainwestuj sobie trochę czasu w Ansible (lub Chef/Puppet) oraz Capistrano i będziesz miał de facto funkcjonalny odpowiednik, a do tego będziesz mógł w dowolnym momencie wynieść się do innego usługodawcy i jedyne co będzie Cię ograniczać to TTLe w rekordach DNS.

Jak chcesz proste porównanie cen - w Heroku 100MB Memcache kosztuje ok $15 (zależnie od dostawcy). Za 5$ możesz sobie odpalić instancję w DigitalOcean i mieć do dyspozycji jakieś 400-450MB. Im jesteś większy, tym gorzej. VPS 8GB kosztuje około $80. Za taki Memcache w Heroku płaciłbyś w okolicach $450.

Zakładając hardkorowe MVP, Heroku wydaje się sensowne, ale tylko na sam początek i z założeniem że będziesz stamtąd uciekał jak tylko się da (przy czym lock-in faktycznie jest i pakując się w to trzeba sobię zdać sprawę, że wyprowadzka wcale nie będzie tak prosta).

Przede wszystkim straszne kombinowanie z tworzeniem VLAN-ów. Reszta bez problemów.

Z supportem nie miałem do czynienia, serwery (ze zmodyfikowaną konfiguracją) postawili bardzo szybko .

Awarie zdarzają się wszędzie. Mając swoją infrastrukturę też może Ci paść serwer albo na przykład to sieć (ovh miało taki problem z częścią swoich serwerów jakiś czas temu). W przypadku awarii różnica jest taka, że jak masz infre to sam musisz dbać o to żeby wstać o 3 nad ranem i ogarnąć wszystko (czy to wakacje czy święta). Korzystając z usług typu Shelly Cloud lub Heroku, ktoś inny wstanie, a Ty tylko przeczytasz rano informację co się stało i dlaczego (chyba, że klient zadzwoni do Ciebie w nocy :D). Jeżeli idziesz w swoją infre trzeba być gotowym na to, że prędzej czy później będziesz musiał zatrudnić sysadminów, którzy będą pod telefonem w przypadku awarii + będą na bieżąco z aktualizowaniem softu. Jeżeli chodzi o support w Hetznerze czy Ovh to bywa różnie – potrafią zareagować dość szybko ale zdarza się, że podejmują reakcję po kilku godzinach.

W heroku 100mb memcache kosztuje prawie tyle co mała instancja na shelly, lol :smiley:

Wypowiadając swoje zdanie w takiej dyskusji warto zawsze dodać odpowiedni disclaimer (nie wszyscy od razu muszą wiedzieć kto jest kim). :wink:

Dzieki wszystkim za wyczerpujace odpowiedzi :smile: chyba zdecyduje sie na vps z digitalocean w trybie developerskim a na produkcji z jakiegos dedyka. Nie przekonały mnie rozwiazania z heroku i shelly cloud. Wygodne, ale mam obawy, ze w przyszlosci moge miec wiecej problemow niz pozytku

Gwoli sprawiedliwości - Shelly Cloud chyba nie powoduje aż takiego lock-inu technologicznego jak Heroku.

1 Like

Myślę, że najsensowniej jest sobie przetestować każde z rozwiązań i dobrać odpowiednie do swoich potrzeb.

W tym kontekście jeszcze prawdopodobnie warto wspomnieć o EngineYard.

Ja jestem zadowolony z Heroku. Owszem mieli wpadki, wspomniane downtime’y rok czy dwa lata temu, ale od tego czasu nie zauważyłem znaczących problemów.

Nie bardzo też rozumiem gdzie tu jest lock-in. Nie kojarzę jakichś specyficznych rozwiązań na heroku, których nie ma gdzie indziej. Jakiś czas temu przenosiliśmy aplikację z Heroku na dedyka i obyło się bez jakichś znaczących problemów.

Przy większych aplikacjach problemem może być cena bazy danych, ale ceny dynosów i add-onów są moim zdaniem w porządku. Zanim jednak to nastąpi, aplikacja musi być na prawdę duża. W przypadku mojej aplikacji ponad połowa kosztów, to SAASy, których i tak bym używał na dedyku, a trzeba jeszcze admina zatrudnić.

Opłacalność jest zależna od punktu siedzenia, bo każda aplikacja jest inna. Jak bym miał zaoszczędzić 100 czy 200 EUR / miesiąc przenosząc się na dedyka, to mi się nie opłaca.

1 Like