You are on page 1of 50

OD REDAKCJI

Hosting jest usługą niezmiernie ważną dla prawidłowego funkcjonowania strony internetowej. Wiedzą o tym
zwłaszcza właściciele sklepów internetowych oraz autorzy blogów.

Jaki jest dzisiejszy rynek hostingowy w Polsce? Na to pytanie pomaga nam odpowiedzieć Dziennik Internau-
tów. Marcin Maj i Paweł Kusiciel przybliżą Wam m.in. jakie są ograniczenia bezpłatnego hostingu i z jakimi cena-
mi należy się liczyć, decydując się na hosting płatny.

W numerze poruszymy także kwestię bezpieczeństwa danych, ponieważ backup to nieodłączne zagadnienie
związane z hostingiem; a także kwestię tworzenia skryptów w technologiach typu Flash i Silverlight. Technologie
te dają możliwość tworzenia przyjaznych interface’ów zarządzających, zatem dodanie ich do oferowanych przez
firmy hostingowe systemów CMS znacząco wpływa na ich atrakcyjność.

W niniejszym numerze przeczytacie również m.in. o wykorzystaniu chmury Amazon S3 za pomocą języka PHP
oraz o bezpiecznym i skalowalnym przechowywaniu danych w „chmurze obliczeniowej”.

Wszystkim czytelnikom życzymy miłej lektury!

Monika Subda
Redaktor prowadząca SDJ Extra

Szczególne podziękowania dla osób, które pomagały w tworzeniu pisma: Łukasza Koszeli, Grzegorza Szpet-
kowskiego, Mateusza Kamińskiego, Rogera Zacharczyka, Krzysztofa Ściry, Adriana Gadziny oraz Arkadiusza
Sendeckiego.

Miesięcznik Software Developer’s Journal


jest wydawany przez Software Press Sp. z o.o. SK

Redaktor naczelny:
Łukasz Łopuszański lukasz.lopuszanski@software.com.pl

Redaktor prowadzący:
Monika Subda monika.subda@software.com.pl

Skład i łamanie:
Tomasz Kostro www.studiopoligraficzne.com

Kierownik produkcji:
Andrzej Kuca andrzej.kuca@software.com.pl

Adres korespondencyjny:
Software Press Sp. z o.o. SK,
ul. Bokserska 1, 02-682 Warszawa, Polska
tel. +48 22 427 36 91, fax +48 22 224 24 59
www.sdjournal.org cooperation@software.com.pl

Dział reklamy: adv@software.com.pl


Redakcja dokłada wszelkich starań, by publikowane w piśmie i na
towarzyszących mu nośnikach informacje i programy były poprawne,
jednakże nie bierze odpowiedzialności za efekty wykorzystania ich; nie
gwarantuje także poprawnego działania programów shareware, freeware
i public domain.

Wszystkie znaki firmowe zawarte w piśmie są własności odpowiednich firm.


Zostały użyte wyłącznie w celach informacyjnych.

Osoby zainteresowane współpracą prosimy o kontakt:


cooperation@software.com.pl

www.sdjournal.org 3
SDJ Extra: HOSTING

SPIS TREŚCI

6 JAKI JEST POLSKI RYNEK 24 WYKORZYSTANIE CHMURY


HOSTINGU? AMAZON S3 ZA POMOCĄ JĘZYKA
PHP
Marcin Maj, Paweł Kusiciel
Do tej pory nie podjęto wielu prób oszacowania wartości
polskiego rynku hostingu. Ciekawym źródłem informacji Łukasz Koszela
na ten temat może być raport Internet 2k10 przygotowa- Coraz częściej słyszy się tak zwane słowo-klucz – cloud-
ny przez Internet Standard. Wynika z niego, że w 2009 computing. Ale co to tak naprawdę znaczy dla typowego
r. polski rynek usług hostingowych mógł osiągnąć obroty webdevelopera? W jaki sposób można wykorzystać roz-
rzędu 120 mln zł. Największe firmy z branży oferują pełen wiązania oparte na chmurze? W niniejszym artykule rzu-
wachlarz usług, z których najważniejsze to utrzymywanie cimy na ten temat trochę światła. Zobaczymy w jaki spo-
skrzynek pocztowych, serwery wirtualne, serwery dedy- sób wykorzystać chmurę Amazon w budowaniu aplika-
kowane oraz kolokacja. cji webowych, wykorzystując S3, czyli skalowalną usłu-
gę składowania danych na chmurze. Na koniec zaimple-

12 JAKIMI CZYNNIKAMI
mentujemy prostą aplikację w języku PHP, umożliwiającą
upload plików na chmurę wykorzystując S3.

KIERUJEMY SIĘ PRZY WYBORZE


28 HOSTING W CHMURZE
HOSTINGU? Tomasz Kozłowski
Na polskim rynku istnieje kilkadziesiąt firm, które świad- Infrastruktura IT jest niezbędnym elementem funkcjono-
czą usługi hostingowe. Ich oferty różnią się między sobą wania praktycznie każdej firmy, bez względu na wielkość.
ceną, limitem przestrzeni dyskowej czy wielkością trans- Od prostej strony internetowej, przez systemy CRM, ERP,
feru. W natłoku możliwości ciężko jednak znaleźć ofertę Bazy Danych itp aż po zaawansowane systemy autorskie
doskonałą i zarazem przystępną cenowo. - wszystkie aplikacje wymagają serwerów, mocy oblicze-
niowej, przestrzeni dyskowej i infrastruktury sieciowej do

14 SERWERY VPS
transferu danych. Zapotrzebowanie na usługi hostingo-
we rosło i zmieniało się przez lata choć modele hostin-
Sebastian Fyda gowe pozostawały wciąż takie same. Aż wreszcie pojawił
Na rynku działa wielu dostawców serwerów wirtualnych. się Cloud Computing - innowacyjna metoda udostępnia-
Jak zatem dobrać serwer VPS do swoich potrzeb? Na co nia infrastruktury IT.
należy zwracać uwagę? VPS VPSowi nierówny – jak za-

32 AUTOMATYCZNE KOPIE
tem porównać konkurencyjne oferty?

18 WPROWADZENIE DO AMAZON BEZPIECZEŃSTWA SERWISU


SIMPLE STORAGE SERVICE S3 WWW
Grzegorz Szpetkowski Krzysztof Ścira, Adrian Gadzina, Arkadiusz Sendecki
W niniejszym artykule pokażę w jaki sposób posługiwać Z tematyką hostingu nieustannie łączy się bezpieczeń-
się S3 od strony „zwykłego” użytkownika oraz programi- stwo danych. Zabezpieczyć można się na wiele sposo-
sty Java, który zamierza wykorzystać oferowany przez bów, ale gdy wszystko zawiedzie niezbędna będzie ko-
Amazon interfejs REST API do budowy własnego syste- pia zapasowa. Właśnie o backupach będzie poniższy ar-
mu. W sposób szczególny przywiązuję uwagę do bezpie- tykuł. Najpierw zajmiemy się kopią zapasową bazy da-
czeństwa. nych, później plików, a na sam koniec wykorzystamy na-
rzędzie Cron do automatyzacji procesu tworzenia kopii
zapasowych.

4 1/2010
SDJ Extra: HOSTING

SPIS TREŚCI

38 PRZYSPIESZYĆ SERWER WWW


trzech technologii. W imię czego? Ładnych animacji? Pro-
stoty implementacji? Pozostaje jeszcze aspekt użytecz-
Mateusz Kamiński ności i... dostępności. Zastanówmy się więc, jak prawidło-
Początkujący programista PHP zajmuje się najczęściej wo wykorzystać te multimedialne technologie.
wszystkim. Zajmuje się rzecz jasna programowaniem,

50 SDJ EXTRA POLECA


z powodu braków w załodze nie stroni od kodowania
szablonów, a jak szef każe to również „postawi” Linuk-
sa, na którym to wszystko będzie działało. Pora się do- Lista stron www, blogów na których znajdziecie przydat-
kształcić... ne informacje, artykuły i porady dotyczące hostingu....i nie
tylko. Polecamy!

46 TWORZENIE SKRYPTÓW
W TECHNOLOGIACH TYPU FLASH
I SILVERLIGHT
Roger Zacharczyk
Flash, za Flashem przepaść, za przepaścią Silverlight
oraz Java FX. Wielokrotnie sięga się po jedną z tych

Reklama
SDJ EXTRA: HOSTING

Jaki jest polski rynek


hostingu?
Do tej pory nie podjęto wielu prób oszacowania wartości polskiego
rynku hostingu. Ciekawym źródłem informacji na ten temat może być
raport Internet 2k10 przygotowany przez Internet Standard. Wynika
z niego, że w 2009 r. polski rynek usług hostingowych mógł osiągnąć
obroty rzędu 120 mln zł. Największe firmy z branży oferują pełen
wachlarz usług, z których najważniejsze to utrzymywanie skrzynek
pocztowych, serwery wirtualne, serwery dedykowane oraz kolokacja.
Dowiesz się: Powinieneś wiedzieć:
• Jaka jest sytuacja na rynku hostingu w Polsce • Co to jest hosting
• Jakie są różnice pomiędzy hostingiem bezpłatnym, a płatnym • Co to jest serwer dedykowany
• Jakie są ograniczenia bezpłatnego hostingu • Co to jest kolokacja
• Z jakimi cenami należy się liczyć wykupując płatny hosting
• Który hosting będzie najlepszy dla Ciebie

T
rudno ocenić, ile podmiotów działa na polskim go zdaniem polski rynek jest opóźniony w stosunku do
rynku. Autorzy raportu Internet 2k10 doliczyli się krajów najbardziej rozwiniętych o 3-4 lata. Jest to rynek
na podstawie różnych źródeł 50-60 organizacji dość specyficzny, bo przykładowo nie można żądać od
świadczących takie usługi. Trzeba przy tym zauważyć, klientów kart kredytowych, skoro z nich nie korzystają.
że usługi hostingowe oferuje też całkiem sporo małych, Wydaje się też, że na rynku zbyt mało jest gotowych
jednoosobowych firm, które wynajmują tanie serwery rozwiązań np. dla sklepów internetowych, a takie wła-
za granicą i odsprzedają przestrzeń dyskową klientom śnie rozwiązania najbardziej przemawiają do firm roz-
z Polski, doliczając sobie pewną marżę. poczynających życie w sieci.
Wśród polskich dostawców hostingu jest dwóch nie- Warto pamiętać, że rynek hostingu to także hosting
kwestionowanych liderów - Home.pl oraz NetArt. Inne bezpłatny. Jego dostawcy najczęściej oferują ograni-
liczące się firmy to AZ.pl, KEI Jump, Ogicom, OVH, Ac- czone usługi i w zamian za nie emitują reklamy na stro-
tive24 itd. nie stworzonej przez użytkownika.
Eksperci przewidują wzrosty na rynku hostingu. We- Planując uruchomienie strony, zawsze warto wziąć
dług ostatnich badań Millward Brown SMG/KRC ponad pod uwagę bezpłatny hosting. Dla niektórych osób i firm
40% polskich firm nie istnieje w sieci, choć 89% przed- może to być sposób na pierwsze starcie z internetem
siębiorców deklaruje korzystanie z sieci w celach biz- - darmowy hosting nic nie kosztuje i umożliwia swobod-
nesowych, to odsetek tych pierwszych jest nadal bar- ne eksperymentowanie z pierwszą stroną. Bezpłatny
dzo mały. 41% przedsiębiorców, aby zaistnieć w sieci, hosting najczęściej wymaga od administratora strony
potrzebowałoby tylko kogoś, kto poprowadzi ich za rę- znajomości technologii tworzenia stron WWW. Dostaw-
kę. Stąd takie akcje, jak choćby "Internetowa rewolucja" cy takiego hostingu umożliwiają zainstalowanie na kon-
firm Google, PKPP Lewiatan i Home.pl, w ramach któ- cie systemu zarządzania stroną, dzięki któremu można
rej przedsiębiorcy dostawali pakiety startowe ułatwiają- łatwo stworzyć dynamiczny serwis.
ce zaistnienie w sieci.
Polski rynek usług hostingowych wydaje się nieco Hosting bezpłatny
opóźniony w porównaniu do rynków zachodnich. Zwra- Decydując się na bezpłatny hosting, musimy pamiętać,
cał na to uwagę Stefan Jurczyk, główny architekt Ho- że... nie możemy wymagać zbyt wiele. Dostawcy takich
me.pl w wywiadzie dla serwisu Interaktywnie.com. Je- usług często zastrzegają sobie w regulaminach prawo

6 1/2010
Jaki jest polski rynek hostingu?

do usunięcia konta lub wyłączenia strony użytkowni- stać z kodu do wklejenia na swoją stronę. Pliki zbyt du-
ka bez podania przyczyny. Osoba korzystająca z bez- że można opublikować za pomocą serwisu udostępnia-
płatnego hostingu ma ograniczone prawo do dyspono- jącego darmowy hosting plików.
wania swoją domeną. Nie oznacza to, że bezpłatny ho- Dziennik Internautów przyjrzał się ofertom siedmiu
sting nie ma zalet. usługodawców udostępniających bezpłatny hosting dla
- Oferty płatne posiadają lepsze parametry prędko- Polaków. Porównaliśmy oferty pod kątem przestrzeni
ści, wielkości i transferu, ale często swoją topornością dyskowej, transferu, dostępnych narzędzi itd. Wszyst-
i nadmiarem zbędnych opcji straszą amatorów webma- kie z opisanych ofert przewidują umieszczanie przez
sterskiego rzemiosła, którym zależy na prostocie i krót- usługodawcę reklam na stronie stworzonej przez usłu-
kim czasie tworzenia własnych stron. Dlatego właśnie gobiorcę. Nie oznacza to, że w ogóle nie ma dostaw-
takie osoby przez wzgląd na brak kosztów i wspomnia- ców bezpłatnego hostingu bez reklam. Taką usługę ofe-
ny brak wiedzy informatycznej wybiorą proste rozwiąza- ruje m.in. Jatsu.pl, ale oferta tej firmy ma pewne istotne
nia rynku darmowego hostingu, gdzie wszystko odby- braki, np. nie udostępnia regulaminu w języku polskim.
wa się za pomocą kilku kliknięć myszki. Ponadto wzrost W tym miejscu warto zwrócić uwagę na jeszcze jed-
atrakcyjności oferty darmowego hostingu, jak np. uru- ną cechę bezpłatnego hostingu - możemy mieć poważ-
chomienie przez www.Prv.pl ponad pół roku temu insta- ny kłopot z uzyskaniem pomocy technicznej. Z niektó-
lacji popularnych skryptów szablonów serwisów inter- rymi usługodawcami trudno się skontaktować, a inni in-
netowych, jak WordPress, Joomla czy fora phpBB, sty- formują wprost, że oferują wsparcie za pomocą forum,
muluje ceny i kontrofertę naszych płatnych rywali - za- co nie zawsze jest wystarczające (Rysunek 1).
uważa Karol Wnukiewicz, przedstawiciel grupy Pino.pl. Oferty bezpłatnego hostingu mogą się różnić udo-
Analizując oferty bezpłatnego hostingu, zauważymy stępnianą przestrzenią dyskową, bazami danych, do-
ich wspólne cechy, które trzeba brać pod uwagę: stępem do kont e-mail. Szczegółowe informacje można
znaleźć w powyższej tabeli. Patrząc na tabelę, szybko
• Większość dostawców bezpłatnego hostingu daje zorientujemy się, że:
możliwość korzystania z jednej bazy danych.
• Najczęściej nie ma limitu transferu, ale wielu usłu- • Najwięcej miejsca na dysku można uzyskać, korzy-
godawców zastrzega, że może wyłączyć lub nawet stając z oferty Friko.pl. Usługodawca ten daje miej-
usunąć strony, które generują bardzo duży ruch. sce do 1 GB dla każdej ze 100 dostępnych subdo-
• Większość dostawców bezpłatnego hostingu udo- men. Czyni to ofertę Friko.pl porównywalną z nie-
stępnia narzędzia do tworzenia stron internetowych którymi usługami płatnymi. Inni dostawcy dużych
(kreatory, CMS-y). i bezpłatnych kont WWW to PRV.pl oraz CBA.pl,
• Większość dostawców bezpłatnego hostingu sta- gdzie dostaniemy po 1 GB na stronę. Najmniejsze
wia ograniczenia co do maksymalnej wielkości pli- konta oferuje Republika.pl - zaledwie 50 MB.
ków na stronie WWW oraz ich rodzaju (pliki multi- • Pod względem dostępnych baz danych również li-
medialne są często zakazane). derem jest Friko.pl. CBA.pl nie daje limitu na bazę
• Większość dostawców bezpłatnego hostingu emitu- danych. Na PRV.pl można mieć dostęp do 5 baz.
je swoje reklamy na stronie użytkownika. Republika.pl nie pozwala na korzystanie z bazy My-
SQL, co wydaje się bardzo archaiczne i uniemożli-
Ostatnia wymieniona cecha bezpłatnego hostingu po- wia uruchomienie na koncie systemu do zarządza-
winna uświadamiać nam jedno - nie ma czegoś ta- nia treścią (CMS).
kiego jak "darmowe" konta WWW. Są natomiast kon- • Wszyscy z wyjątkiem dwóch dostawców nie na-
ta "bezpłatne", których dostawcy zarabiają na rekla- kładają na użytkownika sztywnego limitu transfe-
mach internetowych. To sprawia, że rynek bezpłatne- ru. Warto jednak przypomnieć, że strony generują-
go hostingu jest w większym stopniu zależny od ryn- ce zbyt duży transfer mogą być wyłączone lub usu-
ku e-reklamy. Dostawcy tej usługi nie traktują admini- nięte z serwera.
stratora strony WWW jak typowego klienta. Jest on dla • Udostępnianie konta z funkcją e-mail nie jest stan-
nich raczej dostawcą treści, który powoduje większą dardem.
lub mniejszą liczbę odsłon reklam. • Ograniczanie wielkości pliku do 10 MB jest najczę-
Hosting bezpłatny posiada swoje ograniczenia, ale ściej spotykane. Niektórzy dostawcy ustanawia-
mogą sobie z nimi poradzić sprytni internauci, którzy ją jeszcze mniejszy rozmiar maksymalny (2-6 MB).
połączą wybrane oferty hostingu i możliwości porta- PRV.pl nie stawia limitu wielkości pliku i nie wspo-
li społecznościowych. Przykładowo może się okazać, mina w regulaminie o ograniczeniach dotyczących
że dostawca hostingu zabrania umieszczania plików fil- typów plików. Vooa.pl pozwala na upload wszyst-
mowych lub dźwiękowych na swoich serwerach. Moż- kich plików, ale trzeba mieć na uwadze, że ten do-
na jednak przesłać taki plik np. na YouTube i skorzy- stawca nakłada na użytkownika limit transferu.

www.sdjournal.org 7
SDJ EXTRA: HOSTING

• Udostępnianie konta bezpłatnego hostingu wraz W internecie anglojęzycznym bez problemu znajdzie-
z gotowymi skryptami, CMS-ami i kreatorami stron my takich usługodawców, którzy oferują bezpłatny ho-
to właściwie standard. sting bez reklam (ale z ograniczeniem transferu). Ta-
cy dostawcy często liczą na to, że osoby korzystają-
Zaprezentowane wyżej dane dotyczą dostawców ho- ce z usługi bezpłatnej z czasem wykupią u nich usługę
stingu, którzy oferują usługi dla Polaków i w języku płatną. W internecie anglojęzycznym łatwiej znajdziemy
polskim. Warto jednak mieć na uwadze, że rynek bez- też takich dostawców, którzy nie nakładają ograniczeń
płatnego hostingu nie musi znać takich samych granic, co do uploadowanych plików. Karol Wnukiewicz z grupy
jak rynek hostingu płatnego. Osoby znające języki ob- Pino.pl stojącej za serwisem PRV.pl przyznaje, że za-
ce mogą skorzystać z ofert dostawców działających na chodni dostawcy bezpłatnego hostingu mogą sobie po-
rynkach zagranicznych. zwolić na więcej.

Rysunek 1. Darmowy hosting

8 1/2010
Jaki jest polski rynek hostingu?

- Różnice pomiędzy polskim i zachod- liczbę osób tworzących strony internetowe i co dalej za tym idzie
nim rynkiem bezpłatnego hostingu wyni- - większą powierzchnię reklamową i liczbę sprzedanych usług Pre-
kają głównie z ograniczeń rynku reklamy. mium dla bardziej zaawansowanych twórców stron - mówi Karol
Zachodni potentaci dysponują lepszym Wnukiewicz.
zapleczem reklamowym i stąd ich więk- Z praktycznego punktu widzenia do dostawców hostingu należa-
sza rentowność. Przekłada się to na moż- łoby zaliczyć także dostawców usług blogowych. Dzięki ich usłu-
liwości inwestycji w udostępnianą tech- gom można stworzyć serwis, który pozwoli na promowanie swojej
nologię. Ponadto mentalność zagranicz- firmy w sieci lub informowanie innych o swoich zainteresowaniach.
nych webmasterów jest zupełnie inna. Nie Użytkownicy takich usług nie muszą przejmować się transferem lub
traktują oni darmowej usługi jako gorszej powierzchnią na dysku, ale są ograniczeni w zakresie stosowanego
i mniej stabilnej. Wpływa to zasadniczo na oprogramowania i publikowanych plików. Karol Wnukiewicz z grupy
Pino.pl uważa jednak, że rola blogów będzie słabnąć.
- Świadomość informatyczna zwykłego internauty rośnie i aktual-
nie coraz więcej osób pragnie założyć własną stronę internetową.
Strony blogowe stają się coraz mniej popularne, ich potencjał prze-
jęły mikroblogi, jak np. zagraniczny Twitter czy polskie odpowiedniki
- Blip.pl czy Moblo.pl. Nowe oblicze internetowej autoprezentacji to
całkowicie własna strona internetowa, na którą nie każdego stać lub
nierzadko brakuje wiedzy przy wykonaniu - uważa Wnukiewicz.
Poza typowo bezpłatnym hostingiem jest jeszcze jeden sposób
na darmowe eksperymentowanie z ofertami. Coraz większa liczba
dostawców płatnego hostingu decyduje się na udostępnianie ofert,
które są darmowe przez jakiś czas. W sierpniu br. na polski rynek
hostingu wszedł zachodni gigant 1&1 z ofertą "Pakietem na Dzień
Dobry". W ramach pakietu użytkownik dostaje usługę bezpłatną na
okres 2 lat i pakiet 3000 GB limitu transferu miesięcznie. Po upły-
wie dwóch lat klienci korzystający z oferty promocyjnej mogą prze-
dłużyć swą współpracę z 1&1 lub z niej zrezygnować bez dodatko-
wych zobowiązań. Również polscy dostawcy hostingu udostępnili
oferty, które są bezpłatnie przez określony czas.

Hosting płatny
Praktycznie każda analizowana usługa płatna, posiada możliwość
przeprowadzenia testów przez okres 14 dni. Wyjątkiem jest ofer-
ta 1&1, która sama w sobie jest bezpłatna. W czasie okresu testo-
wego jesteśmy traktowani jako zwykły klient, dlatego w tym czasie
można sprawdzić pomoc techniczną, jak i działanie samego ser-
wera.
Różnice pomiędzy darmowym a płatnym hostingiem są ogrom-
ne. Począwszy od pojemności serwera, przez limit transferu (choć
większość darmowych ofert nie ma ograniczeń, wynika to z pojem-
ności serwera i generowania małego ruchu na stronie) i skończyw-
szy na reklamach, które nie mają racji bytu w usługach płatnych.
W płatnym hostingu nie ma także ograniczeń związanych z typa-
mi plików. Na serwer można wrzucać, co nam się żywnie podoba
i nikt nam tego nie zabroni (wg polskiego prawa). Pozostaje także
kwestia skrzynek pocztowych, gdzie ograniczeniem jest tylko ilość
miejsca (wyjątkiem jest 1&1).
Wynika z tego jasno, że hosting płatny jest przeznaczony dla
osób, które rozpoczynają półprofesjonalną przygodę z serwisami
internetowymi. Bardzo często oferty kierowane są do firm, a nie
osób prywatnych, ceny podawane są bez VAT, a firmy hostingowe
prześcigają się w ilości użytkowników i kampaniach reklamowych.
- Rynek hostingu w Polsce jest rynkiem młodym, co przekłada się
na jego stały rozwój w bardzo szybkim tempie. Wpływ ma na to wie-

www.sdjournal.org 9
SDJ EXTRA: HOSTING

Rysunek 2. Płatny hosting

le czynników. Jednym z nich jest ogromny wzrost świa- - Dynamika rynku jest wysoka. Potencjał wzrostu
domości społeczeństwa odnośnie znaczenia promocji jest związany z polskim rynkiem domen, który wzrósł
w sieci, co znajduje odzwierciedlenie w zapotrzebowa- o 28% w porównaniu do ubiegłego roku. Obecnie za-
niu na usługi hostingowe będące podstawą funkcjono- rejestrowanych jest 1,9 mln domen .pl, co stanowi 0,05
wania strony WWW - mówi Natalia Niebielska, kierow- domen na osobę w Polsce. W Niemczech stosunek ten
nik sekcji Public Relations NetArt. wynosi 0,2. Jeśli przeniesiemy ten stosunek do Polski,
Dziennik Internautów postanowił porównać pięć firm powinniśmy się spodziewać ponad 8 mln zarejestrowa-
oferujących hosting dla klientów indywidualnych i firm. nych domen w ciągu najbliższych trzech latach. Nawet
Wśród nich znaleźli się liderzy – Home.pl i NetArt (na- 5 mln będzie fantastycznym wynikiem i otworzy du-
zwa.pl) oraz Az.pl, Kei.pl i debiutujący na naszym rynku ży rynek możliwości dla tworzenia stron, komunikacji,
1&1. Każda z tych firm posiada min. dwie oferty, aby do- współpracy i e-commerce - mówi Jörg Lammers, PR
pasować się do każdego z klientów – jedna amatorska, Manager firmy 1&1.
a druga profesjonalna (czyt. Biznesowa) (Rysunek 2). Wybierając serwer dla naszej firmy lub serwisu in-
Z porównania ofert wynika, że: ternetowego, należy kierować się nie tylko ceną, ale
szczególnie ilością miejsca oddanego do użytku i li-
• Przestrzeń do dyspozycji ofert płatnych rozpoczy- mitem transferu. Część z firm nie podaje danych doty-
na się od ok. 10 GB (1&1; 12 GB Kei.pl) do 100 GB czących limitu transferu (obowiązuje przez miesiąc lub
(Home.pl). rok). Różnica jest ogromna, dlatego informacji należy
• Limity transferu są zróżnicowane, gdzie góruje Ho- się doszukiwać.
me.pl (za odpowiednią cenę). Tylko Kei.pl ma sto- Firmy hostingowe prześcigają się w bonusach doda-
sunkowo niski limit transferu danych. Usługodawca wanych do serwerów. Z reguły są to domeny usługo-
podaje 1500 GB/rok i 125 GB/mies. w przypadku dawcy (np. nazwa_serwisu.home.pl), ale także dome-
najtańszego pakietu. ny .pl (Az.pl do każdej z usług hostingowych dodaje aż
• Standardem jest nieograniczona ilość kont e-mail, 3 domeny z końcówką .pl, 1&1 daje jedną taką dome-
FTP i ilość domen. nę, a Kei.pl sprzedaje za symboliczną złotówkę). Nie
• Tylko NetArt daje do dyspozycji nieograniczoną brakuje także ofert z „bezpłatnym” oprogramowaniem
ilość baz danych MySQL, reszta firm daje do dys- antywirusowym, które prawdopodobnie wliczane jest
pozycji od 10 do 100 pozycji. w cenę całej usługi lub należy dokupić licencję na dal-
• Prawie wszystkie firmy hostingowe wspierają SSL szy okres.
dla serwisów klienta. Wbrew pozorom zdaniem 1&1 istnieją jeszcze miej-
• Standardem są trzy języki programowania, któ- sca na rynku.
re obsługują serwery PHP4/5, Perl, Python (w in- - Widzimy wyraźny potencjał wzrostu rynku interneto-
nym przypadku skrypt nie zostanie wykonany). Po- wego. Po pierwsze, tylko połowa polskich firm utrzymu-
równywane firmy nie podają szczegółowo języków je własne strony internetowe. Po drugie, rynek domen
programowania, ale udzielają informacji przez biuro mocno rośnie. To dobra sytuacja dla nas do wejścia na
obsługi lub pomoc techniczną. rynek i daje nam szansę na dalszy rozwój rynku w cza-
• Podane ceny nie posiadają wliczonego podatku sach dobrej konkurencji - dodaje Jörg Lammers.
VAT, są kwotami na okres 12 miesięcy i nie są ofer-
tami promocyjnymi (wyjątek 1&1). Tylko Home.pl Serwery dedykowane
oferuje usługi na okres jednego miesiąca z moż- Serwery dedykowane to kolejna grupa przeznaczona
liwością przedłużenia lub podpisania umowy na dla firm. Z tego typu usług korzystają firmy zajmujące
dłuższy okres. się np. pocztą elektroniczną, radiem internetowym, tele-

10 1/2010
Jaki jest polski rynek hostingu?

wizją internetową, hostingiem czy po prostu ceniących samego serwera (sprzętu) należy doliczyć także mie-
sobie wysokie bezpieczeństwo danych, które będzie sięczny abonament ok. 100-350 zł i nierzadko opłatę in-
pod okiem odpowiednich ludzi, a dostęp będzie zdalny. stalacyjną (czasami za 1 zł).
Oferta serwerów dedykowanych jest tak zróżnicowa- W większości cena uzależniona jest od wyposażenia,
na, jak różne są konfiguracje serwerów. Za najsłabszą które firma oferuje w standardzie - czy będzie to UPS,
wersję, która specyfikacją zbliżona jest do tradycyjnych dostęp do sieci, odpowiednie zasilanie i wsparcie admi-
komputerów klasy PC, należy zapłacić ok. 300 zł. Zaś nistratorów.
cztery rdzenie, 8 GB pamięci RAM i duży dysk (1 TB) to - Obecnie wiele firm wciąż korzysta z darmowych kont
koszt ponad 500 zł. Do tego należy doliczyć jednorazo- hostingowych, udostępnianych przez popularne serwi-
wą opłatę instalacyjną (ok. 200 zł) i usługi dodatkowe. sy w swoich subdomenach. Ponadto najbardziej popu-
Przy wyborze serwera dedykowanego należy zwrócić larne, gdyż odpowiadające potrzebom przedsiębiorstw
uwagę na połączenie z internetem, które będzie kluczo- z sektora MSP, są serwery wirtualne. Dzięki rozwojowi
we. Z reguły w ramach abonamentu firmy oferują opła- oprogramowania udostępnianego przez usługodawców
ty za zasilanie, połączenie z internetem, backup danych znajdują one coraz szersze zastosowanie – dla mniej-
i oprogramowanie. Jeśli którejś z tych pozycji brakuje, szych firm mogą nawet stać się podstawą funkcjonowa-
należy znaleźć rubrykę opłat dodatkowych. Często tań- nia. Ciężko precyzyjnie określić kierunek rozwoju rynku
sze oferty nie zawierają standardu, a przy zakupie np. czy też popularność usług. W najbliższym czasie jed-
cyklicznych kopii bezpieczeństwa może się okazać, że nak nie przewidywałabym drastycznej zmiany udziału
cena będzie podobna, jak w przypadku droższego ser- poszczególnych usług w rynku. Mimo wszystko kolo-
wera dedykowanego. kacja czy serwery dedykowane są nadal dla wielu firm
usługami kosztownymi, a także przewyższającymi ich
Kolokacja potrzeby - mówi Natalia Niebielska.
Oprócz serwerów wirtualnych i dedykowanych istnie-
je jeszcze kolokacja (zwana także hotelingiem). Jest to
udostępnianie miejsca w serwerowni bądź specjalnym
centrum danych, które są specjalnie przygotowane pod
względem technicznym (zabezpieczenia, firewall itp.)
oraz wyposażenia (odpowiednia temperatura, chłodze-
nie, monitoring).
Przekazanie własnego sprzętu w obce miejsce wią-
że się z ryzykiem. Powierzając serwer, należy zwró-
cić uwagę na takie szczegóły, jak systemy monitoringu,
systemy przeciwpożarowe (gazowe gaszenie), klimaty-
zacja, nieograniczony zdalny dostęp do danych, staty-
styki, backup danych i chyba jedna z najważniejszych
rzeczy – szybkość połączenia z internetem.
Na rynku jest dużo firm zajmujących się kolokacją. Te-
go typu usługi najczęściej stosowane są w większych MARCIN MAJ I PAWEŁ KUSICIEL
miastach, gdzie połączenie z internetem jest bardzo do- Pracują jako dziennikarze w redakcji Dziennika Internautów
bre. Ze względu na wygodę i bezpieczeństwo koloka- www.di.com.pl.
cja przeznaczona jest dla profesjonalnych firm i właści- Kontakt z autorami: marcin.maj@di24.pl
cieli dużych serwisów internetowych. Oprócz kosztów oraz pawel.kusiciel@di24.pl

www.sdjournal.org 11
SDJ EXTRA: HOSTING

Jakimi czynnikami
najczęściej kierujemy się
przy wyborze hostingu?
Na polskim rynku istnieje kilkadziesiąt firm, które świadczą
usługi hostingowe. Ich oferty różnią się między sobą ceną,
limitem przestrzeni dyskowej czy wielkością transferu.
W natłoku możliwości ciężko jednak znaleźć ofertę
doskonałą i zarazem przystępną cenowo.

A
czym kierują się potencjalni klienci przy wybo- baz danych - im więcej tym lepiej, ponieważ nie trze-
rze hostingu i co sprawia, że decydują się na ba ograniczać się np. w testowaniu rozwiązań opar-
ofertę konkretnej firmy? Zapytaliśmy o to kilku tych na MySQL. Niestety oferty, które mają np. 3 ba-
programistów, autorów blogów oraz właścicieli serwi- zy a wysoka pojemność i transfer miesięczny są nie-
sów internetowych. atrakcyjne, ponieważ w większości przypadków nie
wykorzysta się tego serwera w całości.
Dariusz Zoń, autor bloga http://darekzon.com/ Jednym z ważniejszych punktów jest także umowa.
Jako klient, ale również jako programista zwracam Niestety większość firm skupia się na tym, aby podpi-
uwagę na następujące aspekty: sać umowę np. na dwa lata, a myślę, że gdyby wpro-
wadzili umowy jednoroczne - pozyskaliby większą licz-
• pojemność oraz transfer bę klientów.
• obsługiwane języki (php, ruby, perl, python etc.)
- im więcej nie znaczy lepiej Paweł Miłosz, właściciel www.female.pl
• lista obsługiwanych baz danych Przy wyborze firmy hostingowej kierowałem się kilko-
• dostęp do konta przez ssh ma czynnikami. Te czynniki byłem w stanie zdobyć po
• czy firma ma własną serwerownię, czy może wy- kilku latach doświadczeń z różnymi firmami.
najmuje miejsce w szafach Przede wszystkim: jak długo dana firma działa na
• zastosowane technologie w serwerowniach (ser- rynku i jakie są o niej opinie?
wery, backup, zasilanie) Druga to parametr serwera do jego ceny - serwer
• możliwość ustawienia zadań cron oraz ich mini- musi obsługiwać php5 i mysqla.
malny odstęp czasowy (np. co 5 minut) Trzecia to limity transferów. Wszelkie firmy, które na-
• możliwość podpięcia certyfikatów ssl kładają jakieś limity transferów są od razu odrzuca-
• panel zarządzania kontem (cenię sobie rozwiąza- ne. Limity obciążania procesorów serwera to wiadomo
nia dedykowane) - jeśli jakaś aplikacja zbyt mocno obciąża serwer to po
informacji od administratora trzeba w jakimś rozsąd-
Lista czynników w kolejności od najważniejszych do nym czasie zoptymalizować aplikacje.
najmniej ważnych. Limity transferów są po prostu hamulcem wszelkie-
go rozwoju. Bywało i tak, że po udanym mailingu ad-
Piotr Skiba, JaguarStudio.pl, informatyk ministrator wyłączał serwis, bo bał się jakichś zmaso-
Podczas wyboru firmy hostingowej zwracam uwagę wanych ataków na serwer właśnie w celu wyczerpa-
na pojemność serwera, a także na transfer miesięcz- nia limitów.
ny, ponieważ są to głównie czynniki jakie sprawiają, Przy wyborze hostingu nie kieruję się dostępem do
że dana oferta jest dla mnie atrakcyjna. Dla mnie jako paneli administracyjnych pomocnych w zarządzaniu
programisty dużą rolę odgrywa także ilość dostępnych serwerem. Jeśli administrator tworzy nowe konta ma-

12 1/2010
Jakimi czynnikami najczęściej kierujemy się przy wyborze hostingu?

ilowe, dodaje biblioteki i usługi po telefonie lub mailu to i telefonu pod którym ktoś zawsze może pomóc. Po
jest to dla mnie w pełni wystarczające. trzecie wydajność, możliwości i transfery – ważne jest
to o tyle, że czasami hosterzy nakładają pewne ogra-
Tomasz Kowalski, programista niczenia np. na liczbę zapytań do bazy. Warto zwrócić
Z usług hostingowych korzystam w celach niekomer- uwagę na parametry związane z transferami i czasami
cyjnych. Zwykle konto takie służy mi do przechowy- odpowiedzi serwerów. Po czwarte, mimo że trochę da-
wania kopii zapasowych bieżących projektów i innych lej na liście, to jednak cena jest również istotnym ele-
niewielkich, lecz ważnych plików. Wobec tego nie po- mentem wyboru hostera. Oczywiście nie proponował-
trzebuję dużych transferów miesięcznych ani ogrom- bym się kierować najniższą ceną, ale czasem bardzo
nej przestrzeni dyskowej (1 GB w zupełności wystar- podobne jakościowo usługi możemy dostać w skrajnie
cza), ale ważna jest dla mnie funkcjonalność kon- dwóch różnych cenach – warto na to zwrócić uwagę.
ta. Oprócz dostępu przez FTP dużym plusem jest dla
mnie serwer git lub mercurial konfigurowany "per pro- Michał Orman,autor bloga http://michalorman.pl
jekt" razem z Trac. Ideałem byłby dostęp do podsta- Przy wyborze hostingu w mojej firmie kierujemy się
wowych operacji na moich plikach poprzez SSH, choć głównie ceną, w dalszej kolejności przyglądamy się
nie musi to od razu oznaczać wielkich możliwości - je- dostępnym usługom. Nasze wymagania to przeważnie
śli szukałbym takowych wykupiłbym maszynę w Ama- system operacyjny z rodziny Linux, dostęp z upraw-
zon EC2. Od strony serwera HTTP – oprócz oklepa- nieniami administratora, oraz usługa backupu. Nie-
nego PHP przydałaby się także możliwość uruchomie- stety na polskim rynku takie wymagania zmuszają do
nia skryptów Perl lub Python. Konto spełniające więk- zakupu serwera dedykowanego, co jest kosztem sta-
szość powyższych wymagań znaleźć można za cenę nowczo zbyt wysokim, stąd też częściej decydujemy
poniżej 10zł/miesiąc, co moim zdaniem odzwierciedla się na zagraniczną usługę opartą o wirtualizacje.
jego wartość i nie stanowi ceny zaporowej nawet dla
biednych studentów :) Podsumowując - wybór takie- Maciej Kobiałko,
go konta to kwestia znalezienia kompromisu między Hosting Business Development Manager
niską ceną a możliwościami. Za 5zł miesięcznie mogę Przy wyborze hostingu ma znaczenie kilka elementów,
bez strachu wypróbować ofertę dowolnej firmy i dopie- które powinny być spełnione zanim podejmiemy final-
ro po odpowiednim wypróbowaniu konta zdecydować ną decyzję. W pierwszej kolejności powinniśmy zwró-
się na coś odrobinę droższego. cić uwagę, czy oferta która znalazła się przed nami za-
wiera technologie, które planujemy wykorzystać do bu-
Andrzej Kuca, agencja reklamowa Digital Concept dowy swojej obecności w sieci. Zdecydowanie pozycja
http://digitalconcept.pl/ rynkowa i opinie innych klientów i partnerów również
Najważniejsze elementy, które pomagają mi przy wy- mają duże znaczenie i stanowią pierwszy krok w trak-
borze firmy hostingowej to przede wszystkim parame- cie wyszukiwania oferty. Kolejną sprawą powinno być
try techniczne usługi oraz opinie użytkowników krążą- zwrócenie uwagi, czy dana firma hostingowa w swo-
ce w internecie. Dobry hosting powinien mieć spraw- jej ofercie podaje kompletne dane dotyczące ich infra-
ny dział Helpdesk, dysponować odpowiednimi serwe- struktury. Dane takie jak: liczba serwerów, ilość i typ
rowniami oraz wykwalifikowaną kadrą techniczną, któ- łączy telekomunikacyjnych, informacje dotyczące bez-
ra w razie problemów jest w stanie pomóc użytkowni- pieczeństwa danych (zarówno fizycznego jak i logicz-
kowi. Dobierając hosting staram się wybrać firmy z du- nego) powinny znajdować się w ofercie. Warto rów-
żym doświadczeniem, działające na rynku lokalnym nież zwrócić uwagę na kompleksowość oferty oraz
jak i globalnym dłuższy czas, które posiadają sporą wykorzystywanie standardów technologicznych. Ho-
bazę klientów. ster, który posiada ofertę „prostą” oraz oferuje elemen-
ty bardzo złożone, daje nam większe szanse na póź-
Mariusz Kędziora, autor bloga ewangelista.IT niejszy rozwój.
Wybierając firmę, która będzie hostowała moje stro-
ny kieruję się kilkoma prostymi rzeczami. Po pierw-
sze renoma i doświadczenie firmy – niby proste i ja-
sne, ale jednak nie zdecydowałbym się na ofertę fir-
my o której nigdy nie słyszałem, z drugiej strony zna-
na firma raczej nie może sobie pozwolić na błędy. Po
drugie wsparcie – to jedna z ważniejszych rzeczy, bo
jak wszystko działa dobrze to się tego nie zauważa,
ale gdy tylko coś pójdzie nie tak, warto mieć pomoc ze
strony hostera – najlepiej w postaci nie tylko maila, ale

www.sdjournal.org 13
SDJ EXTRA: HOSTING

Serwery VPS
Na rynku działa wielu dostawców serwerów wirtualnych.
Jak zatem dobrać serwer VPS do swoich potrzeb? Na co
należy zwracać uwagę? VPS VPSowi nie równy - jak zatem
porównać konkurencyjne oferty?

Dowiesz się: Powinieneś wiedzieć:


• Jak działają serwery VPS? • Podstawowa wiedza z zakresu informatyki
• Czy VPS będzie odpowiednim wyborem dla Twojej aplikacji?
• Jaki serwer VPS wybrać?

S
erwery VPS (ang. Virtual Private Server – Wir- pliki i biblioteki, każdy może być niezależnie restar-
tualny Serwer Prywatny) na dobre już zagości- towany lub przeinstalowywany. Każda z maszyn wir-
ły w świecie hostingu i zdobywają coraz więk- tualnych uruchomiona w obrębie fizycznego systemu
szą popularność wśród odbiorców usług hostingo- może mieć do dyspozycji różną ilość zasobów np. je-
wych. Czym jest serwer VPS, gdzie leży źródło popu- den z VPS-ów może mieć przydzielone 2GB pamię-
larności tej usługi i dla kogo jest ona przeznaczona? ci RAM i 50GB przestrzeni dyskowej a inny jedynie
Serwer VPS jest to w pełni funkcjonalny zwirtualizo- 512MB RAM ale za to 200GB HDD. (Rysunek 1)
wany serwer, który ofertuje praktycznie te same opcje Możliwe jest również, jak to czyni wielu hostersów
co serwer dedykowany. Klient ma możliwość instalo- (przyjmując założenie, że nikt nie wykorzystuje swoje-
wania własnych aplikacji i konfigurowania systemu go VPS-a w 100%), przyznanie większej ilości pamię-
według własnych potrzeb. Technicznie rzecz biorąc ci RAM i rdzeni procesora niż jest fizycznie dostępne
serwer VPS jest pewnym niezależnym, wydzielonym w systemie (overselling). O ile takie działanie usługo-
obszarem fizycznego serwera pełniącego rolę hype- dawcy w większości przypadków jest niezauważalne
rvizora (nadzorcy serwerów VPS), z własnym syste- dla użytkownika, to mogą się zdażyć sytuacje, kiedy
mem plików, z własnymi zasobami (dostęp do proce- to w skutek zwiększonego obciążenia innych serwe-
sora, pamięci). Stworzony jest on w taki sposób, że rów, to nasz VPS będzie działał powoli.
z punktu widzenia użytkownika, VPS zachowuje się
on jak każdy normalny serwer.
Zalety i wady VPS
Jak działa VPS? Niewątpliwą zaletą serwerów VPS jest ich cena, któ-
Podstawą działania serwerów VPS jest technika wir- ra jest z reguły kilka lub nawet kilkanaście razy niż-
tualizacji sprzętu. Usługa VPS polega po prostu na sza w porównaniu do cen serwerów dedykowanych.
uruchomieniu w obrębie jednego serwera fizycznego Co prawda cena ta jest wyższa niż w tzw. hostingu
(lub grupy takich serwerów) od kilku do kilkudziesię- współdzielonym, czyli po prostu „miejscem na stronę”,
ciu serwerów VPS. Pozwala to znacząco obniżyć ce- ale w zamian zyskujemy możliwość całkowitego do-
nę takiej usługi w stosunku do dedykowanego serwe- stosowania środowiska do swoich potrzeb – od insta-
ra, nie ograniczając przy tym znacznie funkcjonalno- lacji odpowiedniego oprogramowania, po pełną kon-
ści. Każdy taki wydzielony fragment ma swój własny figurację niemal każdego aspektu jego działania. Zy-
i odizolowany od innych system operacyjny, własne skujemy również możliwość zmiany parametrów ser-

14 1/2010
Serwery VPS

wera na życzenie: potrzebujemy więcej RAM-u? Pro- produkty, ale nisko budżetowa wersja „dedyka”. Ser-
szę bardzo – kilka minut i gotowe. Przydała by się do- wer VPS jest zatem idealnym rozwiązaniem dla start
datkowa przestrzeń dyskowa czy rdzeń procesora? upów, dla średnich, małych i mikro przedsiębiorstw
Nie ma problemu. Dodatkowo czas restartu serwera celem utrzymania np. witryny czy poczty firmowej
VPS jest znacząco krótszy niż serwera dedykowane- czy średniej wielkości sklepów internetowych, dla firm
go, a i w dobrych serwerowniach (tj. prawidłowo ko- chcących hostować w publicznej sieci np. wewnętrz-
rzystających z dobrodziejstw wirtualizacji) VPS bę- ne systemy firmy, dla których nie ma potrzeby i wa-
dzie odporny na awarię sprzętu z uwagi na przeno- runków aby utrzymywać je w siedzibie organizacji, ale
śność systemu zwirtualizowanego pomiędzy fizyczny- które muszą mieć zapewniony stały do sieci (np. sys-
mi maszynami. temy ticketowe, systemy monitoringu itp.), a które nie
Do wad należy zaliczyć zwykle dużo niższą wydaj- generują wystarczającego obciążenia by uzasadnia-
ność niż gwarantowana przez typowe serwery dedy- ło to zakup drogiego serwera dedykowanego. Gene-
kowane, przy czym należy mieć na uwadzę, że VPS ralnie dla wszystkich, dla których wydajność serwera
np. czterokrotnie tańszy od serwera dedykowanego, dedykowanego nie jest niezbędna, a chcą lub muszą
na którym jest uruchomiony, będzie nawet dziesięcio- mieć dedykowane środowisko do uruchamiania apli-
krotnie słabszy. kacji.

Dla kogo? Rodzaje serwerów VPS i na co należy uważać


Serwery VPS są przede wszystkim dla użytkowni- przy wyborze usługodawcy?
ków, którzy oczekują od serwera możliwości całko- Serwery VPS można pogrupować po kilku kryteriach.
witego dostosowania systemu operacyjnego do swo- Niektóre z nich mają znaczenie dla niemal wszystkich
ich potrzeb, a nie oczekują jednocześnie wydajności potencjalnych użytkowników usługi, inne tylko dla nie-
porównywalnej z serwerem dedykowanym i nie chcą których. Przedstawię tutaj te najważniejsze:
inwestować dużych pieniędzy w jego dzierżawę. Nie
oszukujmy się – klasyczny serwer VPS to nie środo- • ze względu na rezerwację zasobów (z rezerwacja
wisko „lepsze, wydajniejsze i będące przyszłością ho- zasobów/z minimalnymi zasobami/bez rezerwa-
stingu”, jak niektórzy usługodawcy reklamują swoje cji zasobów) – oznacza to czy nasz VPS ma przy-

Rysunek 1. Przydział zasobów �zycznego serwera poszczególnym serwerom VPS

www.sdjournal.org 15
SDJ EXTRA: HOSTING

dzielone jakąś gwarantowaną minimalną lub stałą twarde są użyte w systemie? SATA czy SAS?
ilość zasobów (czas procesora lub liczba rdzeni, Jakiego rodzaju RAID jest używany? Od tych
ilość pamięci, przestrzeń dyskowa), czy też są to parametrów zależy wydajność operacji dys-
parametry typu „do 100% rdzenia”, „do 512MB” , kowych naszego VPS-a i bezpieczeństwo da-
ale może to być tak naprawdę 5% czy 60MB w za- nych. Co prawda zazwyczaj hostersi oferu-
leżności o tego jak ze swoich serwerów korzysta- ją backup całości danych raz dziennie, ale
ją inni użytkownicy. W przypadku, kiedy gwaran- w przypadku np. awarii sprzętu będziemy ska-
towane są parametry minimalne, nie warto suge- zani na utratę danych z całego dnia. Jest to
rować się parametrami maksymalnymi, gdyż za- mało prawdopodobne, ale z doświadczenia
zwyczaj są to wartości o wymiarze czysto marke- wiem, że możliwe.
tingowym. Jeśli okaże się, że faktycznie możemy » Macierz SAN – ważną informacją jest gwaran-
skorzystać z dodatkowej pamięci w razie potrzeby towana i maksymalna przepustowość do ma-
– nasze szczęście, ale wybierając usługę nie moż- cierzy plików. Niektóry usługodawcy oferu-
na zakładać, że zawsze ta pamięć będzie dostęp- ją w podstawowych pakietach transfery rzę-
na. Warto zwrócić też uwagę czy hosters gwaran- du 1Mbit/s co jest stanowczo zbyt małą war-
tuje, że nie sprzeda więcej zasobów niż fizycznie tością jeśli uruchomiona na naszym VPS-ie
posiada, gdyż nawet jeśli nasz VPS nie jest obcią- aplikacja ma nawet średnio intensywnie korzy-
żony, a w fizycznym systemie np. skończy się pa- stać z dysku twardego. Rozsądną wartością
mięć RAM, to zacznie on wykorzystywać pamięć jest nie mniej niż 8-10Mbit/s. Jeśli jednak na-
swap, co spowolni pracę także naszego VPS-a. sza aplikacja jedynie w niewielkim stopniu ko-
• ze względu na sposób wirtualizacji (parawirtuali- rzysta z dysku, lub ilość RAM-u, pozwala sys-
zacja / pełna wirtualizacja) – różnica polega na temowi operacyjnemu na spokojne umiesze-
tym, w jaki sposób przez serwer fizyczny symulo- nie wykorzystywanych danych w pamięci ope-
wany jest sprzęt na potrzeby serwera wirtualnego. racyjnej, można śmiało skorzystać z tańszej
Oba rozwiązania mają swoje wady i zalety: opcji.
» parawirtualizacja – wymaga modyfikacji sys-
temu wirtualnego, aby wiedział, że został uru- Podsumowanie
chomiony w wirtualnym środowisku. Podsta- Choć technologia serwerów VPS, ma przed sobą
wową zaletą jest zysk wydajności, z uwagi na jeszcze wiele wyzwań, ma też mnóstwo zalet, których
brak konieczności wirtualizowania wszystkich w dzisiejszym świecie biznesu, gdzie należy liczyć się
zasobów sprzętowych. Wadą jest brak możli- z kosztami nie można zignorować. Serwery VPS są
wości uruchomienia niezmodyfikowanych sys- świetnym rozwiązaniem, mogącym z powodzeniem
temów – np. Windows oraz nie pozwala na zastąpić drogie przeskalowane rozwiązania, jeśli tyl-
uruchomienie własnego jądra w systemach Li- ko umiejętnie dobierzemy serwer VPS do naszych po-
nux. Obecnie praktycznie wszystkie liczące się trzeb. Warto spróbować.
dystrybucje Linuxa dają się uruchomić w trybie
parawirtualizacji.
» pełna wirtualizacja – w takim przypadku sys-
tem wirtualny „myśli”, że został uruchomiony
w fizycznym środowisku. Pozwala to urucho-
mić niezmodyfikowane systemy operacyjne
(takie jak Windows) oraz Linuxa z własnoręcz-
nie skompilowanym jądrem. Wadą jest znaczą-
ca utrata wydajności – rzędu 10-15% nawet
przy użyciu sprzętowego wspomagania wirtu-
alizacji Intel VT lub AMD-V.

• Ze względu na sposób składowania danych (ob-


raz, LVM, SAN) – w zależności od tego, czy prze-
strzeń dyskowa dla naszego VPS umieszczo-
na jest na serwerze, na którym nasz VPS działa
(opcje obraz i LVM) czy na macierzy (SAN), warto SEBASTIAN FYDA
zainteresować się kilkoma parametrami: Autor jest Starszym Administratorem Systemów
» obraz i LVM – najszybszy sposób dostępu do w �rmie Janmedia Interactive.
danych. Warto sprawdzić jakie fizyczne dyski Kontakt z autorem: sfyda@janmedia.com

16 1/2010
�������������������������������������
����������������������������
����������
������������������������
�����������������

����������������������������������������������
������������������������������������������������
������������������������������������������������
������������������������������������������������
������������������������������������������������
�������������������������������������������������
���������������������������������������������
�������������������������������������������
���������������������������������

��������������������������������������������
�������������������������������������������

������������������������������������
SDJ EXTRA: HOSTING

Wprowadzenie do
Amazon Simple Storage
Service (S3)
Bezpieczne i skalowalne przechowywanie danych
w „chmurze obliczeniowej”
W niniejszym artykule pokażę w jaki sposób posługiwać
się S3 od strony „zwykłego” użytkownika oraz programisty
Java, który zamierza wykorzystać oferowany przez Amazon
interfejs REST API do budowy własnego systemu. W sposób
szczególny przywiązuję uwagę do bezpieczeństwa.

Dowiesz się: Powinieneś wiedzieć:


• W jaki sposób rozpocząć pracę z S3 • Podstawowa znajomość języka Java (dotyczy tylko części
• Jak korzystać z konsoli AWS Management Console oraz pro- związanej z interfejsem API)
gramu CloudBerry S3 Explorer
• Jak stosować interfejs Web API na przykładzie języka Java via Użyte oprogramowanie:
AWS SDK • CloudBerry S3 Explorer FREEWARE, wersja 2.4.3.105
• Eclipse IDE, wersja Helios SR1

U
sługa Simple Storage Service została urucho- lutego 2008 (nota bene była ona spowodowana prze-
miona po raz pierwszy w marcu 2006 i stano- ciążeniem systemu autoryzacji, a nie usterką technicz-
wi jedną z wielu usług sieciowych Amazon’a (w ną). Amazon określa dostępność (ang. availability) na
skrócie AWS od ang. Amazon Web Services) takich poziomie 99.99% w ramach polityki SLA (ang. Service
jak EC2, czy EBS. Dzięki niej możemy za stosunkowo Level Agreement). Innymi słowy nie mamy 100% gwa-
niską opłatą umieszczać dane w sieci (mogą być one rancji, że dane będą zawsze dostępne, niemniej trze-
publicznie dostępne, ale nie muszą). Innymi słowy re- ba zważyć na to, że praktycznie żaden hosting inter-
alizuje prosty, tani i łatwy w obsłudze hosting danych netowy nie zapewni SLA na poziomie 100%. Kolejna
w chmurze obliczeniowej. wątpliwość użytkowników związana jest z niepewno-
ścią „gdzie są moje dane ?!”. Najbardziej właściwą od-
Bezpieczeństwo i dostępność usługi powiedzią jest „nie wiadomo, (w zależności od usta-
Cloud computing nadal wywołuje wiele kontrowersji wionego regionu) gdzieś w Europie albo w USA”. Ta-
na temat bezpieczeństwa i dostępności danych. Dla kie podejście ma tę zaletę, że potencjalny haker prak-
S3 trwałość (ang. durability) została określona przez tycznie nie ma możliwości przeprowadzenia ataku na
Amazon na poziomie 99.999999999% w skali roku. nasze dane, gdyż nie wie, na którym konkretnie są
W praktyce do tej pory jeszcze nigdy nie zdarzyło się serwerze.
żeby ktoś (nie ze swojej winy) stracił jakiekolwiek da-
ne. Architektura systemu oparta m.in. o replikację da- Podstawy
nych została tak zaprojektowana, żeby praktycznie Usługa pozwala na przechowywanie plików jako tzw.
utrata danych była niemożliwa. Natomiast zdarzały się obiektów, przy czym maksymalny rozmiar obiektu to
(niezapowiedziane) przerwy w dostępie, najbardziej 5GB (jeśli plik jest większy, to trzeba go podzielić na
„spektakularna” (trwała kilka godzin) zdarzyła się 15 części). Obiekty można umieszczać w ramach tzw.

18 1/2010
Wprowadzenie do Amazon Simple Storage Service (S3)

bucket’ów, czyli pojemników, które można rozumieć ja-


ko jednopoziomowe foldery (bucket’ów nie można za- Zasady nazewnictwa pojemników
gnieżdżać). Istnieją pewne ograniczenia co do nazwy • Mogą zawierać jedynie litery (ASCII), cyfry oraz znaki ‘.’,
pojemnika, wśród nich najważniejsza to, że nazwy są ‘_’ i ‘-‘
współdzielone przez wszystkich użytkowników usługi • Muszą zaczynać się od litery lub cyfry
S3. Przykładowo nie możemy nadać takich nazw jak: • Dopuszczalna długość nazwy od 3 do 255 znaków
test, solution, abc, gdyż po prostu są już zajęte. Dla- • Nie mogą być zapisywane w postaci adresu IPv4 np.
10.10.255.24
tego polecam dodawanie przedrostków z użyciem na-
zwy firmy, czy nazwiska (tak żeby zagwarantować uni-
kalność). Za pomocą list ACL (ang. Access control list) śmy pewni, to wybieramy Cancel this Service (patrz
możemy zarządzać prawami dostępu do obiektu (mo- Rys. 1).
żemy np. zablokować dostęp osoby postronnej do na- Aby całkowicie usunąć konto AWS przejdź do za-
szych obiektów). kładki Support i wybierz Contact Us i odszukaj Acco-
Aby rozpocząć korzystanie z usługi najpierw trze- unt Closures (obecnie można to zrobić tylko przez for-
ba założyć konto AWS (bezpłatnie). W tym należy mularz kontaktowy, oczywiście w j. ang.). Powracając
wejść na stronę http://aws.amazon.com/ i wybrać do kwestii kosztów płaci się za (ceny są podane orien-
„Sign Up Now”. Na kolejnej stronie wybieramy „I am tacyjnie i nie stanowią oferty):
a new user.” I podajemy adres e-mail, który posłuży
jako login. Dalej postępujemy zgodnie z instrukcjami, • przechowywanie danych tj. 15 centów (ponad 40
przy czym należy zwrócić szczególną uwagę na ha- groszy) za 1GB w jednego ciągu miesiąca
sło, które powinno być silne i nie używane nigdzie in- • transfer danych tj. 10 centów (ok. 30 groszy) za
dziej (dla większego bezpieczeństwa można je zmie- 1 GB
niać raz na jakiś czas). Po utworzeniu konta przecho- • zapytania REST tj. 1 cent za 1000 zapytań PUT,
dzimy na stronę http://aws.amazon.com/s3/, w któ- COPY, POST i LIST oraz 1 cent 10000 zapytań
rej klikamy na „Sign Up for Amazon S3”, który popro- GET i pozostałych metod.
wadzi nas do aktywacji usługi. W pewnym momen-
cie poproszeni zostaniemy o wybranie metody płat- Jak widać są to naprawdę małe koszty. W prakty-
ności (w moim przypadku karta Visa, przy czym ko- ce wygląda to też tak, że ceny rożne w zależności
niecznie było odblokowanie limitów na transakcje za- o ustawionego regionu (obecnie są to: US – Stan-
graniczne). W tym momencie chcę wyraźnie napisać, dard, US – N. California, EU – Ireland oraz APAC
że w S3 płaci się tylko za to z czego się naprawdę ko- – Singapore) oraz stosowane są progi. Jest to bar-
rzysta (nawet jeśli jesteśmy zapisani do usługi, a nie dzo proste, przykładowo za pierwsze 50TB płaci-
trzymamy żadnych, to nic nie płacimy). Zanim przej- my 15 centów/GB , za każde kolejne 50 TB już 14
dę szczegółowo do kwestii opłat chciałbym pokazać centów/GB, za kolejne 400 TB płacimy 13 centów/
w jaki sposób wypisać się z S3. W tym celu na stro- GB itd. Żeby ułatwić sobie życie możemy posłu-
nie http://aws.amazon.com/ wybieramy zakładkę Ac- żyć się kalkulatorem miesięcznym na stronie http://
count i klikamy na Account Activity. Następnie wcho- calculator.s3.amazonaws.com/calc5.html. Pełny cen-
dzimy w View/Edit Service (tuż pod Amazon Simple nik jest zawsze znajdziesz na stronach usługi. War-
Storage Service). Przechodzimy na sam dół załado- to wspomnieć też o tym, że opłaty są „skalowane” do
wanej strony i klikamy na Cancel Service. Jeśli jeste- faktycznego zużycia. Przykładowo jeśli przechowuje-

Rysunek 1. Potwierdzenie wypisania z usługi Amazon S3

www.sdjournal.org 19
SDJ EXTRA: HOSTING

my 10 MB danych, to nie płacimy nawet tych 15 cen- Posługiwanie się konsolą jest stosunkowo proste i in-
tów, tylko jeden cent. tuicyjne, przy czym niestety nie działa metoda przecią-
gnij i upuść tzn. pliki lokalne dodaje się przy użyciu przy
AWS Management Console w akcji użyciu opcji Upload -> Add more files. Można jednak
Jako użytkownik możemy korzystać z S3 na różne zaznaczać kilka plików przez przytrzymanie klawisza
sposoby, przy czym zalecaną metodą jest konsola Ctrl (selektywne zaznaczanie), a także przez przytrzy-
AWS. Stosunkowo od niedawna (czerwiec 2010) po- manie klawisza Shift (grupowe zaznaczanie, od do). In-
zwala ona na to (była to długo wyczekiwana funkcjo- ne, podstawowe operacje jakie możemy wykonać to:
nalność). Wcześniej korzystałem też z wtyczki S3Fox
(dla Firefox’a), ale polecam AWS Console z pew- • utworzyć/skasować pojemnik (ang. bucket)
nej, konkretnej przyczyny. Zgodnie z „duchem” Clo- • zmienić uprawnienia pojemnika (Actions -> Pro-
ud computing’u obsługa S3 nie powinna nakładać ko- perties -> Permissions), dostępne operacje to List
nieczności korzystania z jednej przeglądarki (Firefox), (listowanie zawartości pojemnika), Upload/Delete
ani też instalacji czegokolwiek. Wyjątkiem od reguły (modyfikacja zawartości pojemnika), View Per-
jest omówiona dalej aplikacja CloudBerry S3 Explo- missions (przeglądanie ustawień) oraz Edit Per-
rer, która jest na tyle kapitalna, że można jej „wyba- missions (zmiana ustawień). Ze względu na bez-
czyć” łamanie tych koncepcji. Powracając do AWS pieczeństwo nie powinno się przypisać tych praw
Console, aby z niej skorzystać wejdź na stronę http: (ew. poza List) dla innych użytkowników.
//aws.amazon.com/console/ i wybierz Sign in to the • utworzyć/skasować folder (mogą być zagnieżdża-
AWS Console (Rys. 2). ne).

Listing 1. Przykładowe użycie biblioteki

// konstruktor klasy BasicAWSCredentials przyjmuje String’i


AmazonS3Client s3Client = new AmazonS3Client(new BasicAWSCredentials(accessKey, secretKey));

System.out.println("Utworzenie nowego pojemnika:");


s3Client.createBucket("gszpetkowski-sdj");

System.out.println("Listowanie pojemników:");
for (Bucket bucket : s3Client.listBuckets())
System.out.println(" - " + bucket.getName());

System.out.println("Usunięcie pojemnika:");
s3Client.deleteBucket("gszpetkowski-sdj");

Rysunek 2. Główny panel zarządzający usługą S3 w konsoli AWS

20 1/2010
Wprowadzenie do Amazon Simple Storage Service (S3)

• Usuwać/zmieniać nazwę/kopiować i przenosić (128 bit, poziom RC4, certyfikowane przez Digi-
obiekty. Przenoszenie odbywa się przez wycięcie Cert).
pliku (PPM -> Cut) i wklejenie go w innym miejscu
(PPM -> Paste). Kopiowanie przeprowadza się Efektywniejsze korzystanie z S3 via
analogicznie, tyle że via PPM -> Copy. CloudBerry S3 Explorer
• Modyfikować ustawienia ACL dla obiektu (je- Jeśli szukamy bardziej wygodnych narzędzi, to god-
śli chcemy, żeby obiekt nie był dostępny publicz- nym polecenia rozwiązaniem może być CloudBer-
nie należy upewnić się, że dla grup Everyone ry S3 Explorer (http://s3.cloudberrylab.com). Może-
i Authenthicated Users nie ma ustawionych flag my korzystać z bezpłatnej edycji, dostępne jest także
Open/Download, nie wspominając już możliwości bardziej rozbudowane (kompresja, chunking, wielo-
przeglądania/edycji praw). Żeby było to bardziej wątkowość) rozwiązanie PRO, jednak do zwykłej ob-
jasne obowiązuje zasada, że to co nie jest dozwo- sługi darmowa wersja w zupełności wystarcza. Apli-
lone jest zabronione. kacja wymaga systemu Windows XP/2003/Vista oraz
.NET Framework 2.0. Przy pierwszym uruchomieniu
Technicznie każdy obiekt w S3 jest unikalnie identy- programu musimy najpierw dodać nasze konto S3.
fikowany przez konkatenacje (złączenie) nazwy buc- W tym celu musi podać dwa ciągi znaków tj. Access
ket’u oraz tzw. klucza (ang. key), czyli ścieżki do pli- Key ID oraz Secret Access Key. Klucze te możemy
ku (opcjonalnie może być też brana pod uwagę wer- uzyskać przez wejście na stronę Security Credentials
sja). Jest o tyle istotne, że każdy obiekt może być dostępną przez zakładkę Account na stronie Amazon
widoczny w Internecie pod adresami: AWS. Nie powinny być nikomu udostępniane, gdyż
dają pełny dostęp do usługi komukolwiek kto je po-
• http://{bucket}.s3.amazonaws.com/{key} siada. Nieco delikatną kwestią jest to, że aplikacja si-
• https://{bucket}.s3.amazonaws.com/{key} łą rzeczy musi te dane przechowywać, a jak wyczyta-
łem z licencji nie dają żadnej gwarancji bezpieczeń-
w przypadku tego ostatniego transmisja będzie od- stwa (możemy jedynie się zabezpieczyć przez stoso-
bywała przy użyciu bezpiecznego połączenia SSL wanie SSL, które należy uaktywnić w czasie tworze-

Rysunek 3. Główne okno programu

www.sdjournal.org 21
SDJ EXTRA: HOSTING

nia konta w programie). Oznacza to tyle, że nie po-


winniśmy korzystać z programu w systemie, który nie
jest odpowiednio zabezpieczony. W razie wątpliwości
możemy skontaktować się z producentem. Formularz
kontaktowy oraz adresy znajdziesz na stronie http://
cloudberrylab.com/contact.aspx.
Abstrahując już od kwestii bezpieczeństwa nowe
konto tworzy się przez File -> Amazon S3 Accounts,
jak łatwo się domyślić przez przycisk Add. Polecam
uaktywnić tryb SSL (jeśli haker podsłucha transmisje,
to zdobędzie Access Key ID, Secret Access Key jest
dodatkowo szyfrywowane). Wszystkie operacje (two-
rzenie pojemników, listy ACL, obiekty etc.), które wy-
mieniłem wcześniej można z dużą łatwością wykonać
programie (ma intuicyjny interfejs).

Część programistyczna
S3 oferuje dwa rodzaje interfejsu API: SOAP oraz
REST. Amazon udostępnia także pakiety SDK oraz
wsparcie dla takich języków jak Java, PHP, Python,
Ruby oraz .NET. Idąc dalej posłużę intefejsem REST
w oparciu o popularny język Java oraz środowisko Ec-
lipse. Najprostszym i najwygodniejszym sposobem na
poznanie API jest zainstalowanie wtyczki AWS Tool-
kit for Eclipse (Update Site: http://aws.amazon.com/
eclipse), przy czym wymagane jest Eclipse w wersji
co najmniej 3.5.
Po zainstalowaniu wtyczki możemy utworzyć no- Rysunek 4. Okno tworzenia nowego projektu
wy projekt Amazon S3 Sample. Javadoc jest do-
stępny na stronie http://docs.amazonwebservic Podsumowanie
es.com/AWSJavaSDK/latest/javadoc/index.html Niewątpliwe Amazon Simple Storage Service jest
przy czym możemy pobrać także kod źródłowy do- atrakcyjną propozycją dla osób poszukujących ho-
stępny jako repozytorium Git na http://github.com/ sting’u plików w Internecie. Posiada wiele innych
amazonwebservices/aws-sdk-for-java (kompilacja możliwości, których nie wymieniałem jak choćby in-
odbywa się system Apache Maven, oczywiście mamy tegracja z siecią BitTorrent, czy możliwość streamin-
już gotowy pom.xml). Biblioteka jest wygodna w uży- g’u video. Dodatkowo dzięki przejrzystemu API i do-
ciu, w dodatku korzysta ze znanych bibliotek Apache- brze udokumentowanym bibliotekom może służyć ja-
Commons (np. HttpClient 3.0.1). Przykładowe bardzo ko komponent dla innych rozwiązań.
proste użycie biblioteki (importy pomijam, gdyż Ec-
lipse potrafi sam automatycznie nimi zarządzać) (Li-
sting 1).

Więcej informacji
• http://aws.amazon.com/s3/ -strona główna S3
• http://aws.amazon.com/documentation/s3/ - strona dokumentacji S3 (m.in. zawiera opis REST API)
• http://aws.amazon.com/java/ - strona Amazon Java Developer Center

GRZEGORZ SZPETKOWSKI
Studiuje na V roku Informatyki na wydziale Fizyki Matematyki i Informatyki Politechniki Krakowskiej. Oprócz tego pracuje jako
programista w Grupie Portali Travelone. Interesuje się technologiami Java EE oraz informatyką kwantową.
Kontakt z autorem: gszpetkowski@gmail.com

22 1/2010
SDJ EXTRA: HOSTING

Wykorzystanie chmury
Amazon S3 za pomocą
języka PHP
Coraz częściej słyszy się tak zwane słowo-klucz – cloud-computing.
Ale co to tak naprawdę znaczy dla typowego webdevelopera?
W jaki sposób można wykorzystać rozwiązania oparte na chmurze?
W niniejszym artykule rzucimy na ten temat trochę światła. Zobaczymy
w jaki sposób wykorzystać chmurę Amazon w budowaniu aplikacji
webowych, wykorzystując S3, czyli skalowalną usługę składowania
danych na chmurze. Na koniec zaimplementujemy prostą aplikację
w języku PHP, umożliwiającą upload plików na chmurę wykorzystując S3.
Dowiesz się: Powinieneś wiedzieć:
• Czym jest Amazon Cloud • Jak swobodnie programować w PHP5
• Jak wykorzystać Amazon S3 • Jak założyć i skonfigurować konto na Amazon Web Services
• W jaki sposób możesz komunikować się z obiektami w S3 za
pomocą języka PHP

Czym jest chmura dla webdevelopera?


Dzięki chmurze webdeveloperzy mogą postawić pierw-
szy krok w stronę poprawy dostępności i skalowalności
aplikacji udostępnianych online, bez konieczności po-
siadania rozległej wiedzy na ten temat.
Rozpatrując rozwiązania oparte na chmurze nale-
ży zdać sobie sprawę, że poszczególne części składo-
we aplikacji są rozproszone w sieci, gdzie na poszcze-
gólnych warstwach chmury znajdują się różne elemen-
ty, takie jak zdjęcia czy wideo. Ponadto sama baza da-
nych nie znajduje się już na lokalnej maszynie. Czynniki
te sprawiają, że - przynajmniej w teorii - przepustowość
takiego rozwiązania jest wręcz nieograniczona w po-
równaniu z lokalnymi serwerami.
Sama struktura rozwiązań zastosowanych w chmu-
rze jest kompleksowa i skomplikowana, ale na szczę- Chmura Amazon
ście webdeveloperom nie jest potrzebna ta wiedza. Dla Rozwiązanie tak zwanego cloud computingu, zapropo-
przeciętnego webdevelopera chmura jest tylko instan- nowane przez Amazon zasługuje na szczególne zainte-
cją, na której znajduje się aplikacja webowa i dzięki któ- resowanie, ponieważ jest relatywnie tanie i bardzo intu-
rej możliwe staje się skorzystanie z szeregu webser- icyjne w obsłudze. Dzięki ich propozycji chmury zysku-
wisów, za pomocą których mogą kontrolować cykl ży- jemy dostęp do łatwych w konfiguracji, skalowalnych
cia aplikacji jak również wchodzić w interakcję z samą i zoptymalizowanych geograficznie (obecnie 3 lokacje
chmurą. do wybory) środowisk odstępnych na żądanie, które za-

24 1/2010
Wykorzystanie chmury Amazon S3 za pomocą języka PHP

czynają działać dosłownie w kilka minut od rozpoczęcia S3 pozwala na składowanie danych w obiektach,
ich konfiguracji. zwanych buckets. Bucket jest nazwaną encją dołączo-
Pośród propozycji Amazona znajdziemy m.in. EC2, ną do konkretnego konta AWS (ang. Amazon Web Se-
S3 i CloudFront. EC2 (Elastic Compute Cloud) umoż- rvices). Na jednym koncie można utworzyć do 100 ta-
liwia webdeveloperom postawienie nowych instancji kich obiektów. Każdy z obiektów musi posiadać unikal-
serwerów (zwanych AMI – Amazon Machine Images) ną nazwę, przez co często bywa tak, że jedynie metodą
oraz ich konfigurację za pomocą dedykowanego inter- prób i błędów można odnaleźć dostępną nazwę.
fejsu. S3 jest usługą składowania danych, natomiast W każdym z „koszyków” można składować (grupo-
CloudFront odpowiada za zoptymalizowaną dystrybu- wać) dowolną liczbę innych obiektów. Mówiąc dowol-
cję obiektów S3 w kontekście rozmieszczenia geogra- ną liczbę, mam na myśli nie tylko setki czy tysiące, ale
ficznego. nawet miliony czy dziesiątki milionów obiektów. Ozna-
cza to, że można wykorzystywać jeden koszyk do kil-
Więcej o S3 ku aplikacji, tudzież do każdej kolejnej dowiązywać
S3 jest skalowalną usługą składowania danych za po- następny obiekt tego typu. W tej kwestii Amazon za-
średnictwem Internetu. Wszystkie dane składowane są pewnia nam swego rodzaju dowolność – musimy je-
redundantnie, co pozwala uniknąć problemów związa- dynie pamiętać o limicie 100 obiektów na jednym kon-
nych z awarią sprzętu czy z połączeniem. cie AWS.

Listing 1. Zainicjowanie obiektu S3

1. <?php
2. //załadowanie klasy obsługująca komunikację z S3
3. if (!class_exists('S3'))require_once('S3.php');
4.
5. //AWS access info
6. if (!defined('awsAccessKey')) define('awsAccessKey', 'TWÓJ_KLUCZ_DOSTĘPU');
7. if (!defined('awsSecretKey')) define('awsSecretKey', 'TWÓJ SEKRET');
8.
9. //zainicjowanie klasy
10. $oS3 = new S3(awsAccessKey, awsSecretKey);
11.

Listing 2. Przechwycenie danych z formularza

12. //sprawdzenie czy formularz został wysłany


13. if(isset($_POST['bWyslano'])){
14.
15. //przechwycenie danych dot pliku
16. $oFile = $_FILES['S3Plik']['name'];
17. $oFileTemp = $_FILES['S3Plik']['tmp_name'];

Listing 3. Utworzenie koszyka i załadowanie pliku do obiektu S3

18. //utworzenie nowego koszyka


19. $oS3->putBucket("s3-koszyk", S3::ACL_PUBLIC_READ);
20.
21. //załadowanie pliku do koszyka
22. if ($oS3->putObjectFile($oFileTemp, "s3-koszyk", $oFile, S3::ACL_PUBLIC_READ)) {
23. $sResult = "Plik został załadowany na chmurę";
24. }else{
25. $sResult = "Ups... Sorry! Nie tym razem.";
26. }
27. }
28. ?>

www.sdjournal.org 25
SDJ EXTRA: HOSTING

W usłudze S3 możliwe jest składowanie dosłow- Opis rejestracji, zakładania konta i aktywowania usłu-
nie wszystkich typów obiektów. Począwszy od plików gi S3 nie są częścią niniejszego artykułu, ponieważ
HTML, CSS, JS poprzez kod języka C czy Java, aż do czynności te są niezwykle proste i intuicyjne, dzięki
obrazków, archiwów czy nawet zaszyfrowanych da- przemyślanemu interfejsowi zaproponowanemu przez
nych. Warto pamiętać, że S3 jest wręcz idealny do skła- firmę Amazon.
dowania danych dedykowanych do użytkowania webo- Zakładając, że dane będą pochodziły z formularza na
wego, ponieważ każdy z obiektów usługi S3 posiada stronie, wysyłanego POST-em i dodatkowo będzie do-
swój własny adres URL. Warto również dodać, że poje- łączany do danych plik, możemy rozszerzyć powyższy
dynczy obiekt w S3 nie może być większy niż 5GB, co kod i przechwycenie danych oraz załadowanie ich do
również daje dużą swobodę przy uploadzie plików mul- zmiennych.
timedialnych. Mamy już zainicjowaną klasę oraz załadowany plik
jako plik tymczasowy na serwerze. Pozostaje jedynie
Zabawę czas zacząć utworzenie nowego obiektu „koszyka” i załadowanie
Chcąc skomunikować się z usługą S3 mamy do dys- pliku do tego obiektu. Pierwszym krokiem jest utwo-
pozycji kilka możliwości, włączając w to oficjalne rzenie nowego koszyka, używając funkcji putBucke-
SDK, udostępniane przez AWS w języku PHP ( http: t(bucket, acl), gdzie bucket jest nazwą koszyka, nato-
//aws.amazon.com/sdkforphp/ ). Jednakże moim zde- miast acl to parametr określający prawa odczytu i za-
cydowanym faworytem jest napisana przez Dono- pisu (Access Control List). W naszym przypadku chce-
vana Schonknechta klasa w PHP, która jest szale- my, by każdy miał możliwość przeczytania plików do-
nie prosta w użyciu a jednocześnie daje bardzo duże stępnych w „koszyku”, więc ustawiamy S3::ACL_PU-
możliwości. Klasę można znaleźć pod adresem: http: BLIC_READ. Aby przenieść plik do obiektu S3 wyko-
//code.google.com/p/amazon-s3-php-class/. Na stronie rzystamy natomiast funkcję putObjectFile(sourcefile,
twórcy znajdziemy też obszerną dokumentację jej uży- bucket, newfilename, acl), gdzie sourcefile jest ścież-
cia, jak również kilka fragmentów kodu, pozwalające na ką do pliku, który chcemy dołączyć do obiektu – w na-
szybką naukę korzystania z klasy. szym przypadku jest to tymczasowy plik przesłany na
Skoro klasę mamy już gotową do działania, możemy serwer, a bucket nazwą koszyka, który chwile wcze-
zacząć pisać właściwy skrypt. Oczywiście należy za- śniej został utworzony. Newfilename to nazwa pliku,
cząć od dołączenia klasy do komunikacji z S3 używa- który będzie znajdował się w koszyku – w tym przy-
jąc require_once() . W następnej kolejności zdefiniujmy padku nazwa będzie identyczna z oryginalną nazwą
sobie kluczowe informacje, niezbędne do komunikacji uploadowanego pliku. Na koniec acl ponownie usta-
z założoną instancją – klucz dostępu (Access Key) i se- wiamy na S3::ACL_PUBLIC_READ.
kret (Secret Key). Oczywiście oba te parametry są udo- Tym oto sposobem, za pomocą klasy do komunika-
stępnione przez Amazon, zaraz po rejestracji i utworze- cji z S3 i niespełna 30-linijkowym kawałkiem kodu udało
niu nowej instancji EC2 i S3. się stworzyć skrypt do załadowania plików na chmurę.

Listing 4. Formularz HTML-owy wykorzystywany do uploadu pliku na S3

1. <form action="" method="post" enctype="multipart/form-data">


2. <input name="S3Plik" type="file" />
3. <input name="bWyslano" type="submit" value="Upload">
4. </form>

Listing 5. Wyświetlenie obiektów znajdujących się w koszyku

1. <?php
2. // pobranie tablicy obiektów z koszyka
3. $aBucketFiles = $oS3->getBucket("s3-koszyk");
4.
5. foreach ($aBucketFiles as $aFile){
6. echo "<a href='http://s3-koszyk .s3.amazonaws.com/".
7. $aFile['name']."'>".$aFile['name']." (".$aFile['size'].")</a><br />";
8. }
9. ?>

26 1/2010
Wykorzystanie chmury Amazon S3 za pomocą języka PHP

Skrypt ten z powodzeniem można umieścić na począt- Wyświetlanie obiektów można zrealizować wykorzy-
ku sekcji <body>. Po nim można wstawić formularz we- stując funkcję foreach zgodnie z rozwiązaniem przed-
bowy, przedstawiony na listingu 4, pozwalający na zała- stawionym na listingu 5.
dowanie pliku na serwer.
Przekonać się co do poprawności skryptu możemy Podsumowanie
dzięki niezwykle przydatnemu pluginowi do Firefoxa Niniejszy artykuł zaledwie otarł się o rozległą tematykę
– S3Fox. Wtyczka wygląda jak zintegrowany z prze- wykorzystania usługi S3 w aplikacjach webowych. Jest
glądarką menadżer plików, którym właściwie jest, z tą jednak dobrym punktem wyjścia, aby uzmysłowić sobie
różnicą, że jest to menadżer pokazujący obiekty znaj- korzyści płynące z zastosowania tej technologii i poka-
dujące się w S3. Obsługa jest intuicyjna a konfigura- zać, jak w prosty sposób można tworzyć aplikacje, ko-
cja sprowadza się do podania nazwy konta, Access rzystając z szeregu dostępnych darmowych klas i na-
key i Secret key, które zostaje nam udostępnione przez rzędzi sprawiających, że kodowanie staje się czystą
Amazon wraz z utworzeniem EC2 i S3. Warto również przyjemnością.
wspomnieć, że wszystkie pliki znajdujące się w koszy-
ku można znaleźć również pod adresem:
ŁUKASZ KOSZELA
http://NAZWA_KOSZYKA.s3.amazoneaws.com/NAZWA_ Jest działającym na zasadach
PLIKU.ROZSZERZENIE freelancingu webdeveloperem
z Wrocławia. Posiada ponad 3-let-
Kiedy upewnimy się już, że wszystko działa zgod- nie doświadczenie w programo-
nie z założeniem, możemy pokusić się o wyświetlanie waniu stron www. Zajmuje się za-
obiektów zawartych w koszyku. Do tego celu wykorzy- równo front-endem jak i back-en-
stamy funkcję getBucket(bucket), gdzie znów bucket dem. Współpracował w realiza-
jest nazwą koszyka. Funkcja ta zwraca tablicę tablic cji projektów dla takich marek jak Amica, Eurobank, Maspex
obiektów znajdujących się w koszyku. Każda z poje- Wadowice i Deutsche Bank.
dynczych tablic zawiera nazwę pliku oraz jego rozmiar. Kontakt z autorem: lukasz.koszela@gmail.com
Reklama
SDJ EXTRA: HOSTING

Hosting w chmurze
Fakty i mity o Platformach Cloud Computingowych

Infrastruktura IT jest niezbędnym elementem funkcjonowania


praktycznie każdej firmy, bez względu na wielkość. Od prostej
strony internetowej, przez systemy CRM, ERP, Bazy Danych itp aż po
zaawansowane systemy autorskie - wszystkie aplikacje wymagają
serwerów, mocy obliczeniowej, przestrzeni dyskowej i infrastruktury
sieciowej do transferu danych. Zapotrzebowanie na usługi hostingowe
rosło i zmieniało się przez lata choć modele hostingowe pozostawały
wciąż takie same. Aż wreszcie pojawił się Cloud Computing -
innowacyjna metoda udostępniania infrastruktury IT.

Dowiesz się: Powinieneś wiedzieć:


• Jakie są zalety hostowania aplikacji na Platformach Cloud • Podstawy hostowania i uruchamiania aplikacji na serwerach
dedykowanych lub VPS’ach

Platforma Cloud vs. Klasyczne Serwery ściej jest długoterminowy, nawet jeśli zapotrzebowanie
Platforma Cloud stanowi alternatywę dla tradycyjnych na większe zasoby jest tylko okresowe.
serwerów dedykowanych czy VPS’ów. Jest to rozwiąza- Stosując Platformę Cloud możliwe jest skalowanie za-
nie, które umożliwia realizację tych samych zadań, jed- sobów w czasie rzeczywistym. Najczęściej odbywa się to
nocześnie oferując kilka bardzo istotnych udogodnień. za pomocą panelu administracyjnego, gdzie administra-
Przyjrzyjmy się im po kolei. tor ma możliwość w prosty sposób zmienić parametry
serwera np. dodając więcej pamięci RAM, dodając kolej-
Dostępność ną przestrzeń dyskową, itp itd.
W tradycyjnym modelu hostingowym czas oczekiwania na
serwer od decyzji “potrzebuję serwer” do momentu kiedy Elastyczność
serwer jest dostępny i można się na niego zalogować jest Decydując się na klasyczny serwer tak naprawdę po-
bardzo długi. Zwykle nie krótszy niż kilka tygodni. W bar- dejmujemy decyzję na kilka lat. Bez względu na to, czy
dziej skomplikowanych przypadkach nawet kilka miesięcy. dzierżawimy serwer na podstawie umowy na czas okre-
W przypadku Platform Cloud wystarczy wejść na stro- ślony, czy kupujemy własny hardware – z finansowe-
nę dostawcy i wybrać serwer o odpowiednich parame- go punktu widzenia jest to decyzja długoterminowa, od
trach. Jego przygotowanie i udostępnienie odbywa się której najczęściej nie ma odwrotu. Możemy oczywiście
automatycznie, dzięki czemu serwer jest dostępny prak- rozbudować serwer (zwiększyć koszty) ale nie możemy
tycznie natychmiast. Innymi słowy od decyzji o zakupie z niego zrezygnować.
serwera do pierwszego logowania mija z reguły nie wię- Cloud Computing rozwiązuje również ten problem.
cej niż kilka minut. W większości przypadków korzystanie z chmury rozli-
czane jest w trybie miesięcznym, a nawet godzinowym.
Skalowalność Oznacza to, że po upływie danego okresu rozliczeniowe-
Rozbudowa klasycznego serwera jest bardzo kłopotliwa. go (miesiąc lub kilka godzin) możemy zmienić parametry
Przede wszystkim każda, nawet najdrobniejsza zmiana usługi (również w dół) lub całkowicie z niej zrezygnować.
hardware’owa wymaga odłączenia zasilania i wyciągnię- Innymi słowy - Cloud Computing daje nam możliwość
cia serwera z szafy. To generuje conajmniej kilkudziesię- dopasowania infrastruktury do potrzeby chwili, a tym sa-
cio-minutowy downtime. Co więcej - taki upgrade najczę- mym do znaczącego obniżenia kosztów infrastruktury.

28 1/2010
Hosting w chmurze

Stabilność Backup
Stosując klasyczny model hostingowy narażamy się na Do słuszności wykonywania kopii zapasowych nie trze-
awarie hardware’owe. To znaczy jakakolwiek awaria ser- ba nikogo przekonywać. W klasycznym modelu hostin-
wera, z którego korzystamy, spowoduje niedostępność gowym problem ten rozwiązuje się na kilka sposobów.
aplikacji. Stosuje się oczywiście redundantne zasilanie, Każdy z nich wymaga jednak przygotowania odpowied-
RAID, itp. Jednak wciąż zdarza się, że któryś z krytycz- niego miejsca na przechowywanie backupu (zewnętrz-
nych podzespołów ulegnie awarii i tym samym uniemoż- ny dysk, itp) oraz przygotowania odpowiedniego skryptu
liwi poprawne działanie serwera. (bądź aplikacji), która ten backup będzie wykonywać.
Zastosowanie Platformy Cloud może (choć nie mu- Tymczasem wielu dostawców Cloudowych sprowadzi-
si) rozwiązać ten problem. Wiele Chmur budowanych ło ten proces do poziomu kilku kliknięć. Bardzo często
jest w systemie HA (High Availability). Oznacza to, że do bowiem w panelu administracyjnym mamy możliwość
platformy dostawiany jest dodatkowy serwer, którego ro- zaplanowania jednego lub wielu backupów za pomo-
lą jest przejąć zadania serwera ulegającego awarii. Pro- cą prostego interface’u. Wówczas skonfigurowanie co-
ces ten jest w pełni zautomatyzowany, zatem w przypad- dziennego i cotygodniowego backupu zajmuje dosłow-
ku ewentualnej awarii jednego z serwerów dostępność nie 2 minuty, a całą resztą zajmuje się software zarzą-
aplikacji zostaje przywrócona w kilka-kilkanaście sekund dzający platformą.
od wystąpienia awarii.
Środowiska HA można oczywiście zbudować również Automatyzacja
w tradycyjnym modelu hostingowym, jednak takie roz- Natychmiastowa dostępność, skalowanie oraz pozostałe
wiązanie istotnie podnosi koszty utrzymania takiej infra- cechy Platform Cloudowych są możliwe dzięki pełnej au-
struktury - po pierwsze ze względu na dodatkowy har- tomatyzacji procesu zarządzania infrastrukturą. Co wię-
dware, a po drugie ze względu na czas pracy inżynierów, cej - wielu dostawców cloudowych udostępnia API do ko-
którzy muszą takie środowisko zbudować, a później mo- munikacji z systemem zarządzania infrastrukturą.
nitorować i administrować. Wiele chmur natomiast posia- Oznacza to, że z poziomu aplikacji jesteśmy w stanie
da takie rozwiązania w “wyposażeniu standardowym”. odczytywać w czasie rzeczywistym obciążenie serwe-
Reklama
SDJ EXTRA: HOSTING

ra i jeśli przekroczy ono ustalony próg - możemy wysłać ce z upgrade’u parametrów serwera do niewyobrażal-
Platformie konkretne polecenie, które spowoduje rozsze- nie wysokich.
rzenie pamięci RAM, dodanie kolejnego dysku, itp itd. Należy jednak pamiętać, że automatyczny upgrade to
Opcjonalnie, jeśli pracujemy na strukturze rozproszo- tylko opcja, a nie obligatoryjna funkcjonalność.
nej, w przypadku nadmiernego obciążenia infrastruktury
możemy wysłać Platformie polecenie, które doda do kla- Mit 4: Serwery Cloud nie są wydajne ze względu na
stra kolejny serwer, utworzony z przygotowanego przez współdzielenie zasobów
nas wcześniej obrazu (lub utworzony jako klon jednego Sceptycy i przeciwnicy Platform Cloudowych często po-
z istniejących serwerów). dają niską wydajność jako podstawową wadę tego typu
rozwiązań. Nie jest to do końca słuszne. Dużo zależy bo-
Kilka mitów na temat Cloud Computingu wiem od zastosowanego mechanizmu wirtualizacji, któ-
ry nie wszędzie jest taki sam. Niektóre z nich (np. Xen)
Mit 1: Platformy Cloud współpracują tylko przydzielają zasoby bardzo sztywno - to znaczy serwer
z aplikacjami napisanymi specjalnie pod nie któremu przydzielono 4GB pamięci RAM i 2 rdzenie pro-
Niekoniecznie. Faktycznie są Platformy, takie jak Google cesora - dysponuje faktycznie takimi zasobami, praktycz-
App Engine (tzw. PaaS - Platform as a Service), które nie identycznie jak w przypadku klasycznego serwera.
narzucają Developerom pewne technologie i pewne wy- Z kolei inne mechanizmy (np. OpenVZ) przydzielają
magania, a niespełnienie tych wymagań uniemożliwia zasoby bardziej “miękko”. Jednak w takich przypadkach
poprawne uruchomienie aplikacji na tej Platformie. Jed- w ofercie dostawcy najczęściej zobaczymy odrębne po-
nak te chmury, które działają w modelu IaaS (Infrastruc- zycje - np. “2GB RAM - burstable to 4GB RAM”. Ozna-
ture as a Service) pozwalają użytkownikowi na urucho- cza to, że nasz serwer ma gwarantowane 2GB pamięci,
mienie praktycznie dowolnej aplikacji. W przypadku IaaS które okazjonalnie może urosnąć do 4GB jeśli nikt z “są-
zarządzanie serwerem odbywa się dokładnie tak samo siadów” nie będzie w danym momencie wykorzystywał
jak zarządzanie klasycznym serwerem. To znaczy użyt- pamięci. Tego typu rozwiązania są najczęściej tańsze,
kownik otrzymuje adres IP, hasło root’a oraz pełen do- jednak należy się liczyć z tym, że ich wydajność nie bę-
stęp do shella. Ma więc możliwość skonfigurowania ser- dzie zawsze identyczna.
wera dokładnie pod potrzeby danej aplikacji.
Podsumowanie
Mit 2: Zarządzanie serwerem w chmurze jest Nie da się ukryć, że powyższy artykuł faworyzuje roz-
skomplikowane wiązania Cloudowe. Wynika to jednak przede wszystkim
Na wstępie trzeba zwrócić uwagę na to, że w przypad- z tego, że ten model udostępniania infrastruktury wno-
ku serwerów cloudowych zarządzanie serwerem odby- si naprawdę bardzo dużo udogodnień dla Developerów.
wa się na dwóch płaszczyznach: Nigdy wcześniej Developer nie był w stanie przygoto-
wać sobie serwera do testów w ciągu kilku minut. Nie był
• zarządzanie serwerami i zasobami serwerów w stanie rozbudować go nawet kilkukrotnie za pomocą
• zarządzanie systemem operacyjnym i plikami tylko kilku kliknięć w panelu administracyjnym. Nie mógł
również po prostu zrezygnować z tego serwera w mo-
Ta pierwsza płaszczyzna czasem faktycznie może mencie, gdy ten przestał być potrzebny.
sprawić problem - zwłaszcza jeśli korzystamy z Ama- Platformy Cloudowe dają więc w ręce Developerów
zona. Istnieje jednak mnóstwo alternatyw takich jak Go- potężne narzędzie, które całkowicie zmienia dotych-
Grid.com, Rackspace.com czy rodzimy ServeCloud.pl, czasowe zasady gry. Inżynierowie bowiem mają teraz
które mają znacznie przyjemniejszy interface do za- znacznie więcej czasu na to, by zająć się tym co napraw-
rządzania zasobami i infrastrukturą, a dodanie kolejne- dę ważne - rozwojem aplikacji - a nie problemami sprzę-
go serwera czy zmiana parametrów serwera jest dzie- towymi.
cinnie prosta. Należy jednak pamiętać, że w branży IT nie istnie-
Natomiast zarządzanie serwerem na tej drugiej płasz- ją uniwersalne rozwiązania, które pasują do wszyst-
czyźnie odbywa się w dokładnie taki sam sposób jak za- kiego. Warto więc przed migracją lub przed rozpoczę-
rządzanie klasycznym serwerem dedykowanym - tzn za ciem skomplikowanego projektu w chmurze skontakto-
pomocą konsoli, ssh i hasła roota. wać się z dostawcą i omówić swoje plany z kompetent-
nym doradcą.
Mit 3: W przypadku ataku na mój serwis, poniosę
olbrzymie koszty TOMASZ KOZŁOWSKI
Często Developerzy obawiają się, że ze względu na Pasjonat Cloud Computingu, założyciel Cloud Group sp. z o.o.,
zautomatyzowane skalowanie serwerów, w przypadku współtwórca pierwszej polskiej platformy cloud.
ataku (np. DDOS) poniosą olbrzymie koszty, wynikają- Kontakt: tomasz.kozlowski@servecloud.pl

30 1/2010
SDJ EXTRA: HOSTING

Automatyczne kopie
bezpieczeństwa
serwisu www
“Ludzie dzielą się na dwie grupy: na tych, którzy robią backupy i na
tych którzy będą robić backupy.” Z tematyką hostingu nieustannie
łączy się bezpieczeństwo danych. Zabezpieczyć można się na wiele
sposobów, ale gdy wszystko zawiedzie niezbędna będzie kopia
zapasowa. Właśnie o backupach będzie poniższy artykuł. Najpierw
zajmiemy się kopią zapasową bazy danych, później plików, a na sam
koniec wykorzystamy narzędzie Cron do automatyzacji procesu
tworzenia kopii zapasowych.
Dowiesz się: Powinieneś wiedzieć:
• Jak wykonać kopię zapasową bazy danych z wykorzystaniem • Podstawowe umiejętności związane z programowaniem
klasy PDO w PHP
• Jak wykonać kopię plików na serwerze wykorzystując polece- • Podstawowe wiadomości na temat działania serwera www
nie exec()
• Jak zautomatyzować tworzenie kopii zapasowych z wykorzy-
staniem mechanizmu Cron

Po co to wszystko? (które możemy wykorzystać mając dostęp do shella),


Większość firm oferuje tworzenie kopii bezpieczeń- ale my celowo utrudnimy sobie zadanie i wykonamy
stwa, ale nie radzimy polegać na tego typu usługach zrzut bazy z wykorzystaniem klasy PDO - dzięki temu
- choćby z tego względu, że gdy padniemy ofiarą wła- powinno to zadziałać z niemal każdą bazą niezależnie
mania na panel zarządzania serwerem to najprawdo- od systemu bazodanowego.
podobniej pozbędziemy się również backupów. Druga
sprawa to fakt, że choć owszem - backupy mamy two- Skrypt backupu bazy SQL w PHP
rzone za darmo to w wielu firmach przywrócenie ko- Do stworzenia kopii bezpieczeństwa wykorzystamy ję-
pii bazy jest już płatne. Bardzo mało firm oferuje kopię zyk PHP i klasę PDO, która od stosunkowo niedaw-
zapasową plików, które mamy na serwerze FTP - wła- na jest dostępna w PHP - dzięki temu będziemy mogli
śnie dlatego lepiej zadbać o nie we własnym zakresie wykonać backup niemal na każdym serwerze. Całość
i polegać na autorskich rozwiązaniach, jak się za chwi- kodu jest napisana w bloku try - obsługa wyjątków jest
lę przekonamy są to dość proste zabiegi przynoszące znacząca, zwłaszcza w tak ważnych zadaniach jak
wymierne korzyści. backup. Najpierw przy pomocy klasy PDO połączy-
my się z bazą - wystarczy zmodyfikować pierwsze li-
Kopia bezpieczeństwa bazy danych nie podanego kodu podając tam dane swojej bazy. Na-
Artykuł ten nie opisuje backupu na konkretnym syste- stępnie tworzymy zmienną do której będziemy doda-
mie bazodanowym, choć wykorzystujemy jeden z naj- wać kolejne rekordy z bazy danych. Później wywołu-
popularniejszych (choć niekoniecznie najlepszych) jemy SELECTy, które wyświetlają nam zawartość ca-
systemów jakim jest MySQL. Przykładowo dla wspo- łej bazy i dołączamy je do zmiennej $sqlData. W ko-
mnianego MySQLa istnieje narzędzie "mysqldump" dzie pojawia się instrukcja INSERT - nie powoduje

32 1/2010
Automatyczne kopie bezpieczeństwa serwisu www

ona wstawienia czegolowiek do bazy podczas urucho- - w przypadku konkretnych zastosowań może okazać
mienia skryptu, tworzy ona jedynie tekst “INSERT IN- się przydatna - wystarczy wtedy “odkomentować” tę li-
TO” dla każdego rekordu, który będzie uzupełniał ba- nię. Instrukcje wyjścia nie mają oczywiście sensu gdy
zę w przypadku importu takiego pliku z backupem. Na skrypt uruchamiamy Cronem, ale zostały one umiesz-
koniec cała zawartość bazy danych jest pakowana do czone w kodzie, aby zwiększyć jego czytelność.
pliku .GZ, który zajmuje znacznie mniej miejsca niż Wykonana przez nas kopia jest pełnym zrzutem ba-
czysty, nieskompresowany tekst. W naszym przypad- zy - niesie to za sobą problem zajmowania dużej prze-
ku było to ponad połowę mniej objętości w stosunku strzeni w porównaniu do np. kopii różnicowej. Nic nie stoi
do pliku SQL. W ostatniej linii bloku “try” pozostawiono jednak na przeszkodzie, aby usuwać poprzednią kopię
opcję zapisu do pliku tekstowego bez jego pakowania w trakcie tworzenia kolejnej - zawsze jednak warto zo-

Reklama

Twój obecny admin www.hos�ng360.pl


specjalistyczny hos�ng non stop
{ # Nie 3ędz!esz M! mówić !! }

Jasne! Chętnie pomogę...

Streaming
Serwery
dedykowane
Serwery VPS
Outsourcing IT
Certyfikaty SSL
SDJ EXTRA: HOSTING

Listing 1. Skrypt backupu bazy SQL w PHP

<?php
try{
///parametry polaczenia z baza
$dbName = 'procek_cron';
$dbHost = 'localhost';
$dbUser = 'procek_cron';
$dbPass = 'S84RujJD';
///stworzenie nowego obiektu klasy PDO
$PDO = new PDO("mysql:host=$dbHost;dbname=$dbName", $dbUser, $dbPass, array(PDO::MYSQL_ATTR_INIT_COMMAND =>
"SET NAMES utf8"));
$PDO -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sqlQuery = "SHOW tables FROM " . $dbName;
$sqlResult = $PDO->query($sqlQuery);
///przypisanie naglowka do backupu
$sqlData = "-- Cron Backup --
SET SQL_MODE=\"NO_AUTO_VALUE_ON_ZERO\";
-- Baza: `$dbName`
-- Cron Backup --\n\n";
while ($queryTable = $sqlResult->fetch(PDO::FETCH_ASSOC)){
$sqlTable = $queryTable['Tables_in_' . $dbName];
$sqlQuery = "SHOW CREATE TABLE $sqlTable";
$sqlResultB = $PDO->query($sqlQuery);
$queryTableInfo = $sqlResultB->fetch(PDO::FETCH_ASSOC);
///dodanie naglowkow dla konkretnych tabel
$sqlData .= "\n\n--
-- Struktura dla tabeli `$sqlTable`
--\n\n";
$sqlData .= $queryTableInfo['Create Table'] . ";\n";
$sqlData .= "\n\n--
-- Wartosci tabeli `$sqlTable`
--\n\n";
$sqlQuery = "SELECT * FROM $sqlTable\n";
$sqlResultC = $PDO->query($sqlQuery);
///stworzenie INSERTa dla kazdego rekordu
while ($queryRecord = $sqlResultC->fetch(PDO::FETCH_ASSOC)) {
$sqlData .= "INSERT INTO $sqlTable VALUES (";
$sqlRecord = "";
foreach( $queryRecord as $sqlField => $sqlValue ) {
$sqlRecord .= "'$sqlValue',";
}
$sqlData .= substr( $sqlRecord, 0, -1 );
$sqlData .= ");\n";
}
}
///zapis zrzutu bazy do archiwum GZ
$gzFile = gzopen('backup_'.$dbName.'_'.date('H_i_d_m_y').'.gz','w9');
gzwrite($gzFile, $sqlData);
gzclose($gzFile);
///W przypadku gdy nie mamy obslugi GZIPa musimy uzyc:
///file_put_contents('backup_'.$dbName.'_'.date('H_i_d_m_y').'.sql', $sqlData);
}
catch(PDOException $e){
echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
}
?>

34 1/2010
Automatyczne kopie bezpieczeństwa serwisu www

stawić kilka kopii na wszelki wypadek. Przestrzeń dysko- <?php


wa jest tak naprawdę najtańszym elementem hostingu, exec('tar -czf backup_ftp_'.date('H_i_d_m_y').'.tar.gz
więc lepiej nie ryzykować bezpieczeństwa danych po- ./');
przez posiadanie tylko jednej kopii bazy (Listing 1). ?>

Tworzenie kopii zapasowej plików Polecenie to jest na tyle ciekawe, że jeśli nie skończy
Backup plików - niestety bardzo mało osób pamięta się zazwyczaj w ciągu kilkudziesięciu sekund to do-
o tym, że kopia bazy danych nic nam nie daje w wypad- staniemy błąd serwera 500 - wynika to z tego, że po
ku gdy ktoś zaatakuje nam serwer lub sami coś skasu- przekroczeniu ustalonego przez administratora czasu
jemy. Równie ważna jest kopia bezpieczeństwa plików, na wykonywanie skryptu jest on przerywany. Co cie-
a temat ten jest przez większość dostawców hostingu kawe pomimo otrzymania błędu kopia wykonuje się
pomijany. nadal. Po kilku minutach można ją normalnie pobrać
W przypadku konfiguracji, które nie dysponują moż- z FTP i sprawdzić, że istotnie wszystko się udało.
liwością użycia polecenia exec() należy napisać skrypt
przeszukujący rekurencyjnie wszystkie foldery naszej Ustawienie Crona
strony www, a następnie wszystkie pliki dodawać do Mamy już skrypty tworzące backupy bazy danych i pli-
archiwum. Aby oszczędzić nam pracy wystarczy wy- ków - pora więc na automatyzację... Cron pozwala na
wołanie: zaplanowane (zwykle cykliczne) uruchamianie aplika-

Gdy zabraknie Crona... - wykorzystanie przeglądarki www administratora serwisu


Przedstawione rozwiązanie jest opisane tylko jako ciekawostka i nie należy jej stosować do celów produkcyjnych! Wykorzystu-
jąc przeglądarkę administratora serwisu można spowodować cykliczne wywoływanie wskazanej podstrony. Wystarczy prosty
skrypt napisany w JavaScript oraz PHP, który będzie wywoływał odpowiednią stronę.
Zasada działania skryptu jest prosta. Najpierw definiujemy czas między kolejnymi uruchomieniami skryptu - czas podajemy w
sekundach. Następnie skrypt tworzy dwie zmienne przechowujące obecny czas, oraz czas ostatniego uruchomienia skryptu
tworzącego kopie.
Jeśli różnica między wartością zmiennych jest większa lub równa czasowi jaki zdefiniowaliśmy na początku, to nastąpi urucho-
mienie skryptu który wykona zdefiniowane przez nas operacje. Dodatkowo do pliku time.db zostanie zapisany czas ostatniego
uruchomienia wspomnianego skryptu. Plik time.db przed pierwszym uruchomieniem skryptu powinien zawierać wpisaną liczbę
„0” (aby było możliwe uruchomienie).
Fragment kodu JavaScript odpowiada za przeładowanie strony uruchamiającej skrypt ”cronScript.php”. JavaScript wymaga po-
dania czasu w milisekundach, stąd też czas mnożymy przez 1000.
Proste zabezpieczenie porównujące czas ostatniego uruchomienia z czasem obecnym sprawi, że skrypt wykonujący kopie nie
zostanie uruchomiony wcześniej (przypadkowo, lub celowo przez osoby trzecie).
Wadą takiego rozwiązania jest to, że działanie skryptu wymaga uruchomionej przeglądarki , a także aktywnego łącza interneto-
wego. Problemem jest również to, że skrypt musimy wywołać “z zewnątrz, a to skutecznie obniża jego bezpieczeństwo. W wy-
padku działającego Crona skrypty możemy przechowywać poza katalogiem public_html, a więc w miejscu niedostępnym dla
zewnętrznych użytkowników.

<?php
///interwal co 24h w sekundach
$pseudoCronTime = 86400;
$oldTime = file_get_contents('time.db);
$newTime = time();

if($newTime-$oldTime>=$pseudoCronTime){
file_put_contents('time.db', $newTime);
//include 'cronScript.php';
echo 'Ok '.$newTime;
} else {
echo 'Nie teraz';
}
?>
<script>
setTimeout(function(){document.location.href='cronScript.php';}, <?php echo $pseudoCronTime*1000; ?>);
</script>

www.sdjournal.org 35
SDJ EXTRA: HOSTING

cji (a także skryptów) na systemach *xowych. W na- Joomla zajmuje na FTP ok 20MB. Jeśli jest to serwis
szym przypadku jest to niezbędny element automaty- z dużą ilością zdjęć lub innych multimediów to liczba
zacji backupu. Można sobie poradzić bez niego (ram- ta może wzrosnąć n-krotnie. Warto więc dokładnie po-
ka pod artykułem), ale jest to bardzo nieeleganckie liczyć na jak częsty backup plików możemy sobie po-
rozwiązanie. Niestety użytkowanie Crona jest specy- zwolić.
ficzne dla danego dostawcy hostingu. Gdy mamy do-
stęp do maszyny możemy użyć tabeli crontab, w któ- Zasada ograniczonego zaufania
rym definiujemy częstotliwość wywoływania potrzeb- Na zakończenie warto podkreślić, że trzymanie bac-
nych poleceń (np. skryptów tworzących backup). Na kupów na tym samym serwerze, na którym wykonu-
większości hostingów mamy jednak częściowo ogra- jemy kopię nie ma większego sensu - w wypadku ata-
niczony dostęp do maszyny, dlatego wówczas trze- ku stracimy kopie zapasowe. Dlatego ich przecho-
ba ustawiać odpowiednie opcje w panelu zarządzania wywanie powierzmy innemu serwerowi (wymaga to
serwerem. Opcje mogą się nieco różnić, ale przyjmuje pewnych modyfikacji kodu dołączonego do artykułu)
się tam podstawowe zasady: lub kopiujmy je na dysk naszego komputera - nieste-
ty trudno wtedy mówić o pełnej automatyzacji takiego
• podając dowolny np. dzień tygodnia wpisujemy * procesu.
• podając przedział np. godzin używamy znaku - Życzymy wszystkim czytelnikom, aby nie mieli żad-
• podając wielokrotność jakiejś liczby np. co 3 dni nych awarii i nie musieli nigdy korzystać z odtwarza-
piszemy */3 nia backupów.

Czy wszystko można uruchamiać Cronem? Nieste-


ty nie... Przykładowo na naszym testowym hostingu Literatura
funkcja mail() jest zablokowana w przypadku urucha-
• http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO - wpro-
miania jej przy pomocy Crona. Jest to zabezpiecze- wadzenie do biblioteki PDO
nie w celu ochrony przed wysyłaniem SPAMu. Można • http://pl.php.net/manual/en/book.pdo.php - dokumenta-
co prawda skorzystać z tej funkcji, ale trzeba wcze- cja klasy PDO
śniej napisać wiadomość do administratora serwera, • http://pl.wikipedia.org/wiki/Crontab - opis tworzenia tabli-
że potrzebujemy takiej funkcjonalności. cy crontab
Oczywiście narzędzie Cron nie musi nam służyć wy-
łącznie do tworzenia kopii zapasowych, ale także do
innych zadań - na przykład cyklicznego tworzenia ca-
che’owanej wersji strony (choć to akurat można zrobić
innymi sposobami), okresowego kompaktowania ba-
zy danych, tworzenia bannerów graficznych zawiera-
jących dane z RSS lub dostarczania wiadomości ma-
ilowych ze statystykami strony www.

Jak często tworzyć kopię zapasową?


Nie ma uniwersalnej odpowiedzi na to pytanie: w za-
leżności od charakteru serwisu mogą być to kopie two-
rzone co kilka godzin, dni, a nawet tygodni. Częstsze
kopie to większe bezpieczeństwo, ale też większe ob-
ciążenie serwera - jeśli prowadzimy średniej wielkości
sklep internetowy gdzie baza danych zajmuje około
20MB, to nie ma się co bać o serwer i można robić ko-
pie codziennie. Natomiast duże fora dyskusyjne mogą ZESPÓŁ DESI9N.PL
mieć wielkość bazy w pobliżu 800MB - wówczas two- Składa się ze studentów kierunków technicznych, którzy po-
rzenie kopii należy wykonywać bardzo ostrożnie. stanowili połączyć swe siły i razem tworzyć strony WWW dla
W przypadku dużych baz może pojawić się problem małych i średnich �rm, a także osób prywatnych. W skład ze-
z objętością pliku wynikowego - wówczas trzeba dzie- społu wchodzą: Krzysztof Ścira, Adrian Gadzina, Arkadiusz
lić kod SQL na fragmenty, które w razie odtwarzania Sendecki.
bazy trzeba osobno wczytywać, ale to już temat na Kontakt z autorami:
osobny artykuł. Krzysztof Ścira kscira@gmail.com
Jeśli chodzi o kopię plików to trzeba mieć na uwa- Adrian Gadzina adriano.kontakt@gmail.com
dze, że nawet mały serwis postawiony np. na CMS Arkadiusz Sendecki arek.sendecki@gmail.com

36 1/2010
���������������

CYKL SZKOLEŃ
Z OBSZARU
ZARZĄDZANIA
BEZPIECZEŃSTWEM IT


����� ��� ������� ������� ������� ��������� ��������������� ����������� ��� ������� ���� ������������� ������
������������� �������� ������������ �� ������������ �������� �� �������� ������������ ���������������� ����
������� ��� �� ������� ������� ������������ ���������� ���� �� ���������� ������ ����� ����������� ������������
����������������������������������������������������������������������������������������������������������
����������������������������������������������������������������������������������

� ��������� �������������� �� �������� � ������� ������ ��������� �� �����������


����� ���������� �������� ����������� ������ � �������� ������ ���������
������� �������� ������������� � ���� ��
� �� ��������� � � ������� ���� � �� ������� ����
� �������������� ������ ����������� � ������ � �������������� ��������� �������������
������������� � �������� � �� ������� ����
� ����� ������� ����

������� � ��������
���������
�������������������� ��������� ���������
�����������
��������������������������������������������
��������������
��������������������������� �������
SDJ EXTRA: HOSTING

Przyspieszyć serwer WWW


Czyli wykorzystanie nginx+php+fpm+apc zamiast Apache

Początkujący programista PHP zajmuje się najczęściej


wszystkim. Zajmuje się rzecz jasna programowaniem,
z powodu braków w załodze nie stroni od kodowania
szablonów, a jak szef każe to również „postawi” Linuksa,
na którym to wszystko będzie działało. Pora się dokształcić...

Dowiesz się: Powinieneś wiedzieć:


• Z artykułu dowiesz się jak kompilować programy i popraw- • Czytelnik powinien wiedzieć, co to jest Linux i jak korzystać
nie skonfigurować serwer WWW nginx, aby działał wraz z PHP. z konsoli. Przyda się również wiedza, jak instalować dodatko-
Oraz jak przyspieszyć samo PHP. we pakiety do naszej dystrybucji Linuksa.

P
lusy języka PHP są automatycznie jego zmorą. dajnością rosyjskiej wyszukiwarki oraz serwisu Ram-
PHP zaczynał jako język skryptowy do prostego bler.ru.
generowania stron HTML. Z tego względu po- Obecnie nginx zajmuje już 4.miejsce wśród najpopu-
trzebował i potrzebuje do „uruchomienia” interpretera larniejszych serwerów WWW z udziałem 6,07% (Tabe-
języka PHP i jeśli wynik ma być dostępny przez Inter- la 1). A lista serwisów, które korzystają z nginx-a bar-
net potrzebujemy serwera WWW. dzo szybko rośnie. Wystarczy wspomnieć:
Najbardziej popularnym serwerem WWW jest nadal
Apache, nie tylko z powodu swojej długiej historii, ale • WordPress.com
również popularnego określenia używanego wraz • SourceForge.net
z PHP - LAMP (Linux-Apache-MySQL-PHP). • imageshack.us
Apache jest dostępny w każdej dystrybucji Linuksa, • nasza-klasa.pl
a do tego obsługuje PHP poprzez moduł SAPI co bar- • grono.net
dzo ułatwia sprawę początkującym osobom. Najczę- • itd.
ściej na instalacji Apache i PHP z pakietów sprawa
konfiguracji się kończy. Dla programistów PHP nginx przegrywa tylko pod
Niestety Apache nie jest demonem prędkości, jednym względem z Apache i lighttpd: brak obsługi
szczególnie po standardowej instalacji z pakietów. plików .htaccess. Dlatego regułki rewrite należy za-
Nawet optymalizacja konfiguracji nie przynosi oczeki- mieścić wraz z definicją serwera wirtualnego (vhost)
wanych rezultatów. i lekko zmodyfikować.
Alternatywą pozostają inne serwery WWW. Przez
amatorów najczęściej wybierany jest lekki odpowied- Do dzieła
nik Apache czyli lighttpd napisany w 2003 roku przez Zadbajmy najpierw, aby nasz serwer mógł kompilować
Jana Kschenke jako rozwiązanie problemu przyjęcia
10 000 połączeń przez jeden serwer.
Ja natomiast chciałbym Wam zaproponować ser- Listing 1.
wer nginx, który staje się coraz popularniejszy mi- apt-get install gcc g++ make
mo stabilnej wersji oznaczonej jako 0.8.*. Pierwsza apt-get install libpcre++-dev libssl-dev
publiczna wersja ukazała się w 2004 roku. Igor Sy-
sojewa stworzył nginx, aby rozwiązać problem z wy-

38 1/2010
Przyspieszyć serwer WWW

programy. Do artykułu wykorzystałem świeżo zainsta-


Listing 3.
lowanego Debiana 5.0 w wersji minimalnej.
Zainstalujmy potrzebne pakiety do kompilacji oraz cd /etc/init.d
od razu kilka pakietów potrzebnych nginx-owi (Listing wget http://matipl.pl/data/nginx
1). W zależności od dystrybucji nazwy pakietów nie- chmod a+x nginx
znacznie mogą się różnić. /etc/init.d/nginx start
Wszystkie listingi i polecenia wykonujemy z upraw-
nieniami administratora (root). Dla końcowego przy-
Listing 4.
kładu w pliku /etc/hosts dopiszmy przykładową do-
menę domena.pl skierowaną na 127.0.0.1, na któ- update-rc.d -f nginx defaults
rej przetestujemy działanie serwera WWW. Możemy
w tym miejscu użyć również naszego publicznego ad-
Listing 5.
res IP lub zamiast edycji hosts skorzystać z naszej do-
meny, podpiętej pod serwer. mkdir /home/services
mkdir /home/services/httpd
nginx mv /usr/local/nginx/html /home/services/httpd/
Gdy nasz system jest już gotowy możemy udać się localhost
na stronę nginx (http://nginx.org/en/download.html) ln -s /home/services/httpd/localhost/ /usr/local/
i ściągnąć ostatnią stabilną wersję. Rozpakowujemy, nginx/html
konfigurujemy źródła wg własnej potrzeby i kompiluje-
my. Przedstawione jest to na Listingu 2.
Jako, że planujemy odciążyć jak się da nasz serwer
pozbywam się modułu pop3, imap, smtp. Natomiast rzę katalog dla naszej domeny, a następnie tworzę link
włączam obsługę SSL przez nginx. symboliczny (Listing 5).
W ten oto sposób posiadamy już bardzo lekki ser- Jak już wspomniałem użytkownicy Apache mają
wer WWW - nginx. Całość (wraz z konfiguracją i loga- prościej ze względu na moduł mod_php. Reszta ser-
mi) jest zainstalowana w /usr/local/nginx. werów do tej pory zawsze była skazana na wywo-
Niestety domyślnie nie ma skryptu uruchomieniowe- ływanie PHP jako CGI. Było to o tyle problematycz-
go (init-script). Przykładowy skrypt znajdziecie np. pod ne, że każde żądanie HTTP wywoływało kolejny in-
adresem: http://matipl.pl/data/nginx. Plik należy zapi- terpreter.
sać w /etc/init.d i nadać mu uprawnienia wykonywa- Od PHP 5.3.3 mamy możliwość skorzystania z FPM
nia. Na koniec uruchomimy nginx (Listing 3). (FastCGI Process Manager), wcześniej trzeba było
Aby nginx uruchamiał się wraz ze startem systemu paczować poszczególne wersje. FPM pozwala zarzą-
musimy dodać linki w rc*.d (Listing 4). dzać procesami FastCGI. Dzięki takiemu rozwiązaniu
w połączeniu z nginx zyskujemy:
Pora na PHP
W ten oto sposób mamy już postawionego nginx-a • mniejsze zużycie pamięci (dodatkowe workery
i powinniśmy widzieć standardowy komunikat pod ad- nginx nie potrzebują środowiska PHP)
resem http://localhost/ (lub adres/nazwa naszej ma- • lepsze zarządzanie uprawnieniami PHP bez gim-
szyny w Internecie). Domyślny katalog prezentowa- nastyki
ny użytkownikom to /usr/local/nginx/html. Ja zawsze • gdy PHP padnie nginx nadal działa
wszelakie dane przechowuję w katalogu /home, usłu- • inteligentne zarządzanie wspólnymi procesami
gi sieciowe w /home/services. Dlatego najpierw two- PHP (obniża zużycie pamięci)

Listing 2.

cd ~
wget http://nginx.org/download/nginx-0.8.53.tar.gz
tar -xzf nginx-0.8.53.tar.gz
cd nginx-0.8.53
./configure --sbin-path=/usr/local/sbin --with-http_ssl_module --without-mail_pop3_module
--without-mail_imap_module --without-mail_smtp_module
make
make install

www.sdjournal.org 39
SDJ EXTRA: HOSTING

Rysunek 1.

40 1/2010
Przyspieszyć serwer WWW

Jedyne co należy zrobić w wersji 5.3.3 to podczas matipl.pl/data/nginx.conf.


konfiguracji PHP przed kompilacją dodajemy --ena- Ustawimy nie tylko użytkownika i grupę z jakimi ma
ble-fpm. się uruchamiać (www-data), ale również ilość proce-
Dobrze, pora teraz na powtórzenie kroków, które już
wykonaliśmy podczas kompilacji nginx tym razem dla Listing 6.
PHP. Ściągamy aktualną wersję PHP, rozpakowuje-
my i konfigurujemy pod własne potrzeby (Listing 6). cd ~
Jak widzicie konfiguracja jest w przypadku PHP o wie- wget http://pl.php.net/distributions/php-
le bardziej złożona niż dla nginx. Jeśli nie potrzebuje- 5.3.3.tar.gz
cie wszystkich opcji (np. rozszerzenia mbstring) może- tar -xzf php-5.3.3.tar.gz
cie spokojnie je usunąć z wywołania. W przedstawio- cd php-5.3.3
nej konfiguracji dodane są opcje ze względu na póź- ./configure \
niejszą możliwość operowania na obrazkach w PHP, --with-config-file-path=/usr/local/etc/php.ini \
korzystania z CURL-a czy PDO. Aby configure zadzia- --enable-fpm \
łało należy do naszego Debiana doinstalować kilka pa- --enable-cli \
czek, szczególnie libevent z backports (Listing 7). --enable-inline-optimization \
W ten oto sposób mamy skompilowany i zainstalo- --disable-rpath \
wany PHP. Podczas instalacji zostaną nam zaprezen- --disable-ipv6 \
towane wszelkie ścieżki (PHP i FPM). --enable-mbstring \
--enable-mbregex \
nginx rozmawia z PHP --enable-sqlite-utf8 \
W tym momencie w systemie mamy już zainstalowa- --with-mysql=mysqlnd \
ny i uruchomiony serwer WWW nginx oraz instancję --with-pdo-mysql=mysqlnd \
PHP. Niestety nie potrafią ze sobą w tym momencie --with-mysqli=mysqlnd \
„rozmawiać”. --with-curl \
Jedyne co możemy zrobić to wykonać dany plik PHP --with-zlib \
z wiersza poleceń. --with-zlib-dir=/usr \
Najpierw skonfigurujmy FPM. Init-script i php.ini --with-gd \
nie zostały skopiowane z katalogu ze źródłami --with-jpeg-dir=/usr \
PHP, musimy to zrobić sami. Pliki konfiguracyjne --with-png-dir=/usr \
w naszym wypadku znajdą się w /usr/local/etc. Po in- --with-freetype-dir \
stalacji dostępny jest tam tylko pear.conf oraz php- --enable-gd-native-ttf \
fpm.conf.default (Listing 8). --enable-exif \
Plik php.ini każdy z Was może dostosować wg --enable-shmop \
uznania. W pliku php-fpm.conf ciut pozmieniamy. Do- --with-xsl=shared \
kładny opis parametrów wzorem z php.ini znajduje --enable-soap=shared \
się w pliku php-fpm.conf. Ja proponuję następującą --enable-sockets \
konfigurację (Listing 9 lub http://matipl.pl/data/php- --enable-pcntl=shared \
fpm.conf). Szczególnie proszę zwrócić uwagę na --with-mcrypt \
ustawienie użytkownika i grupy z jakimi będziemy --with-bz2 \
uruchamiać procesy PHP (w naszym wypadku www- --with-tidy \
data). --with-pcre-dir \
Wróćmy teraz do nginx, jego też należy skonfiguro- --with-pear
wać. Domyślny plik jest dosyć chaotyczny. Proponuję make -j2
w takim wypadku plik /usr/local/nginx/conf/nginx.conf make install
zastąpić wzorem z Listingu 10 lub ściągnąć z http://
Tabela 1. Udział w rynku web serwerów wg NetCraft

Developer September 2010 Percent October 2010 Percent Change


Apache 129,782,948 57.12% 135,209,162 58.07% 0.95
Microsoft 54,787,167 24.11% 53,525,841 22.99% -1.12
Google 15,312,751 6.74% 14,971,028 6.43% -0.31
nginx 12,779,550 5.62% 14,130,907 6.07% 0.44
lighttpd 1,818,032 0.80% 1,380,160 0.59% -0.21

www.sdjournal.org 41
SDJ EXTRA: HOSTING

Listing 7.

echo ”deb http://www.backports.org/debian lenny-backports main contrib non-free” >> /etc/apt/sources.list


apt-get update
apt-get -t lenny-backports install libevent-dev
apt-get install libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg62-dev libpng12-dev libfreetype6-dev
libmcrypt-dev libtidy-dev libxslt1-dev

sów, czy ścieżkę dla logów. Oczywiście, jeśli chcecie Dlatego utwórzmy plik /usr/local/nginx/conf/rules/
mieć jak ja logi w /var/log/nginx musicie utworzyć ten php.conf i wpiszmy do niego Listing 13.
katalog z prawami dla www-data.
Konfiguracja dla poszczególnych projektów/domen To wszystko
będzie trzymana w katalogu /usr/local/nginx/conf/ Na koniec pozostaje nam tylko uruchomienie serwe-
vhosts. ra php-fpm i ngnix oraz utworzenie katalogu dla na-
Pozostają nam już tylko 2 ostatnie kroki, aby cieszyć szej domeny (z przykładu domena.pl lub własnej) wraz
się PHP w ramach nginx. z przykładowym plikiem index.php: Listing 14
Najpierw dostosujmy plik fastcgi_params, który znaj-
duje się w /usr/local/nginx/conf. Na końcu pliku powin- Listing 9.
niśmy dodać: Listing 11.
Ostatnim krokiem jest stworzenie domyślnego vhost- [global]
a (serwera wirtualnego www) i regułki dla plików z roz- pid = /usr/local/var/run/php-fpm.pid
szerzeniem .php. error_log = /var/log/php-fpm.log
W pliku vhost-a jako nazwę serwera wykorzystamy log_level = warning
specjalny operator _, dzięki czemu będzie on zawsze emergency_restart_threshold = 10
wykonywany gdy nginx nie znajdzie wpisu dla dome- emergency_restart_interval = 1m
ny podpiętej pod serwer. Natomiast jako parametr dla process_control_timeout = 5s
opcji listen podajemy IP, na którym ma „nasłuchiwać” daemonize = yes
dany vhost. W tym miejscu użyjmy 127.0.0.1 lub na- [www]
szego publicznego IP. listen = 127.0.0.1:9000
Jak widzicie wykorzystałem w nim $host, dzięki cze- listen.backlog = -1
mu gdy w przeglądarce internetowej, gdy wywołamy listen.allowed_clients = 127.0.0.1
adres domena.pl, która jest spięta z naszym serwerem listen.owner = www-data
automatycznie nginx zaserwuje nam pliki z katalogu / listen.group = www-data
home/services/httpd/domena.pl. listen.mode = 0666
Plik umieścimy jako /usr/local/nginx/conf/vhosts/
000-default.conf, a powinien wyglądać jak na Listingu user = www-data
12 (lub http://matipl.pl/data/000-default.conf). group = www-data
Jak widzicie użyłem w nim również opcji include.
Wskazuje on na „regułę”, jak ma się zachować nginx, pm = static
gdy trafi na plik PHP. Moglibyśmy nie używać include, pm.max_children = 5
ale wtedy w każdym pliku vhost-a musielibyśmy po- pm.max_requests = 500
wtórzyć ten sam kod.
request_slowlog_timeout = 5s
Listing 8. slowlog = /var/log/php-slow.log
rlimit_files = 1024
cd ~ rlimit_core = 0
cp php-5.3.3/php.ini-production /usr/local/etc/php.ini catch_workers_output = yes
cp php-5.3.3/sapi/fpm/init.d.php-fpm /etc/init.d/php-
fpm env[HOSTNAME] = $HOSTNAME
chmod a+x /etc/init.d/php-fpm env[PATH] = /usr/local/bin:/usr/bin:/bin
cd /usr/local/etc/ env[TMP] = /tmp
cp php-fpm.conf.default php-fpm.conf env[TMPDIR] = /tmp
nano php-fpm.conf env[TEMP] = /tmp

42 1/2010
Przyspieszyć serwer WWW

Listing 10.

user www-data;
worker_processes 4;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 5;
tcp_nodelay on;

gzip on;
gzip_comp_level 5;
gzip_vary on;
gzip_proxied any;
gzip_types text text/plain text/css application/x-javascript text/xml application/xml application/xml+rss
text/javascript;

log_format main '$remote_addr - $remote_user [$time_local] '


'"$request" $status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log crit;
include /usr/local/nginx/conf/vhosts/*;
}

Teraz już możemy uruchomić przeglądarkę i wpisać Jest to może i dobre, gdy jesteśmy jedynym użytkow-
adres http://domena.pl/ nikiem serwisu, ale nie już na maszynie produkcyjnej.
Gdybyście mieli jakiekolwiek problemy zapraszam Dlatego od razu po wykonaniu powyższych kro-
do kontaktu via e-mail. ków proponuję każdemu zainstalować serwer mem-
cached.
Coś jeszcze, czyli słowo o APC i memcached Memcached jest to system buforowania pamię-
Poświęćmy jeszcze chwilę, aby przyspieszyć sam ci podręcznej, inaczej mówiąc wszelkie dane które
PHP. Domyślnie PHP operuje na sesjach plikowych.
Listing 12.
Listing 11.
server {
fastcgi_param SCRIPT_FILENAME $document_ listen 127.0.0.1 default;
root$fastcgi_script_name; server_name _;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180; location / {
fastcgi_read_timeout 180; root /home/services/httpd/$host/;
fastcgi_buffer_size 128k; index index.php index.html;
fastcgi_buffers 4 256k; }
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k; include /usr/local/nginx/conf/rules/
fastcgi_intercept_errors on; php.conf;
}

www.sdjournal.org 43
SDJ EXTRA: HOSTING

umieścimy w ramach serwera memcached są loko- Następnym krokiem jest instalacja klienta memca-
wane w pamięci operacyjnej serwera a nie plikach, ched dla PHP. Wykorzystamy do tego PECL.
co bardzo przyspiesza operowanie na danych. Może- Pozostaje już nam tylko włączenie rozszerzenia i po-
my to wykorzystać dla sesji, ale jak również jako miej- informowanie PHP, że do obsługi sesji chcemy korzy-
sce na cache. stać z memcached.
Jedynym minusem jest fakt, że podczas zatrzymania Na końcu pliku php.ini dodajemy extension=mem-
serwera memcached wszelkie dane z niego znikają. cached.so, wcześniej szukamy session.save_han-
Pierwsze co musimy zrobić to zainstalować serwer dler oraz session.save_path (Listing 16). Teraz już tyl-
memcached wraz z autoconf oraz skompilować lib- ko zrestartujmy php-fpm (/etc/init.d/php-fpm restart)
memcached, którego nie znajdziemy w podstawowym i cieszmy się szybką obsługą sesji. Teraz pora jeszcze
repozytorium Debiana (Listing 15). wyjaśnić o co chodzi z APC.

Listing 13.

location ~ .php$ {
root /home/services/httpd/$host/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /usr/local/nginx/conf/fastcgi_params;
}

Listing 14.

/etc/init.d/php-fpm start
/etc/init.d/nginx start
mkdir /home/services/httpd/domena.pl
echo "<?php phpinfo() ?>" > /home/services/httpd/domena.pl/index.php

Listing 15.

apt-get install memcached autoconf


wget http://launchpad.net/libmemcached/1.0/0.44/+download/libmemcached-0.44.tar.gz
tar -xzf libmemcached-0.44.tar.gz
cd libmemcached-0.44
./configure -prefix=/usr
make
make install
pecl install memcached

Listing 16.

session.save_handler = memcached
session.save_path = "127.0.0.1:11211"
...
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20090626/memcached.so

Listing 17.

extension=/usr/local/lib/php/extensions/no-debug-non-zts-20090626/apc.so

[apc]
apc.enable = On
apc.shm_size = 128M

44 1/2010
Przyspieszyć serwer WWW

stronę napisaną w PHP ten kod jest kompilowany. I tak


w kółko z każdym żądaniem.
APC jest akceleratorem kodu napisanego w PHP.
Jest to najprostsze, a zarazem najszybsze przyspie-
szenie wykonywania naszych aplikacji. Robi pro-
stą sprawę, podczas pierwszego wykonania nasze-
go pliku PHP kompiluje go i przechowuje tzw. opco-
de w pamięci RAM maszyny. APC również znajdzie-
my w PECL, a jego instalacja jest banalnie prosta.
Ze względu na skorzystanie z PHP 5.3 musimy użyć
apc-beta (pecl install apc-beta). Na pytania odpowia-
damy domyślnie: NO. Po wszystkim należy włączyć
rozszerzenie w APC i aktywować (Listing 17). Opcja
apc.shm_size mówi, ile APC może wykorzystać pa-
mięci RAM. Zawartość pamięci oraz trafność cache
APC możemy podejrzeć, dzięki apc.php. Skrypt znaj-
dziemy w /usr/local/lib/php
W tym momencie mamy wstępnie przygotowa-
ny nasz serwer do szybkiego działania z aplikacjami
PHP. Jeśli potrzebujesz więcej informacji skorzystaj
z wyszukiwarki na moim blogu - http://matipl.pl/

Rysunek 2. MATEUSZ KAMIŃSKI


Wieloletni programista PHP, miłośnik OOP w PHP5. W wolnej
Język PHP jest językiem skryptowym, dlatego za chwili zajmuje się również administracją serwerów linuksowych.
każdym razem gdy wywołujemy dany skrypt czy naszą Kontakt: ja@matipl.pl
Reklama
SDJ EXTRA: HOSTING

Tworzenie skryptów
w technologiach typu
Flash i Silverlight
Flash, za Flashem przepaść, za przepaścią Silverlight oraz Java FX.
Wielokrotnie sięga się po jedną z tych trzech technologii. W imię
czego? Ładnych animacji? Prostoty implementacji? Pozostaje
jeszcze aspekt użyteczności i... dostępności. Zastanówmy się więc,
jak prawidłowo wykorzystać te multimedialne technologie.
Dowiesz się: Powinieneś wiedzieć:
• Kiedy nie stosować technologii Flash i podobnych • Czym są aplikacje multimedialne stworzone we Flashu
• Dlaczego czasem nie warto stosować technologii Flash i po-
dobnych

Trójca zła Silverlight, znany także jako Windows Presentation


Flash, będący obecnie własnością Adobe (po przejęciu Foundation/Everywhere (WPF/E) jest odpowiedzią Mi-
od Macromedia), ma stosunkowo bogatą historię. Sto- crosoftu na Flasha. Jak to jednak często bywa w przy-
sowany jest od lat na wielu płaszczyznach. Firmy przy- padku tej firmy – odpowiedzią spóźnioną o wiele lat.
gotowują przy jego pomocy swoje elektroniczne wizy- Desperackie próby wprowadzenia technologii do po-
tówki i prezentują portfolio, agencje reklamowe prześci- wszechnego użycia kończyły się kiepskim efektem. Mo-
gają się w sposobach na prezentację coraz to nowych że ze względu na ograniczenia platformowe? Silverli-
produktów na telebimach przy jego pomocy, webmaste- ght działa bowiem na Windowsie (w Internet Explorer,
rzy tworzą bardziej lub mniej irytujące dodatki do stron Mozilla Firefox, Safari) oraz na Mac OS (w Safari) z wy-
internetowych bądź całe strony internetowe. Na je- łączeniem procesorów PowerPC. Dla Linuksa pojawiła
go korzyść przemawia jednak know-how firmy Adobe, się nieoficjalna alternatywa w postaci produktu społecz-
dzięki czemu posiada on genialne algorytmy kompresji. ności o nazwie Moonlight.
Natomiast technologia AIR pozwala na stosowania Fla- JavaFX, to najmłodsza, siostrzana technologia. Ma
sha jako aplikacje desktopowe. ona być wszędzie. W każdym komputerze, komórce,
telewizorze. Wspomnieć należy, że z Javą ma ona ty-
le wspólnego, co JavaScript – nazwę. Jej udział w ryn-
ku jest obecnie jeszcze mniejszy, niż w przypadku jej
konkurenta ze stajni Microsoftu, ale przynajmniej jest
multiplatformowa dzięki temu, iż wymaga do działania
Wirtualnej Maszyny Javy.
Trzy technologie, trzej producenci, jeden cel, te sa-
me antywzorce wdrożenia. Jak się przed nimi ustrzec?
Kiedy nie należy stosować danej technologii? Dlacze-
go? Na te pytania spróbujemy sobie zaraz odpowie-
dzieć.

Zło wcielone?
Każdą z wyżej omówionych technologii spotyka się
w wielu różnych miejscach, implementowaną na wie-

46 1/2010
Tworzenie skryptów w technologiach typu Flash i Silverlight

le różnych sposobów. Wielu internautom jednak Flash strony, na określony czas wyświetli mu się inna strona,
kojarzy się tylko z jednym – irytujące, wyskakujące re- zawierająca treści marketingowe. Użytkownik jest zo-
klamy bez krzyżyka, ale z głośnymi efektami dźwięko- bowiązany do kliknięcia przycisku „pomiń” lub odcze-
wymi. Pozostałe dwie technologie są raczej nieznane. kania kilku sekund. Do takich praktyk posunął się swe-
Coś chyba poszło nie tak, skoro wielu bardziej go czasu działający w Polsce Alior Bank, który to pre-
świadomych użytkowników nie instaluje w przeglą- zentował tego typu stronę w dość nietypowym – i moż-
darkach stosownych wtyczek lub używa dodatków na by rzec: nieprzemyślanym – miejscu. Reklama wy-
blokujących multimedia. Czy celem twórców Flasha świetlała się po operacji logowania do internetowego
było stworzenie narzędzia ułatwiającego przygoto- systemu transakcyjnego, ale przed (!) przejściem do
wywanie reklam? Nie. Celem twórców Flasha było niego.
stworzenie technologii wzbogacającej wrażenia użyt- Multimedialne reklamy można więc stosować dobrze
kowników. Celem twórców Silverlighta i JavaFX było i źle. Prędzej, czy później przełoży się to na wyniki fi-
stworzenie technologii konkurencyjnej. Produkty, co nansowe.
prawda powstały, ale ich zastosowanie jest napraw-
dę różne. Czasami karygodne, ale to akurat świad- Brak wiedzy?
czy o intencjach bądź wiedzy osób, które te techno- Skoro więc mamy wybór, skoro widzimy, że technolo-
logie wdrażają. gie te mogą zostać wykorzystane pozytywnie, to zna-
czy, że twórcy aplikacji nie mają odpowiedniej wiedzy.
Złe intencje? Zakładamy tutaj oczywiście, że nie mają na celu stwo-
Każda technologia daje konkretne możliwości. A skoro rzenia inwazyjnej reklamy.
tak, to dlaczego ich nie wykorzystać? Pokażemy rekla- Dlaczego więc stosuje się tego typu rozwiązania?
mę, co da nam mnóstwo pieniędzy, bo nasz serwis ma Agencja reklamowa zaproponowała konkurencyjną
sporo unikalnych odwiedzin. Problem w tym, że z cza- cenę, zlecenie wykonał chłopak z liceum bez doświad-
sem te irytujące okienka, których nie da się zamknąć, czenia, etc. Powodów może być wiele, ale to zlecenio-
zaczną odstraszać i użytkownicy już do nas nie wró- dawca odbiera produkt. A pamiętać należy, że nawet
cą. A w wielu przypadkach użytkownik nie zapozna się najlepsi popełniają błędy, ale ze względu na fakt, iż
nawet z prezentowanym produktem. aplikacje mają mnóstwo wodotrysków, zleceniodawcy
Jak więc pokazać reklamę, aby nie odstraszała, nie się podobają i je kupuje, po czym zastanawia się, dla-
przeszkadzała, a jednocześnie dawała efekt? Moż- czego traci użytkowników i klientów.
liwości jest kilka i na pewno nie należy stosować ich Błędów, które popełnia się przy tworzenia aplikacji
wszystkich na raz. multimedialnych dołączanych do stron internetowych
Dla przykładu, spójrzmy na linki sponsorowane jest całe mnóstwo. I bynajmniej nie wynikają one ze
w wyszukiwarce Google. Umieszczone są one z bo- słabej znajomości języka skryptowego oraz nie chodzi
ku lub tuż pod oknem wyszukiwania, jednak nie wię- o to, że przy jego pomocy tworzy się wadliwy kod, ale
cej niż parę pozycji. Zero inwazyjności, miliardowe zy- o fakt, jak końcowy produkt wygląda.
ski – marketingowe arcydzieło. Gdy internauta wchodzi na naszą stronę interneto-
Google ma jednak wysoką pozycję, także zejdźmy wą, pierwsze co z pewnością rzuci mu się w oczy to
nieco niżej. Wiele portali umieszcza reklamy w okoli- czas, w jakim ona się wczytuje. Mówi się, że użytkow-
cach swojego logo w postaci banera lub z boku strony nik da nam trzy sekundy. Po pięciu sekundach odej-
jako tzw. reklamy typu skyscraper. Baner umieszczo- dzie najpewniej na zawsze. Komputery są coraz szyb-
ny na topie strony nie powinien być zbyt wysoki. Je- sze, łącza nieco wolniejsze, ale także przyspieszają.
żeli zajmie więcej niż czwartą część okna, użytkownik Nie oznacza to jednak, że można dokładać kolejne,
z pewnością instynktownie przewinie stronę, by po- zbędne setki kilobajtów do strony, bo nie taki jest tego
zbyć się z widoku rozpraszającą animację, umiesz- cel. Przesłanie pojedynczego pliku HTML do przeglą-
czając w centrum pola widzenia właściwe treści. darki w najlepszym przypadku potrwa kilkadziesiąt mi-
Nota bene, animacja nie powinna zbytnio rzucać się lisekund. Jeżeli po tym czasie przeglądarka będzie do-
w oczy, gdyż będzie użytkownika odciągać od właści- datkowo zobowiązania do pobrania pliku multimedial-
wych treści, przez co ten może poczuć się niekomfor- nego w postaci aplikacji Flasha, czy Silverlighta, użyt-
towo i do serwisu więcej nie powróci lub reklamy za- kownik zmuszony jest do dalszego oczekiwania. Jeże-
blokuje. I właśnie to jest jednym z głównych przewi- li w grę wchodzi JavaFX, czas ten wydłuży się o uru-
nień tego typu technologii – odciągają uwagę od wła- chomienie Wirtualnej Maszyny Javy, co wcale krótko
ściwych treści strony internetowej. nie trwa. Java w zastosowaniach desktopowych jest
Czasami spotyka się również reklamy w postaci Pa- niestety stosunkowo wolna, toteż bardziej nadaje się
ge in the Middle. Działa to w dość prosty sposób – za- do rozwiązań serwerowych, gdzie konkurować może
nim użytkownik zostanie dopuszczony do żądanej np. z .NETem.

www.sdjournal.org 47
SDJ EXTRA: HOSTING

Jeżeli strona internetowa jest tak naprawdę jedną, cych. Flash, Silverlight i JavaFX odbierają mu powyż-
dużą aplikacją przygotowaną przy użyciu powyższych sze możliwości.
technologii multimedialnych, to narażamy użytkowni- Kluczowa może być również dostępność dla osób
ków na kolejne nieprzyjemności. Zwykle bowiem, do- niepełnosprawnych bądź z zaburzeniami motoryczny-
łącza się preloader, który serwuje użytkownikowi jakąś mi. W tym pierwszym przypadku, głównym problemem
animację, by ten nie nudził się podczas wczytywania jest tekst. Syntezatory mowy współpracują z przeglą-
i konfigurowania się naszej aplikacji. darkami i potrafią poprawnie zinterpretować tekst wy-
Dodatkowo, artyści później bardzo często pokazują świetlany w nich, jednak nie poradzą sobie z tekstem
ile to oni potrafią zrobić i prezentują nam tzw. intro. In- osadzonym w klipie multimedialnym, a wtedy osoba
tro musi dać się pominąć. Jeżeli nie dodamy charakte- niewidoma bądź niedowidząca może mieć problemy
rystycznego „skip”, to jesteśmy przegrani na całej linii. z zapoznaniem się z treścią strony internetowej.
Samo intro jednak nie jest dobrym pomysłem w przy- W przypadku zaburzeń motorycznych, użytkownik
padku aplikacji internetowej. Intro można pokazywać może nie być w stanie poprawnie operować myszką,
potencjalnym kontrahentom przedstawiając im swoją co utrudni mu poruszanie się po stronie internetowej,
multimedialną wizytówkę, ale nie, gdy chcemy np. za- gdyż nie wskaże precyzyjnie odpowiedniego hiperłą-
prezentować klientom ofertę produktów odzieżowych, cza przy pomocy tego urządzenia. Strony internetowe
które mamy do sprzedania. przygotowane w HTMLu umożliwiają nawigowanie po
Kolejną sprawą są wszelkie animacje, jak wjeżdżają- nich przy pomocy klawiatury, gdzie oprócz przewijania
ce z boku obrazki, albo co gorsza – teksty, płynnie zni- stron przy pomocy strzałek, mamy do dyspozycji także
kające ekrany, powodujące opóźnienia przy przejściu klawisz tabulacji, który ułatwia przemieszczanie się po
do kolejnych sekcji, etc. Co za dużo, to nie zdrowo. odnośnikach. Jest to znacznie łatwiejsze, niż wskazy-
Jeżeli użytkownik ma spędzić więcej czasu na naszej wanie ich przy pomocy myszki, gdy użytkownik cierpi
stronie internetowej, gdzie przedstawiamy np. Portfo- na Chorobę Parkinsona.
lio fotograficzne, to nie może stracić cierpliwości po Multimedia przeszkadzają nie tylko użytkownikom,
oglądnięciu pierwszych trzech zdjęć ślubnych, które ale także właścicielom, którzy chcieliby wypozycjo-
wykonaliśmy, bo poszuka innego fotografa. nować swoją stronę w wyszukiwarkach. Wyszukiwar-
Ważne jest także, by użytkownik w każdej chwili ki bowiem indeksują tekst. O ile w przypadku HTMLa
wiedział, gdzie jest oraz by mógł w bardzo łatwy spo- można zaindeksować obrazki stosując w znaczniku
sób przemieszczać się w przód i w tył. Przycisk „cof- IMG parametr ALT, to z treściami osadzonymi w apli-
nij” przeglądarki internetowej staje się nie tylko bez- kacjach nie ma takich możliwości. Dla wyszukiwarki
użyteczny, ale wręcz mylący, gdy mamy do czynienia taka strona będzie pusta.
z Multimedialną Trójcą. Omawiane technologie stosowane są bardzo często
Przydatne są również mapy witryny oraz tzw. zia- w miejscach, gdzie strumieniuje się dźwięk i/lub obraz.
renka, przy pomocy których prezentujemy aktualną Przykładem może być serwis YouTube.com, gdzie od-
przebytą ścieżkę, umieszczoną w widocznym miej- twarzacz przygotowano przy użyciu Flasha. Pozostałe
scu, zwykle w górnej części strony. W sklepie inter- elementy to HTML oraz JavaScript (AJAX).
netowym, ziarenkami będą np. kolejne podkategorie, Flash został użyty także w GMailu przy załączaniu
które użytkownik wybierał by dotrzeć do konkretnego plików – przy jego pomocy prezentowany jest postęp
zbioru produktów. wysyłania pliku. Jeżeli jednak ktoś nie ma zainstalowa-
Mylące mogą także być nietypowe kontrolki. nego Flash Playera, to nic złego się nie dzieje – nadal
Zwłaszcza te, które są niezgodne z ustandaryzo- może korzystać z poczty przy pomocy dostarczonego
wanymi, ogólnie przyjętymi normami projektowa- przez Google interfejsu (dostarczono więc alternatywą
nia interfejsów graficznych. Wszelkiego rodzaju pa- wersję, co jest dopuszczalne).
ski przewijania, przyciski, listy, paski menu powin- Oba te przypadki pokazują, że aplikacje te stosowa-
ny być rozpoznawalne na pierwszy rzut oka. Typo- ne są tylko w wybranych częściach większej strony in-
wy użytkownik stosuje proste podejście – „nie każ mi ternetowej, a nie jako twór, który stronę tę zastępuje.
myśleć”. Nie każmy więc. Jedyne co możemy, to za- Strona internetowa napisana w HTMLu w wersji
łożyć, że użytkownik wie, jak posługiwać się standar- czwartej może więc być wzbogacona o multimedia
dowymi kontrolkami. Ludzie przyzwyczajeni są tak- przy pomocy Flasha, Silverlighta, czy JavaFX, pod wa-
że do tego, że strona internetowa, to przede wszyst- runkiem, że wzbogaca się ją umiejętnie. Oraz pod wa-
kim podświetlane linki, po których kliknięciu można runkiem, że się ją wzbogaca, a nie zastępuje.
użyć przycisku „cofnij”, do stosowania funkcji powięk-
szania i pomniejszania tekstu dostępnych w przeglą- Będzie lepiej!
darce, stosowania funkcji wyszukiwania w tekście na Wielkimi krokami nadchodzi jednak HTML 5. Ma on wiel-
stronie internetowej, stosowania narzędzi tłumaczą- ką szansę odbić część rynku obecnym technologiom, ze

48 1/2010
Tworzenie skryptów w technologiach typu Flash i Silverlight

względu na możliwość osadzania bezpośrednio przy je- także o pewnych normach, które przyjęły się na prze-
go użyciu klipów audio i wideo, a także dzięki większym strzeni ostatnich kilkunastu lat projektowania graficz-
możliwościom obecnych kontrolek, co sprawi, że np. for- nych interfejsów użytkownika. Należy również wziąć
mularze będą znacznie lepiej wyglądać i będą łatwiejsze pod uwagę roboty indeksujące, które wypuszczają
w walidacji. Także możliwość osadzania obiektów Ma- w sieć wyszukiwarki.
thML oraz SVG przemawia na jego korzyść. Kiedy można zastosować te technologie jako jedyne
Ciekawostką jest też API dla aplikacji offline (ba- przy budowie aplikacji? Gdy dostarczamy kontrahen-
za danych offline), edycja dokumentów, obsługa dra- towi swoją elektroniczną wizytówkę, prezentację, która
g&drop, programowanie przycisku „cofnij” przeglądar- nie jest zbyt złożona i odpowiednio łatwa w obsłudze.
ki (bolączka aplikacji multimedialnych i AJAXa). Doda- Wizytówka taka oczywiście może być stroną interneto-
no także obsługę błędów. wą, o ile nie przeszkadzają nam ograniczenia wyszu-
HTML 5 może być ciekawą (i jedyną słuszną) alter- kiwarek oraz o ile aplikacja nie jest zbyt zasobożerna.
natywą dla dominujących obecnie w internecie tech- Flash, Silverlight i JavaFX dają nam ogromne możli-
nologii. Także ze względu na bezpieczeństwo, które wości. Nie wciskajmy ich jednak wszędzie na siłę po to
ostro krytykował Apple, nie chcą wprowadzać w swo- tylko, by pochwalić się umiejętnością ich implementa-
ich urządzeniach obsługi Flasha. cji, bowiem cała sztuka nie polega na przedstawieniu
interfejsu z wodotryskami, ale na przedstawieniu inter-
Kiedy i jak stosować skrypty multimedialne? fejsu sprawnego i intuicyjnego.
Klipy multimedialne mogą być używane tak, by nie od-
straszały użytkowników, by nie przynosiły strat. Można ROGER ZACHARCZYK
je wykorzystać zgodnie z intencjami twórców techno- Pracuje jako programista gier komputerowych, studiuje na
logii – tak, by uatrakcyjnić stronę internetową, czy in- piątym roku informatyki na wydziale Informatyki i Zarządza-
ny produkt powstały przy ich pomocy. Należy jednak nia Politechniki Wrocławskiej. Zainteresowania: języki pro-
wziąć pod uwagę przede wszystkim targetowaną gru- gramowania, webserwisy, opensource (od 2000 roku).
pę odbiorców, ich upodobania, etc. Należy pamiętać Kontakt z autorem: roger.zacharczyk@gmail.com
Reklama

www.sdjournal.org 49
SDJ EXTRA: HOSTING

SDJ Extra poleca:


Lista stron www, blogów na których znajdziecie przydatne informacje,
artykuły i porady dotyczące hostingu....i nie tylko. Polecamy!
http://www.jak-stworzyc-strone.pl – blog poświęcony zmaganiom ze społecznościowo-webową
materią. Codziennie pojawiają się na nim artykuły o web designie, programowaniu i administracji serwerem,
marketingu sieciowym, pozycjonowaniu i e-biznesie.

http://magazynyinternetowe.pl – porady, artykuły, webmastering, oprogramowanie

http://czarnecki.org.pl – Jędrzej Czarnecki - strony internetowe

http://darmowy-hosting.pl – niezależny serwis informacyjny, aktualna baza hostingów, artykuły dla


początkujących i forum hostingowe. Wszystko o hostingach, nie tylko darmowych.

Mikołaj Pawlikowski - freelance webdesigner/webdeveloper, specjalizuje się w bogatych aplikacjach internetowych


(RIA) Flash. Portfolio i kontakt: http://mikolaj.pawlikowski.pl

http://blog.alchemycode.pl/ – Poszukujesz wartościowych artykułów ze świata webdevelopmentu


i webdesignu? A może interesujesz się jQuery, PHP, Google APIs itp.? Jeśli tak, na tym blogu znajdziesz wszyst-
ko czego potrzebujesz!

http://alchemycode.pl/ – najlepsze rozwiązania we współczesnych stronach www

http://matipl.pl/ – blog Mateusza Kamińskiego - nowinki technologiczne, ciekawostki ze świata PHP,


Linuksa i Apple

http://gszpetkowski.pl/ – blog Grzegorza Szpetkowskiego; są w nim umieszczone wpisy dotyczące


szeroko pojętej Informatyki, niemniej główny nacisk autor kładzie na zagadnienia związane z językiem Java

http://7pl.info/ – blog Krzysztofa Ściry - luźne przemyślenia na tematy informatyczne okiem przyszłego
inżyniera

50 1/2010

You might also like