[Blueprint servercloud-r-juju-appserver-support] Juju support for application server technologies (Django, JEE, RoR, etc)
Antonio Rosales
antonio at canonical.com
Wed Dec 12 22:37:01 UTC 2012
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 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.
- Release Note:
+ 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 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
-
+ -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
+ -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