Масштабирование социальных приложений с помощью AWS

Preview:

DESCRIPTION

Презентация Игоря Шубовича "Масштабирование социальных приложений с помощью AWS" с конференции Z-Tech 9.02.2013

Citation preview

МАСШТАБИРОВАНИЕ СОЦИАЛЬНЫХ ПРИЛОЖЕНИЙ С ПОМОЩЬЮ AWS

Igor Shubovych @ Stuzo

AWS

Amazon Web Services

Инфраструктура как сервис (IaaS)

Индивудальное решение

Базовые понятие

IAAS vs PaaS vs SaaS

IaaS

Infrastructure As A Service

Самостоятельное управление ресурсами

Сеть, сервера, системы хранения данных и т.д.

API

PaaS

Platform As A Service

Готовое решение для разработки, тестирования,

Типичные сервисы: приложение, БД, планировщик задач, очереди и т.д.

API

SaaS

Software As A Service

Готовое развернутое приложение

Google Docs API?

IaaS, PaaS, SaaS

IaaS, PaaS, SaaS – для кого

Я хочу сделать стартап

Используйте PaaS

Ruby – Heroku Python - GAE PHP – AppFog,

Jelastic Java – Jelastic,

GAE

Социальные приложения?

Маркетинговые приложения

Для больших брендов (P&G, Coca-Cola, BudLight etc.)

Социальная природа – быстрый, скачкообразный рост

100т запросов/сек

В чем сложность?

Запутанная архитектура

Большая нагрузка

Непредсказуемость роста

Незрелость PaaS решений в 2011

Поэтому мы выбрали IaaS от Amazon

Причины выбора AWS

Надежность Производительн

ость Масштабировани

е Утилизация

Краткое описание

Amazon Web Services

AWS сервисы

Management Console

API

HTTP RESTful API Обвязки для

основных языков (Ruby, Java, C#, Python, PHP)

Command-line interface

Web-console

Пример использования API

Основные сервисы

EC2 – виртуальные сервера S3 – хранилище файлов по ключу EBS – виртуальный HDD Elastic IP – static IP в облаке ELB – балансировщик нагрузки RDS – MySQL БД с репликацией

Как мы строили свой кластер?

Отдельный сервер на хостинге Все приложения

– на 1 сервере

Все БД –на 1 сервере

Веб-сервер Apache

БД – MySQL

Проблемы

Не масштабируется

SPoF

SPoF?

Single Point Of Failure

Единая Точка Отказа

Слабое Звено

Одиночный AWS сервер

Масштабируется – переключением на больший сервер

Проблемы: Масштабировани

е - занимает время

SPoF

Изоляция веб и БД сервера Веб-сервер –

больше CPU БД сервер – больше

памяти Масштабировать

по-разному

Проблемы: Масштабирование -

занимает время SPoF

Масштабируем Веб-сервера Авто-

масштабирование Веб-серверов

Штатный балансировщик нагрузки (ELB)

Надежность

Проблемы: БД - SPoF

Добавляем кеширование

Меньше нагрузка на БД

Быстрый ответ

Недостатки: БД - SPoF

Добавляем репликацию

Master-slave репликация

Горячая замена (hot standby)

БД – не SPoF

Мониторинг

Выявление проблем на ранних стадиях

Предупреждение о потенциальных проблемах

Анализ данных на больших объемах

AWS CloudWatch

CDN – для статики

CDN = Content Delivery Network

Статика (JS, CSS, images, Flash)

AWS S3/CloudFront

Единое хранилище

Дешево Меньше нагрузка

Мы начали с ...

И пришли к ...

Вопросы?

Recommended