Top Banner
Cloudfork cloud computing using Smalltalk Ernest Micklei & Jan van de Sandt ESUG 2009, Brest, France
30

CloudFork

May 10, 2015

Download

Technology

ESUG

CloudFork - Flying into the Cloud with Smalltalk by E. Micklei, J. van de Sandt. ESUG09, Brest, France
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CloudFork

Cloudforkcloud computing using Smalltalk

Ernest Micklei & Jan van de SandtESUG 2009, Brest, France

Page 2: CloudFork

Talking about

Cloudfork and Cloud Computing

what is there and how can it be used ?

ActiveItem

demo

Future of Cloudfork ?

discussion !

Page 3: CloudFork

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.

Page 4: CloudFork

Cloudfork

Cloudfork

interfaces to use Cloud Computing services

portable Smalltalk

open source (MIT)

focus on Amazon Web Services (AWS)

Page 5: CloudFork

Cloudfork AWS

interfaces to Amazon WebServices

Simple Storage Service (S3)

Simple Queuing Service (SQS)

SimpleDB

Elastic Cloud Computing (EC2)

Page 6: CloudFork

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 ....

Page 7: CloudFork

AWS in dollars*

Storage Data transfer CPU

S3 $0.15 per GB / month$0.10 per GB in

$0.17 per GB out$0.01 per 10,000

GET requests

SQS n.a. $0.10 per GB in$0.17 per GB out

$0.01 per 10,000 requests

SimpleDB First 1 GB free$0.25 per GB / month

First 1 GB free$0.10 per GB in

$0.17 per GB out

$0.14 per Machine Hour

EC2ranging from $0.10 per hour ( small linux )to $1.20 per hour ( extra large windows )

* see aws.amazon.com for exact pricing

Page 8: CloudFork

AWS - S3Simple Storage Service

Objects [1 Byte .. 5 GB] in Buckets

Unique key within a Bucket

meta data

streaming

distribution ( bittorrent )

access controlled

Page 9: CloudFork

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.

Page 10: CloudFork

AWS - SQSSimple Queue System

a-synchronous communication

decoupling systems

jobs

Private queues

8 KByte messages

non-transactional

Page 11: CloudFork

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

Page 12: CloudFork

AWS - SimpleDB

“Huge dictionary in the Cloud”

domains with items

multi-valued attributes

Strings only

auto-indexed

query api

Page 13: CloudFork

AWS SimpleDB

!"#!$$%&'()*%+,-')

.)',+/)

0(/+)

.)',+/)

!12-3&(/)

.)',+/)

4,5&/)

677866)8)

8)

9)

•!86:;)<,(,)=/2)<%+,-')

•!>?@)!12-3&(/)',+/.A,5&/)=,-2B)=/2)-(/+)

8)

8)

9)

8779)

Page 14: CloudFork

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.

Page 15: CloudFork

Embrace the Cloud

The Cloud is a chance for the Smalltalk vendors to innovate:

New pricing models

Create standard architectures

loadbalancing

different persistence solutions

Page 17: CloudFork

Cloudfork - ActiveItem

ActiveRecord pattern implementation on top of Amazon SimpleDB

attribute mappings

association mapping

save , delete , find

Page 18: CloudFork

ActiveItem features

auto-mapping common types

DSL for relations ( belongsTo, hasMany, ownsOne, ...)

inheritance

validators

domain sharding strategies

Page 19: CloudFork

Domain Sharding

user.dennis 2004-09-16 male

itemName attribute ...

user.andre

users.a-fitemName attribute ...

user.lisa

users.g-pitemName attribute ...

user.theo

users.q-z

AWS SimpleDB item:

Page 20: CloudFork

Time to browse...

Page 21: CloudFork

Future of Cloudfork ?

complete the API

add API to other AWS services

other providers

Page 22: CloudFork

More Amazon APIs ...

Auto Scaling

Elastic Load Balancing

CloudWatch (beta)

Cloudfront

Elastic MapReduce

Flexible Payment Service

Page 23: CloudFork

More Cloud providers ...

Page 24: CloudFork

Cloudfork App-engine

like Google App Engine

upload a prepared image

the app-engine deploys is and ensures serviceability and scalability

Page 25: CloudFork

Add Cloud support for

Magritte & Pier

Persistency to SimpleDB and S3

Seaside

Hosting on EC2 (+ httpd load balancer front-end)

Page 26: CloudFork

Build in the Cloud

Continuous Integration Server in the Cloud

Build Core and Dev images

Test reports

QA reports

Test package compatibility

Page 27: CloudFork

c’est fini

cloudfork.googlecode.com

blog.doit.st

Page 28: CloudFork

ActiveItem composition

id

Person

id

Address1 1

aPerson ownsOne: #address

address

=> address is stored in aPerson

Examples:

aPerson address.

Page 29: CloudFork

ActiveItem - tools

SimpleDBEmulator for Unit tests

AiBrow for exploring items

Seaside

Glare-DataServices

Page 30: CloudFork