EVOLVE'15 | Enhance | Loyola Baskar | Cisco - Multi-tenancy AEM Architecture enables FAST IT

  • View
    686

  • Download
    1

Embed Size (px)

Text of EVOLVE'15 | Enhance | Loyola Baskar | Cisco - Multi-tenancy AEM Architecture enables FAST IT

  • AUGUST 19, 2015Multi-tenancy AEM Architecture enables FAST IT

  • *Akhil Aggrawal

    Sr. Director, Architecture, EMCPreviously - Distinguish Engineer & Chief Architect Cisco.com

    linkedin.com/in/akhilaggrawal@akhil183BIO

  • *Loyola BaskarArchitect, CiscoBelieves data structure simplifies architectureLoves adding numbers to his FitbitPractices zero bug coding and blind debuggingBIO

  • AgendaImplementing Multi-tenant architectureSupporting Fast-IT using Fast deploy architecture

  • Ciscos Digital Presence355Mvisits to Cisco.com11.5Msocial reach3.9Mpaid search click-throughs112Morganic search referrals 40%34%71%4%10.7Mmobile web visits1.4Msocial referrers to Cisco.com3Msocial media mentions5.7Mcustomer app downloads2.5Mvideo views on Cisco.com

    Social MediaMobileWebVideo 7.5Mvideo views on Cisco YouTube47%

    [Date Range: Q1FY14 Q4FY14]Q1FY14 Q4FY14

    Updated 8/11/14: 1 year of data / Q1FY14 Q4FY14

    Web: 4% growth y/y for visits to cisco.comSocial Media: 40% growth y/y for social reachMobile: 34% growth y/y for app downloads / 71% for mobile web visitorsVideo: 47% growth y/y for youtube views*

  • Cisco.com Web Experience ManagementAve 1200 hits/sec @ Edge1.75m visitors41% to Cisco Datacenter28m hits @ Adobe AEM82m hits @ non-AEM (migration in fy15)

    Contains ~800K files (.html, .jpg, .gif, .pdf, .mobi and more) [35% of overall cisco.com content]~1.5 TB80M Nodes

    Source: Enterprise Operation Intelligence (Splunk) & Akamai Control Panel & Enterprise Web Analytics

    Talk about Splunk, New Relic*

  • *Implementing Multi-tenant architecture

  • subtopicChallenges in the pastMultitenant journeyMultitenant architectureContent organization in AEMweare.cisco.com use case

  • Problem statement30+ Web SitesNo Consistent User ExperienceNo GovernanceInefficient Web AnalyticsHigh Cost Per Site

  • *Multitenant journeyMar 2013Launched Intranet SiteCorporate Sites* Marketing* Support* Solutionsweare.cisco.comAEM 5.5 Provisioned

    Microsites Implementation

    Global Sites* UK* Japan* China* ...Feb 2014salesconnectOct 2014nic.ciscosupplychainlifeconnectionsJul 2015Nov 2015FAST Deploy

  • *Multitenant architectureDNS/Site SelectorCorporate website Load BalancerMicrosites Load BalancerIntranet/Employee Website Load BalancerApache web servers with DispatcherApache DBM fileAEM 5.5 (Publish)AEM 5.5 (Author)

    Special Rule to transform request URL to a destination Folder in AEM based on entry point SEO ConsiderationSeparation of sites from one anotherSecurity RequirementsInternal Vs External content

    Domain name to respective Load Balancer IP MappingIdentical stack in 3 data centersActive-Active-Passivehttxt2dbm

  • *

    Corporate website

    Intranet website

    All campaign and micro websites Information Organization in AEm

  • *How do we host a site on aemMap weare.cisco.com to

    the microsite IP address

    2. Map weare.cisco.com to an AEM Folder3. Create the AEM Folders/content/micro/weare/content/dam/micro/weare

  • *Under the hoodhttp://weare.cisco.com/amazingpeople.htmlGET /amazingpeople.htmlHOST: weare.cisco.com Add Load Balancer IdentifierGET /amazingpeople.htmlHOST: weare.cisco.com X-LB-ID: micro-cisco-publicRewriteMap realms "dbm:~/db/mapping.dbm"RewriteCond %{HTTP:X-LB-ID} micro-cisco-publicRewriteRule .? - [E=micro:${realms:%{HTTP_HOST}}0}]

    RewriteCond %{ENV:micro} !0ReWriteRule /content/(.*) /content/micro/%{ENV:micro}/$1/content/micro/weare/amazingpeople.htmlGET /content/micro/weare/amazingpeople.htmlHOST: weare.cisco.com X-LB-ID: micro-cisco-public

  • *Supporting Fast-IT using Fast deploy architecture

  • What is fast deployFast code deployment< 5 minutes per DC for 30+ bundles (earlier 45 minutes)Resumes deploy from where last stopped/failedTrue Zero Downtime to End UserNo disruption to even the requests in progressSanity Test support on the deploymentSanity users use the same domain as the end users

  • Fast APP CODE deploy Udeploy pulls the required bundles from Artifactory for a given buildFirst and last bundle go in sequenceRest of the bundles go in parallelTool retries deploy only bundles that failedThe deployments progress parallel to all AEM in a DC

    pkgmgr

  • *Fast deploy architectureDomain to IP Address ResolutionRound Robin IP Distribution

    Primary Load BalancersUse http probe health checkSynthetic DC failure

    Secondary Load Balancers (private)Used for DC fail overUse tcp/ip to stay connected

    during sanity testingRegular Traffic patternHttpprobeHttpprobetcpprobetcpprobefailover5050failover

  • *HttpprobeHttpprobetcpprobetcpprobeDC1 Deployment: END user use case1. Probe page deleted manually to force the DC1 failure2. End User Traffic moved to DC23. When all logs stop, DC1 ready for Code deploymentThe requests in DC will complete without failNew requests

  • *sanity user notification

  • *HttpprobeHttpprobetcpprobetcpprobeDC1 Deployment: sanity user use caseDeployment Complete in DC1 and is ready for sanity testingSanity user comes with a special cookieApache Special Rewrite Rule Proxy the user to DC1 through DC1

    ReWriteCond %{QUERY_STRING} sanitykey=xxkey [OR]ReWriteCond %{HTTP_COOKIE} sanitykey=xxkeyReWriteRule .? http://dc2shadow.cisco.com%{REQUEST_URI} [L,P]

  • *Thank you.RecapA new campaign/microsite can be launched in few hoursCosts nothing to host a siteEfficient deployment model < 5 min per dcZero downtime for end userRealistic Sanity testing support

  • Apache rewrite rules

    ReWriteCond %{QUERY_STRING} sanitykey=xxkeyReWriteRule .? - [CO=sanitykey:xxkey:.cisco.com:60:/]

    ReWriteCond %{QUERY_STRING} sanitykey=xxkey [OR]ReWriteCond %{HTTP_COOKIE} sanitykey=xxkeyReWriteCond ~/f/fastdeploy.at.dc1 -fReWriteRule .? http://dc2shadow.cisco.com%{REQUEST_URI} [L,P]RewriteMap realms "dbm:~/db/mapping.dbm"RewriteCond %{HTTP:X-LB-ID} micro-cisco-publicRewriteRule .? - [E=micro:${realms:%{HTTP_HOST}}0}]

    RewriteCond %{ENV:micro} !0ReWriteRule /content/(.*) /content/micro/%{ENV:micro}/$1MULTITENANT REWRITE RULEFAST DEPLOY REWRITE RULE

    Updated 8/11/14: 1 year of data / Q1FY14 Q4FY14

    Web: 4% growth y/y for visits to cisco.comSocial Media: 40% growth y/y for social reachMobile: 34% growth y/y for app downloads / 71% for mobile web visitorsVideo: 47% growth y/y for youtube views*Talk about Splunk, New Relic*