AgileSites @ TELMORE
Why TELMORE chose AgileSites, and
how we use it.
AgileSites @ TELMORE
• Agenda
1. Development: Before AgileSites
2. Development: After AgileSites
3. The new Architecture
4. Virtual Machine for local development
5. Building projects with SBT
6. Content Backup & Restore
7. Automatic testing
WebCenter Sites – before AgileSites
• Development drawbacks
– No code completion / syntax
highlighting (only in cumbersome
Eclipse plugin)
– No version control (no proper
simultaneous dev. possible)
– Very difficult to work on parallel
projects
– No local development(shared)
– Only ”self-produced” test-content
available for development – very
time consuming.
– Template/CS-Element –code a
mess of presentation/logic,
multiple languages etc.
– Attribute and Definition
construction very time consuming.
WebCenter Sites – before AgileSites
• Development drawbacks
– Unit test/Automated testing is not really possible
– Lot of development work is done in WebCenter Sites admin
interface(definitions, attributes...)
– Development very difficult for web developers and unattractive for
java developers.
– Very hard to troubleshoot, on error JSP page “explodes”
– Steep learning curve, you need to know a lot about the WebCenter
sites, gazillion JSP tags, lots of documentation
– Hard to find new resources for development with WebCenter Sites
development experience
– Difficult to let a design company deliver a html prototype
– Fit very poorly in a typical development process
WebCenter Sites – after AgileSites
• Development wins!
– Development tool agnostic
– Code completion / syntax
highlighting (“the easy way”)
– Version controlled
– Local development environment
(practically turn-key)
– Minute to minute transfer of
production-content to local
environment
– Ease of maintenance: Presentation
completely separated from logic
– Testing with standard testing tools
– Quick and easy setup of fully
functional CMS-environments
WebCenter Sites – after AgileSites
• Development wins!
– Content model defined in java -
Attributes / Definitions and
StartMenu-Items defined
programmatically
– Templates written in java
– Testing with standard testing tools
– Quick and easy setup of fully
functional CMS-environments
– Test automation is possible
– Ready for continuous build and
deployment
– Easy learning curve
– No extensive knowledge of
WebCenter sites necessary
– Fits very good in a typical
development process
WebCenter Sites /AgileSites Architecture
Local
development
Development
CMS
Staging Production
Test CMS
Content editors create content, QA
can test on staging or a publish can
be done to a test server for test
Dev promotes build, causes a
deploy.When needed, a publish
can be done to staging
Devloper commits code to
version control
WebCenter Sites /AgileSites Virtual
machine for local dev
• OS
• Prod: RHEL
• Dev: Centos
• Tools used
• Virtualbox
• Vagrant
• Packer
• Jenkins
• Nexus
• WCS install
• Custom install script
• Patch install
• Unattended
WebCenter Sites /AgileSites Virtual
machine for local dev
• Vagrantfile
• Custom settings via
environment variables
• Provisioning
• Ansible script
• Used for both dev and
prod
WebCenter Sites /AgileSites building
project
• SBT
• Build project
• Deploy content model
• Upload statics
• Compile LESS
• JS Lint
• Minify JS
• Unit tests
WebCenter Sites /AgileSites Content
backup / restore
• Publish
• Staging → ”Sidecar”
• Create backup
• Jenkins job
• Stop server
• Package data + statics
• Start server
• Restore
• Ansible script
• Stop server
• Download packaged data
+ statics
• Start server
• Automatic on initial VM
provisioning
WebCenter Sites /AgileSites Automatic
testing
• Unit tests
• Custom shell scripts
• HTTP response codes
• Error handling
• Redirects
• Template tests
• Built into AgileSites
• Unit tests
• Each build
• Template and custom
scripts
• Jenkins boots VM and
executes test against it
• Selenium
• Proof of concept only
Get Virtual
Image
• Get source code from version control system
• Get AgileSites/WCS image with everything
allready setup (Write vagrant up in local
comand prompt)
Deploy code
• Write sbt and AsDeploy in command prompt
• Go to dev.telmore.dk in local browser and
everything is ready. You now have a local
CMS running with production content
WebCenter Sites /AgileSites
Development Process
Local
developmnt
DONE

Agile sites @ telmore

  • 1.
    AgileSites @ TELMORE WhyTELMORE chose AgileSites, and how we use it.
  • 2.
    AgileSites @ TELMORE •Agenda 1. Development: Before AgileSites 2. Development: After AgileSites 3. The new Architecture 4. Virtual Machine for local development 5. Building projects with SBT 6. Content Backup & Restore 7. Automatic testing
  • 3.
    WebCenter Sites –before AgileSites • Development drawbacks – No code completion / syntax highlighting (only in cumbersome Eclipse plugin) – No version control (no proper simultaneous dev. possible) – Very difficult to work on parallel projects – No local development(shared) – Only ”self-produced” test-content available for development – very time consuming. – Template/CS-Element –code a mess of presentation/logic, multiple languages etc. – Attribute and Definition construction very time consuming.
  • 4.
    WebCenter Sites –before AgileSites • Development drawbacks – Unit test/Automated testing is not really possible – Lot of development work is done in WebCenter Sites admin interface(definitions, attributes...) – Development very difficult for web developers and unattractive for java developers. – Very hard to troubleshoot, on error JSP page “explodes” – Steep learning curve, you need to know a lot about the WebCenter sites, gazillion JSP tags, lots of documentation – Hard to find new resources for development with WebCenter Sites development experience – Difficult to let a design company deliver a html prototype – Fit very poorly in a typical development process
  • 5.
    WebCenter Sites –after AgileSites • Development wins! – Development tool agnostic – Code completion / syntax highlighting (“the easy way”) – Version controlled – Local development environment (practically turn-key) – Minute to minute transfer of production-content to local environment – Ease of maintenance: Presentation completely separated from logic – Testing with standard testing tools – Quick and easy setup of fully functional CMS-environments
  • 6.
    WebCenter Sites –after AgileSites • Development wins! – Content model defined in java - Attributes / Definitions and StartMenu-Items defined programmatically – Templates written in java – Testing with standard testing tools – Quick and easy setup of fully functional CMS-environments – Test automation is possible – Ready for continuous build and deployment – Easy learning curve – No extensive knowledge of WebCenter sites necessary – Fits very good in a typical development process
  • 7.
    WebCenter Sites /AgileSitesArchitecture Local development Development CMS Staging Production Test CMS Content editors create content, QA can test on staging or a publish can be done to a test server for test Dev promotes build, causes a deploy.When needed, a publish can be done to staging Devloper commits code to version control
  • 8.
    WebCenter Sites /AgileSitesVirtual machine for local dev • OS • Prod: RHEL • Dev: Centos • Tools used • Virtualbox • Vagrant • Packer • Jenkins • Nexus • WCS install • Custom install script • Patch install • Unattended
  • 9.
    WebCenter Sites /AgileSitesVirtual machine for local dev • Vagrantfile • Custom settings via environment variables • Provisioning • Ansible script • Used for both dev and prod
  • 10.
    WebCenter Sites /AgileSitesbuilding project • SBT • Build project • Deploy content model • Upload statics • Compile LESS • JS Lint • Minify JS • Unit tests
  • 11.
    WebCenter Sites /AgileSitesContent backup / restore • Publish • Staging → ”Sidecar” • Create backup • Jenkins job • Stop server • Package data + statics • Start server • Restore • Ansible script • Stop server • Download packaged data + statics • Start server • Automatic on initial VM provisioning
  • 12.
    WebCenter Sites /AgileSitesAutomatic testing • Unit tests • Custom shell scripts • HTTP response codes • Error handling • Redirects • Template tests • Built into AgileSites • Unit tests • Each build • Template and custom scripts • Jenkins boots VM and executes test against it • Selenium • Proof of concept only
  • 13.
    Get Virtual Image • Getsource code from version control system • Get AgileSites/WCS image with everything allready setup (Write vagrant up in local comand prompt) Deploy code • Write sbt and AsDeploy in command prompt • Go to dev.telmore.dk in local browser and everything is ready. You now have a local CMS running with production content WebCenter Sites /AgileSites Development Process Local developmnt DONE