Presented at 3|SHARE's EVOLVE'15 - The Adobe Experience Manager Community Summit on Monday August 17th, 2015 at the Hard Rock Hotel in San Diego, CA. http://evolve.3sharecorp.com
1. AUGUST 17, 2015
Cat Reusswig, Senior Director, Web Portals Engineering, Time Warner Cable
2. 2
How to begin?
What should the MVP be?
How do we roll it out?
AGENDA: ADVENTURES IN UPGRADING
3. 3
We started with one
scrum team focused on
driving the key
recommendations to
make regarding the
architecture changes
offered in 6.0
HOW TO BEGIN?
Mongo? Oak? Solr? Ours?.........
4. 4
Began to build a
roadmap of tasks and
key work items to
investigate
GETTING STARTED
The long road ahead…
5. 5
TarMk vs Mongo?
Mongo for authors if TarMk seems favorable for
pubs?
Java8 upgrade?
New clean vs upgrade in place?
6.0 vs 6.1?
How to handle all the API version updates?
How will teasers work in 6.0?
jQuery upgrade – how far to clean up old?
Google guava 15 vs 17…
Classic UI vs Touch UI?
When to start using Sightly?
DRIVING OUT THE QUESTIONS TO ANSWER
Inventoring the journey…
7. 7
1. Bare-bones as-is (as much as we can)
2. 6.1
3. Java8 upgrade
4. Cloud migration = new environments
5. = new deploy process
6. Pre-work: jQuery upgrade & component cleanup
7. Post work: new personalization, Campaign,
TouchUI…
WHAT SHOULD THE MVP BE?
Choices choices choices
8. 8
Lessons learned from 5.6.1 upgrade?
Which TWC site?
Should we do part of a site?
Should we consider a regional roll?
=Twc.com
=Full site
=All regions
HOW TO ROLL IT OUT?
9. 9
Check the Adobe
docs
Check the upgrade
scenarios
Check the Service
Pack info
Check performance
optimization
Try things – decide
your path
ALL THE OTHER STUFF YOU GOTTA DO…
Learn, research, experiment, list, test, decide…
10. Deploy Stack
INFRASTRUCTURE TOOLS
Haproxy
Web Server Web Server
AEM
Master
AEM
Replica
Terraform
Cloud Orchestration
OpenStack
Security Groups
Floating IPStorage/Volumes
DNSPuppet
Keys
Node/VM
12. 12
TarMk vs Mongo? TarMK for us
Mongo for authors Active/Passive Author cluster
Java8 upgrade? YES
New clean vs upgrade in place? Clean
6.0 vs 6.1? 6.1
How to handle all the API version updates?
tackle 1by1
How will teasers work in 6.0? As is
jQuery upgrade – how far to clean up old? Work
w the biz
Google guava 15 vs 17… v15
Classic UI vs Touch UI? Classic
When to start using Sightly? Still an IF
THE ANSWERS FOR TWC
Inventoring the journey…
13. 13
• Resolving uber jar issues
• Resolving bundle dependencies
• Testing, testing
• Updating OS Grabbit to work on both 5.6.1 & 6.1
• Syncing the jQuery final details
• Testing our environment build
• Getting ready for UAT in Sept
• Determining our final deploy plan & author freeze
• Getting excited to be DONE!
THE JOYS OF UPGRADING
#where_are_we?
How many of you are on 6.0/.1? How many of you upgraded to it? How many of you are in the process of starting your 6.0/.1 upgrade?
What are the key architectural recommendations that need to be determined? We took 1 of 6 agile scrum teams to begin this spike – we do a 2 week sprint cycle. What are the special things you’ve done and included in your configuration is what needs to be considered
APIs, Sessions, Users, Versions, new libraries, what changed?, new opportunities, Touch UI, ….
For us Google guava was already integrated at v17 when before Adobe did not ship with it included – now on 6.x it is included and it was down rev for us Not everyone will encounter this – check the customizations you’ve done to your AEM environment – for example we are on customized 5.4 teasers still
We had multiple objectives including a migration to the TWC Cloud which would give us redundancy. We wanted to focus our scope and change to what was important. We decided to work several things as post 6.1 work – we will also look at more sophisticated clustering for our author environments as post 6.1 more such as Touch UI
On 5.6.1 we had a big miss on performance testing our Author environments. It was our first big use of puppet to orchestrate our deployments. We started working on the DevOps work late in the cycle – we wanted to fix these things as we move to 6.1
There are resources out there – we’ve also been talking with other users and vendors about their experiences with 6.0/.1 regarding the issues, how they’ve solved them. Our biggest challenges have been with getting the deploy working consistently. I think we are there just now.
On the left you will see the Cloud stack that we are starting to use for build out our “Deploy Stack”
* Terraform provides a common launch infrastructure. Once launched, Terraform safely and efficiently changes infrastructure as the configuration evolves
* Terraform calls Puppet to handle the configuration of our applications. Terraforms calls an API that help assign and provide configuration via Puppet
* Terraform also calls a DNS API that help assigned hostname/Ips
ON the right side is an example of what Terraform helps set up in our environments. It can help set up application across machines and wire those configuration so they work together.
What puppet does for VMs, Terraform does for entire stack
We needed to add new plugins to our jenkins, we need to address multi-data center deployment and we needed to migrate our test grid to the cloud as part of this implementation
These are the answers for us – your answers and your list will be different…
We are at the point of adding more scrum teams each of the next couple of sprints until we get the entire team up on it, focusing on performance and clearing any new issues – it has definitely been peeling an onion with new layers each week. Hope you’ve learned something of use for you!