SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
What shall be served by a
CMS ?
Just editorial content
Basel, September 2013
Thomas Körner
… experiences of a real project
Agenda
!  Project Scope
!  Objectives
!  Technical Wrap Up
!  Experiences
What shall be served by a CMS
kreuzwerker
2
Agenda
!  Project Scope
!  Objectives
!  Technical Wrap Up
!  Experiences
kreuzwerker
3What shall be served by a CMS
Social Community Platform of one of the biggest
cruise lines in Germany
!  user generated content as travelogues, blogs,
photo galleries, video albums
!  private messaging
!  questions and answer module
!  contests, polls and games
!  commenting, likes
Project Scope
kreuzwerker
4What shall be served by a CMS
Technical Re-Invest
!  tight coupling of CMS and community functions
prevented migration to new Drupal version
!  CMS change according to the customers web
publishing strategy
!  usage of a custom digital asset management
system
Project Scope
kreuzwerker
5What shall be served by a CMS
Agenda
!  Project Scope
!  Objectives
!  Technical Wrap Up
!  Experiences
kreuzwerker
6What shall be served by a CMS
Objectives
kreuzwerker
7
Customer‘s Main Objectives.
Experiencing a technical dead end in regard of CMS updates
due to heavy customization expandability as well as easy
updatability was in the customer’s focus.
High
Responsive
Easy to Extend
Easy to Update
Magnolia
Sync
of
user
content
Custom DAM
What shall be served by a CMS
Strategy
Magnolia
Ruby on
Rails
Widget
Approach
Varnish
!  limit custom
code in the CMS
Updatability
!  state of the art
web framework
to cover
business
requirements
Expandability
!  fragment
caching of static
content.
Responsiveness
!  Web Publishing
Strategy
3 2
1
kreuzwerker
8What shall be served by a CMS
CMS Functions
!  Design & Branding
!  navigation bar
!  footer
!  teaser
!  Configuration
!  polls
!  games
!  Editorial Content
!  static pages (e.g. Impressum)
!  information about cruises, staff, etc.
!  Administration
!  process based publication
CMS
kreuzwerker
9What shall be served by a CMS
Application Functions
!  Asset Management
!  photos / videos
!  travelogues
!  galleries
!  Community Functions
!  votes/likes
!  private messaging
!  friendships
Ruby on Rails
kreuzwerker
10
!  Extensions
!  map features
!  poll/game logic
!  User Management
!  accounts
!  personal spaces
What shall be served by a CMS
Agenda
!  Project Scope
!  Objectives
!  Technical Wrap Up
!  Experiences
kreuzwerker
11What shall be served by a CMS
Architectural Sketch
kreuzwerker
12
The production system is deployed on two
hosts routed by a load balancer. Each host
provides its own varnish, a public CMS
instance and a Rails application instance.
!  Varnish
!  routing by selecting the appropriate
backend
!  ESI … Edge Side Includes
!  Backends
!  CMS
!  Rails Application
What shall be served by a CMS
!  fixed page layout in
regard of branding
!  application logic
dependent layout for
content area
!  limited number of
AJAX calls
Rails Application
Rendering Master ?
Rails App was set to
be the rendering
master for all pages
focusing on user
generated content
CMS was set to be
the rendering master
for all static pages as
well as pages
requiring free editorial
layouts (e.g. polls,
games).
!  embedding
application logic
as widget
requires heavy
use of AJAX
!  limited editorial
freedom
regarding
application pages
CMS
kreuzwerker
13What shall be served by a CMS
Rendering Master – Rails App’
kreuzwerker
14What shall be served by a CMS
Rendering Master – Rails App’
kreuzwerker
15
ESI
What shall be served by a CMS
Rendering Master – Rails App’
kreuzwerker
16
ESI
What shall be served by a CMS
Rendering Master – Rails App’
kreuzwerker
17
ESI
What shall be served by a CMS
Rendering Master – Rails App’
kreuzwerker
18
ESI
What shall be served by a CMS
Rendering Master – Rails App’
kreuzwerker
19
ESI
What shall be served by a CMS
Rendering Master – CMS
kreuzwerker
20What shall be served by a CMS
Rendering Master – CMS
kreuzwerker
21
ESI
ESI
What shall be served by a CMS
!  branding
!  editorial content
!  games
!  polls
!  moderation of comments
!  company blogs (editorial
content)
!  user generated content
!  assessment of polls / games
Rails ApplicationCMS
Administration
SSO to ease the burden of two applications
kreuzwerker
22What shall be served by a CMS
SSO between CMS and Rails App
kreuzwerker
23
!  missing company SSO
!  external editors
Pre-Condition
CMS login authenticates user in the Rails Apps
What shall be served by a CMS
Key: Magnolia Filter Chain
… common servlet filter
… back door login/logout code encapsulated
… update compatible
Pitfalls:
!  Cross Site Protection Mechanism of Rails
!  X-CSRF Token
!  Cookie
!  Storage of Rails App Authentication Cookie
SSO between CMS and Rails App
kreuzwerker
24What shall be served by a CMS
Games & Polls
!  game runtime resides in Rails
App via participation widgets,
which allow the user
interaction
!  widget is embedded into the
game/poll CMS page via ESI
!  game assessment is done via
admin interface (active admin)
Rails App
!  game configuration is done in
the CMS
!  start and end of participation
!  number of participation
attempts
!  intro texts, images etc.
!  layout of pages
!  winner announcement by
embedding announcement
widgets via ids
CMS
kreuzwerker
25What shall be served by a CMS
Games & Polls
Interaction CMS "# Rails (1/3)
kreuzwerker
26
Game Setup
game template
!  supports game
container
including various
rails widgets,
common CMS
editorial content
paragraphs
Publish Game
game config
!  hidden form
parameter
secured by
shared secret
!  first request
creates game in
Rails DB
Game Runtime
game content
!  assets and
users only
known to
Rails
!  depiction on
CMS pages
via widgets
What shall be served by a CMS
Games & Polls
Interaction CMS "# Rails (2/3)
kreuzwerker
27
Game
Assessment
administration/
assessment
!  Rails Active
Admin pages
Winner
Announcement
announcement
!  CMS paragraph
configuration
via user and
asset ids known
only to rails
!  widget
approach
Game
Removal
game container
deletion
!  Rails backend
has to be
informed
about
container
removal
What shall be served by a CMS
Games & Polls
Removal of the Game
kreuzwerker
28
!  a new version of a page is created when pushing
changes from author to public
!  check predecessor version for game identifiers not
included in current page
!  de-activate polls in rails via HTTP GET Request
(signature in header secures request)
!  synchronous call
What shall be served by a CMS
Agenda
!  Project Scope
!  Objectives
!  Technical Wrap Up
!  Experiences
kreuzwerker
29What shall be served by a CMS
Experiences
!  agile development
framework for application
logic
!  complex development setup
Strengths
!  easy adding of new features
without CMS know how
!  re-use of once developed
modules
!  abstraction level
!  learning curve of
development team
Opportunities Threats
Weaknesses+
kreuzwerker
30
+
–
–
What shall be served by a CMS
kreuzwerker
31
Experiences
Development Setup
!  automated setup of target platform via vagrant on
top of Virtual Box on each developer machine
!  Mac OS vs. Linux machines
!  provisioning of vagrant box via puppet
!  automated deployment of Rails App via rake
!  automated deployment of CMS via maven and
shell scripts
What shall be served by a CMS
kreuzwerker
32
Experiences
Development Setup
!  prolonged development cycle due to deployment
overhead
!  mocking of CMS in Rails part
!  ignoring Rails calls in CMS
!  additional time for integration tests
What shall be served by a CMS
!  setup of infrastructure with
small team before
development phase
!  continuous monitoring of
setup
!  re-use of technology in
staging and production area
!  continuous mentoring of
development & test team
!  continuous integration by
testing team
!  independent development due
to sparse mocking
Continuous Education & QMRamp Up
additional operational costs covered by advantages in the
long term
kreuzwerker
33
Experiences
Development Setup
What shall be served by a CMS
Thomas Körner
Thanks, for your attention
mail:
thomas.koerner@kreuzwerker.de
website:
www.kreuzwerker.de
kreuzwerker
34What shall be served by a CMS

Contenu connexe

Plus de Magnolia

Customer Engagement in the Digital Era
Customer Engagement in the Digital EraCustomer Engagement in the Digital Era
Customer Engagement in the Digital EraMagnolia
 
The Age of the IOT & Digital Business
The Age of the IOT & Digital BusinessThe Age of the IOT & Digital Business
The Age of the IOT & Digital BusinessMagnolia
 
Using Magnolia in a Microservices Architecture
Using Magnolia in a Microservices ArchitectureUsing Magnolia in a Microservices Architecture
Using Magnolia in a Microservices ArchitectureMagnolia
 
A modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianA modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianMagnolia
 
Magnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynoteMagnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynoteMagnolia
 
Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4Magnolia
 
Launching Magnolia on demand
Launching Magnolia on demandLaunching Magnolia on demand
Launching Magnolia on demandMagnolia
 
Front-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites fasterFront-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites fasterMagnolia
 
Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?Magnolia
 
Magnolia and the IOT
Magnolia and the IOTMagnolia and the IOT
Magnolia and the IOTMagnolia
 
Internationalization for globalized enterprise websites
Internationalization for globalized enterprise websitesInternationalization for globalized enterprise websites
Internationalization for globalized enterprise websitesMagnolia
 
The new visana website how to fit a square peg into a round hole
The new visana website   how to fit a square peg into a round holeThe new visana website   how to fit a square peg into a round hole
The new visana website how to fit a square peg into a round holeMagnolia
 
Solving for complex UI designs: a front-end perspective and approach
Solving for complex UI designs: a front-end perspective and approachSolving for complex UI designs: a front-end perspective and approach
Solving for complex UI designs: a front-end perspective and approachMagnolia
 
Extending Magnolia with our solutions
Extending Magnolia with our solutionsExtending Magnolia with our solutions
Extending Magnolia with our solutionsMagnolia
 
Boost your online e commerce with magnolia
Boost your online e commerce with magnoliaBoost your online e commerce with magnolia
Boost your online e commerce with magnoliaMagnolia
 
The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4Magnolia
 
Seamless integration with Magnolia's REST API
Seamless integration with Magnolia's REST APISeamless integration with Magnolia's REST API
Seamless integration with Magnolia's REST APIMagnolia
 
Dynamic page caching for Magnolia 5.4
Dynamic page caching for Magnolia 5.4Dynamic page caching for Magnolia 5.4
Dynamic page caching for Magnolia 5.4Magnolia
 
An integrated, fail safe e-business platform based on open source solutions
An integrated, fail safe e-business platform based on open source solutionsAn integrated, fail safe e-business platform based on open source solutions
An integrated, fail safe e-business platform based on open source solutionsMagnolia
 
Magnolia conference 2015 - Boris Kraft's keynote
Magnolia conference 2015 - Boris Kraft's keynoteMagnolia conference 2015 - Boris Kraft's keynote
Magnolia conference 2015 - Boris Kraft's keynoteMagnolia
 

Plus de Magnolia (20)

Customer Engagement in the Digital Era
Customer Engagement in the Digital EraCustomer Engagement in the Digital Era
Customer Engagement in the Digital Era
 
The Age of the IOT & Digital Business
The Age of the IOT & Digital BusinessThe Age of the IOT & Digital Business
The Age of the IOT & Digital Business
 
Using Magnolia in a Microservices Architecture
Using Magnolia in a Microservices ArchitectureUsing Magnolia in a Microservices Architecture
Using Magnolia in a Microservices Architecture
 
A modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianA modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at Atlassian
 
Magnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynoteMagnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynote
 
Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4
 
Launching Magnolia on demand
Launching Magnolia on demandLaunching Magnolia on demand
Launching Magnolia on demand
 
Front-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites fasterFront-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites faster
 
Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?
 
Magnolia and the IOT
Magnolia and the IOTMagnolia and the IOT
Magnolia and the IOT
 
Internationalization for globalized enterprise websites
Internationalization for globalized enterprise websitesInternationalization for globalized enterprise websites
Internationalization for globalized enterprise websites
 
The new visana website how to fit a square peg into a round hole
The new visana website   how to fit a square peg into a round holeThe new visana website   how to fit a square peg into a round hole
The new visana website how to fit a square peg into a round hole
 
Solving for complex UI designs: a front-end perspective and approach
Solving for complex UI designs: a front-end perspective and approachSolving for complex UI designs: a front-end perspective and approach
Solving for complex UI designs: a front-end perspective and approach
 
Extending Magnolia with our solutions
Extending Magnolia with our solutionsExtending Magnolia with our solutions
Extending Magnolia with our solutions
 
Boost your online e commerce with magnolia
Boost your online e commerce with magnoliaBoost your online e commerce with magnolia
Boost your online e commerce with magnolia
 
The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4
 
Seamless integration with Magnolia's REST API
Seamless integration with Magnolia's REST APISeamless integration with Magnolia's REST API
Seamless integration with Magnolia's REST API
 
Dynamic page caching for Magnolia 5.4
Dynamic page caching for Magnolia 5.4Dynamic page caching for Magnolia 5.4
Dynamic page caching for Magnolia 5.4
 
An integrated, fail safe e-business platform based on open source solutions
An integrated, fail safe e-business platform based on open source solutionsAn integrated, fail safe e-business platform based on open source solutions
An integrated, fail safe e-business platform based on open source solutions
 
Magnolia conference 2015 - Boris Kraft's keynote
Magnolia conference 2015 - Boris Kraft's keynoteMagnolia conference 2015 - Boris Kraft's keynote
Magnolia conference 2015 - Boris Kraft's keynote
 

Dernier

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Dernier (20)

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

What Shall be Served by a CMS?

  • 1. What shall be served by a CMS ? Just editorial content Basel, September 2013 Thomas Körner … experiences of a real project
  • 2. Agenda !  Project Scope !  Objectives !  Technical Wrap Up !  Experiences What shall be served by a CMS kreuzwerker 2
  • 3. Agenda !  Project Scope !  Objectives !  Technical Wrap Up !  Experiences kreuzwerker 3What shall be served by a CMS
  • 4. Social Community Platform of one of the biggest cruise lines in Germany !  user generated content as travelogues, blogs, photo galleries, video albums !  private messaging !  questions and answer module !  contests, polls and games !  commenting, likes Project Scope kreuzwerker 4What shall be served by a CMS
  • 5. Technical Re-Invest !  tight coupling of CMS and community functions prevented migration to new Drupal version !  CMS change according to the customers web publishing strategy !  usage of a custom digital asset management system Project Scope kreuzwerker 5What shall be served by a CMS
  • 6. Agenda !  Project Scope !  Objectives !  Technical Wrap Up !  Experiences kreuzwerker 6What shall be served by a CMS
  • 7. Objectives kreuzwerker 7 Customer‘s Main Objectives. Experiencing a technical dead end in regard of CMS updates due to heavy customization expandability as well as easy updatability was in the customer’s focus. High Responsive Easy to Extend Easy to Update Magnolia Sync of user content Custom DAM What shall be served by a CMS
  • 8. Strategy Magnolia Ruby on Rails Widget Approach Varnish !  limit custom code in the CMS Updatability !  state of the art web framework to cover business requirements Expandability !  fragment caching of static content. Responsiveness !  Web Publishing Strategy 3 2 1 kreuzwerker 8What shall be served by a CMS
  • 9. CMS Functions !  Design & Branding !  navigation bar !  footer !  teaser !  Configuration !  polls !  games !  Editorial Content !  static pages (e.g. Impressum) !  information about cruises, staff, etc. !  Administration !  process based publication CMS kreuzwerker 9What shall be served by a CMS
  • 10. Application Functions !  Asset Management !  photos / videos !  travelogues !  galleries !  Community Functions !  votes/likes !  private messaging !  friendships Ruby on Rails kreuzwerker 10 !  Extensions !  map features !  poll/game logic !  User Management !  accounts !  personal spaces What shall be served by a CMS
  • 11. Agenda !  Project Scope !  Objectives !  Technical Wrap Up !  Experiences kreuzwerker 11What shall be served by a CMS
  • 12. Architectural Sketch kreuzwerker 12 The production system is deployed on two hosts routed by a load balancer. Each host provides its own varnish, a public CMS instance and a Rails application instance. !  Varnish !  routing by selecting the appropriate backend !  ESI … Edge Side Includes !  Backends !  CMS !  Rails Application What shall be served by a CMS
  • 13. !  fixed page layout in regard of branding !  application logic dependent layout for content area !  limited number of AJAX calls Rails Application Rendering Master ? Rails App was set to be the rendering master for all pages focusing on user generated content CMS was set to be the rendering master for all static pages as well as pages requiring free editorial layouts (e.g. polls, games). !  embedding application logic as widget requires heavy use of AJAX !  limited editorial freedom regarding application pages CMS kreuzwerker 13What shall be served by a CMS
  • 14. Rendering Master – Rails App’ kreuzwerker 14What shall be served by a CMS
  • 15. Rendering Master – Rails App’ kreuzwerker 15 ESI What shall be served by a CMS
  • 16. Rendering Master – Rails App’ kreuzwerker 16 ESI What shall be served by a CMS
  • 17. Rendering Master – Rails App’ kreuzwerker 17 ESI What shall be served by a CMS
  • 18. Rendering Master – Rails App’ kreuzwerker 18 ESI What shall be served by a CMS
  • 19. Rendering Master – Rails App’ kreuzwerker 19 ESI What shall be served by a CMS
  • 20. Rendering Master – CMS kreuzwerker 20What shall be served by a CMS
  • 21. Rendering Master – CMS kreuzwerker 21 ESI ESI What shall be served by a CMS
  • 22. !  branding !  editorial content !  games !  polls !  moderation of comments !  company blogs (editorial content) !  user generated content !  assessment of polls / games Rails ApplicationCMS Administration SSO to ease the burden of two applications kreuzwerker 22What shall be served by a CMS
  • 23. SSO between CMS and Rails App kreuzwerker 23 !  missing company SSO !  external editors Pre-Condition CMS login authenticates user in the Rails Apps What shall be served by a CMS
  • 24. Key: Magnolia Filter Chain … common servlet filter … back door login/logout code encapsulated … update compatible Pitfalls: !  Cross Site Protection Mechanism of Rails !  X-CSRF Token !  Cookie !  Storage of Rails App Authentication Cookie SSO between CMS and Rails App kreuzwerker 24What shall be served by a CMS
  • 25. Games & Polls !  game runtime resides in Rails App via participation widgets, which allow the user interaction !  widget is embedded into the game/poll CMS page via ESI !  game assessment is done via admin interface (active admin) Rails App !  game configuration is done in the CMS !  start and end of participation !  number of participation attempts !  intro texts, images etc. !  layout of pages !  winner announcement by embedding announcement widgets via ids CMS kreuzwerker 25What shall be served by a CMS
  • 26. Games & Polls Interaction CMS "# Rails (1/3) kreuzwerker 26 Game Setup game template !  supports game container including various rails widgets, common CMS editorial content paragraphs Publish Game game config !  hidden form parameter secured by shared secret !  first request creates game in Rails DB Game Runtime game content !  assets and users only known to Rails !  depiction on CMS pages via widgets What shall be served by a CMS
  • 27. Games & Polls Interaction CMS "# Rails (2/3) kreuzwerker 27 Game Assessment administration/ assessment !  Rails Active Admin pages Winner Announcement announcement !  CMS paragraph configuration via user and asset ids known only to rails !  widget approach Game Removal game container deletion !  Rails backend has to be informed about container removal What shall be served by a CMS
  • 28. Games & Polls Removal of the Game kreuzwerker 28 !  a new version of a page is created when pushing changes from author to public !  check predecessor version for game identifiers not included in current page !  de-activate polls in rails via HTTP GET Request (signature in header secures request) !  synchronous call What shall be served by a CMS
  • 29. Agenda !  Project Scope !  Objectives !  Technical Wrap Up !  Experiences kreuzwerker 29What shall be served by a CMS
  • 30. Experiences !  agile development framework for application logic !  complex development setup Strengths !  easy adding of new features without CMS know how !  re-use of once developed modules !  abstraction level !  learning curve of development team Opportunities Threats Weaknesses+ kreuzwerker 30 + – – What shall be served by a CMS
  • 31. kreuzwerker 31 Experiences Development Setup !  automated setup of target platform via vagrant on top of Virtual Box on each developer machine !  Mac OS vs. Linux machines !  provisioning of vagrant box via puppet !  automated deployment of Rails App via rake !  automated deployment of CMS via maven and shell scripts What shall be served by a CMS
  • 32. kreuzwerker 32 Experiences Development Setup !  prolonged development cycle due to deployment overhead !  mocking of CMS in Rails part !  ignoring Rails calls in CMS !  additional time for integration tests What shall be served by a CMS
  • 33. !  setup of infrastructure with small team before development phase !  continuous monitoring of setup !  re-use of technology in staging and production area !  continuous mentoring of development & test team !  continuous integration by testing team !  independent development due to sparse mocking Continuous Education & QMRamp Up additional operational costs covered by advantages in the long term kreuzwerker 33 Experiences Development Setup What shall be served by a CMS
  • 34. Thomas Körner Thanks, for your attention mail: thomas.koerner@kreuzwerker.de website: www.kreuzwerker.de kreuzwerker 34What shall be served by a CMS