SlideShare a Scribd company logo
  Место:   Харьков   Дата:      29 Июля 2011   Время:  18:30   Докладчик :  Андрей Гусев  Java Club   Харьков  (День второй)
Повестка  Дня Виртуальное программирование
Виртуальное программирование Что такое виртуальное программирование ?
Может это программирование для виртуалных систем ? Виртуальное программирование
Может это программирование  на одном из языков Никлауса Вирта  ? Виртуальное программирование
К сожалению, Google не нашел определения для данного понятия и самое близкое из предложенных звучало так: облачные вычисления, cloud computing Виртуальное программирование
Следующий слайд, к сожалению, был включен по требованию  ред.коллегии,  и сразу хочу предупредить о  " нарушении смыслового ряда доклада " ... Виртуальное программирование
После предыдущего "Java Club" одним из самых популярных вопросов стал: "Так что, Java Club только об  Amazon AWS и облачных вычисленияx ?" Виртуальное программирование
Короткий ответ:   "Нет" Развернутый ответ и планы можно найти на нашем блоге:  " http://epamkharkiv.blogspot.com/" Виртуальное программирование
Так что же такое программирование в эпоху повсеместной виртуализации и чем оно отличается от "обычного" программирования ?  Виртуальное программирование
Как видел программу сам Никлаус Вирт ?  Виртуальное программирование
Виртуальное программирование Algorithms +  Data Structures = Programs Fundamental Data Structures  Sorting Recursive Algorithms Dynamic Information Structures Language Structures and Compilers Appendix A - the ASCII character set Appendix B - Pascal syntax diagrams
Закон Вирта: Программы становятся медленнее гораздо быстрее, чем увеличивается быстродействие компьютеров.  Software is getting slower more rapidly than hardware becomes faster.   1995 год.  Виртуальное программирование
Если закон Вирта верен, то "обычные"  алгоритмы  могут быть описаны, как медленные, а  структуры данных , как НЕ масштабируемые ... Виртуальное программирование
... и если мы планируем разрабатывать программы пригодные для  виртуальных вычислений , то в первую очередь мы должны использовать  другие  алгоритмы и  другие  стуктуры данных?  Виртуальное программирование
CAP теорема :   В распределённой системе  невозможно  обеспечить одновременное выполнение всех  трёх  условий :  Consistency  - корректности  Availability   - доступности   Partition 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):   Master/Slave replication  Sharding   Terracotta  (Recovery): Quorum vote  majority partition survival Примеры: Oracle Coherence  (Recovery): Partitioning  Read-replicas  Google BigTable GigaSpaces*  (Recovery):   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):   Read-repair Application hooks    Apache Cassandra  (Recovery):   Partitioning Read-repair Voldemort  (Recovery):   Configurable read-repair Apache CouchDB  GigaSpaces*  (Recovery):   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 Возможные источники информации:   Memory Message Queue Storage Area Network(SAN) Direct Attached Storage(DAS) Network Attached Storage (NAS) Databases 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 Для каждого из сервисов рассмотрим:   Название и краткое описание Идеальный сценарий использования Производительность Отказоустойчивость Стоимость Масштабируемость Доступные API Анти-паттерны
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 hours Anti-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     Где помимо ответа на этот вопрос вы получите и другую не менее интересную информацию ...

More Related Content

PPTX
Построение высоконагруженных приложений на базе Windows Azure
PDF
Масштабирование баз данных
PPTX
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
PDF
GeorgyShuklin (Selectel) @ CodeCamp2011
PPTX
Варианты использования AWS
PPTX
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
PPTX
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
PPTX
2021.11.10 Dots Platform. Serverless. Vapor
Построение высоконагруженных приложений на базе Windows Azure
Масштабирование баз данных
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
GeorgyShuklin (Selectel) @ CodeCamp2011
Варианты использования AWS
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
2021.11.10 Dots Platform. Serverless. Vapor

What's hot (16)

PDF
Всеволод Поляков "История одного мониторинга"
PDF
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"
PDF
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
PDF
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
PPTX
Производительность Unity3D: подводные камни / Алексей Чубарь (BIT.GAMES)
PPTX
Платформа в облаках. Windows Azure
PPTX
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
PPTX
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
PDF
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
PPTX
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
PDF
AWS CloudFront
PPTX
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
PPTX
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
PDF
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
PPTX
Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...
PDF
Amazon SQS или не все костыли одинаково бесполезны
Всеволод Поляков "История одного мониторинга"
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Производительность Unity3D: подводные камни / Алексей Чубарь (BIT.GAMES)
Платформа в облаках. Windows Azure
Мастер-класс "Микросервисы: удобно, надежно, серебрянопульно" / Евгений Павло...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
2021.09.04 PHP FWDays. Our experience of transferring Laravel microservices t...
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
AWS CloudFront
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...
Amazon SQS или не все костыли одинаково бесполезны
Ad

Viewers also liked (20)

PPTX
Práctica profesional pip, cab
PPS
Romania celor 4 Regi
PDF
Programa festigal2011
PPTX
Microprosesadores
PPS
Nemelazim
PPTX
Kiat Sukses
PDF
Chácara alto padrão a venda em franca sp-campo belo
PDF
Apostila anvisa04
PPTX
Fotos les terrasses juny 2011
PPSX
capea PEÑA CAMPERA 2011
PPTX
Monarquia autoritaria
PDF
02 thu nhap_tu_mmo
PPTX
PPT
Il mondo sarebbe un posto migliore…
PPTX
Grecia clase 5 guerras medicas séptimo basico
PDF
石巻災害復興支援マーケティングモデル
DOCX
4 pauta evaluación debate
DOCX
Doc1
Práctica profesional pip, cab
Romania celor 4 Regi
Programa festigal2011
Microprosesadores
Nemelazim
Kiat Sukses
Chácara alto padrão a venda em franca sp-campo belo
Apostila anvisa04
Fotos les terrasses juny 2011
capea PEÑA CAMPERA 2011
Monarquia autoritaria
02 thu nhap_tu_mmo
Il mondo sarebbe un posto migliore…
Grecia clase 5 guerras medicas séptimo basico
石巻災害復興支援マーケティングモデル
4 pauta evaluación debate
Doc1
Ad

Similar to Ukraine, Kharkiv, Java Club. Day 2 (20)

PPTX
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
PPTX
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
PPTX
Roman Zdebskiy - Windows Azure
PPTX
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
PPTX
Windows azure общий обзор
PPT
Petrov Cloud for corporate customer
PPTX
Виртуализация критически важных приложений
PPTX
Презентация технологии веб-кластеров
PPT
Sql Server Data Services
PPTX
Облако Windows Azure для тестирования и разработки
PDF
владивосток форум производительность_ha
PPTX
Partly cloudy. Построение отказоустойчивых систем в aws минимальными средства...
PPTX
Sql azure и все, все, все...
PDF
Частное облако/IaaS для корпоративных ландшафтов: прикладные аспекты выбора
PDF
Новости и анонсы конференции Oracle Open World 2013
PPTX
облако для корпоративных ландшафтов практические аспекты выбора
ODP
Middleware
ODP
Облачная инфраструктура Amazon We
PPTX
Azure for retails
PPTX
IOP202 DevCon 2012 Apache Lucene in Windows Azure
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
Roman Zdebskiy - Windows Azure
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
Windows azure общий обзор
Petrov Cloud for corporate customer
Виртуализация критически важных приложений
Презентация технологии веб-кластеров
Sql Server Data Services
Облако Windows Azure для тестирования и разработки
владивосток форум производительность_ha
Partly cloudy. Построение отказоустойчивых систем в aws минимальными средства...
Sql azure и все, все, все...
Частное облако/IaaS для корпоративных ландшафтов: прикладные аспекты выбора
Новости и анонсы конференции Oracle Open World 2013
облако для корпоративных ландшафтов практические аспекты выбора
Middleware
Облачная инфраструктура Amazon We
Azure for retails
IOP202 DevCon 2012 Apache Lucene in Windows Azure

Ukraine, Kharkiv, Java Club. Day 2

  • 1.   Место:   Харьков   Дата:      29 Июля 2011   Время: 18:30   Докладчик :  Андрей Гусев Java Club   Харьков  (День второй)
  • 2. Повестка  Дня Виртуальное программирование
  • 3. Виртуальное программирование Что такое виртуальное программирование ?
  • 4. Может это программирование для виртуалных систем ? Виртуальное программирование
  • 5. Может это программирование  на одном из языков Никлауса Вирта ? Виртуальное программирование
  • 6. К сожалению, Google не нашел определения для данного понятия и самое близкое из предложенных звучало так: облачные вычисления, cloud computing Виртуальное программирование
  • 7. Следующий слайд, к сожалению, был включен по требованию ред.коллегии, и сразу хочу предупредить о &quot; нарушении смыслового ряда доклада &quot; ... Виртуальное программирование
  • 8. После предыдущего &quot;Java Club&quot; одним из самых популярных вопросов стал: &quot;Так что, Java Club только об Amazon AWS и облачных вычисленияx ?&quot; Виртуальное программирование
  • 9. Короткий ответ:   &quot;Нет&quot; Развернутый ответ и планы можно найти на нашем блоге: &quot; http://epamkharkiv.blogspot.com/&quot; Виртуальное программирование
  • 10. Так что же такое программирование в эпоху повсеместной виртуализации и чем оно отличается от &quot;обычного&quot; программирования ? Виртуальное программирование
  • 11. Как видел программу сам Никлаус Вирт ? Виртуальное программирование
  • 12. Виртуальное программирование Algorithms + Data Structures = Programs Fundamental Data Structures  Sorting Recursive Algorithms Dynamic Information Structures Language Structures and Compilers Appendix A - the ASCII character set Appendix B - Pascal syntax diagrams
  • 13. Закон Вирта: Программы становятся медленнее гораздо быстрее, чем увеличивается быстродействие компьютеров. Software is getting slower more rapidly than hardware becomes faster.   1995 год. Виртуальное программирование
  • 14. Если закон Вирта верен, то &quot;обычные&quot; алгоритмы могут быть описаны, как медленные, а структуры данных , как НЕ масштабируемые ... Виртуальное программирование
  • 15. ... и если мы планируем разрабатывать программы пригодные для виртуальных вычислений , то в первую очередь мы должны использовать другие алгоритмы и другие стуктуры данных? Виртуальное программирование
  • 16. CAP теорема :   В распределённой системе невозможно обеспечить одновременное выполнение всех трёх условий :  Consistency - корректности  Availability  - доступности  Partition tolerance - устойчивости к сбоям узлов  Виртуальное программирование Professor Eric A. Brewer (2000 год.) http://www.julianbrowne.com/article/viewer/brewers-cap-theorem
  • 17. Корректность (Consistency) Говорит о том, что система всегда выдаёт только логически непротиворечивые ответы.   Доступность (Availability) Означает, что сервис отвечает на запросы, а не выдаёт ошибки о том, что он недоступен.   Устойчивость к сбоям узлов (Partition tolerance) Означает, что распределённая по кластеру система продолжает работать корректно при недоступности нескольких серверов кластера (кроме случая, когда упали все сервера, конечно).   Виртуальное программирование
  • 18. Виртуальное программирование Характерные черты: 2 phase commit Cache validation protocol + Consistency  + Availability  - Partition tolerance RDBMS (Recovery): Master/Slave replication  Sharding   Terracotta (Recovery): Quorum vote majority partition survival Примеры: Oracle Coherence (Recovery): Partitioning  Read-replicas  Google BigTable GigaSpaces* (Recovery):   Per-key data partitioning http://javathink.blogspot.com/2010/01/characterizing-enterprise-systems-using.html
  • 19. + 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
  • 20. - Consistency  + Availability  + Partition tolerance Виртуальное программирование Характерные черты: expiration/leases conflict resolution optimistic locks Примеры: Amazon Dynamo (Recovery):   Read-repair Application hooks    Apache Cassandra (Recovery): Partitioning Read-repair Voldemort (Recovery):   Configurable read-repair Apache CouchDB GigaSpaces* (Recovery):   Per-key data partitioning http://javathink.blogspot.com/2010/01/characterizing-enterprise-systems-using.html
  • 21. Виртуальное программирование В итоге получается как в известном предложении клиенту:  &quot; Быстро, Дёшево, Качественно - выбирайте любые два...&quot;
  • 22. Виртуальное программирование Итак, преходим к   Algorithms http://kharkovconcurrencygroup.blogspot.com/
  • 23. 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   .....
  • 24. Algorithms Вопрос 1: А что без этих знаний нельзя создавать распределенные системы ( IaaS )? Вопрос 2: А что без этих знаний нельзя писать программы ( SaaS ) работающие в распределенных системах ?
  • 25. Виртуальное программирование Вторая состовляющая программы   Data Structures (на примере Amazon AWS)
  • 26. Data Structures Возможные источники информации:   Memory Message Queue Storage Area Network(SAN) Direct Attached Storage(DAS) Network Attached Storage (NAS) Databases Off-line
  • 27. 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)
  • 28. Data Structures Для каждого из сервисов рассмотрим:   Название и краткое описание Идеальный сценарий использования Производительность Отказоустойчивость Стоимость Масштабируемость Доступные API Анти-паттерны
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. Data Storage Amazon SimpleDB : Non-relational data store &quot;Schema-less&quot; 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 hours Anti-patterns: As relational database Join and/or complex transactions BLOB data  Typed (Numeric) data  Large amounts of data
  • 34. 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
  • 36. Последний вопрос Какое отношение к данной теме имеет <EPAM> ? И последний вопрос на сегодня:
  • 37. Последний ответ Приглашаем всех на EPAM Open Day   Где помимо ответа на этот вопрос вы получите и другую не менее интересную информацию ...