Smalltalk in the CloudESUG 2012, Friday, 31 August 2012, 11:15 – 11:45 AM, Gent, BelgiumJames Foster, Sr. Member Technical...
AbstractCloud Foundry is the open "Platform as a Service" (PaaS) projectinitiated by VMware. It can support multiple frame...
AgendaOverview of Cloud Foundry (corporate marketing slides)Smalltalk use described with demoExperience report from Tim...
Hosting OptionsWhat is provided by vendor:   Type             Utilities    Hardware       Stack     Applications   Self-ho...
Introducing Cloud FoundryTMThe Open Platform as a ServiceMarch 2012   www.cloudfoundry.com                                ...
The Open            Platform as a Service     Deploy and scale applications in    seconds, without locking yourself       ...
What if…      $ vmc target <any cloud>      $ vmc push <my-app>           > bind services? Yes      $ vmc instances <my-ap...
Cloud Foundry open Platform as a ServiceThe PaaS of choice for the Cloud eraSimple    • Lets developers focus on their cod...
Cloud Foundry – key audiences            IT Developers                                IT Operations         “Write code, n...
Cloud Foundry open PaaS - Choice of frameworks                                            OSS community10
Cloud Foundry open PaaS - Choice of application servicesvFabricPostgres              Data              Services       vFab...
Cloud Foundry open PaaS - Choice of clouds       Data                                           Private       Services    ...
Multi-cloud flexibility is critical to your long-term success Make use of both public and private clouds without rewritin...
Cloud Foundry: Making multi-cloud a reality Choice of Private     Choice of Public       Choice of CloudCloud Distribution...
CloudFoundry.COM - Multi-tenant PaaS operated by VMware                      CloudFoundry.COM (beta)     Runtimes & Framew...
Micro Cloud FoundryTM – Industry first downloadable PaaS                          Micro Cloud Foundry      Runtimes & Fram...
CloudFoundry.ORG - Community open-source project                        CloudFoundry.ORG                          Your Inf...
Cloud Foundry Logical View                                            Browser     VMC client   STS plugin                 ...
How Apps are Accessed on Cloud Foundry               Request                      Web Interface  Load  Balancing  and     ...
How Apps are Scaled on Cloud Foundry                 Request     Load     Balancing                                   Resp...
How Apps are Updated on Cloud Foundry     Previous      Instance     Updated    New     Version       Stopped      Code   ...
Create a Trivial Ruby Application In a new directory, create env.rb:require rubygemsrequire sinatraconfigure do disable :...
Deploy the Ruby Application Try the application locally  • ruby env.rb Push the application to the cloud (with a unique ...
Push ProcessCreating Application: OKUploading Application:  Checking for available resources: OK  Packing application: OK ...
Server Architecture                                        VMC Client            Web Browsers                        Route...
Adding Smalltalk to Cloud Foundry                                                                                  Smallta...
Support for "Traditional" Programming Model Ruby • Interpreter works with text files • Application code "includes" extern...
Smalltalk can Fit! Code can exist outside image • Package or file-in Push • Ship "code" to server during push phase • Al...
Client file structure app/    • aida.st   Aida.changes   Aida.image   PharoDebug.log   PharoV10.sources -> …   start...
Special File in Application Directory: aida.st| portString |portString := SmalltalkImage current getSystemAttribute: 3.(po...
Changes to Cloud Foundry for Aida VMC • Add Aida to list of supported frameworks • Auto-detect aida.st as indicating Aida...
GemStone and Cloud Foundry Cloud Foundry Services • MySQL, MongoDB, Redis • GemStone/S maps reasonably well to these serv...
Server Architecture                                        VMC Client            Web Browsers                        Route...
Micro Cloud Develop application locally Deploy it to a public cloud Intermediate step of testing deployment to a privat...
Experience Report HPI students build Seaside applications in lecture Internal Cloud Foundry setup for students to show t...
Key takeaways PaaS is the application platform for the Cloud era Cloud Foundry is the simple, open and flexible PaaS of ...
Thanks & Questions? Thanks to •   Dale Henrichs, Peter McLean, and Monty Williams of VMware •   John Thornton (JonnyT) fo...
Upcoming SlideShare
Loading in...5
×

Smalltalk In the Cloud

863

Published on

ESUG 2012, Ghent

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
863
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Smalltalk In the Cloud"

  1. 1. Smalltalk in the CloudESUG 2012, Friday, 31 August 2012, 11:15 – 11:45 AM, Gent, BelgiumJames Foster, Sr. Member Technical Staff, VMware © 2009 VMware Inc. All rights reserved
  2. 2. AbstractCloud Foundry is the open "Platform as a Service" (PaaS) projectinitiated by VMware. It can support multiple frameworks, multiplecloud providers, and multiple application services all on a cloudscale platform.In this presentation we show how Smalltalk can fit in thisenvironment.
  3. 3. AgendaOverview of Cloud Foundry (corporate marketing slides)Smalltalk use described with demoExperience report from Tim Felgentreff at HPI VMware
  4. 4. Hosting OptionsWhat is provided by vendor: Type Utilities Hardware Stack Applications Self-hosting Data center  IaaS   PaaS    SaaS    Utilities: Network, power, A/CHardware: CPU, RAM, diskStack: operating system, web server, database, runtime, frameworkApplication: this is the programmers concern
  5. 5. Introducing Cloud FoundryTMThe Open Platform as a ServiceMarch 2012 www.cloudfoundry.com © 2009 VMware Inc. All rights reserved
  6. 6. The Open Platform as a Service Deploy and scale applications in seconds, without locking yourself into a single cloud6
  7. 7. What if… $ vmc target <any cloud> $ vmc push <my-app> > bind services? Yes $ vmc instances <my-app> +1007
  8. 8. Cloud Foundry open Platform as a ServiceThe PaaS of choice for the Cloud eraSimple • Lets developers focus on their code and not wiring middlewareOpen • Avoid lock-in to specific cloud, frameworks or service • Completely open source from day oneFlexible and Scalable • Self service, deploy and scale your applications in seconds • Extensible architecture to “digest” future cloud innovation8
  9. 9. Cloud Foundry – key audiences IT Developers IT Operations “Write code, not tickets” “IT as a service provider” Boost application velocity Friction-free deployment  More responsive to developers No machines or middleware to manage  Elastic and dynamically scalable Latest high productivity frameworks  Improved efficiency Choice of application services  Digest future cloud advances Cloud portability  Cloud portability 9
  10. 10. Cloud Foundry open PaaS - Choice of frameworks OSS community10
  11. 11. Cloud Foundry open PaaS - Choice of application servicesvFabricPostgres Data Services vFabric RabbitMQTM Msg Services Other Services Additional partners services … 11
  12. 12. Cloud Foundry open PaaS - Choice of clouds Data Private Services Clouds Msg Public Services Clouds Partners .COM Other Micro Services Clouds12
  13. 13. Multi-cloud flexibility is critical to your long-term success Make use of both public and private clouds without rewriting your applications Protect against vendor lock-in Meet different compliance and geographical needs Accommodate peak loads while optimizing costs Manage your growth and changing needs over time13
  14. 14. Cloud Foundry: Making multi-cloud a reality Choice of Private Choice of Public Choice of CloudCloud Distributions Cloud Providers Infrastructure .COM Bare metal14
  15. 15. CloudFoundry.COM - Multi-tenant PaaS operated by VMware CloudFoundry.COM (beta) Runtimes & Frameworks Services vCenter / vSphere Infrastructure15
  16. 16. Micro Cloud FoundryTM – Industry first downloadable PaaS Micro Cloud Foundry Runtimes & Frameworks Services Your Laptop/PC Single VM instance of Cloud Foundry that runs on a developer’s MAC or PC16
  17. 17. CloudFoundry.ORG - Community open-source project CloudFoundry.ORG Your Infrastructure Download Setup Setup Deploy Behind Code Environment Scripts Firewall Apache2 license17
  18. 18. Cloud Foundry Logical View Browser VMC client STS plugin (user app access) Routers CloudControllers App App HealthManager Services DEA Pool Messaging18
  19. 19. How Apps are Accessed on Cloud Foundry Request Web Interface Load Balancing and Response Routing Web AppApp Instance DB “vmc push MyApp” Service 19
  20. 20. How Apps are Scaled on Cloud Foundry Request Load Balancing Response and Routing App Instances Web Web Web App App App DB “vmc instances MyApp 3” Service20
  21. 21. How Apps are Updated on Cloud Foundry Previous Instance Updated New Version Stopped Code Version Web Web Web Web App App App App DB DB Service Service “vmc update MyApp”21
  22. 22. Create a Trivial Ruby Application In a new directory, create env.rb:require rubygemsrequire sinatraconfigure do disable :protectionendget / do host = ENV[VMC_APP_HOST] port = ENV[VMC_APP_PORT] "<h1>Hello ESUG! via: #{host}:#{port}</h1>"endget /env do res = ENV.each do |k, v| res << "#{k}: #{v}<br/>" end resend23
  23. 23. Deploy the Ruby Application Try the application locally • ruby env.rb Push the application to the cloud (with a unique name): • vmc push MYAPP -n View the application: • http://myapp.smalltalkcon.org and http://myapp.smalltalkcon.org/env Increase the number of instances: • vmc instances MYAPP +1 View the application again and note differences • Port number and directory may change Delete your application: • vmc delete MYAPP24
  24. 24. Push ProcessCreating Application: OKUploading Application: Checking for available resources: OK Packing application: OK Uploading (0K): OKPush Status: OKStaging Application james-ruby: OKStarting Application james-ruby: OK Laptop with vmc and Server with application Cloud Foundry at *.smalltalkcon.org25
  25. 25. Server Architecture VMC Client Web Browsers Router / Firewall / Proxy Server at 64.20.104.5 (*.smalltalkcon.org) Router Ruby Application Cloud Controller Instance(s) Droplet Execution Agent Health Mgr w2s2-gst-cf126
  26. 26. Adding Smalltalk to Cloud Foundry Smalltalk Data Private Services CloudsGemStone Msg Public Services Clouds Other Micro Services Clouds Smalltalk image from http://www.freudenbergs.de/bert/balloon.html27
  27. 27. Support for "Traditional" Programming Model Ruby • Interpreter works with text files • Application code "includes" external libraries • Frameworks (Rails, Sinatra) can be pre-loaded on server Java / Scala / Groovy • Runtime VM works with "jar" files • Application code "includes" external libraries • Frameworks (Spring, Lift, Grails) can be pre-loaded on server How is Smalltalk different? • Let me count the ways! • Monolithic image with full application and framework28
  28. 28. Smalltalk can Fit! Code can exist outside image • Package or file-in Push • Ship "code" to server during push phase • All files under a root directory are sent to server Staging • Launch Smalltalk, load code into image, and save image Starting • Launch saved image • Determine port on which to listen (environment variable or command line) • Start HTTP server on designated port Consider a Pharo application • Same ideas should work with Squeak, Cincom Smalltalk, and VA Smalltalk29
  29. 29. Client file structure app/ • aida.st Aida.changes Aida.image PharoDebug.log PharoV10.sources -> … start* • open -a /…/CogVM.app/ --args Aida.image start.st $VCAP_APP_PORT start.st | file contents | FileDirectory setDefaultDirectory: (FileDirectory default entryAt: app) asFileDirectory fullName. file := FileStream readOnlyFileNamed: aida.st. contents := file contentsOfEntireFile. Compiler evaluate: contents.30
  30. 30. Special File in Application Directory: aida.st| portString |portString := SmalltalkImage current getSystemAttribute: 3.(portString isNil or: [portString isEmpty]) ifTrue: [portString := 8888].AIDASite default stop; port: portString asNumber; start.Author fullName: CloudFoundry.WebDemoApp compile: introductionElement | e | e := WebElement new. e addText: self observee introduction. e addText: <p>Listening on port: , session parent site port printString , </p>. ^e.31
  31. 31. Changes to Cloud Foundry for Aida VMC • Add Aida to list of supported frameworks • Auto-detect aida.st as indicating Aida framework and CogVM runtime VCAP (Cloud Foundry Server) • Chef scripts to download and install CogVM and Aida one-click image • Staging code to install code and save as new image • Startup code to change listening port32
  32. 32. GemStone and Cloud Foundry Cloud Foundry Services • MySQL, MongoDB, Redis • GemStone/S maps reasonably well to these services Runtime & Framework • Topaz is the command-line executable • Support for file-in scripts • Startup needs to do lazy-initialization • Dont install code if it is already present Changes to VMC for GemStone • vmc-stic is modified to recognize a Topaz application • Look for main.tpz in deployment directory • Other files will be copied to server as well (e.g., *.mcz)33
  33. 33. Server Architecture VMC Client Web Browsers Router / Firewall / Proxy Server at 64.20.104.5 (*.smalltalkcon.org) Router Ruby Topaz Topaz GemStone Cloud Controller Application Application Application Database Instance(s) Instance(s) Instance(s) Server Droplet Execution Droplet Droplet Agent Execution Execution Agent Agent Health Mgr w2s2-gst-cf1 w2s2- w2s2- w2s2- gst-cf2 gst-cf3 gst-cf434
  34. 34. Micro Cloud Develop application locally Deploy it to a public cloud Intermediate step of testing deployment to a private cloud • You have better access to logs to debug problems!39
  35. 35. Experience Report HPI students build Seaside applications in lecture Internal Cloud Foundry setup for students to show their projects • Described at http://blog.bithug.org/2012/02/cloud-foundry-squeak • Cloud Foundry code at https://github.com/timfel/vcap • Squeak code at http://ss3.gemstone.com/ss/CloudFoundry.html Will be promoted for all students in upcoming Seaside lecture40
  36. 36. Key takeaways PaaS is the application platform for the Cloud era Cloud Foundry is the simple, open and flexible PaaS of choice What’s next? • Signup - www.cloudfoundry.com • Get the source code - www.cloudfoundry.org • Download your Micro Cloud Foundry – my.cloudfoundry.com/micro • Learn more on the Cloud Foundry blog - blog.cloudfoundry.com • Follow us - @cloudfoundry41
  37. 37. Thanks & Questions? Thanks to • Dale Henrichs, Peter McLean, and Monty Williams of VMware • John Thornton (JonnyT) for the vmc-stic Ruby Gem and for testing things • Norm Green and VMware for the opportunity to work on this project • Tim Felgentreff of HPI Contact info for James Foster • jfoster@vmware.com • http://programminggems.wordpress.com/42
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×