24
Разработка приложений в облаке на примере Amazon Web Services Константин Слисенко JazzTeam, Senior software engineer

Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

  • Upload
    solit

  • View
    604

  • Download
    1

Embed Size (px)

DESCRIPTION

Слисенко Константин, Минск. Компания JazzTeam, Senior Software Engineer (R&D), Java/Agile Coach «Разработка приложений в облаке на примере Amazon Web Services». Development секция. Для разработчиков. «JVM изнутри: оптимизация и профилирование». Development секция. Для разработчиков.

Citation preview

Page 1: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Разработка приложений в облаке на примере Amazon

Web Services

Константин СлисенкоJazzTeam, Senior software engineer

Page 2: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Chuck Norris doesn’t need the cloud to scale his applications, he uses his laptop.

(Chuck Norris plugin for Jenkins)

Page 3: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Что такое облако?Пул ресурсов, к которому мы можем получить доступ через API

On demand (self service)● не ждём пока нам сконфигурируют сервер

Scalable (up and down)● в любой момент можно докупить новые ресурсы или

отказаться от существующих● безграничные ресурсы и мощности в любое время

Pay for use● платим только за то, что используем

Page 4: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Для чего можно использовать облако?

Размещение приложений с неравномерной нагрузкой● сезонная нагрузка (день/ночь, праздники, пики продаж)

● не известно вначале будет ли приложение популярным, мы не хотим на этом этапе инвестировать в сервера

Большие вычисленияНагрузочное тестирование● необходимо много ресурсов на короткое время

Хранение информации с экстремальными нагрузками● рекламный ролик, который должны посмотреть миллионы

покупателей по всему мируУлучшение устойчивость к сбоям нашей системы● выход из строя нашего оборудования, запуск копии в облаке пока

не восстановится наша основная система

Page 5: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Типы облаковSAAS (Software as a service)

"Аренда" приложений, больше пользуемся - больше платим

PAAS (Platform as a service)Простое для разработчиков развёртывание приложений на известной технологии (Java, .NET, PHP, Ruby, ...)

IAAS (Infrastructure as a service)Настраиваем инфраструктуру самостоятельноНужны дополнительные навыки и опыт работы с окружением

Storageбезразмерное хранилище данныхустойчиво к очень большим нагрузкамCDN - системы "раздачи" контента

Page 6: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Рынок

IAAS

PAAS

SAAS

Storage

Page 7: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Типы облаковPublic cloud● сервера доступны через интернет● зачастую pay for use

Private cloud● работает и поддерживается

внутри организации ● не требуется интернет-

соединения● не все данные можно хранить вне,

например финансовые данные

Hybrid cloud● гибкость как у private cloud (не

требуется интернет-соединения) и устойчивость к сбоям как у public cloud

● проигрывает в защищённости private cloud

Page 8: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Open Source tools to build private clouds

http://incubator.apache.org/cloudstack/

http://www.eucalyptus.com/

http://www.openstack.org/

Page 9: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Amazon Web Services● Самый большой на рынке● Легко стартовать

● Период бесплатного использования 1 год!● Облачные сервисы практически для

любых нужд● API – стандарт де-факто● Marketplace (https://aws.amazon.

com/amis)

Page 10: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

География датацентров

Page 11: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

AWS Products and services

Page 12: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Amazon Elastic CloudВиртуальные машины в аренду

● Разная мощность, разная стоимостьAMI – образ виртуальной машины

● Сохраняем настроенную конфигурацию● Запускаем любое количество в любой момент● Можно продавать и покупать на marketplace

Размещение в разных дата-центрах● Для большей надёжности

Auto Scaling groups

Page 13: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Amazon S3Файловое хранилище (до 5 ТБ)99,999999999% надёжность*Множество протоколов доступа

● http, https, bittorent, …Резервное копирование данных в разных дата-центрах

Amazon Cloud Front - размещение данных ближе к потребителям

Page 14: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Amazon SQSАсинхронная очередь сообщений

Page 15: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Управление облаком Amazon

AWS Management Console● Web-ui, наглядно отображены все сервисы

Прямой вызов API● Command line interface● Использование SDK и вызов из программы

API позволяет нам писать скрипты для управления инфраструктурой!

Page 16: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

AWS Management Console

Page 17: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Amazon Web Services APISDK: java, android, iOS, .NET, Node.js,

Python, PHP, Ruby

Amazon SDK for java● поддерживает практически все сервисы● усть плагин к eclipse

http://aws.amazon.com/tools/http://aws.amazon.com/sdkforjava/

Page 18: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Запуск сервера в EC2AmazonEC2 ec2 = new AmazonEC2Client(credentials);

RunInstancesRequest req = new RunInstancesRequest();req.setInstanceType("t1.small");req.setImageId("ami-dd47ecb4");req.setMinCount(Integer.valueOf(1));req.setMaxCount(Integer.valueOf(1));

ArrayList<String> sg = new ArrayList<String>();sg.add("MySecurityGroup");req.setSecurityGroups(sg);

RunInstancesResult runResult = ec2.runInstances(req);

for (Instance instance : runResult.getReservation().getInstances()) {System.out.println("Launched Instace: " + instance.getInstanceId());

}

Page 19: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Размещение файла в S3AmazonS3 s3 = new AmazonS3Client(credentials);

// Просматриваем все букетыfor (Bucket b : s3.listBuckets()) { System.out.println(b.getName());}

s3.createBucket("myBucket" + UUID.randomUUID());s3.putObject(new PutObjectRequest("myBucket", "MyFile",

createSampleFile()));

ObjectListing listing = s3.listObjects(new ListObjectsRequest().withBucketName("myBucket"));

for (S3ObjectSummary obj : listing.getObjectSummaries()) { System.out.println(obj.getKey() + " size=" + obj.getSize());}

Page 20: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Архитектуры приложений в облаке

Web application hosting Disaster recovery

http://aws.amazon.com/architecture/

Batch processing

Page 21: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин
Page 22: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин
Page 23: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин
Page 24: Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Слисенко Константин

Спасибо за внимание!Вопросы?

[email protected], Константин Слисенко