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 /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
8. 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
9. WebCenter Sites /AgileSites Virtual
machine for local dev
• Vagrantfile
• Custom settings via
environment variables
• Provisioning
• Ansible script
• Used for both dev and
prod
10. WebCenter Sites /AgileSites building
project
• SBT
• Build project
• Deploy content model
• Upload statics
• Compile LESS
• JS Lint
• Minify JS
• Unit tests
11. 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
12. 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
13. 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