Traffic Router - Migrating to 3.0

Release Notes v3.0

  • Replaced custom Java SNI implementation with a native implementation using tomcat-native, APR and OpenSSL. This should significantly improve the performance of routing HTTPS Delivery Services.

  • Upgraded to Tomcat 8.5.30

  • Separated the Traffic Router installation from the Tomcat deployment and created a new ‘tomcat’ package for installing Tomcat. Traffic Router and Tomcat can now be upgraded independently

  • Converted Traffic Router to a systemd(1) service

  • Modified the development test and deployment processes to be more consistent with production

System Requirements

  • Centos 7.9 or CentOS 8.2

  • OpenSSL >= 1.0.2 installed

  • JDK >= 8.0 installed or available in an accessible yum(8) repository

  • APR >= 1.4.8-3 installed or available in an accessible yum(8) repository

  • Tomcat Native >= 1.2.16 installed or available in an accessible yum(8) repository

  • tomcat >= 8.5-30 installed or available in an accessible yum(8) repository (This package is created automatically by the Traffic Router build process)

Upgrade Procedure

  • upload the dist/tomcat-version string.rpm file generated as a part of the build instructions outlined in Building Traffic Control to an accessible yum(8) repository

  • update the traffic_router package with yum(8)

  • restore property files

Upload tomcat.rpm

The term-version string.rpm package should have been created when Traffic Router was built according to the instructions in Building Traffic Control. It must must either be added to an accessible yum(8) repository, or manually copied to the servers where Traffic Router will be installed. It is generally better that it be added to a yum(8) repository because then it will be installed automatically when Traffic Router is updated.

Update the traffic_router Package

If openssl, apr, tomcat-native, java-1.8.0-openjdk, java-1.8.0-openjdk-devel and tomcat_tr packages are all in an available yum(8) repository then an upgrade can be performed by running yum update traffic_router as the root user or with sudo(8). This will first cause the apr, tomcat-native, java-1.8.0-openjdk, java-1.8.0-openjdk-devel and tomcat packages to be installed. When the tomcat package runs, it will cause any older versions of traffic_router or tomcat to be uninstalled. This is because the previous versions of the traffic_router package included an untracked installation of tomcat.

Restore Property Files

The install process does not override or replace any of the files in the /opt/traffic_router/conf directory. Previous versions of the traffic_ops.properties, traffic_monitor.properties and startup.properties should still be good. On a new install replace the Traffic Router properties files with the correct ones for the CDN.

Development Environment Upgrade

If a development environment is already set up for the previous version of Traffic Router, then openssl, apr and tomcat-native will need to be manually installed with yum(8) or rpm(8). Also, whenever either mvn clean verify or TrafficRouterStart is/are run, the location of the tomcat-native libraries will need to be made known to the JVM via command line arguments.

#57 Example Commands Specifying a Path to the tomcat-native Library
mvn clean verify -Djava.library.path=[tomcat native library path on your box]
java -Djava.library.path=[tomcat native library path on your box] TrafficRouterStart