Tricode BVDe Schutterij 12 -18
3905 PL VeenendaalThe Netherlands
tel: 0318 - 559210 fax: 0318 - 650909
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