magnolia conference 2014: tricode, technical road to tricode saas, powered by magnolia cms

59
Tricode BV De Schutterij 12 -18 3905 PL Veenendaal The Netherlands tel: 0318 - 559210 fax: 0318 - 650909 www.tricode.nl [email protected] SaaS + CMS: Tricode’s technical roadtrip Ronald Kerstens and Gerton ten Ham

Upload: tricode

Post on 08-May-2015

370 views

Category:

Technology


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

Page 1: 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

[email protected]

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

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

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

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

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

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

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

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

Tricode

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

Tricode

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

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

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

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

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

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

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

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

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

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

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

Project Goal

Not a CMS development platform, but an end user

CMS & commerce product solution

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

technical perspective

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

Summary of requirements

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

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

Product release managementBuild and Deploy

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

Simplified release deployment

Implementation need:• Simple Magnolia CMS deployment with

a product war file

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

A classic read

“Don’t build Magnolia: build

your projects.” Greg’s ramblings

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

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>

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

A classic read cont'd

“Don’t deploy Magnolia:

deploy your project.” Greg’s ramblings

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

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

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

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

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

Jenkins: Build cycle

1 23

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

Jenkins: Release

1

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

Automate deployment

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

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

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.

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

Customer self serviceMiddleware (pre-)configuration

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

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

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

Deployment models

Basic

High Availability

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

Deployment diagram

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

Secure connections

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

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

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

SSL redirect in Apache

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

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

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]

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

In Magnolia…

when changed to…

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

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]

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

Magnolia SSL enabling

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

Customer self serviceMagnolia (pre-)configuration

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

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.

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

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

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

User authorisation

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

Additional featuresTemplates and Themes

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

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

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

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?

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

Responsive custom theme

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

Change a theme

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

Turning this

into

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

Additional featuresModules and Apps

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

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

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

Easy and secure configuration

VS.

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

Standard Form module

• Standard module extended with Foundation based templates

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

Forms validation

• Foundation Abide: HTML5 form validation

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

Standard Imaging module

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

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

Blog module

• Website integrated blog

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

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

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

Konakart Admin App

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

Konakart page components

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

Magnolia AdminCentral

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

Conclusion

Delivering Tricode Cloud WCM = Not only hosting and provisioning implementation

but includesDevelopment of an enhanced end user CMS product

solution

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

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