joomlatools platform
TRANSCRIPT
http://developer.joomlatools.com @joomlatools
Joomlatools PlatformJoomla with Less Fluff and More Oomph!
v1.0
Founding Fathers 2005
LinuxWorld London 2006
Joomla, not sexy anymore!
Platform is the new sexy!
Features
1Improved directory structure
http://developer.joomlatools.com/platform/directory-structure.html
2Slimmed down codebase
Counted using http://cloc.sourceforge.net/
75% lighter!
3Slimmed down codebase
https://github.com/joomlatools/joomla-platform/releases/tag/v1.0.0
Site Admin Platform v1.0.1 CMS v3.3.6
Components 1 9 10 40+
Modules 5 8 13 40+
Libraries - - 4 11
Plugins - - 13 40+
4Increased performance
Rendering blog sample data frontpage:
Joomla v3.3.6: 306ms
Joomlatools Platform: 167ms
5Need more?
Out of the box support for Varnish Cache
6Composer installer
$ cd /var/www$ composer create-project joomlatools/platform
Install the Joomlatools Platform in a single command.
http://developer.joomlatools.com/platform/getting-started.html
12 Factor App Methodology
http://developer.joomlatools.com/platform/12-factor-app.html
1Codebase
1 codebase, many deploys
http://developer.joomlatools.com/platform/12-factor-app.html#codebase
1Codebase1 codebase supports many environments with unique configurations
http://developer.joomlatools.com/platform/configuration-files.html
2DependenciesDeclare and manage dependencies via Composer
http://developer.joomlatools.com/platform/composer.html
2
$ cd /var/www/joomla-platform$ composer require joomlatools/platform-content$ composer require joomlatools/platform-finder$ composer require joomlatools/platform-media
Install extensions using Joomlatools Composer plugin
Dependencies
http://developer.joomlatools.com/platform/composer.html
3ConfigStore config in environment using PhpDotEnv
“Can you make your repository open source today?”
http://developer.joomlatools.com/platform/environment-variables.html
4Backing ServicesTreat backing services as attached resources
http://developer.joomlatools.com/platform/12-factor-app.html#backing-services
5Build, release, runStrictly separate build and run stages
Build
Release
Run
= codebase + dependencies + assets
= build + config
= execute, no code changes
http://developer.joomlatools.com/platform/12-factor-app.html#build-release-run
5Build, release, run
Release new builds using the Capistrano plugin:
$ joomla plugin:install joomlatools/console-capistrano$ joomla capistrano:deploy myapp
https://github.com/joomlatools/joomla-console-capistrano
6Processes
● One or more processes run the app
● Stateless:
○ Sessions are stored in backing service (MySQL)
○ Sessions do not autostart
● App shares nothing with other processes
http://developer.joomlatools.com/platform/12-factor-app.html#processes
7Port Binding
Export services via port binding
● Application must be fully self-contained● Accessible via a URL● Run standalone or behind complex web server
$ php -S 127.0.0.1:8000 # Standalone at http://127.0.0.1:8000
http://developer.joomlatools.com/platform/12-factor-app.html#port-binding
8Concurrency
Scale out via the process model:
● Processes are a first class citizen
● HTTP requests handled by web process
○ Apache, PHP-FPM can scale up out of the box
● Managed by operating system’s process manager
http://developer.joomlatools.com/platform/12-factor-app.html#concurrency
9Disposability
Maximize robustness with fast startup, graceful shutdown
● New code can run right away
● No need for long restart of processes
● PHP-FPM, Apache automatically take care of this
http://developer.joomlatools.com/platform/12-factor-app.html#disposability
10Dev/prod parity
Keep development and production as similar as possible:
● Vagrant machine runs on any OS (Mac, Windows, Linux)
● Same stack across organisation: Ubuntu 14.04, PHP
5.6, Apache 2.4, MySQL 5.5
● Re-usable Puppet configuration
● Developer tools pre-installed
http://developer.joomlatools.com/platform/12-factor-app.html#devprod-parity
Joomlatools Vagrant box
10Dev/prod parity
http://developer.joomlatools.com/tools/vagrant.html
11Logs
Treat logs as event streams
http://developer.joomlatools.com/platform/12-factor-app.html#logs
12Admin Processes
Run admin/management tasks as one-off processes
● Admin tasks run in same environment, database and config● Joomlatools Console to execute platform management tasks
$ joomla cache:clear myapp$ joomla finder:index myapp
$ joomla plugin:install joomlatools/console-backup$ joomla site:backup myapp
http://developer.joomlatools.com/platform/12-factor-app.html#admin-processes
More Info:
http://twitter.com/joomlatoolsdev
http://github.com/joomlatools
http://facebook.com/joomlatoolsdev
http://google.com/+Joomlatools
http://developer.joomlatools.com