joomlatools platform

30
http://developer.joomlatools.com @joomlatools Joomlatools Platform Joomla with Less Fluff and More Oomph! v1.0

Upload: joomlatools

Post on 12-Apr-2017

4.567 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Joomlatools Platform

http://developer.joomlatools.com @joomlatools

Joomlatools PlatformJoomla with Less Fluff and More Oomph!

v1.0

Page 2: Joomlatools Platform

Founding Fathers 2005

Page 3: Joomlatools Platform

LinuxWorld London 2006

Page 4: Joomlatools Platform

Joomla, not sexy anymore!

Page 5: Joomlatools Platform

Platform is the new sexy!

Page 6: Joomlatools Platform

Features

Page 8: Joomlatools Platform

2Slimmed down codebase

Counted using http://cloc.sourceforge.net/

75% lighter!

Page 9: Joomlatools Platform

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+

Page 10: Joomlatools Platform

4Increased performance

Rendering blog sample data frontpage:

Joomla v3.3.6: 306ms

Joomlatools Platform: 167ms

Page 11: Joomlatools Platform

5Need more?

Out of the box support for Varnish Cache

Page 12: Joomlatools Platform

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

Page 13: Joomlatools Platform

12 Factor App Methodology

http://developer.joomlatools.com/platform/12-factor-app.html

Page 14: Joomlatools Platform

1Codebase

1 codebase, many deploys

http://developer.joomlatools.com/platform/12-factor-app.html#codebase

Page 15: Joomlatools Platform

1Codebase1 codebase supports many environments with unique configurations

http://developer.joomlatools.com/platform/configuration-files.html

Page 16: Joomlatools Platform

2DependenciesDeclare and manage dependencies via Composer

http://developer.joomlatools.com/platform/composer.html

Page 17: Joomlatools Platform

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

Page 18: Joomlatools Platform

3ConfigStore config in environment using PhpDotEnv

“Can you make your repository open source today?”

http://developer.joomlatools.com/platform/environment-variables.html

Page 19: Joomlatools Platform

4Backing ServicesTreat backing services as attached resources

http://developer.joomlatools.com/platform/12-factor-app.html#backing-services

Page 20: Joomlatools Platform

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

Page 21: Joomlatools Platform

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

Page 22: Joomlatools Platform

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

Page 23: Joomlatools Platform

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

Page 24: Joomlatools Platform

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

Page 25: Joomlatools Platform

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

Page 26: Joomlatools Platform

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

Page 27: Joomlatools Platform

10Dev/prod parity

http://developer.joomlatools.com/tools/vagrant.html

Page 28: Joomlatools Platform

11Logs

Treat logs as event streams

http://developer.joomlatools.com/platform/12-factor-app.html#logs

Page 29: Joomlatools Platform

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