[Blueprint servercloud-r-juju-appserver-support] Juju support for application server technologies (Django, JEE, RoR, etc)
Antonio Rosales
antonio at canonical.com
Tue Jan 15 21:55:06 UTC 2013
Blueprint changed by Antonio Rosales:
Whiteboard changed:
User Stories:
As a sysop, I want to deploy a web application container on a cloud node.
As a developer, I want to create a Juju charm to deploy my web
application on any compatible container. Example of compatible
container: Django app => Django container; JEE .war => servlet container
(e.g. Apache Tomcat) or JEE app server (e.g. JBoss); JEE .ear or .jar =>
JEE app server (e.g. JBoss)
As a sysop, I want to deploy a web application onto a compatible
container node.
As a sysop, I want to define a named data source in a web app node and
add a relationship to a database node for that data source.
Risks:
Properly gathering best practices from developer communities, and integrating that knowledge into the framework charm itself.
Test Plans:
- CharmTesting should be leveraged here to exercise a framework charm with traditional workloads, and to specifically repeatedly exercise the individual functions of the framework charm.
+ CharmTesting should be leveraged here to exercise a framework charm with traditional workloads, and to specifically repeatedly exercise the individual functions of the framework charm.
Framework charm development will need a base set of application charms
to test the functionality of the framework itself. There could also be
an “exerciser” framework charm that specifically and exhaustively tests
each function of the framework (where a ‘normal’ application charm may
not exercise all the functions or do it repeatedly).
- Release Note:
+ Release Note:
Release not may not be applicable here, but we should blog about framework charms so folks now they are available to use.
-
--- Discussion at UDS ---
Why is this important
- Application servers come before Apps
- Private/Enterprise apps are more numerous than public apps
- Deployment needs to be easier/simpler because testing suffers when deployment is difficult
--- jitsu import/export for above ?
- Connect named resources to app without app specifically knowing about it
- Scalability as needed
PaaSish Ubuntu Juju mailing list:
-https://lists.ubuntu.com/archives/juju/2012-October/001910.html
Improving framework/infrastructure service charms on Juju mailing list:
-https://lists.ubuntu.com/archives/juju/2012-September/001884.html
- List of possible technologies to take into account:
- mediawiki
- Django
- MongoDB
- Postgres
- MySQL
- node.js
- rails/rack-esque
- memcacheD
- varnish
- redis
- rabbit
- Pyramid
- Sensu
- Logstash
- rsyslog
- WordPress
-
Possible implementation options (may not be mutually exclusive):
# App-by-Subordinate
juju deploy django
juju deploy myapp # <---- subordinate
juju add-relation django myapp
juju deploy mysql app-db-1
juju add-relation app-db-1 django # <---- relation handled by django via ORM layer
juju deploy mongodb
juju add-relation myapp mongodb # <---- relation handled by the app itself
--
# App-by-Config
juju deploy django --set app-src=git://....
--
# App-by-Fork
bzr branch lp:charms/django myapp
--
Juju support for application server technologies (Django, JEE, RoR, etc)
https://blueprints.launchpad.net/ubuntu/+spec/servercloud-r-juju-appserver-support
More information about the Ubuntu-server-bugs
mailing list