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

SaaS + CMS: Tricode's Technical Roadtrip

Embed Size (px)

DESCRIPTION

Gerton ten Ham explores how Tricode started working with Magnolia CMS in Spring 2013, what they have learnt and what their big goal is - specifically, how they envision a SaaS solution that's specifically powered by Magnolia.

Citation preview

Page 1: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

Tricode

Page 6: SaaS + CMS: Tricode's Technical Roadtrip

Tricode

Page 7: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

Project Goal

Not a CMS development platform, but an end user

CMS & commerce product solution

Page 13: SaaS + CMS: Tricode's Technical Roadtrip

technical perspective

Page 14: SaaS + CMS: Tricode's Technical Roadtrip

Summary of requirements

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

Page 15: SaaS + CMS: Tricode's Technical Roadtrip

Product release managementBuild and Deploy

Page 16: SaaS + CMS: Tricode's Technical Roadtrip

Simplified release deployment

Implementation need:• Simple Magnolia CMS deployment with

a product war file

Page 17: SaaS + CMS: Tricode's Technical Roadtrip

A classic read

“Don’t build Magnolia: build

your projects.” Greg’s ramblings

Page 18: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

A classic read cont'd

“Don’t deploy Magnolia:

deploy your project.” Greg’s ramblings

Page 20: SaaS + CMS: Tricode's Technical Roadtrip

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

Page 21: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

Jenkins: Build cycle

1 23

Page 23: SaaS + CMS: Tricode's Technical Roadtrip

Jenkins: Release

1

Page 24: SaaS + CMS: Tricode's Technical Roadtrip

Automate deployment

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

Page 25: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

Customer self serviceMiddleware (pre-)configuration

Page 27: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

Deployment models

Basic

High Availability

Page 29: SaaS + CMS: Tricode's Technical Roadtrip

Deployment diagram

Page 30: SaaS + CMS: Tricode's Technical Roadtrip

Secure connections

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

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

Page 31: SaaS + CMS: Tricode's Technical Roadtrip

SSL redirect in Apache

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

Page 32: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

In Magnolia…

when changed to…

Page 34: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

Magnolia SSL enabling

Page 36: SaaS + CMS: Tricode's Technical Roadtrip

Customer self serviceMagnolia (pre-)configuration

Page 37: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

User authorisation

Page 40: SaaS + CMS: Tricode's Technical Roadtrip

Additional featuresTemplates and Themes

Page 41: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

Responsive custom theme

Page 44: SaaS + CMS: Tricode's Technical Roadtrip

Change a theme

Page 45: SaaS + CMS: Tricode's Technical Roadtrip

Turning this

into

Page 46: SaaS + CMS: Tricode's Technical Roadtrip

Additional featuresModules and Apps

Page 47: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

Easy and secure configuration

VS.

Page 49: SaaS + CMS: Tricode's Technical Roadtrip

Standard Form module

• Standard module extended with Foundation based templates

Page 50: SaaS + CMS: Tricode's Technical Roadtrip

Forms validation

• Foundation Abide: HTML5 form validation

Page 51: SaaS + CMS: Tricode's Technical Roadtrip

Standard Imaging module

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

Page 52: SaaS + CMS: Tricode's Technical Roadtrip

Blog module

• Website integrated blog

Page 53: SaaS + CMS: Tricode's Technical Roadtrip

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: SaaS + CMS: Tricode's Technical Roadtrip

Konakart Admin App

Page 55: SaaS + CMS: Tricode's Technical Roadtrip

Konakart page components

Page 56: SaaS + CMS: Tricode's Technical Roadtrip

Magnolia AdminCentral

Page 57: SaaS + CMS: Tricode's Technical Roadtrip

Conclusion

Delivering Tricode Cloud WCM = Not only hosting and provisioning implementation

but includesDevelopment of an enhanced end user CMS product

solution

Page 58: SaaS + CMS: Tricode's Technical Roadtrip
Page 59: SaaS + CMS: Tricode's Technical Roadtrip

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