Bujanie w chmurach

Jesień idzie, chmury walą drzwiami i oknami: ogłoszone wczoraj przez phocke digitalmines czy nasz dumny “Ruby on Rails cloud hosting”.

Problem z tym, że tak na prawdę nie wiemy czy potrzebujecie takich rozwiązań i jakie są wobec nich wymagania. Stąd parę pytań:

  • Dlaczego własny hosting jest lepszy od chmury?
  • Czego najbardziej się obawiasz, co powstrzymuje Cię przed hostowaniem w chmurze ‘by default’?
  • Jak są szacowane koszta postawienia własnego serwera? (czas pracy administratora, instalacja systemu, uruchomienie serwera, koszty miesięczne serwera, miesięczny czas administratora)
  • Jakie problemy mają popularne rozwiązania jak Engine Yard i Heroku?
  • Co musi oferować chmura, żeby być atrakcyjniesza od własnego serwera?

Każda odpowiedź się liczy, nie musi być komplet :wink:

Od kiedy można będzie się zarejestrować?
Będzie jakieś darmowe konto na spróbowanie?
Gdzie jest dokumentacja?

Myślę, że sporo osób powstrzymuje obawa o bezpieczeństwo danych. Jeśli dane mojej aplikacji, moich klientów są gdzieś u Ciebie w chmurze to gdzie one są? Kto ma do nich dostęp? Jak są backupowane? Czy mam dostęp do tych backupow? Co się stanie w przypadku awarii ?

Szacowane koszta postawienia własnego serwera są bardzo niewielkie. Tylko czy jestem w stanie postawić równie szybko bezpieczniejszy serwer niż to co oferuje chmura ? W to już raczej wątpie.

Czy iść w chmurę czy nie to zwykle kwestia do rozważenia zaufania. Póki wszystko jest ok to nie ma żadnego problemu. Ale jak się zepsuje to jak mam własny serwer to polegam tylko na sobie i własnych skillach a jak mam w chmurze to polegam na Tobie i cały mój serwis zależy od obcej osoby a to trudna myśl do przekłnięcia. Więc jeśli mnie przekonasz, że cokolwiek się zepsuje to zareagujesz szybciej i lepiej to może kiedyś do Ciebie przyjdę.

Jak widzę materiały reklamowe? Film na którym klikam sobie po stronie, następne ujęcie: pani sprzątaczka odłącza serwer od prądu, następne ujęcie: klikam sobie dalej po stronie bo wszystko się po prostu przerzuciło na inny serwer i działa :slight_smile:

Czasem wydaje mi się, że nie można skorzystać z chmury z powodów prawnych, niech mnie ktoś naprostuje jeśli się mylę, ale jeśli np trzymam dane odnośnie kart kredytowych.

IMHO źle postawione pytanie - własny hosting to zupełnie inne rozwiązanie niż chmura. Każde ze swoimi wadami i zaletami.

I pytanie jaka chmura - w pełni zarządzana przez dostawcę? Czy w stylu EC2? Zdaje się, ze Wasza będzie w pełni zarządzana, warto to podkreślić.

Cena.

Postawienia czy utrzymania? Zakładasz też, że trzeba wynająć administratora. A odpowiadając na pytanie - koszt postawienia to maksymalnie 2 dni mojej pracy. Jak ją sobie wycenię to już inna sprawa. :wink:

Cena. :wink:

Z mojej prywatnej perspektywy cena. Aktualnie cena chmur jest zbyt wysoka, żeby miało to dla mnie sens. Ponadto - własny serwer daje mi możliwość postawienia blogaska na wordpressie, ale i Redmine’a czy Traka. Pełna dowolność.

Z perspektywy wdrożenia - brakuje bardzo prostej chmury. Podstawowa wersja Heroku jest dość uboga, a minimalne jej rozbudowanie bardzo zwiększa koszty. Jeżeli odpalam projekt, który chcę sobie sprawdzić czy wypali to nie chcę w niego angażować wielkich środków. Prosty VPS to naście dolarów (może więcej), ceny chmur to już dziesiąt dolarów.

Administracja serwerami, skryptami wdrożeniowymi to nie rola programisty i chętnie korzystamy z usług firm, które pozwalają nam zaoszczędzić czas i nerwy.

Od ponad roku używamy heroku i bardzo nam to odpowiada. Tym bardziej, ze wciąż przybywa tam użytecznych rozszerzeń.
Używalismy wcześniej EY, jednakże mimo ich doskonałego supportu, wciąż nie było to tak zautomatyzowane jak powinno. Po za tym byli cholernie drodzy :slight_smile:

  • Jakie problemy mają popularne rozwiązania jak Engine Yard i Heroku?

    Na heroku trochę ograniczony jest debugging wdrożonych aplikacji. Bardzo pomocny jest np. zainstalowany hoptoad, ale gdy wywali sie cos przed startem aplikacji, trzeba komitowac wiele razy (nawet "90 razy jak w $%#$% fabryce :)) http://www.flickr.com/photos/ncr/4646742883/

Przede wszystkim jest tańszy.

Wyższe koszty. Nie wiadomo do końca jak wygląda izolacja danych pomiędzy aplikacjami (firmy oferujące hosting w chmurze, rzadko poruszają ten problem).

[quote=Bragi]* Jak są szacowane koszta postawienia własnego serwera? (czas pracy administratora, instalacja systemu, uruchomienie serwera, koszty
miesięczne serwera, miesięczny czas administratora)[/quote]
Przypuszczam, że własny administrator będzie droższy, ale ma tą zaletę że jest dostępny na miejscu, w zasadzie na zawołanie. Mieliśmy produkcyjną aplikację w OVH i rozbiliśmy się raz o to, że technicy są gdzieś w Paryżu i nie ma z nimi bezpośredniego kontaktu.

Nie korzystałem. Przymierzaliśmy się do EY, ale nie wspierali niektórych z naszych zależności.

  • Instancje tworzy się jednym kliknięciem, backup to pełny obraz instancji (domyślnie daily, weekly, monthly) który można sobie przywrócić w dowolnym momencie samodzielnie ew. stworzyć kolejne instancje na bazie istniejących (np. production => staging).
  • Brak konieczności kontaktu z administratorem jest naprawdę super. Nie ma też problemu ze zmianą parametrów (np. 2x więcej RAMu), klik i
    po kilkunastu minutach gotowe - bez downtimeu.
  • Najważniejsza zaleta chmury - można łatwo skalować swoją aplikację.
  • Publiczne API (więc można sobie oprogramować zarządzanie instancjami)
  • Instancje z Windowsem (czasem się przydają).
  • Aplikacje na urządzenia mobilne (IPhone, Android) do zarządzania instancjami.

To są IMO cechy fajnego hostingu w chmurze. Wszystkie są dostępne RackspaceCloud na który
ostatecznie się zdecydowaliśmy, ale chętnie zapłaciłbym polskiej firmie za podobną usługę. Zresztą zależy czego komu potrzeba. Jeśli aplikacja jest
kierowana głównie do polskich użytkowników, to miło byłoby mieć do dyspozycji rzetelnego usługodawcę na tym polu.

Stabilny, z góry znany plan cenowy - niebezpieczne jest uzależnianie się od rozwiązania, które dzisiaj oferowane jest np. jako darmowe z gwiazdką, że kiedyś w przyszłości będzie płatne (patrz Pusher). Niezależnie od tego rozwiązanie musi umożliwiać mi łatwe zrezygnowanie z usługi i przeniesienie wszystkiego na własny serwer (baza danych, załączniki, itp.).

edit: łał! na Pusherze się pojawił cennik (przykład nieaktualny). 5 połączeń za darmo! (czyli czwórka do brydża i jeden kibic - absurdalne, trzeba postawić swój serwer).

Chciałem coś napisać, ale Filip zamieścił tu dokładnie moje stanowisko.

  • Dlaczego własny hosting jest lepszy od chmury?
  • kontrola nad środowiskiem
  • dostęp do “sprzętu”
  • większe możliwości optymalizacji
  • Czego najbardziej się obawiasz, co powstrzymuje Cię przed hostowaniem w chmurze ‘by default’?
  • bezpieczeństwo
  • szybkość działania
  • trudno znaleźć dobry “klasyczny” hosting, znalezienie dobrej chumry graniczy z niemożliwością
  • Jak są szacowane koszta postawienia własnego serwera? (czas pracy administratora, instalacja systemu, uruchomienie serwera, koszty miesięczne serwera, miesięczny czas administratora)
  • zależy od skali, dla mnie postawienie i skonfigurowanie podstawowego serwera pod rails to jeden dzień, więc ~ 500zł
  • Jakie problemy mają popularne rozwiązania jak Engine Yard i Heroku?
  • ograniczenia w zainstalowanym oprogramowaniu
  • bardzo słaba wydajność zwykle
  • Co musi oferować chmura, żeby być atrakcyjniesza od własnego serwera?
  • musiała by być zdecydowanie tańsza niż serwer dedykowany

Generalnie problem chmury jest to że :

  • overselling w chmurze jest gigantyczny zwykle
  • dodać do tego należy wirtualizację
  • często duży overhead w komunikacji pomiędzy serwerami
  • częste problemy np z dostępepem do dysku,
  • non stop walka o zasoby.

W efekcie 2 serwery baza danych + aplikacja ma wydajność porównywalną do 6-10 “instancji” o podobnych deklarowanych parametrach.
Plusem (i jedynym jaki jestem sobie w stanie wyobrazić) jest łatwiejsza skalowalność. I przez łatwiejsza nie mam na myśli “łatwa” ani “o wiele łatwiejsza”, jedyne co daje zewnętrzna chmura to to że dołożą nam serwery w kilka chwil, zamiast kilku dni.

Często administrator wewnętrzny ma mniejsze pojęcie niż specjalista z firmy która żyje z hostowania aplikacji.

Zależy o szybkości czego rozmawiamy.

Da się.

Wiadomo oba rozwiązania mają zady i walety, ale w kryzysowej sytuacji chmura może sprawdzić się lepiej.

Zależy do czego – nam się opłaca mieć serwer do developmentu. Możliwość skorzystania z shella czy doinstalowania pakietów jest też nie bez znaczenia: ot, instalowałem dzisiaj ffmpeg i imagemagick na przykład. Chmura typu Heroku na to nie pozwala raczej… Chmura typu EC2… jeśli będzie wydajna to nie mam nic przeciwko :).

Koszt, dostęp do shella/konsoli, możliwość instalacji dowolnej wersji Rubiego i bibliotek, dodatkowego oprogramowania.

Nieznaczne. 49 Euro / miesiąc, http://www.hetzner.de/de/hosting/produktmatrix/rootserver-produktmatrix-eq/. Praca własna - godzina tygodniowo może na utrzymanie/aktualizacje tego.

Opisane wyżej

Roota + momentalną replikację w przypadku awarii. W sumie Xen od jakichś 2 lat to potrafi sam z siebie, więc od biedy taką “chmurę” na 2 serwerach postawić się da :wink:

Cena, większa kontrola

Wysokie koszty, brak fixed planów (stała stawka), bezpieczeństwo danych, izolacja względem innych klientów chmury

149euro instalacja i 49 miesięcznie (hetzner), admina do obsługi kilku maszyn można znaleźć za grosze…

Ogólnie nie wiem czy jestem targetem dla chmury, prowadzę mały startup i każde oszczędności się liczą ale jako że jest to portal ecommerce’owy liczy się także bezpieczeństwo (danych osobowych, transakcji).

Często administrator wewnętrzny ma mniejsze pojęcie niż specjalista z firmy która żyje z hostowania aplikacji.[/quote]
Fakt, ale zakładam tu podobny poziom profesjonalizmu. W momencie gdy masz serwer swój zamknięty w szafce i nie ma na nim innych klientów “chumry” bezpieczeństwo przy podobnym zestawie kompetencji jest o wiele wyższe

Wydaje mi się że dokładnie opisałem co jest powodem problemów z wydajnością w chmurze. Generalnie chmura daje overhead i narzędzie do radzenia sobie z nim w jednym. Ja tylko mówię że zwykle 3 czy 4 intancej EC2 mają wydajność porównywalną z jednym serwerem o podobnej konfiguracji poza chmurą, ze względu na np. dyski w SANie zamiast bezpośrednio przy maszynie.

Da się.

Wiadomo oba rozwiązania mają zady i walety, ale w kryzysowej sytuacji chmura może sprawdzić się lepiej.[/quote]
Wiem że się da, ale jak na razie potwierdzają wielokrotne wpadki “chmur”(głównie EC2 ) uzyskanei jakiejkolwiek pomocy jest wtedy prawie niemożliwe, i w kryzysowych sytuacjach postawienie jednego serwera jest o niebo łatwiejsze niż postawienie z powrotem całej chumry

PS. Bardzo dobry artykuł (niestety po angielsku) opisuje dosyć dokładnie prawie wszystkie wymienione problemy: http://www.informationweek.com/cloud-computing/article/showArticle.jhtml?articleID=225701008&cid=PITC_RON&wc=4

Podsumowanie:

Widzę, że jest pojęcie ‘chmura’ i ‘chmura’ - czyli IaaS oraz PaaS. IaaS to rozwiązania a’la Amazon (ew. plus Engine Yard): tu masz swoje serwery, zarządzaj sobie nimi. Jak dla mnie nie mają one żadnej przewagi nad własną farmą serwerów z Hetznera. No może poza ceną o ile serwery nie są używane non-stop.

Dla mnie dobra chmura to rozwiązania PaaS. Dostawca daje Ci do ręki gotowy ekosystem oraz listę zasad do jakich musisz się stosować aby z niego efektywnie korzystać. W wypadku Ruby on Rails oznacza to najczęściej limit gemów i konieczność użycia wybranej bazy. W zamian dostajesz do ręki system, w którym uruchamiasz aplikację natychmiast po utworzeniu konta.

Taka sytuacja pozwala skupić się na programowaniu. Kiedy aplikacja jest gotowa, żeby pokazać klientowi tworzy się na szybko serwer staging i robi jeden push. Bez żadnej inwestycji, bez administracji, płacisz pod koniec miesiąca za wykorzystane instancje. Nie da się tego zrobić w pierwszym sprincie nowego projektu bez znacznej inwestycji w serwery i administratora. A za serwer i tak w końcu płaci klient, w sumie to jakieś 4 godziny pracy programisty miesięcznie.

Z kolei przy deploymencie produkcyjnym możesz liczyć na to, że system jest już zoptymalizowany. Dostajesz do ręki wszystkie narzędzia, które przyspieszą pracę Twojej aplikacji: reverse proxy z cache, memcached, etc. Baza danych jest dotuningowana. Całość wykonana przez specjalistów, którzy się na tym znają. Znów za koszt 10 godzin programisty.

Najpoważniejsze zastrzeżenia które uznaję z komentarzy:

  • brak jasno określonej polityki/architektury bezpieczeństwa
  • brak dobrej polityki backupu
  • utrudniony debugging
  • cena i szybkość

Ostatni punkt jest dla mnie mocno kontrowersyjny. Z jednej strony rozwiązania chmurowe są droższe przy takiej samej wydajności od ‘bare metal’. Z drugiej strony koszty administrowania, optymalizacji i zabezpieczania architektury są duże - przynajmniej w naszych projektach. Przerzucenie tych obowiązków na providera chmury u nas zmniejsza koszty.

Fajnie by było jakby narzekający na cenę napisali o jakim zastosowaniu piszą. Jeżeli potrzebny jest dedyk do trzymania kilku projektów, może czegoś na php albo używanie w ramach backupu, to na pewno chmura się nie sprawdzi.

Jeżeli to jest jedna railsowa aplikacja dla klienta, to sytuacja wygląda trochę inaczej. Jak czytam niektóre posty tutaj, to wydaje mi się, że mowa o jakiejś idealnej sytuacji :wink: Zamawiamy na spokojnie serwery, jest trochę czasu na ich skonfigurowanie, dopinamy wszystko na ostatni guzik i wpisujemy cap deploy! Kłopot w tym, że z reguły czasu jest mało. W większości wypadków zatrudnianie administratora na stałe nie ma dużego sensu, bo nie ma dla niego aż tak dużo pracy. Jak nie jest zatrudniony na stałe, to trzeba z nim się dogadać co do konfiguracji, dodatkowo często trzeba sporo rzeczy postawić samemu, bo mało który administrator siedzi mocno w temacie railsów. Oczywiście, mogę to wszystko zrobić sam, ale jeżeli przez ten dzień czy dwa mogę dopracować aplikację, to raczej wybiorę dopracowanie aplikacji niż grzebanie w ustawieniach serwera.

Jak potrzebne są dwa serwery, to też jest pewnego rodzaju kłopot w postaci utrzymania krótkiego czasu konfiguracji. Może zastosować chefa? Może wirtualizację? Tylko to też wymaga trochę więcej czasu.