Upload
andrew-gusev
View
1.039
Download
4
Embed Size (px)
DESCRIPTION
Ukraine, Kharkiv, Jave Club. (Day 2) In this presentation you can find the brief overview of Clloud Computing development vs. desktop app. development. This presentation oriented to persons with general level of knowledge in such topics as: Amazon AWS, cloud computing, CAP theorem, logical time.
Citation preview
Место: Харьков Дата: 29 Июля 2011 Время: 18:30 Докладчик: Андрей Гусев
Java Club Харьков (День второй)
Повестка Дня
Виртуальное программирование
Виртуальное программирование
Что такое виртуальное программирование ?
Может это программировани
едля виртуалных
систем ?
Виртуальное программирование
Может это программирование на одном из языковНиклауса Вирта ?
Виртуальное программирование
К сожалению, Google не нашел определения для данного понятия и самое близкое из предложенных
звучало так:облачные вычисления, cloud
computing
Виртуальное программирование
Следующий слайд, к сожалению, был включен по требованию ред.коллегии, и
сразу хочу предупредить о "нарушении смыслового ряда доклада" ...
Виртуальное программирование
После предыдущего "Java Club" одним из самых популярных
вопросов стал:
"Так что, Java Club только об Amazon AWS и облачных
вычисленияx ?"
Виртуальное программирование
Короткий ответ:
"Нет"
Развернутый ответ и планы можно найти на нашем блоге:
"http://epamkharkiv.blogspot.com/"
Виртуальное программирование
Так что же такое программирование в эпоху
повсеместной виртуализации и чем оно отличается от
"обычного" программирования ?
Виртуальное программирование
Как видел программу самНиклаус Вирт ?
Виртуальное программирование
Виртуальное программирование
Algorithms + Data Structures =Programs
1. Fundamental Data Structures 2. Sorting3. Recursive Algorithms4. Dynamic Information
Structures5. Language Structures and
CompilersAppendix A - the ASCII character setAppendix B - Pascal syntax diagrams
Закон Вирта:Программы становятся медленнее гораздо быстрее, чем увеличивается быстродействие компьютеров. Software is getting slower more rapidly than hardware becomes faster.
1995 год.
Виртуальное программирование
Если закон Вирта верен, то "обычные" алгоритмы могут быть
описаны, как медленные, а структуры данных, как НЕ
масштабируемые ...
Виртуальное программирование
... и если мы планируем разрабатывать программы
пригодные для виртуальных вычислений, то в первую
очередь мы должны использовать другие алгоритмы
и другие стуктуры данных?
Виртуальное программирование
CAP теорема: В распределённой системе невозможно обеспечить одновременное выполнение всех трёх условий:
oConsistency - корректности oAvailability - доступности oPartition tolerance - устойчивости к сбоям узлов
Виртуальное программирование
Professor Eric A. Brewer (2000 год.)
http://www.julianbrowne.com/article/viewer/brewers-cap-theorem
Корректность (Consistency)Говорит о том, что система всегда выдаёт только логически непротиворечивые ответы. Доступность (Availability)Означает, что сервис отвечает на запросы, а не выдаёт ошибки о том, что он недоступен. Устойчивость к сбоям узлов (Partition tolerance)Означает, что распределённая по кластеру система продолжает работать корректно при недоступности нескольких серверов кластера (кроме случая, когда упали все сервера, конечно).
Виртуальное программирование
Виртуальное программирование
Характерные черты:• 2 phase commit• Cache validation
protocol
+ Consistency + Availability - Partition tolerance
• RDBMS (Recovery): o Master/Slave replication o Sharding
• Terracotta (Recovery):o Quorum vote o majority partition survival
Примеры:
• Oracle Coherence (Recovery):o Partitioning o Read-replicas
• Google BigTable• GigaSpaces* (Recovery):
o Per-key data partitioning
http://javathink.blogspot.com/2010/01/characterizing-enterprise-systems-using.html
+ Consistency - Availability + Partition tolerance
Виртуальное программирование
Характерные черты:• Pessimistic locking• Make minority partitions
unavailable
Примеры:• Distributed databases• Distributed locking• Majority protocols
http://javathink.blogspot.com/2010/01/characterizing-enterprise-systems-using.html
- Consistency + Availability + Partition tolerance
Виртуальное программирование
Характерные черты:• expiration/leases• conflict resolution• optimistic locks
Примеры:• Amazon Dynamo
(Recovery): o Read-repairo Application hooks
• Apache Cassandra (Recovery): o Partitioningo Read-repair
• Voldemort (Recovery): o Configurable read-repair
• Apache CouchDB • GigaSpaces* (Recovery):
o Per-key data partitioning
http://javathink.blogspot.com/2010/01/characterizing-enterprise-systems-using.html
Виртуальное программирование
В итоге получается как в известном предложении клиенту:
"Быстро, Дёшево, Качественно - выбирайте любые два..."
Виртуальное программирование
Итак, преходим к
Algorithms
http://kharkovconcurrencygroup.blogspot.com/
Algorithms
• Model of Computation• Logical Clocks• Verifying Clock Algorithms• Clocks of Different Dimensions• Mutual Exclusion: Using Timestamps• Mutual Exclusion: Tokens and Quorums• Drinking Philosophers Problem• Leader Election• Global State• Observing Global Predicates• Observing Conjunctive Predicates• Channel Predicates• Termination Detection• Control of Distributed Computation• Causal Message Ordering• Synchronous and Total Order• Computation of a Global Function• Repeated Global Computation• Synchronizers• Slicers• Distributed Shared Memory• Self-Stabilization• .....
Algorithms
Вопрос 1:
А что без этих знаний нельзя создавать распределенные системы
(IaaS)?
Вопрос 2:
А что без этих знаний нельзя писать программы (SaaS) работающие в
распределенных системах ?
Виртуальное программирование
Вторая состовляющая программы
Data Structures(на примере Amazon AWS)
Data Structures
Возможные источники информации:
o Memoryo Message Queueo Storage Area Network(SAN)o Direct Attached Storage(DAS)o Network Attached Storage (NAS)o Databaseso Off-line
Data Storage
Возможные источники информации (AWS): • Amazon EC2 Elastic Block Storage (EBS) volumes• Amazon EC2 Local Instance Store (Ephemeral)
volumes• Amazon Simple Storage Service (Amazon S3)• Amazon Simple Queue Service (SQS)• Amazon SimpleDB• Amazon EC2 Relational Database• Amazon Relational Database Service (RDS)
Data Structures
Для каждого из сервисов рассмотрим:
o Название и краткое описаниеo Идеальный сценарий использованияo Производительностьo Отказоустойчивостьo Стоимостьo Масштабируемостьo Доступные APIo Анти-паттерны
Data Storage
Amazon EC2 Elastic Block Storage (EBS): • Persistent virtual block mode storage• Network attached USB device• Designed to be highly available• Priced by GB-month + million IO request• To use as primary storage for a file system • 99.5% - 99.9% annual durability
Anti-patterns: • Temporary storage• Highly-durable storage• Static data or web content• Key-value pair information storage
Data Storage
Amazon EC2 Local Instance Store : • Temporary block-level storage• Ideal for caching and buffering• Located in the same physical server• Very fast (particularly for sequential access)• Not persistent • Cost: $0.00
Anti-patterns: • Persistent storage• Data-base storage• Shared storage• Snapshots
Data Storage
Amazon Simple Storage Service (Amazon S3): • Distributed object storage• Storage for static web content• Background for Content delivery network (CDN)• 99.999999999% (“11 nines”) durability per
object• RESTfull API • Data Transfer (IN: $0.00 , OUT: $0.12 per GB) • Storage (First 1 TB / month $0.14 per GB) Anti-patterns: • File system• Structured data with query• Rapidly-changing data
Data Storage
Amazon Simple Queue Service (SQS): • Temporary storage and delivery of short text-
based messages (up to 64 Kb)• Distributed queuing system• Highly durable but temporary• Query (HTTP) interface. Five API calls (Create,
Send, Receive,Change Visibility, Delete) • Priced per 10.000 requests and per GB/month
Anti-patterns: • Binary or large data• Long-term storage
Data Storage
Amazon SimpleDB: • Non-relational data store• "Schema-less" data model• To keep track of metadata about information that
is stored in other AWS offering• Provides eventually consistent reads• 250 domains /1 billion attr. and 10 GB per
domain • Cost = Data storage + Data transfer + Machine
hoursAnti-patterns: • As relational database• Join and/or complex transactions• BLOB data • Typed (Numeric) data • Large amounts of data
Data Storage
Amazon EC2 Relational Database: • see particular RDBMS usage
Anti-patterns: • Automatic elasticity• BLOB data
Amazon Relational Database Service (RDS): • MySQL or Oracle database server• Automatically backs up your database
and maintains the database software
Вопросы ?
Последний вопрос
Какое отношение к данной теме имеет <EPAM> ?
И последний вопрос на сегодня:
Последний ответ
Приглашаем всех на EPAM Open Day Где помимо ответа на этот вопрос вы получите и другую не менее интересную информацию ...