SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
Cloudfork
cloud computing using Smalltalk




         Ernest Micklei & Jan van de Sandt
               ESUG 2009, Brest, France
Talking about
 Cloudfork and Cloud Computing
   what is there and how can it be used ?
 ActiveItem
   demo
 Future of Cloudfork ?
   discussion !
Cloud Computing




Cloud computing is a style of computing in which
dynamically scalable and often virtualized resources are
provided as a service over the Internet. Users need not have
knowledge of, expertise in, or control over the technology
infrastructure in the "cloud" that supports them.
Cloudfork

Cloudfork
  interfaces to use Cloud Computing services
  portable Smalltalk
  open source (MIT)
focus on Amazon Web Services (AWS)
Cloudfork AWS

interfaces to Amazon WebServices
  Simple Storage Service (S3)
  Simple Queuing Service (SQS)
  SimpleDB
  Elastic Cloud Computing (EC2)
AWS in general
Pay-per-use, low cost
High Availability
SOAP + REST api
Global accessible
Architecture:
  BASE: basically available, soft state, eventually
  consistent
  KISS: keep it simple ....
AWS in dollars*
               Storage            Data transfer                    CPU
                                   $0.10 per GB in        $0.01 per 10,000
  S3       $0.15 per GB / month
                                  $0.17 per GB out         GET requests

                                   $0.10 per GB in        $0.01 per 10,000
  SQS             n.a.            $0.17 per GB out            requests

               First 1 GB free       First 1 GB free         $0.14 per
SimpleDB   $0.25 per GB / month     $0.10 per GB in        Machine Hour
                                   $0.17 per GB out
                     ranging from $0.10 per hour ( small linux )
  EC2                 to $1.20 per hour ( extra large windows )


                                                  * see aws.amazon.com for exact pricing
AWS - S3
Simple Storage Service


 Objects [1 Byte .. 5 GB] in Buckets
 Unique key within a Bucket
 meta data
 streaming
 distribution ( bittorrent )
 access controlled
Cloudfork - S3

s3 := CFSimpleStorageService newWith: awsCredentials.

s3 createBucketNamed: ‘esug.2009.bucket’.

bucket := s3 openBucketNamed: ‘esug.2009.bucket’.

bucket putObject: ‘presenting in Brest, France’ as: ‘tweet’.

( bucket getObject: ‘tweet’ ) result asString.
AWS - SQS
Simple Queue System


 a-synchronous communication
   decoupling systems
   jobs
 Private queues
 8 KByte messages
 non-transactional
Cloudfork - SQS

sqs := CFSimpleQueueService newWith: awsCredentials.

qurl := (sqs createQueue: ‘esug-2009-queue’) result.

sqsq := sqs openQueue: qurl.

sqsq sendMessage: ‘ESUG 2009’.

msg := (sqsq receiveMessage) result body
AWS - SimpleDB
“Huge dictionary in the Cloud”
domains with items
multi-valued attributes
Strings only
auto-indexed
query api
AWS SimpleDB

                 8)   677866)   *%+,-')
 !"#!$$%&'()
                                .)',+/)
                                    8)

                                    9)


                                  0(/+)                !12-3&(/)
                                .)',+/)      8)   9)    .)',+/)
                                                           8)


 •!86:;)<,(,)=/2)<%+,-')
 •!>?@)!12-3&(/)',+/.A,5&/)=,-2B)=/2)-(/+)             8779)



                                                         4,5&/)
Cloudfork - SimpleDB
simpleDB := CFSimpleDB newWith: awsCredentials.

simpleDB createDomain: ‘esug-2009-domain’.

domain := simpleDB openDomain: ‘esug-2009-domain’.

item := CFSimpleDBItem new
  name: ‘esug-conference-2009’
  ; valueAt: ‘visitors’ put: ‘400’.

domain itemPut: item.

( domain itemAt: ‘esug-conference-2009’ ) result.
Embrace the Cloud

The Cloud is a chance for the Smalltalk vendors to
innovate:
  New pricing models
  Create standard architectures
    loadbalancing
    different persistence solutions
http://www.flickr.com/photos/z-s-k/3797325107/sizes/o/
Cloudfork - ActiveItem

 ActiveRecord pattern implementation on top of
 Amazon SimpleDB
 attribute mappings
 association mapping
 save , delete , find
ActiveItem features

 auto-mapping common types
 DSL for relations ( belongsTo, hasMany, ownsOne, ...)
 inheritance
 validators
 domain sharding strategies
Domain Sharding

    AWS SimpleDB item:                        user.dennis      2004-09-16      male




     users.a-f                      users.g-p                          users.q-z
itemName     attribute   ...   itemName      attribute   ...      itemName      attribute   ...
user.andre                       user.lisa                         user.theo
Time to browse...
Future of Cloudfork ?


 complete the API
 add API to other AWS services
 other providers
More Amazon APIs ...
Auto Scaling
Elastic Load Balancing
CloudWatch (beta)
Cloudfront
Elastic MapReduce
Flexible Payment Service
More Cloud providers ...
Cloudfork App-engine


like Google App Engine
upload a prepared image
the app-engine deploys is and ensures serviceability
and scalability
Add Cloud support for

Magritte & Pier
  Persistency to SimpleDB and S3
Seaside
  Hosting on EC2 (+ httpd load balancer front-end)
Build in the Cloud

 Continuous Integration Server in the Cloud
   Build Core and Dev images
   Test reports
   QA reports
   Test package compatibility
c’est fini


 cloudfork.googlecode.com
 blog.doit.st
ActiveItem composition


      Person       1                1        Address   Examples:
 id                                     id             aPerson address.
                              address


               aPerson ownsOne: #address
                  => address is stored in aPerson
ActiveItem - tools

 SimpleDBEmulator for Unit tests
 AiBrow for exploring items
   Seaside
   Glare-DataServices
CloudFork

Weitere ähnliche Inhalte

Was ist angesagt?

AWS에서 자바스크립트 활용 - 서비스와 개발 도구 - AWS Summit Seoul 2017
AWS에서 자바스크립트 활용 - 서비스와 개발 도구 - AWS Summit Seoul 2017AWS에서 자바스크립트 활용 - 서비스와 개발 도구 - AWS Summit Seoul 2017
AWS에서 자바스크립트 활용 - 서비스와 개발 도구 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
AWS IoT 핸즈온 워크샵 - 실습 3. AWS IoT Thing Shadow (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - 실습 3. AWS IoT Thing Shadow (김무현 솔루션즈 아키텍트)AWS IoT 핸즈온 워크샵 - 실습 3. AWS IoT Thing Shadow (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - 실습 3. AWS IoT Thing Shadow (김무현 솔루션즈 아키텍트)
Amazon Web Services Korea
 
Cloud Computing: AWS for Lean Startups
Cloud Computing: AWS for Lean StartupsCloud Computing: AWS for Lean Startups
Cloud Computing: AWS for Lean Startups
Zvi Avraham
 

Was ist angesagt? (20)

Cloud brew cloudcamp
Cloud brew cloudcampCloud brew cloudcamp
Cloud brew cloudcamp
 
AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings
 
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container DayECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
 
AWSome day 2018 - database in cloud
AWSome day 2018 -  database in cloudAWSome day 2018 -  database in cloud
AWSome day 2018 - database in cloud
 
Azure Functions - Get rid of your servers, use functions!
Azure Functions - Get rid of your servers, use functions!Azure Functions - Get rid of your servers, use functions!
Azure Functions - Get rid of your servers, use functions!
 
AWS tech summit - Berlin 2011 - keynote
AWS tech summit - Berlin 2011 - keynoteAWS tech summit - Berlin 2011 - keynote
AWS tech summit - Berlin 2011 - keynote
 
Pillai Pradeep - Global Rendering Customer Cases :: AWS Rendering Seminar -
Pillai Pradeep - Global Rendering Customer Cases :: AWS Rendering Seminar - Pillai Pradeep - Global Rendering Customer Cases :: AWS Rendering Seminar -
Pillai Pradeep - Global Rendering Customer Cases :: AWS Rendering Seminar -
 
Deploying Applications on AWS - Carlos Conde - AWS Summit Paris
Deploying Applications on AWS - Carlos Conde - AWS Summit ParisDeploying Applications on AWS - Carlos Conde - AWS Summit Paris
Deploying Applications on AWS - Carlos Conde - AWS Summit Paris
 
AWS에서 자바스크립트 활용 - 서비스와 개발 도구 - AWS Summit Seoul 2017
AWS에서 자바스크립트 활용 - 서비스와 개발 도구 - AWS Summit Seoul 2017AWS에서 자바스크립트 활용 - 서비스와 개발 도구 - AWS Summit Seoul 2017
AWS에서 자바스크립트 활용 - 서비스와 개발 도구 - AWS Summit Seoul 2017
 
Future of Cloud Starts with Serverless
Future of Cloud Starts with ServerlessFuture of Cloud Starts with Serverless
Future of Cloud Starts with Serverless
 
SoCal NodeJS Meetup 20170215_aws_lambda
SoCal NodeJS Meetup 20170215_aws_lambdaSoCal NodeJS Meetup 20170215_aws_lambda
SoCal NodeJS Meetup 20170215_aws_lambda
 
Best Practices of IoT in the Cloud
Best Practices of IoT in the CloudBest Practices of IoT in the Cloud
Best Practices of IoT in the Cloud
 
AWS IoT 핸즈온 워크샵 - 실습 3. AWS IoT Thing Shadow (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - 실습 3. AWS IoT Thing Shadow (김무현 솔루션즈 아키텍트)AWS IoT 핸즈온 워크샵 - 실습 3. AWS IoT Thing Shadow (김무현 솔루션즈 아키텍트)
AWS IoT 핸즈온 워크샵 - 실습 3. AWS IoT Thing Shadow (김무현 솔루션즈 아키텍트)
 
Oracle on AWS RDS Migration - 성기명
Oracle on AWS RDS Migration - 성기명Oracle on AWS RDS Migration - 성기명
Oracle on AWS RDS Migration - 성기명
 
SimpleDBを使った ソーシャルアプリ構築事例
SimpleDBを使った ソーシャルアプリ構築事例SimpleDBを使った ソーシャルアプリ構築事例
SimpleDBを使った ソーシャルアプリ構築事例
 
Clocker and OpenStack
Clocker and OpenStackClocker and OpenStack
Clocker and OpenStack
 
AWS SDK for Java
AWS SDK for JavaAWS SDK for Java
AWS SDK for Java
 
Cloud Computing: AWS for Lean Startups
Cloud Computing: AWS for Lean StartupsCloud Computing: AWS for Lean Startups
Cloud Computing: AWS for Lean Startups
 
Droplr Serverless Revolution - How we killed 50 servers in a year
Droplr Serverless Revolution - How we killed 50 servers in a yearDroplr Serverless Revolution - How we killed 50 servers in a year
Droplr Serverless Revolution - How we killed 50 servers in a year
 
Scaling drupal on amazon web services dr
Scaling drupal on amazon web services drScaling drupal on amazon web services dr
Scaling drupal on amazon web services dr
 

Ähnlich wie CloudFork

Ähnlich wie CloudFork (20)

Born in the Cloud; Build it Like a Startup
Born in the Cloud; Build it Like a StartupBorn in the Cloud; Build it Like a Startup
Born in the Cloud; Build it Like a Startup
 
Customer Case Study: Land Registry as a Service in the Cloud - AWS PS Summit ...
Customer Case Study: Land Registry as a Service in the Cloud - AWS PS Summit ...Customer Case Study: Land Registry as a Service in the Cloud - AWS PS Summit ...
Customer Case Study: Land Registry as a Service in the Cloud - AWS PS Summit ...
 
無伺服器架構和Containers on AWS入門
無伺服器架構和Containers on AWS入門 無伺服器架構和Containers on AWS入門
無伺服器架構和Containers on AWS入門
 
The Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with RubyThe Future is Now: Leveraging the Cloud with Ruby
The Future is Now: Leveraging the Cloud with Ruby
 
AWS re:Invent 2016 Day 2 Keynote re:Cap
AWS re:Invent 2016 Day 2 Keynote re:CapAWS re:Invent 2016 Day 2 Keynote re:Cap
AWS re:Invent 2016 Day 2 Keynote re:Cap
 
AWS re:Invent 2016 Day 2 Keynote re:Cap
AWS re:Invent 2016 Day 2 Keynote re:CapAWS re:Invent 2016 Day 2 Keynote re:Cap
AWS re:Invent 2016 Day 2 Keynote re:Cap
 
Serverless cat detector workshop - cloudyna 2017 (16.12.2017)
Serverless cat detector   workshop - cloudyna 2017 (16.12.2017)Serverless cat detector   workshop - cloudyna 2017 (16.12.2017)
Serverless cat detector workshop - cloudyna 2017 (16.12.2017)
 
Serverless Architectural Patterns & Best Practices
Serverless Architectural Patterns & Best PracticesServerless Architectural Patterns & Best Practices
Serverless Architectural Patterns & Best Practices
 
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the CloudNWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
 
4K Media Workflows on AWS
4K Media Workflows on AWS4K Media Workflows on AWS
4K Media Workflows on AWS
 
DevOps Fest 2019. Alex Casalboni. Configuration management and service discov...
DevOps Fest 2019. Alex Casalboni. Configuration management and service discov...DevOps Fest 2019. Alex Casalboni. Configuration management and service discov...
DevOps Fest 2019. Alex Casalboni. Configuration management and service discov...
 
Serverless OCR for NASA EVA: AWS Meetup DC 2017-12-12
Serverless OCR for NASA EVA: AWS Meetup DC 2017-12-12Serverless OCR for NASA EVA: AWS Meetup DC 2017-12-12
Serverless OCR for NASA EVA: AWS Meetup DC 2017-12-12
 
From Docker Straight to AWS
From Docker Straight to AWSFrom Docker Straight to AWS
From Docker Straight to AWS
 
Deep Dive on Microservices and Docker
Deep Dive on Microservices and DockerDeep Dive on Microservices and Docker
Deep Dive on Microservices and Docker
 
Bitbucket Pipelines - Powered by Kubernetes
Bitbucket Pipelines - Powered by KubernetesBitbucket Pipelines - Powered by Kubernetes
Bitbucket Pipelines - Powered by Kubernetes
 
AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)
AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)
AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)
 
Serverless Optical Character Recognition in support of Astronaut Safety AWS M...
Serverless Optical Character Recognition in support of Astronaut Safety AWS M...Serverless Optical Character Recognition in support of Astronaut Safety AWS M...
Serverless Optical Character Recognition in support of Astronaut Safety AWS M...
 
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul MaddoxAWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
 
AWS Webcast - What is Cloud Computing?
AWS Webcast - What is Cloud Computing?AWS Webcast - What is Cloud Computing?
AWS Webcast - What is Cloud Computing?
 
Architecting Cloud Apps
Architecting Cloud AppsArchitecting Cloud Apps
Architecting Cloud Apps
 

Mehr von ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

Mehr von ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

CloudFork

  • 1. Cloudfork cloud computing using Smalltalk Ernest Micklei & Jan van de Sandt ESUG 2009, Brest, France
  • 2. Talking about Cloudfork and Cloud Computing what is there and how can it be used ? ActiveItem demo Future of Cloudfork ? discussion !
  • 3. Cloud Computing Cloud computing is a style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet. Users need not have knowledge of, expertise in, or control over the technology infrastructure in the "cloud" that supports them.
  • 4. Cloudfork Cloudfork interfaces to use Cloud Computing services portable Smalltalk open source (MIT) focus on Amazon Web Services (AWS)
  • 5. Cloudfork AWS interfaces to Amazon WebServices Simple Storage Service (S3) Simple Queuing Service (SQS) SimpleDB Elastic Cloud Computing (EC2)
  • 6. AWS in general Pay-per-use, low cost High Availability SOAP + REST api Global accessible Architecture: BASE: basically available, soft state, eventually consistent KISS: keep it simple ....
  • 7. AWS in dollars* Storage Data transfer CPU $0.10 per GB in $0.01 per 10,000 S3 $0.15 per GB / month $0.17 per GB out GET requests $0.10 per GB in $0.01 per 10,000 SQS n.a. $0.17 per GB out requests First 1 GB free First 1 GB free $0.14 per SimpleDB $0.25 per GB / month $0.10 per GB in Machine Hour $0.17 per GB out ranging from $0.10 per hour ( small linux ) EC2 to $1.20 per hour ( extra large windows ) * see aws.amazon.com for exact pricing
  • 8. AWS - S3 Simple Storage Service Objects [1 Byte .. 5 GB] in Buckets Unique key within a Bucket meta data streaming distribution ( bittorrent ) access controlled
  • 9. Cloudfork - S3 s3 := CFSimpleStorageService newWith: awsCredentials. s3 createBucketNamed: ‘esug.2009.bucket’. bucket := s3 openBucketNamed: ‘esug.2009.bucket’. bucket putObject: ‘presenting in Brest, France’ as: ‘tweet’. ( bucket getObject: ‘tweet’ ) result asString.
  • 10. AWS - SQS Simple Queue System a-synchronous communication decoupling systems jobs Private queues 8 KByte messages non-transactional
  • 11. Cloudfork - SQS sqs := CFSimpleQueueService newWith: awsCredentials. qurl := (sqs createQueue: ‘esug-2009-queue’) result. sqsq := sqs openQueue: qurl. sqsq sendMessage: ‘ESUG 2009’. msg := (sqsq receiveMessage) result body
  • 12. AWS - SimpleDB “Huge dictionary in the Cloud” domains with items multi-valued attributes Strings only auto-indexed query api
  • 13. AWS SimpleDB 8) 677866) *%+,-') !"#!$$%&'() .)',+/) 8) 9) 0(/+) !12-3&(/) .)',+/) 8) 9) .)',+/) 8) •!86:;)<,(,)=/2)<%+,-') •!>?@)!12-3&(/)',+/.A,5&/)=,-2B)=/2)-(/+) 8779) 4,5&/)
  • 14. Cloudfork - SimpleDB simpleDB := CFSimpleDB newWith: awsCredentials. simpleDB createDomain: ‘esug-2009-domain’. domain := simpleDB openDomain: ‘esug-2009-domain’. item := CFSimpleDBItem new name: ‘esug-conference-2009’ ; valueAt: ‘visitors’ put: ‘400’. domain itemPut: item. ( domain itemAt: ‘esug-conference-2009’ ) result.
  • 15. Embrace the Cloud The Cloud is a chance for the Smalltalk vendors to innovate: New pricing models Create standard architectures loadbalancing different persistence solutions
  • 17. Cloudfork - ActiveItem ActiveRecord pattern implementation on top of Amazon SimpleDB attribute mappings association mapping save , delete , find
  • 18. ActiveItem features auto-mapping common types DSL for relations ( belongsTo, hasMany, ownsOne, ...) inheritance validators domain sharding strategies
  • 19. Domain Sharding AWS SimpleDB item: user.dennis 2004-09-16 male users.a-f users.g-p users.q-z itemName attribute ... itemName attribute ... itemName attribute ... user.andre user.lisa user.theo
  • 21. Future of Cloudfork ? complete the API add API to other AWS services other providers
  • 22. More Amazon APIs ... Auto Scaling Elastic Load Balancing CloudWatch (beta) Cloudfront Elastic MapReduce Flexible Payment Service
  • 24. Cloudfork App-engine like Google App Engine upload a prepared image the app-engine deploys is and ensures serviceability and scalability
  • 25. Add Cloud support for Magritte & Pier Persistency to SimpleDB and S3 Seaside Hosting on EC2 (+ httpd load balancer front-end)
  • 26. Build in the Cloud Continuous Integration Server in the Cloud Build Core and Dev images Test reports QA reports Test package compatibility
  • 28. ActiveItem composition Person 1 1 Address Examples: id id aPerson address. address aPerson ownsOne: #address => address is stored in aPerson
  • 29. ActiveItem - tools SimpleDBEmulator for Unit tests AiBrow for exploring items Seaside Glare-DataServices