Project Caroline: Platform As A Service, For Your Service, At Your
Transcript of Project Caroline: Platform As A Service, For Your Service, At Your
![Page 1: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/1.jpg)
2007 JavaOneSM Conference | Session TS-1991 |
TS-1991
Project Caroline:Platform As A Service,For Your Service, At Your Service
Bob ScheiflerDistinguished EngineerSun Microsystems, Inc.http://research.sun.com/projects/caroline
![Page 2: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/2.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 2
Goal of This Talk
Learn how Project Caroline helps SaaS providers develop services rapidly, update them frequently, and automatically flex resource use to match changing runtime demands
What you will gain
![Page 3: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/3.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 3
AgendaProject Caroline At-a-GlanceSystem ArchitectureProgrammatic Resource AllocationExample ApplicationCurrent ImplementationSummary
![Page 4: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/4.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 4
What Is Project Caroline?● Advanced research project at Sun
Microsystems● Hosting platform for development and
delivery of dynamically scalable Internet-based services
● Programmatically configurable pool of virtualized compute, storage, and networking resources
![Page 5: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/5.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 5
Developer View
Your Service Code
Project Caroline Platform Resources
VMsLaunch my Internet
app across 2 load-balanced VMs,
connected to a backend database.
Add or remove VMs to match demand
(recycle removed VMs)
+
Internet
![Page 6: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/6.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 6
For Small-to-Medium SaaS Providers● Who wants to embrace new business models
and processes● Offer long-running and rapidly evolving services● Flex use-of-platform resources to match changing
customer demands● Leverage hosted infrastructure● Use higher-level programming languages
● Java™ programming language, Perl, Ruby, Python, ...
![Page 7: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/7.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 7
Programmatically re/configure systemsKey Platform Features (1)
● Programmatically allocate, monitor, and control virtualized compute, storage, and networking resources
● Services can themselves update and flex platform usage, dynamically and without human intervention
![Page 8: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/8.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 8
High level virtualization abstractionsKey Platform Features (2)
● Resources are exposed through high level abstractions● Language level VMs● Networks● Network accessible file systems and databases
● Improves developer productivity● Insulates code from infrastructure changes
![Page 9: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/9.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 9
Single system viewKey Platform Features (3)
● Presents a horizontally scaled pool of resources as a single system
● Provides developers with a unified platform for allocating and controlling these resources
● Draws on resource pool to meet allocation requests of multiple applications
![Page 10: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/10.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 10
AgendaProject Caroline At-a-GlanceSystem ArchitectureProgrammatic Resource AllocationExample ApplicationCurrent ImplementationSummary
![Page 11: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/11.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 11
System View
Virtual Machines
Java Runtime Environment, Perl, ...
End-UserIdentity &
Access Mgmt
File Systems DB Instances
Internet
DNS SysCallNAT, LB VPN JDWP PortalWebDAV
VLANs
![Page 12: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/12.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 12
Software Layers—APIs● “System call” API
● Java Platform, Standard Edition (Java SE)● Programmatic system resource allocation and control● Usable both on-grid and off-grid● Off-grid API and VPN allow mixed deployments
● Higher-level libraries and frameworks● Focus on selected existing packages● Deployment and management automation
● Example: for Servlet containers● Aiding SaaS delivery
● Examples: end-user management, master+workers w/flexing
![Page 13: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/13.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 13
Software Layers—Services● Portal tools also deployable by customers
● Forums, blogs, wikis, help desks, knowledge bases● System-wide Liberty identity provider
● End-user identity management and access control● End-users are the principals● Customer applications are the service providers
![Page 14: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/14.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 14
Software Layers—IDE● Off-grid IDE used to develop, debug and deploy
on-grid application● Automated deployment
● Using WebDAV and off-grid system call API● Debug on-grid Java platform processes● Monitor on-grid resources● NetBeans™ software and Eclipse
![Page 15: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/15.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 15
AgendaProject Caroline At-a-GlanceSystem ArchitectureProgrammatic Resource AllocationExample ApplicationCurrent ImplementationSummary
![Page 16: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/16.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 16
Programmatic Resource Allocation● Process● File System● DB instance● Network (VLAN)● IP address (internal, Internet)● Internet connectivity (NAT, L4/L7 Load Bal, VPN)● Host name● Host name mapping (DNS)
![Page 17: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/17.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 17
Common Resource Features● Named when created
● Avoids lost resource on network failure or caller crash● Separate name space for each resource class
● Identified by UUID (assigned by system)● Names can be reused over time
● Basic operations● Create (name, configuration)● Find (name, UUID, configuration content, meta-data)● Change configuration● Destroy
![Page 18: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/18.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 18
Process Configuration (1)● Command line
● argv[0] is an enum: Java runtime environment, Perl, …● File system mounts● IP addresses● IP traffic blocking (IP Filter)● Exit action (park, restart, destroy)
![Page 19: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/19.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 19
Process Configuration (2)● Stdin/stdout/stderr files● Working directory● Home directory● Environment variables● HW constraints (shared/exclusive cores, memory)● Non-collocation constraints
![Page 20: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/20.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 20
Process-Specific Operations● Start● Stop
● Gentle (let shutdown hooks run)● Hard
● Generate thread dump● Get current state
● Starting, running, or not running● Incarnation # (# of start calls)● Last process outcome (exit value, signal, exception)● OK or stuck due to start failure
![Page 21: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/21.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 21
Process Model Impacts● Native libraries not supported
● OS and HW independence● No local Runtime.exec
● “Remote” exec via system call API● No stdio pipes between processes
● Alternate communication mechanisms used instead
![Page 22: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/22.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 22
File Systems● Solaris™ Zettabyte File System (ZFS) with NFS
access● Thousands of file systems from one storage pool,
efficiently and reliably● Base: normal read/write file system● Snapshot: read-only copy of a base or clone
● Shares space with original until original is modified● Clone: copy-on-write clone of a snapshot
● Shares space with snapshot until clone is modified
![Page 23: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/23.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 23
File System Configuration● Storage reservation● Storage quota● Access control
● Mounts by customer’s processes● Mounts by other customer’s processes● WebDAV
![Page 24: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/24.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 24
File System-Specific Operations● Rollback base or clone to most recent snapshot● Backup to file
● Entire snapshot● Delta between two snapshots
● Restore from backup● Get current disk usage
![Page 25: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/25.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 25
Databases● PostgreSQL instances with local storage● System-managed installation
● Can always bring your own Java DB● Embedded or running as a separate process
![Page 26: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/26.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 26
Database Configuration● IP addresses● Storage reservation● Storage quota● Access control
● Connections from processes on same networks
![Page 27: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/27.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 27
Internal Networks● Network configuration
● # of allocatable IP addresses● Access control
● Address allocation by other customers
● Network-specific operations● Allocate IP address● Free IP address
![Page 28: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/28.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 28
Internet Connectivity● Inbound and outbound traffic
● Direct binding to Internet-routable addresses● Static NAT (Internet address ↔ internal address)● VPN (bind off-grid process to internal address)
● Inbound traffic● L4 load balancing: TCP, SSL, UDP
● Internet address+port → {internal address+port}● L7 load balancing: HTTP, HTTPS
● Internet address+port+{URI filter → {internal address+port}}
● Outbound traffic● Dynamic NAT (internal address → Internet address)
![Page 29: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/29.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 29
DNS Configuration● Host name → list of IP addresses
![Page 30: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/30.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 30
AgendaProject Caroline At-a-GlanceSystem ArchitectureProgrammatic Resource AllocationExample ApplicationCurrent ImplementationSummary
![Page 31: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/31.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 31
Example Application● On-grid manager process
● Sets up N replicated Servlet containers● Sets up Internet-facing load-balancer● Flexes the number of replicas up and down to meet
changing demand● Off-grid setup app
● Automates setup of manager process
![Page 32: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/32.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 32
SC SC SCMGR
● ● ●
MGR SCSC SC
LB
On-Grid Service
SC-FS SC-FS SC-FSMGR-FS
![Page 33: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/33.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 33
Off-Grid App—Initial SetupGrid grid = GridFactory.getGrid(gridURL, userid, passwd);
FileSystem mgrFS = grid.createFileSystem(“manager”);
WebdavResource wdr =new WebdavResource(new HttpURL(webdavURL + “/manager/”));
wdr.setUserInfo(userid, passwd);wdr.putMethod(“manager.jar”, new File(“manager.jar”));wdr.putMethod(“container.zip”, new File(“container.zip”));wdr.putMethod(“servlets.zip”, new File(“servlets.zip”));
Network myNet = grid.createNetwork(“myNet”, 16);
![Page 34: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/34.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 34
Off-Grid App—Start ManagerProcessConfiguration cfg = new ProcessConfiguration();cfg.setRuntimeEnvironment(RuntimeEnvironment.JAVA);cfg.setCommandLine(new String[]{“-jar”, “manager.jar”});cfg.setFileSystems(Collections.singleton(
new MountParameters(mgrFS, “manager”))); cfg.setWorkingDirectory(“/files/manager”);NetworkAddress mgrIP = myNet.allocateAddress(“manager”);cfg.setNetworkAddresses(Collections.singleton(mgrIP));cfg.setProcessExitAction(ProcessExitAction.RESTART);cfg.setSystemSinks(“stdout.txt”, false,
“stderr.txt”, false);
ProcessRegistration mgrPR =grid.createProcessRegistration(“manager”, cfg);
mgrPR.start();
![Page 35: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/35.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 35
Manager Process—Initial Setup and Replica Setup// instance variablesGrid grid = GridFactory.getProcessContext().getGrid();Network myNet = grid.getNetwork(“myNet”);FileSystemSnapshot goldSnap;
FileSystem goldFS = grid.createFileSystem(“golden”);grid.mountFileSystem(new MountParameters(goldFS, “golden”));Util.unzip(“container.zip”, “/files/golden”);Util.unzip(“servlets.zip”, “/files/golden”);grid.unmountFileSystem(“golden”);goldSnap = goldFS.createSnapshot(“goldsnap”);
for (int i = 1; i <= N; i++) {addReplica();
}
![Page 36: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/36.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 36
Manager Process—addReplica() Part 1// more instance variablesLinkedList<RealService> services = new LinkedList<RealService>();LinkedList<FileSystem> clones = new LinkedList<FileSystem>();LinkedList<ProcessRegistration> procRegs =
new LinkedList<ProcessRegistration>();
void addReplica() {String replicaName = “replica-” + (services.size() + 1);NetworkAddress replicaIP = myNet.allocateAddress(replicaName);services.add(new RealService(replicaIP, 8080));FileSystem cloneFS = goldSnap.clone(replicaName);clones.add(cloneFS);grid.mountFileSystem(new MountParameters(cloneFS, “server”));editConfigurationFiles(“/files/server”, …);grid.unmountFileSystem(“server”);
![Page 37: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/37.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 37
Manager Process—addReplica() Part 2ProcessConfiguration cfg = new ProcessConfiguration();cfg.setRuntimeEnvironment(RuntimeEnvironment.JAVA);cfg.setCommandLine(new String[]{<<container command line>>});cfg.setFileSystems(Collections.singleton(
new MountParameters(cloneFS, “server”)));cfg.setWorkingDirectory(“/files/server”);cfg.setNetworkAddresses(Collections.singleton(replicaIP));cfg.setProcessExitAction(ProcessExitAction.RESTART);cfg.setSystemSinks(“stdout.txt”, false, “stderr.txt”, false);
ProcessRegistration replicaPR =grid.createProcessRegistration(replicaName, cfg);
procRegs.add(replicaPR);
replicaPR.start();}
![Page 38: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/38.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 38
Manager Process—LB Setup// more instance variablesL4VirtualServiceConfiguration lbCfg;NetworkSetting myLB;
lbCfg = new L4VirtualServiceConfiguration();NetworkAddress extIP =
grid.allocateInternetAddress(“external”);lbCfg.setExternalAddress(extIP);lbCfg.setPort(80);lbCfg.setProtocol(Protocol.TCP);lbCfg.setRealServices(services);
myLB = grid.createNetworkSetting(“myService”, lbCfg);
grid.bindHostName(myHostName,Collections.singletonList(extIP));
![Page 39: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/39.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 39
Manager Process—Flex UpaddReplica();
lbCfg.setRealServices(services);
myLB.changeConfiguration(lbCfg);
![Page 40: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/40.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 40
Manager Process—Flex DownRealService svc = services.removeLast();lbCfg.setRealServices(services);
myLB.changeConfiguration(lbCfg);
ProcessRegistration replicaPR = procRegs.removeLast();replicaPR.destroy();
svc.getNetworkAddress().delete();
FileSystem cloneFS = clones.removeLast();cloneFS.destroy();
![Page 41: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/41.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 41
AgendaProject Caroline At-a-GlanceSystem ArchitectureProgrammatic Resource AllocationExample ApplicationCurrent ImplementationSummary
![Page 42: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/42.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 42
Current Implementation
DNS SysCallNAT, LB VPN
Virtual Machines
Java runtime environment, Perl, ...
VLANsEnd UserIdentity &
Access Mgmt
File Systems DB Instances
Sun WAN
JDWP PortalWebDAV
![Page 43: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/43.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 43
Processes● Basic functionality in place● WIP
● More than one IP address● IP traffic blocking● HW constraints● Non-collocation constraints
● TBD● Beyond Java runtime environment and Perl
![Page 44: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/44.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 44
Storage● Basic functionality in place● File Systems
● WIP● Dynamic mounts
● TBD● Backup and restore● Access control
● Databases● TBD
● Storage reservation and quota● Administrative control
![Page 45: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/45.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 45
Networking● Single shared internal network● Basic NAT and LB connectivity in place● WIP
● Allocatable internal Networks● SSL and HTTPS load balancing● DNS● VPN
● TBD● Allocatable Internet addresses
![Page 46: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/46.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 46
Other Software Layers● Basic NetBeans software support in place● WIP
● LB’d Servlet container deployment automation● Investigations
● Libraries, Frameworks, and Portal tools● TBD
● End-user identity and access management● Eclipse support
![Page 47: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/47.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 47
X2200 (20 4-core)
Current Implementation External Net(Sun WAN)
Data Net
Mgmt NetN2120V
T2000 (32-thread)
T2000 (32-thread)
Resource Manager (Java SE)
SysCall Agent (Java SE)JDWP Agent (Java SE)
Node Agent (Java SE)0 to N VMs in zones
App Switch
NFS ServerWebDAV Server
FileSystem Agent (Java SE)DB Agent (Java SE)
![Page 48: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/48.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 48
Solaris 10 OS Feature Use● Zones● Solaris ZFS, snapshots, clones● NFS● PostgreSQL● IP Instances, IP Filter, Crossbow● Resource Pools● Fair Share Scheduler● Extended Accounting
![Page 49: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/49.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 49
Behind the Scenes—Two System Calls● Starting a process● Creating a load balancer
![Page 50: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/50.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 50
Start Process—System CallResource Manager NFS Server
Node Agent
Zone Agent
Process 1
Node Agent Node Agent
![Page 51: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/51.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 51
Node Agent Node Agent Node Agent
Start Internals—RM RequestResource Manager NFS Server
Zone Agent
Process 1
![Page 52: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/52.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 52
Node Agent Node Agent Node Agent
Start Internals—Node RequestResource Manager NFS Server
Zone Agent
Process 1
![Page 53: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/53.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 53
Node Agent Node Agent Node Agent
Start Internals—Boot ZoneResource Manager NFS Server
Zone Agent
Process 1Non-global
Zone
![Page 54: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/54.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 54
Node Agent Node Agent Node Agent
Start Internals—Run Zone AgentResource Manager NFS Server
Zone Agent
Process 1
Zone Agent
![Page 55: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/55.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 55
Node Agent Node Agent Node Agent
Start Internals—Run Zone AgentResource Manager NFS Server
Zone Agent
Process 1
Zone Agent
![Page 56: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/56.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 56
Node Agent Node Agent Node Agent
Start Internals—Exec ProcessResource Manager NFS Server
Zone Agent
Process 1
Zone Agent
Process 1
![Page 57: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/57.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 57
Node Agent Node Agent Node Agent
Start Process—DoneResource Manager NFS Server
Zone Agent
Process 1
Zone Agent
Process 1
![Page 58: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/58.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 58
Node Agent Node Agent Node Agent
Create Load Balancer—System Call
Resource Manager App Switch
Zone Agent
Manager
Zone Agent
Replica2
Zone Agent
Replica1
![Page 59: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/59.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 59
Node Agent Node Agent Node Agent
Create Internals—RM RequestResource Manager App Switch
Zone Agent
Manager
Zone Agent
Replica2
Zone Agent
Replica1
![Page 60: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/60.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 60
Node Agent Node Agent Node Agent
Create Internals—App Switch CLIResource Manager App Switch
Zone Agent
Manager
Zone Agent
Replica2
Zone Agent
Replica1
![Page 61: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/61.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 61
Node Agent Node Agent Node Agent
Create Load Balancer—DoneResource Manager App Switch
Zone Agent
Manager
Zone Agent
Replica2
Zone Agent
Replica1
LB
![Page 62: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/62.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 62
Some Examples We’ve Run● Automated deployment of LB’d Tomcats● Distributed Conway’s Game of Life (X, sockets)● Master+workers with automated flexing
(Jini™ network technology)● Distributed ballistics simulation (Java RMI)● Ruby on Rails demo (JRuby)● JPetStore (Tomcat, Spring, Struts, HSQLDB)● LB’d web service (XFire, Derby, Hibernate)
![Page 63: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/63.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 63
Summary● Hosting platform for development and delivery
of dynamically scalable Internet-based services● Programmatically allocate, monitor, and control
virtualized compute, storage, and networking resources
● Resources are exposed through high-level abstractions
● Presents a horizontally scaled pool of resources as a single system
![Page 64: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/64.jpg)
2007 JavaOneSM Conference | Session TS-1991 | 64
For a Live DemoCome to the Project Caroline pod (#981) in the Sun area of the Pavilion
Source: Earth Sciences and Image Analysis Laboratory, NASA Johnson Space Center.Mission: ISS002, Roll: E, Frame: 6368, Feature: Caroline Island, http://eol.jsc.nasa.gov/
![Page 65: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/65.jpg)
2007 JavaOneSM Conference | Session XXXX | 65
Q&Ahttp://research.sun.com/projects/caroline
![Page 66: Project Caroline: Platform As A Service, For Your Service, At Your](https://reader035.fdocuments.us/reader035/viewer/2022071602/613d6075736caf36b75c9ab0/html5/thumbnails/66.jpg)
2007 JavaOneSM Conference | Session TS-1991 |
TS-1991
Project Caroline:Platform As A Service,For Your Service, At Your Service
Bob ScheiflerDistinguished EngineerSun Microsystems, Inc.http://research.sun.com/projects/caroline