Handwritten Text Recognition for manuscripts and early printed texts
Β
Seeding The Cloud
1. Seeding the Cloud:
Developing Scalable
Applications in the Cloud
Ted Leung
Sun Microsystems
Architect, Cloud Developer Tools
Ashwin Rao
Sun Microsystems
Product Line Manager, Cloud Developer Tools
2. Agenda
> Why the cloud?
> What problems will I face?
> How will my architecture change?
> What kind of tools are there?
> Demonstrations
> What kind of tools do I still need?
23. Identity
Non Relational DB
BigTable Key/Value Stores
CouchDB
24. MapReduce
Identity
Non Relational DB
BigTable Key/Value Stores
CouchDB
25. MapReduce
Identity
Asynchronous
Messaging
Non Relational DB
BigTable Key/Value Stores
CouchDB
26. MapReduce
Identity
Asynchronous
Messaging
Non Relational DB XMPP
BigTable Key/Value Stores
CouchDB
27. MapReduce
Identity
Asynchronous
Messaging
Non Relational DB XMPP Queuing
BigTable Key/Value Stores
CouchDB
28. MapReduce
Identity
Asynchronous
Messaging
Non Relational DB XMPP Queuing
BigTable Key/Value Stores
Payments
CouchDB
29. Agenda
> Why the cloud?
> What problems will I face?
> How will my architecture change?
> What kind of tools are there?
> Demonstrations
> What kind of tools do I still need?
30. What are the problems?
> Latency
> Development / deployment more deeply
entwined
> Security requires more thought since you are
constrained by your vendor
> Audit / Regulatory issues
> Single source provider
31. What are the problems? IaaS
> VMI Management
> Security
> Must handle app level scaling
> Must deal with network architecture
> Tools stop at the infrastructure level
β Stuff like deploy to cloud has no meaning
32. What are the problems? Stack aaS
> Limits on the stack
> Verified/authentic/expertly configured stacks
> Must handle app level scaling
> Must deal with network architecture
> Tools are available, but stack specific,
functionality varies widely
33. What are the problems? PaaS
> Constrained by platform choices
β Class whitelists
β Services available
> Development vs deployment environment
34. What are the problems? SaaS
> May not be developer enabled at all
> Proprietary technologies to learn
β Salesforce Apex
35. Agenda
> Why the cloud?
> What problems will I face?
> How will my architecture change?
> What kind of tools are there?
> Demonstrations
> What kind of tools do I still need?
36. What are the architectural considerations?
> Latency
> Use of storage
> Use of services
> Heterogeneity
> QA/Staging Environments
> Applications need to be able to deal with
dynamic (de)allocation of
services/machines/resources
37. Asynchronous architectures
> Applications will be broken up into services
> Applications will rely more on asynchrony and
queues
> Pipelines as an architecture
β Indexing
β Transcoding
> Background processing
β Logging / Audit
> Know the behavior of vendors services,
messaging
38. Architecture: IaaS
> Ability to control via API's
β Essential for self automation, scaling, etc
β Are those API's standardized?
> Dynamic configuration
40. Architecture: PaaS
> API access to monitoring data
> Specific to each PaaS implementation
β Based on the characteristics of vendor choices
β SimpleDB vs AppEngine datastore vs Cassandra vs
CouchDB
β AppEngine restrictions
> Platform may only be suited for certain kinds of
applications
41. Architecture: PaaS: Messaging
> Used to connect to services
> Looser coupling between systems
β Improves availability, manageability
> Lots of advanced strategies for using messaging
β Control of priority
β Admission (retry) control
> Technologies
β AMQP, SQS
42. Architecture: PaaS: Non-relational stores
> High write volumes
> Eventual consistency
> Non ACID semantics
> Queries not based on SQL
> Simple schemas or key-value storage models
> Technologies
β SimpleDB, Cassandra, CouchDB, Tokyo Tyrant,
many others
43. Architecture: PaaS: MapReduce
> Use for processing high volumes of data
> Very useful for background processing
β Logs, audit info
> Can be done on database extracts
> Technologies
β Hadoop, Disco
44. Architecture: SaaS
> Specific to each SaaS implementation
β Salesforce Apex resource limiting
45. Agenda
> Why the cloud?
> What problems will I face?
> How will my architecture change?
> What kind of tools are there?
> Demonstrations
> What kind of tools do I still need?
46. What kind of tooling is available?
> Develop βwithβ the Cloud
β Amazon Web Services
Toolkit for Eclipse Stack aaS
β G-Eclipse
Infrastructure aaS
β Project Speedway
47. Develop βWithβ The Cloud
> Amazon Web Services
Toolkit for Eclipse
β Extends the Web
Tools Platform
β Deploy, Run and
debug against
Amazon EC2
Compute Cluster
β Perform basic EC2
Management Tasks
48. Types of Tooling available
> Develop βforβ the Cloud
β Google App Engine
Platform aaS
SDK
β Windows Azure Tools Stack aaS
for Microsoft Visual
Studio Infrastructure aaS
β Force.com IDE
β Aptana Studio
β WaveMaker Cloud
Studio
49. Develop βForβ The Cloud
> Windows Azure Tools for
Microsoft Visual Studio
β Plugin for Microsoft
Visual Studio
β Provides a complete
simulation environment
for the Azure Cloud
platform
β Deploy to the Cloud
β Windows Azure Web
Portal
50. Types of Tooling available
> Develop βinβ the Cloud Development aaS
β Force.com Builder Software aaS
β Bungee Connect Platform aaS
Stack aaS
β Project Speedway
β Zembly Infrastructure aaS
51. Develop βInβ The Cloud
> Force.com
Developer Edition
β Develop and test
software as a
service
applications in
the cloud
β Seamlessly deploy
to servers on the
cloud
52. Sun's βConnectedβ Cloud Developer
Components
> Kenai > Zembly
β Cloud-centric software project β Cloud-based, easy-to-use tool for
management tool social networking apps;
enables developers to connect
β Set of RESTful web services: services to create applications
Source Code Management,
Wiki, Issue Tracking, β Web API gateway allows
Forums, Instant Messaging, connection of services in the
Downloads Cloud
> Project Speedway > O'Malley
β Build, test and debug in the β A catalog of self-published
cloud for C, C++ and software from partners and Sun
FORTRAN apps for the Sun Cloud
β Access powerful SPARC β Software can be fully configured
processor based systems in virtual machine images or
the Cloud applications
53. What is Zembly?
> zembly is Development as a Service
(DaaS)
β Hosted, Extensible IDE
β Developer platform
> zembly is Platform as a Service
(PaaS)
β Web APIs
> zembly enables Web Oriented
Architecture(WOA) using the zembly
application model
http://zembly.com
Learn more at booth #312C
54. What is Kenai?
> Provide a set of core
services to be used by
developers to build their
applications in the cloud
> Provide value-added
developer services from
the web/Cloud
β RESTful Web Service
APIs
β Continuous integration
β Code performance,
analysis and tuning
http://kenai.com
Learn more at booth #312B
55. What is Project Speedway?
> Universal access β via a
host-independent browser
interface or IDE - NetBeans Project Speedway provides
> Minimal setup β Fully developers universal access
configured OpenSolaris to OpenSolaris on SPARC
Desktop in the cloud; processor based Sun
Supports the entire Sun
Studio tool chain systems that need minimal
setup, to enable creation of
> Develop, build, test
applications β Build, Test, efficient and scalable
Debug, Tune, Analyze, applications in the cloud
Package, C & C++ and
Fortran applications in the
Cloud
http://developers.sun.com/speedway
Preview Speedway at booth #312H 55
56. Agenda
> Why the cloud?
> What problems will I face?
> How will my architecture change?
> What kind of tools are there?
> Demonstrations
> What kind of tools do I still need?
58. Agenda
> Why the cloud?
> What problems will I face?
> How will my architecture change?
> What kind of tools are there?
> Demonstrations
> What kind of tools do I still need?
59. What's next for tools?
> Service use/construction
> Tools to help deal with the scope/scale of the
system
> Tools integrated with the cloud itself
> Tools that use the cloud as a tool
60. The Cloud as a tool
> Web based IDE's
> Apply elastic computing capacity to developer
problems
β Continuous Integration
β Web UI testing
β Multiplatform testing
β Scalability testing