saas + cms: tricode's technical roadtrip
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.TRANSCRIPT
![Page 1: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/1.jpg)
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
![Page 2: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/5.jpg)
Tricode
![Page 6: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/6.jpg)
Tricode
![Page 7: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/12.jpg)
Project Goal
Not a CMS development platform, but an end user
CMS & commerce product solution
![Page 13: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/13.jpg)
technical perspective
![Page 14: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/14.jpg)
Summary of requirements
• Product release management• Multiple product editions• Customer self service / pre-configuration• Additional features
![Page 15: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/15.jpg)
Product release managementBuild and Deploy
![Page 16: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/16.jpg)
Simplified release deployment
Implementation need:• Simple Magnolia CMS deployment with
a product war file
![Page 17: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/17.jpg)
A classic read
“Don’t build Magnolia: build
your projects.” Greg’s ramblings
![Page 18: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/19.jpg)
A classic read cont'd
“Don’t deploy Magnolia:
deploy your project.” Greg’s ramblings
![Page 20: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/20.jpg)
magnolia.properties-Dmagnolia.repository.data=/usr/var
![Page 21: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/22.jpg)
Jenkins: Build cycle
1 23
![Page 23: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/23.jpg)
Jenkins: Release
1
![Page 24: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/26.jpg)
Customer self serviceMiddleware (pre-)configuration
![Page 27: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/28.jpg)
Deployment models
Basic
High Availability
![Page 29: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/29.jpg)
Deployment diagram
![Page 30: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/31.jpg)
SSL redirect in Apache
How do we know when to redirect a public page to https?
![Page 32: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/33.jpg)
In Magnolia…
when changed to…
![Page 34: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/35.jpg)
Magnolia SSL enabling
![Page 36: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/36.jpg)
Customer self serviceMagnolia (pre-)configuration
![Page 37: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/39.jpg)
User authorisation
![Page 40: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/40.jpg)
Additional featuresTemplates and Themes
![Page 41: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/43.jpg)
Responsive custom theme
![Page 44: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/44.jpg)
Change a theme
![Page 45: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/45.jpg)
Turning this
into
![Page 46: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/46.jpg)
Additional featuresModules and Apps
![Page 47: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/47.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/48.jpg)
Easy and secure configuration
VS.
![Page 49: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/49.jpg)
Standard Form module
• Standard module extended with Foundation based templates
![Page 50: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/50.jpg)
Forms validation
• Foundation Abide: HTML5 form validation
![Page 51: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/51.jpg)
Standard Imaging module
• Generators: small, medium and large• Foundation interchange plugin loading responsive images
![Page 52: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/52.jpg)
Blog module
• Website integrated blog
![Page 53: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/53.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/54.jpg)
Konakart Admin App
![Page 55: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/55.jpg)
Konakart page components
![Page 56: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/56.jpg)
Magnolia AdminCentral
![Page 57: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/57.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/58.jpg)
![Page 59: SaaS + CMS: Tricode's Technical Roadtrip](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554f5085b4c905423f8b51e8/html5/thumbnails/59.jpg)
Follow us:tricode.nlfacebook.com/tricodelinkedin.com/company/tricodeslideshare.net/tricodetwitter.com/tricode