SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Similar a CloudFork

Similar a 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
 

Más de 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
 

Más de 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
 

Último

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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 

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