Magnolia conference 2014: Tricode, Technical road to Tricode SAAS, powered by Magnolia CMS

Post on 08-May-2015

370 views 1 download

description

May 26 Tricode presented their technical road trip to create a SAAS solution based on Magnolia. Didn't visit the Global Magnolia Conference in Basel? Here are the slides.

Transcript of Magnolia conference 2014: Tricode, Technical road to Tricode SAAS, powered by Magnolia CMS

Tricode BVDe Schutterij 12 -18

3905 PL VeenendaalThe Netherlands

tel: 0318 - 559210 fax: 0318 - 650909

www.tricode.nlinfo@tricode.nl

SaaS + CMS: Tricode’s technical roadtripRonald Kerstens and Gerton ten Ham

Agenda

1. Tricode introduction

2. Road to a Tricode SaaS

3. Tricode SAAS project

4. Lessons learned..during the roadtrip1. Needs versus solutions

5. Questions & Answers

Tricode• Founded in 1999• Based in

• Veenendaal, Netherlands (NL)• Skopje, Macedonia (MK)

• 2014: 55 employees• 35 in NL• 20 in MK

• 20+ customers in NL, BE, UK

4

“We support organizations in creating and maintaining an online presence by use of several content management, customer experience and e-commerce technologies.

We boost online conversion rates by delivery of know-how, projects and services to our customers”.

Tricode

Tricode

Tricode

Road to Magnolia CMS

2011

• Tricode becomes AEM CXM implementation partner

2012

• Search for Java CMS supplement to AEM: Magnolia CMS

2013

• First Magnolia CMS project : BplusC library website

Road to Tricode SAAS

2014- Q1

• BplusC Magnolia 5 solution released• Brainstorming Tricode SAAS product vision

2014- Q2

• Start of Tricode SAAS development project• Alpha release 1.0 of SAAS

2014-Q3

• Continuation of Tricode SAAS development project• Release 1.0 of Tricode SAAS

2014-Q4

• Release 1.1 of Tricode SAAS

Road to Tricode SAAS

Features of a Tricode cloud WCM service:1. Hosted CMS solution2. Managed hosting & CMS support services3. Automated CMS & website provisioning4. Customer WCM self service 5. Additional/optional WCM & eCommerce features6. Product based release management7. Multiple product editions

Tricode Cloud WCM Powered by Magnolia CMS and Konakart

Tricode SAAS project

• SAAS alpha development project– In scope:

• Customer WCM self service• Product based release management• Additional/optional WCM & eCommerce features• Multiple product editions

– Out of scope: • Automated Website/CMS provisioning• Hosted CMS solution (done by hosting partner)• Managed hosting & CMS support services

2014- Q2

• Start of SAAS development project

• Alpha release 1.0 of SAAS

2014-Q3

• Continuation of SAAS development project

• Release 1.0 of SAAS

Tricode Cloud WCM Powered by Magnolia CMS and Konakart

Tricode SAAS projectBusiness needs Implementation

Customer self service

Simplified Magnolia CMS configuration

• Mobile first and easy styling/branding tooling• Standardized user authorization model

•WAAS Admin app•Preconfigured middleware and data storage software

Product release management

Simplified release deployment

• Continuous Integration & delivery pipeline• Single .WAR file = simplified deployments• Standardized hosting environments

Additional/optional WCM & eCommerce features

More end user product features

• Simple blog & news content centric apps• eCommerce storefront components and admin app

Multiple product editions

Targeting web marketing and ecommerce customers

• Basic Cloud WCM edition • High Availability Cloud WCM & eCommerce edition

Project Goal

Not a CMS development platform, but an end user

CMS & commerce product solution

technical perspective

Summary of requirements

• Product release management• Multiple product editions• Customer self service / pre-configuration• Additional features

Product release managementBuild and Deploy

Simplified release deployment

Implementation need:• Simple Magnolia CMS deployment with

a product war file

A classic read

“Don’t build Magnolia: build

your projects.” Greg’s ramblings

Building Magnolia

At first…• Manually specifying which module

version must be used for the Magnolia bundle of choice

Evolved in…• Importing one dependency for the

Magnolia bundle of choice

<dependency> <groupId>info.magnolia.bundle</groupId> <artifactId>magnolia-bundle-parent</artifactId> <version>5.2.5</version> <type>pom</type> <scope>import</scope></dependency>

A classic read cont'd

“Don’t deploy Magnolia:

deploy your project.” Greg’s ramblings

magnolia.properties-Dmagnolia.repository.data=/usr/var

Simplified release deployment

Implementation needs:• Pipeline to build a tested single war file• Create a new release of the artifact, archive

old versions• Automated deployment of the artifact

Jenkins: Build cycle

1 23

Jenkins: Release

1

Automate deployment

• Start a wiki page and write down all steps that are needed to perform the deployment.

Automate deployment

• Do several deployments by the instructions.– If something is missing – add it. If something is wrong –

fix it.• After a while write scripts and start using them

instead.• Use Jenkins to start the scripts for you.

Customer self serviceMiddleware (pre-)configuration

Simplified release deployment

Implementation needs:• Easy to deploy and upgrade middleware software

and data storage system• High Availability and high performance hosting

environment• Secure connections and secure data storage

Deployment models

Basic

High Availability

Deployment diagram

Secure connections

• Author environment: – https://<client>-adm.tricode-cms.nl

• Public site:– https://<client>.tricode-cms.nl– http(s)://www.example.com

SSL redirect in Apache

How do we know when to redirect a public page to https?

Using Apache rewrite rules

RewriteCond %{REQUEST_URI} ^/login [OR]

RewriteCond %{REQUEST_URI} ^/register [OR]

RewriteCond %{REQUEST_URI} ^/my-account

RewriteRule ^/(.*) https://www.example.com/$1 [R=301,L]

In Magnolia…

when changed to…

Apache has to change…

RewriteCond %{REQUEST_URI} ^/login [OR]

RewriteCond %{REQUEST_URI} ^/register [OR]

RewriteCond %{REQUEST_URI} ^/my-account

RewriteRule ^/(.*) https://www.example.com/$1 [R=301,L]

Magnolia SSL enabling

Customer self serviceMagnolia (pre-)configuration

Simplified Magnolia CMS configuration

Implementation needs:• Superuser account not accessible to SAAS

subscribers!• Customer self service requires simple user

authorization model: customer only wants to add users in user groups.

Magnolia pre-configuration

• Using custom installation tasks1. Change superuser account

@Override protected List<Task> getExtraInstallTasks(InstallContext installContext){ final List<Task> tasks = new ArrayList<Task>(); tasks.addAll(super.getExtraInstallTasks(installContext)); tasks.add(new ChangePasswordTask("/system/superuser", SYSTEM_SUPERUSER_PWD)); return tasks; }

• Security app bootstrap files– Standard users, groups and roles

User authorisation

Additional featuresTemplates and Themes

Implementation needs:• Mobile first• Easy styling/branding of website by customer• Use of market leading web frontend development

framework for layouts

Simplified Magnolia CMS configuration

Foundation Templating Kit

• Why Foundation CSS framework?– Full responsive -> Mobile first– Standardized markup: Easy override of standard layout– Backed by a company and large user community– Time for an alternative next to STK?

Responsive custom theme

Change a theme

Turning this

into

Additional featuresModules and Apps

More end user product features

Implementation needs:• Magnolia CMS easy and secure application

configuration• Integration of standard Magnolia CMS modules in

Foundation Templating Kit• Website Blog integration• Website e-Commerce integration

Easy and secure configuration

VS.

Standard Form module

• Standard module extended with Foundation based templates

Forms validation

• Foundation Abide: HTML5 form validation

Standard Imaging module

• Generators: small, medium and large• Foundation interchange plugin loading responsive images

Blog module

• Website integrated blog

e-Commerce module

• Based on Konakart Community Edition• Uses Konakart SOAP interface (loosely coupled)• Freemarker based components:

– Login/register/my-account– Product catalog– Basket– Basic checkout

• SOAP integrated Konakart Admin App for Magnolia 5.3

Konakart Admin App

Konakart page components

Magnolia AdminCentral

Conclusion

Delivering Tricode Cloud WCM = Not only hosting and provisioning implementation

but includesDevelopment of an enhanced end user CMS product

solution

Follow us:tricode.nlfacebook.com/tricodelinkedin.com/company/tricodeslideshare.net/tricodetwitter.com/tricode