SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

Облачни услуги за сайтове

mobilio

New member
За обработка на статично съдържание можем да използваме следните услуги:
- Amazon S3 + CloudFront
- Google Cloud Storage
- Rackspace Cloud Files
- Microsoft Azure Cloud Storage

Всичко това са облачни доставчици където можеш да се стоварят файлове и да се нагласят да отговарят на даден DNS адрес. Аз в момента използвам AWS S3 + CF и имам качен поне един облак за публично използване, но планирам да разположа облаци и на останалите доставчици (особенно този на Google!).

Плюсове - невероятно бърз! Заявките се обработват за милисекунди. Изключително скаларируем - няма значение дали са 4kb или 4Gb или 4Tb всичко може да се качи и шерне. Изключително гъвкав и надежден. Заплаща се само изразходваното пространство и трафик, НЕ СЕ предплаща нищо. Процеса на качване на данни може да се автоматизира.

Минуси - IP-тата не са български - което може да не ви свърши работа, елемента на качване на данните горе може да ви се стори страннен - най-малкото програми тип FileZilla не вършат работа. Трябва МНОГО да внимавате при билинга - кредитни карти и т.н., винаги трябва да имате пари. Логовете са малко чалнати... не са като на Apache. Ако използвате CloudFront (или събратята му) процеса на качване на файловете е бърз, но процеса на промяна (т.нар. invalidate) е бавен и скъп, затова трябва да се организира малко по-различен механизъм на промени.

След теоретичната подготовка да минем към пратктически примери. Вдигнал съм един статичен сайт който обслужва едни приложения. Ето и адреса:
Your Website изграден е с Amazon S3 + CloudFront. Т.е. S3 е storage, докато CloudFront обработва облачно съдържанието разпръсвайки го на над 50 локации в цял свят (при нужда). Адреса на S3 който обслужва горния CloudFront е: http://mobiliodev.s3.amazonaws.com/index.html

Сега да видим CloudFront как изглежда от България:

Код:
Peter-Nikolows-MacBook-Unibody:~ peters$ nslookup cloud.mobiliodevelopment.comServer:		212.25.58.229
Address:	212.25.58.229#53

Non-authoritative answer:
cloud.mobiliodevelopment.com	canonical name = d25d4cqfyhyvpf.cloudfront.net.
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.71
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.109
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.112
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.121
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.122
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.135
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.190
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.199
До тук добре - сайта ми се вижда от 8 IP-та. А дали? Пускаме заявката втори път:

Код:
Peter-Nikolows-MacBook-Unibody:~ peters$ nslookup cloud.mobiliodevelopment.com
Server:		212.25.58.229
Address:	212.25.58.229#53

Non-authoritative answer:
cloud.mobiliodevelopment.com	canonical name = d25d4cqfyhyvpf.cloudfront.net.
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.158
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.183
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.204
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.233
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.253
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.62
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.110
Name:	d25d4cqfyhyvpf.cloudfront.net
Address: 216.137.61.119
Нови 8! Ако продъжаваме да правим заявки ще виждаме нови IP-та. При това географски разпределени до най-близкия edge сървър.

Ако за първи път изпълним заявка към CF се вижда това:
Код:
Peter-Nikolows-MacBook-Unibody:~ peters$ curl -I http://cloud.mobiliodevelopment.com
HTTP/1.0 200 OK
x-amz-id-2: CoiLckzKReoThe54cvU6c3gV8Gq66gW6hssxJd+xaADqkTVZ1VYzmsWDK62kCKJt
x-amz-request-id: 56A941AB40307ABA
Date: Sat, 08 Sep 2012 13:53:25 GMT
Cache-Control: public, max-age=3600
Last-Modified: Tue, 20 Mar 2012 15:13:36 GMT
ETag: "ae9a50ce845b0d31c40b9ee2e31dbeb0"
Accept-Ranges: bytes
Content-Type: text/html
Content-Length: 2642
Server: AmazonS3
X-Cache: Miss from cloudfront
X-Amz-Cf-Id: ORAGwNcWTrvezWgh1IX6U5BaiYG5m4rr75gmF2sIuHOgrN1v-KJwew==
Via: 1.0 f2cdeae9faa9c871a27c20811b04af58.cloudfront.net (CloudFront)
Connection: close

Така - смъкнахме 2k и X-Cache каза че от онзи edge сървър липсва, но все пак се смъкна на пълна скорост. Сега обаче ще продължим със заявката:
Код:
Peter-Nikolows-MacBook-Unibody:~ peters$ curl -I http://cloud.mobiliodevelopment.com
HTTP/1.0 200 OK
x-amz-id-2: CoiLckzKReoThe54cvU6c3gV8Gq66gW6hssxJd+xaADqkTVZ1VYzmsWDK62kCKJt
x-amz-request-id: 56A941AB40307ABA
Date: Sat, 08 Sep 2012 13:53:25 GMT
Cache-Control: public, max-age=3600
Last-Modified: Tue, 20 Mar 2012 15:13:36 GMT
ETag: "ae9a50ce845b0d31c40b9ee2e31dbeb0"
Accept-Ranges: bytes
Content-Type: text/html
Content-Length: 2642
Server: AmazonS3
Age: 3
X-Cache: Hit from cloudfront
X-Amz-Cf-Id: fAb0PSpo1DxMKs7g-XurWGhDKhBpopGEdaF44bYTHNLRWtR6v5JujQ==
Via: 1.0 f2cdeae9faa9c871a27c20811b04af58.cloudfront.net (CloudFront)
Connection: close

Така - при повторна заявка вече обекта е кеширан от edge сървъра и се връща hit. Т.е. вече е кеширан на edge и повторните заявки ще са още по-бързи. CloudFront използва etags и cache-control така, че ако използваме някакъв броузър обекта ще е кеширан на самия браузър и заявки няма да се правят. За страничен наблюдател изглежда, че сайта просто лети.

Сега да видим и как изглежда и самия S3 от който идват данните:
Код:
Peter-Nikolows-MacBook-Unibody:~ peters$ nslookup mobiliodev.s3.amazonaws.com
Server:		212.25.58.229
Address:	212.25.58.229#53

Non-authoritative answer:
mobiliodev.s3.amazonaws.com	canonical name = s3-1-w.amazonaws.com.
Name:	s3-1-w.amazonaws.com
Address: 72.21.215.101
при повторна заявка извежда
Код:
Peter-Nikolows-MacBook-Unibody:~ peters$ nslookup mobiliodev.s3.amazonaws.com
Server:		212.25.58.229
Address:	212.25.58.229#53

Non-authoritative answer:
mobiliodev.s3.amazonaws.com	canonical name = s3-1-w.amazonaws.com.
Name:	s3-1-w.amazonaws.com
Address: 72.21.214.144

Т.е. имаме някаква ротация на IP-та, но далеч по-малка отколкото CloudFront.
Нека сега да направим заявка:
Код:
Peter-Nikolows-MacBook-Unibody:~ peters$ curl -I http://mobiliodev.s3.amazonaws.com/index.html
HTTP/1.1 200 OK
x-amz-id-2: vjLQCyqjFVw4hoG+tE56bPSKHsQLs58Ir33bn0XlRYQDf98Yfe11O6t4KyBc+Ycp
x-amz-request-id: 296CE1F63EE0B202
Date: Sat, 08 Sep 2012 14:21:30 GMT
Cache-Control: public, max-age=3600
Last-Modified: Tue, 20 Mar 2012 15:13:36 GMT
ETag: "ae9a50ce845b0d31c40b9ee2e31dbeb0"
Accept-Ranges: bytes
Content-Type: text/html
Content-Length: 2642
Server: AmazonS3
И повторна заявка:
Код:
Peter-Nikolows-MacBook-Unibody:~ peters$ curl -I http://mobiliodev.s3.amazonaws.com/index.html
HTTP/1.1 200 OK
x-amz-id-2: vjLQCyqjFVw4hoG+tE56bPSKHsQLs58Ir33bn0XlRYQDf98Yfe11O6t4KyBc+Ycp
x-amz-request-id: 296CE1F63EE0B202
Date: Sat, 08 Sep 2012 14:21:30 GMT
Cache-Control: public, max-age=3600
Last-Modified: Tue, 20 Mar 2012 15:13:36 GMT
ETag: "ae9a50ce845b0d31c40b9ee2e31dbeb0"
Accept-Ranges: bytes
Content-Type: text/html
Content-Length: 2642
Server: AmazonS3

----
Сега малко реални тестове от браузър (времената са в милисекунди!):
S3: Your Website
index.html - lattency 171 + processing 202
gradient.jpg - lattency 212 + processing 0 (тук елемента попадна в кеша)
---
изчистваме кеша
S3: Your Website
index.html - lattency 313 + processing 689
gradient.jpg - lattency 95 + processing 0 (!?! доста бързо върна 200 ok)
---
презареждаме с F5
S3: Your Website
index.html - lattency 355 + processing 245
gradient.jpg - lattency 220 + processing 0 (!?! доста бързо върна 200 ok)
---

Сега основния проблем е неконсистентноста като скорост на S3. Сега да видим как CloudFront фиксира това!
---
CF: Your Website
index.html - lattency 93 + processing 6 (!рекорд!)
gradient.jpg - lattency 291 + processing 94
---
презареждаме:
CF: Your Website
index.html - lattency 131 + processing 8
gradient.jpg - lattency 0 + processing 0 (обекта идва от дисковия кеш)
---
презареждаме още веднъж:
CF: Your Website
index.html - lattency 49 + processing 8
gradient.jpg - lattency 0 + processing 0 (обекта идва от дисковия кеш)
---
презареждаме с F5:
CF: Your Website
index.html - lattency 50 + processing 28
gradient.jpg - lattency 263 + processing 0 (сървъра върна 304 и не ни изпрати нищо)
---


Както и сами виждате скоростите са доста добри. Сега обаче да видим какво ще ни струва това. Сметките ще ги правим за американския datacenter на източното крайбрежие (центровете са няколко, но ще ви объркам).
-----
Код:
S3:
за съхраняване - първия 1Tb струва на месец $0.125 за 1Gb
за 10000 Get заявки имаме такса от $0.01
за трансфер - първите 10Tb месечно струват $0.12 за 1Gb
-----
Код:
CloudFront:
за 10000 Get заявки от US - $0.0075
за 10000 Get заявки от Europe - $0.0090
за трансфер - първите 10Tb месечно в US - $0.120
за трансфер - първите 10Tb месечно в Europe - $0.120
-----

Сега сигурно си мислите, че плащам много за целта. Да - прави сте плащам много ПО-МАЛКО отколкото преди.
В момента горе имам качени около 30Gb и имам месечни трансфери от около 40Gb месечно за което плащам суми от около $10 месечно.

PS - първи постинг ми е тук за което моля да бъда извинен ако не е в подходящата категория.
PS2 - търся SEO оптимизатор да експериментираме с Google Cloud Storage за същата цел. Това сайта ти да се намира на Google IP-та малко блазни, но искам да експериментираме с някой.
PS3 - ще опиша и за останалите доставчици как стои въпроса в последващи постинги.
 

Горе