Ukraine, Kharkiv, Java Club. Day 2

Preview:

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  Где помимо ответа на этот вопрос вы получите и другую не менее интересную информацию ...

Recommended