SlideShare a Scribd company logo
UNLEASHING THE POWER
Cisco’s next-gen platform for WebEx free trials
Phillip Shipley
Manager, Web Development
Collaboration Software Group
Cisco Systems
ZEND & VMWARE
1
Hello and welcome.
My name is Phillip Shipley and I work for Cisco Systems in the WebEx business unit where I
manage the Web Development team supporting marketing on webex.com.
Today I’ll be talking to you about a recent project of ours in which we used Zend and VMware
to successfully deploy a new free trials platform for our products.
CC: http://www.flickr.com/photos/dramaqueennorma/191063346/
WHO IS ?
• Founded in 1996.
• Acquired by Cisco in 2007.
• Leading SaaS provider of online meetings and collaboration
services.
• Over one billion minutes monthly.
• Primary focus of webex.com is sales and lead gen.
• Primary source of leads come from free trials.
2
1. Founded in 1996 by Min Zhu and Subrah Iyer right here in the valley.
2. We were recently acquired by Cisco in 2007.
3. We are the leading Software-as-a-Service provider of online meetings and collaboration
services.
4. Our customers use over one billion people minutes monthly, that is the combined amount
of time for all users.
5. Our primary focuses on webex.com are sales and lead generation.
6. I’ll be focusing on the lead generation aspect and specifically with our free trial platform,
which is the main source of leads for us.
7. Next I’ll be telling you about our problem that led us into this project, but first let me give
you a little more context about what a “free trial” of our service is.
8. On webex.com, we have a call to action for users to sign up for a free trial, which is pretty
much a requirement for a software-as-a-service product.
9. When a user opts in for a free trial, they are taking through a signup flow that contains two
pages of form input and a confirmation screen. So later when I talk about completion rate
and timeouts, it is this flow that I am describing.
10.[NEXT]: OUR PROBLEM
FUNCTIONAL SPAGHETTI
3
1. I like to describe our previous platform as Functional Spaghetti.
2. What I mean by this is that the previous platform was developed over the course of several
years and constantly patched and extended to support new languages and products.
3. Unfortunately through this time and process, multiple individuals contributed to the code
without any standards or consistent practices. So we had a solution that worked to this point,
but was in no condition to scale to new demands.
4. As a result of the “functional spaghetti” nature of the old platform, we had several
technical and business challenges.
CC: http://www.flickr.com/photos/oskay/2177296503/
Not actually WebEx, illustration only ;-)
TECHNOLOGY
CHALLENGES
1. Change Management
2. Knowledge Management
3. Coding Standards (lack of)
4. Procedural
5. Not transactional
6. PHP4
7. Very slow
4
1. Inconsistent and patched together code made it very dangerous to make changes.
2. Over the years there was only ever a single developer responsible for the platform, and so
there was very little documentation or shared knowledge with rest of the team. About a year
ago the primary expert retired, and quick knowledge transfer to a teammate was insufficient.
3. Inconsistent coding practices, repeated code across files, irrelevant variable and method
names, I myself could barely traverse it.
4. Fully procedural code, no consistent entry point, not transactional, nor fault-tolerant
5. PHP 4 and originally depended on register_globals, however we fixed that a few years ago
6. Fully synchronous and during peak periods, very slow
7. And by the way, this picture was not taken at WebEx.
CC: http://www.flickr.com/photos/geo462rge/3139251796/
1.Time-to-Market
2.Self-Service, Scalability
3.Reporting
4.Reliability, High-Risk
5.Performance
BUSINESS
CHALLENGES
5
1. Trial offer creation was very manual, with each trial having its own set of templates and
often times custom logic in the code specifically for it. A new trial offer took 2-5 days to
setup.
2. No business user self-service, so every small change required a developer, even for minor
content updates.
3. Limited Reporting built into the platform, we had to depend on external sources like web
analytics and our CRM.
4. Based on the risks of modifying the code, QA demands where high for small changes and
thus we often opted out of a change just based on the effort to test and ensure everything
was still working.
5. Poor user experience during peak traffic which would often cause timeouts when waiting
for the confirmation page of a signup.
OPPORTUNITY
6
1. With the acquisition by Cisco, we were able to see that Cisco sales so much product because they
have tens of thousands of partners who do the majority of their sales.
2. WebEx on the other hand only had a few dozen partners and we did most of our sales through
internal reps.
3. In order for WebEx to take the next step of growth, we would need to leverage more partners for
sales.
4. As I mentioned before, creating a custom trial signup experience took 2-5 days, so the thought of
thousands of partners wanting to offer co-branded trials made it clear that we needed to do
something about our free trials platform to support such growth.
OUR
SOLUTION
Robust Popsicle Sticks
7
As you can see we are no longer building with spaghetti, but we wanted to continue using a
lightweight material, that was both agile and strong, but could also support complex
architectures.
Use existing
code? What language?
Java or PHP?
Framework?
Which?
Community Edition?
Enterprise?
Physical or
virtual?
NO
PHP
DECISION MAKING
8
Extend existing code base?
! [CLICK]
No, although the existing platform has served our needs thus far, for all the reasons I described earlier it would probably
be more work to refactor it to a solution we could scale than it would be to start from scratch.
Language: PHP or Java or other?
Java is very common in WebEx and Cisco for major services, but it has a longer development cycle and tends to be a
little too heavy for an agile web environment.
PHP on the other hand is something we had already proven was very adaptive, performant, and could be developed with
quickly. And since PHP5 it has really moved from being a web scripting language to a solid object oriented language.
And both a blessing and a curse, PHP is forgiving enough to let you write your code as structured or unstructured as
you want, so you are not forced to write everything 100% OOP if a particular part of an app does not need extension or
reuse.
[CLICK]
Switch to standardized framework?
Which framework? Cake, CodeIgniter, Symphony, Zend
[CLICK]
Chose Zend:
Newer framework, giving it the benefit of being able to learn from otherʼs mistakes.
Mature development lifecycle, friendly to enterprise expectations.
Modular design and implementation options (stack or glue).
Nice integration with Zend Studio.
PHP: Community edition or Enterprise edition?
Community edition:
•" Free, but since it is necessary to recompile in order to enable some extensions, it is a lot more work to maintain. Also
in a corporate environment, where developers do not have root access to servers, there is an added layer of
complexity for the developers to work with the system admins on what changes to make and how, which can add
significant amounts of time to do something as simple as enable mysql support.
•" Little to no support beyond the community, and when something as critical as our free trial system is at stake, we want
someone to call should there be a problem.
•" Requires external services for advanced features like caching or job queues.
Enterprise edition:
•" Reasonable cost, easy configuration and management through web GUI. Central management for entire clusters
•" Advanced features like job queues, caching, code tracing, etc.
External
ORM
DB
JQ SC ZF
Events
LDAP
WebEx APIs
CRM
NFS
Free Trial App
VM VM VM
LB
Reports Cache
HIGH-LEVEL ARCHITECTURE
9
Bottoms up:
	

 We start withVMware as our virtualization platform.
	

 On top of that we run several web serverVMs in a load balanced configuration (RHEL5,Apache2.2).
	

 For our PHP app server we run Zend Server 5, centrally managed with Zend Server Cluster Manager.
	

 For our Database we are running MySQL Enterprise 5.1.
	

 For our application itself, we’ve taken advantage of Zend Framework and Zend Server capabilities wherever appropriate, including, but
not comprehensive:
	

 	

 Zend Framework - Zend_Auth, Zend_Localize, Zend_Log, Zend_Db, Zend_Validate, Zend_Test...
	

 	

 Zend Server - Job Queues, Cache, Session Clustering, and Events
	

 We also created our own library of classes for use across multiple applications for things like WebEx API abstraction, authentication, an
object-relationship-mapper,
	

 	

 customer-relationship-manager interaction, and themes (template sets).
WHAT WORKED
1. Starting from scratch
2. Agile development
3. Zend Framework, Server
4. Zend Support, Consulting
5. Virtualization
6. Continuous Integration
10
1. Staring from scratch, great opportunity to make better decisions, and we learned a lot through the process.
2. Agile development process - iterative development cycle saved wasted time on features no longer needed and
kept the business closer to the developers.
3. Zend Framework - Pretty good documentation and resources online, huge community for support. Established
coding standards for consistent development, abstracted design patterns for better organization and
separation of concerns.
4. Zend Server - I mentioned most of the components we are using in the last slide, but perhaps my favorite is the
Job Queue and how we are able to disconnect backend processing from the user’s session.
5. Zend Support - We ran into a few issues through the process of deploying Zend Server, but the Zend Support
team was very responsive and persistent with resolving our issues.
6. Zend Consulting - Early in our design process we were able to meet with several product managers at Zend,
including Matthew Weier O’Phinney and review our plans for Zend Server and Framework usage. Received some
great feedback on which components to use and which not to use.
7. Virtualization - Ridiculously convenient to deploy new servers and clone existing ones.
8. Continuous Integration - Identify issues sooner by running unit tests regularly.
CC: http://www.flickr.com/photos/whappen/2077570455/
LESSONS LEARNED
1.Learn a major ORM
2.Be persistent
3.Leverage the
knowledge
4.Consult for speed
5.Ask for directions
11
1. Take the time to learn a major ORM, don’t write your own. Ours started simple, but with every iteration it had to
be extended to add more functionality and became complex quickly and harder to debug.
2. Virtualization was common in dev and QA environments, but we hadn’t done much with it in production. Being
the first use case in production took a little extra persistence in the process of approvals, but has paid off in terms
of time-to-market and time-to-capability. Also very convenient to try something out on a clone and delete it if
change doesn’t work.
3. Don’t re-invent the wheel, we saved a ton of time taking advantage of Zend Framework and Zend Server. Also,
an excellent development best practice is to google-before-headache and ask on stack overflow.
4. Engage with Zend Consulting to gain insight early in development lifecycle. I’m sure if we had consulted
regarding object persistence with Zend Framework we would have been pointed to one of the many examples of
combining Zend Framework and Doctrine.
5. Zend Server has a lot of configurations not exposed through UI, so if you wish you could change some
behavior, contact support before giving up.
CC: http://www.flickr.com/photos/whappen/2077570455/
ALIGNING WITH
THE BUSINESS
Spaces, not tabs!
12
The CIO of Cisco, Rebecca Jacoby, once told us that if we want someone to adopt our
software, we need to build it how they want it.
When developers go wild and build something the way they think it should work, even if the
application is awesome from a technology stand point, it will probably be a complete failure.
So let me tell you some of the ways we aligned with our business partners to be successful.
• Requirements
• Close involvement
• Investment
• Collaborate on Priorities
• Progressive UAT
BUSINESS SUPPORT
13
1. Often times the business requirements process for an application takes longer than development
itself, and the end result is never what the business originally pictured. So rather than go through a
tedious requirements process, we started with a shortened cycle for gathering requirements and used
the list to kick start our product backlog.
2. Following the Scrum agile development process, we maintained a close involvement from the
business to modify and prioritize the backlog, which resulted in a significantly different final product,
based on changes in priorities and experience.
3. Our business partners not only invested in the project financially by more importantly with their
time. Had we just received a huge requirements document and been told to return when complete, we
certainly would have failed.
4. There are a few teams considered as stakeholders to our free trial experience, so keeping them all
involved in a collaborative prioritization process we were able to keep them in sync as well as let them
make decisions about changes.
5. A fundamental principle of the scrum process is the sprint review, which includes anyone who is
interested to come out and see what work was done in the previous sprint. Through this process we
constantly had business users interacting with the application, which is really user acceptance testing.
CC: http://www.flickr.com/photos/quinnanya/4670060977
KEY RESULTS
• Sign-up time: 68%
• Completion: 800%
• Time-to-Market: 300x
• Time-to-Capacity: 30x
14
• Utilizing Job Queues, overall time to signup improved by 68%.
• Signup completion rate improved 800% (due to previous system timing out during peak hours).
• Time to create new trial offer decreased from 2 days to 5 minutes.
• Time to increase capacity decreased from 2 months to 2 days (VM cloning).
VIRTUALIZATION
• Key for Cisco
• VMware ESX
• Cloning
• No downtime
• Dedicated clusters
• Speed
• MySQL Enterprise
• Extended HA
• Physical Consolidation
15
• Key initiative for Cisco
• VMware ESX
• Resource prioritization
• Highly Available
• Cloning
• Configured once, clone as needed
• Single VM setup took 1-2 days, clone only takes minutes
• No downtime for physical maintenance or upgrades.
• Dedicated application clusters
• Resource prioritization
• Ease of maintenance
• Problem isolation
• Session clustering across clusters for multiple applications
• Physical server procurement and deployment took at least two months, cloning a new VM takes minutes.
• MySQL Enterprise certified for VMware with negligible performance cost.
• Extended HA combining VMware and Zend Server Cluster Manager.
• Cost savings by consolidating physical servers and reducing data center footprint.
CC: http://www.flickr.com/photos/fdecomite/3955354747/
SUMMARY
Yesterday & Tomorrow
16
• Starting over
• Zend Monitor & Tracing
• Collaboration with Zend
• Zend Community
17
• We saw an opportunity, made the rare choice to start over, ended up with not only an awesome free trials platform, but a framework to
use for future applications.
• New visibility from Zend Monitor has led to several performance enhancements in combination with CodeTracing.
• Working closely with Zend provided us with great insight into Server and Framework and helped us make key decisions about
architecture.
• Huge community of Zend Framework developers provided us with examples and answers to all our questions.
• Zend Studio 8
• VM Template
• Reviews with Zend
• Developer kit packaging
18
• Take advantage of Zend Studio 8’s integration withVMware Workstation for improved development
and testing.
• CreateVM template based on our ZF application template for kick starting new applications and test
environments.
• Regular reviews with Zend for product development road maps.
• As Matt Merchant talked about yesterday, packaging all the developer tools and guides for consistent
environments and practices for improved efficiency.We’ve standardized on things like Zend Studio and
Server, and have developer guides, but have not taken the step to preparing a ready-to-go bundle for
efficient ramp-up of new developers.
19
Knock knock
19
Who’s there?
20
Loading...
21
...very...long...pause...
22
THANK YOU
phillip.shipley@webex.com
Case study coming soon on zend.com
Slides available at www.webex.com/m/zendcon2010.pdf
23
Ad

More Related Content

What's hot (20)

ACUCOBOL - Product Strategy and Roadmap
ACUCOBOL - Product Strategy and RoadmapACUCOBOL - Product Strategy and Roadmap
ACUCOBOL - Product Strategy and Roadmap
Micro Focus
 
New CA 2E 8.7 (Synon) and CA 7.1 , Invigorated
New CA 2E 8.7 (Synon) and CA 7.1 , Invigorated New CA 2E 8.7 (Synon) and CA 7.1 , Invigorated
New CA 2E 8.7 (Synon) and CA 7.1 , Invigorated
Mark O'Brien
 
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax PluginsHnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
dominion
 
Delivering Applications Continuously to Cloud
Delivering Applications Continuously to CloudDelivering Applications Continuously to Cloud
Delivering Applications Continuously to Cloud
IBM UrbanCode Products
 
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Ian Robinson
 
Working effectively with OpenShift
Working effectively with OpenShiftWorking effectively with OpenShift
Working effectively with OpenShift
Shekhar Gulati
 
Developing Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaDeveloping Great Apps with Apache Cordova
Developing Great Apps with Apache Cordova
Shekhar Gulati
 
Travelling Light for the Long Haul - Ian Robinson
Travelling Light for the Long Haul -  Ian RobinsonTravelling Light for the Long Haul -  Ian Robinson
Travelling Light for the Long Haul - Ian Robinson
mfrancis
 
Devops interview questions 2 www.bigclasses.com
Devops interview questions  2  www.bigclasses.comDevops interview questions  2  www.bigclasses.com
Devops interview questions 2 www.bigclasses.com
bigclasses.com
 
Drupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond JenkinsDrupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond Jenkins
Promet Source
 
Dev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops toolsDev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops tools
JanBask Training
 
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCode
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCodeContinuous Application Delivery to WebSphere - Featuring IBM UrbanCode
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCode
IBM UrbanCode Products
 
Demystify LDAP and OIDC Providing Security to Your App on Kubernetes
Demystify LDAP and OIDC Providing Security to Your App on KubernetesDemystify LDAP and OIDC Providing Security to Your App on Kubernetes
Demystify LDAP and OIDC Providing Security to Your App on Kubernetes
VMware Tanzu
 
CA_Plex_SupportForModernizingIBM_DB2_for_i
CA_Plex_SupportForModernizingIBM_DB2_for_iCA_Plex_SupportForModernizingIBM_DB2_for_i
CA_Plex_SupportForModernizingIBM_DB2_for_i
George Jeffcock
 
Creating a DevOps Team that Isn't Evil
Creating a DevOps Team that Isn't EvilCreating a DevOps Team that Isn't Evil
Creating a DevOps Team that Isn't Evil
IBM UrbanCode Products
 
Composer tools and frameworks for drupal.ppt
Composer tools and frameworks for drupal.pptComposer tools and frameworks for drupal.ppt
Composer tools and frameworks for drupal.ppt
Promet Source
 
Selenium-corporate-training-in-mumbai
Selenium-corporate-training-in-mumbaiSelenium-corporate-training-in-mumbai
Selenium-corporate-training-in-mumbai
Unmesh Baile
 
UrbanCode Deploy and Docker Containers Connect the Dots
UrbanCode Deploy and Docker Containers Connect the DotsUrbanCode Deploy and Docker Containers Connect the Dots
UrbanCode Deploy and Docker Containers Connect the Dots
IBM UrbanCode Products
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Brian Culver
 
Do modernizing the Mainframe for DevOps.
Do modernizing the Mainframe for DevOps.Do modernizing the Mainframe for DevOps.
Do modernizing the Mainframe for DevOps.
Massimo Talia
 
ACUCOBOL - Product Strategy and Roadmap
ACUCOBOL - Product Strategy and RoadmapACUCOBOL - Product Strategy and Roadmap
ACUCOBOL - Product Strategy and Roadmap
Micro Focus
 
New CA 2E 8.7 (Synon) and CA 7.1 , Invigorated
New CA 2E 8.7 (Synon) and CA 7.1 , Invigorated New CA 2E 8.7 (Synon) and CA 7.1 , Invigorated
New CA 2E 8.7 (Synon) and CA 7.1 , Invigorated
Mark O'Brien
 
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax PluginsHnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
dominion
 
Delivering Applications Continuously to Cloud
Delivering Applications Continuously to CloudDelivering Applications Continuously to Cloud
Delivering Applications Continuously to Cloud
IBM UrbanCode Products
 
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Ian Robinson
 
Working effectively with OpenShift
Working effectively with OpenShiftWorking effectively with OpenShift
Working effectively with OpenShift
Shekhar Gulati
 
Developing Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaDeveloping Great Apps with Apache Cordova
Developing Great Apps with Apache Cordova
Shekhar Gulati
 
Travelling Light for the Long Haul - Ian Robinson
Travelling Light for the Long Haul -  Ian RobinsonTravelling Light for the Long Haul -  Ian Robinson
Travelling Light for the Long Haul - Ian Robinson
mfrancis
 
Devops interview questions 2 www.bigclasses.com
Devops interview questions  2  www.bigclasses.comDevops interview questions  2  www.bigclasses.com
Devops interview questions 2 www.bigclasses.com
bigclasses.com
 
Drupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond JenkinsDrupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond Jenkins
Promet Source
 
Dev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops toolsDev ops tutorial for beginners what is devops & devops tools
Dev ops tutorial for beginners what is devops & devops tools
JanBask Training
 
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCode
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCodeContinuous Application Delivery to WebSphere - Featuring IBM UrbanCode
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCode
IBM UrbanCode Products
 
Demystify LDAP and OIDC Providing Security to Your App on Kubernetes
Demystify LDAP and OIDC Providing Security to Your App on KubernetesDemystify LDAP and OIDC Providing Security to Your App on Kubernetes
Demystify LDAP and OIDC Providing Security to Your App on Kubernetes
VMware Tanzu
 
CA_Plex_SupportForModernizingIBM_DB2_for_i
CA_Plex_SupportForModernizingIBM_DB2_for_iCA_Plex_SupportForModernizingIBM_DB2_for_i
CA_Plex_SupportForModernizingIBM_DB2_for_i
George Jeffcock
 
Creating a DevOps Team that Isn't Evil
Creating a DevOps Team that Isn't EvilCreating a DevOps Team that Isn't Evil
Creating a DevOps Team that Isn't Evil
IBM UrbanCode Products
 
Composer tools and frameworks for drupal.ppt
Composer tools and frameworks for drupal.pptComposer tools and frameworks for drupal.ppt
Composer tools and frameworks for drupal.ppt
Promet Source
 
Selenium-corporate-training-in-mumbai
Selenium-corporate-training-in-mumbaiSelenium-corporate-training-in-mumbai
Selenium-corporate-training-in-mumbai
Unmesh Baile
 
UrbanCode Deploy and Docker Containers Connect the Dots
UrbanCode Deploy and Docker Containers Connect the DotsUrbanCode Deploy and Docker Containers Connect the Dots
UrbanCode Deploy and Docker Containers Connect the Dots
IBM UrbanCode Products
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Brian Culver
 
Do modernizing the Mainframe for DevOps.
Do modernizing the Mainframe for DevOps.Do modernizing the Mainframe for DevOps.
Do modernizing the Mainframe for DevOps.
Massimo Talia
 

Similar to Cisco webex zend con2010 presentation (20)

IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101
Sanjeev Sharma
 
Docker Containers in the Enterprise DevOps Journey
Docker Containers in the Enterprise DevOps JourneyDocker Containers in the Enterprise DevOps Journey
Docker Containers in the Enterprise DevOps Journey
TechWell
 
Cisco web ex-cs-0511-final
Cisco web ex-cs-0511-finalCisco web ex-cs-0511-final
Cisco web ex-cs-0511-final
El Taller Web
 
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
eZ Systems
 
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
jaxconf
 
Streamlining Deployments in a Large Websphere Environment
Streamlining Deployments in a Large Websphere Environment Streamlining Deployments in a Large Websphere Environment
Streamlining Deployments in a Large Websphere Environment
XebiaLabs
 
.Net @ Neev
.Net @ Neev.Net @ Neev
.Net @ Neev
Neev Technologies
 
Resume raushan
Resume raushanResume raushan
Resume raushan
Raushan Choudhary
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
VMware Tanzu
 
Legacy to industry leader: a modernization case study
Legacy to industry leader: a modernization case studyLegacy to industry leader: a modernization case study
Legacy to industry leader: a modernization case study
OSSCube
 
Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...
Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...
Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...
WDP Technologies
 
How Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comHow Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.com
Salesforce Engineering
 
VidyaBhooshanMishra_CV
VidyaBhooshanMishra_CVVidyaBhooshanMishra_CV
VidyaBhooshanMishra_CV
Landis+Gyr
 
Back To Basics
Back To BasicsBack To Basics
Back To Basics
kamalikamj
 
Cake Php Consultant
Cake Php ConsultantCake Php Consultant
Cake Php Consultant
Imranahmed_19
 
Enterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using JenkinsEnterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using Jenkins
CollabNet
 
Manish_Gupta
Manish_GuptaManish_Gupta
Manish_Gupta
manish gupta
 
Datasheet.net pluginforrd
Datasheet.net pluginforrdDatasheet.net pluginforrd
Datasheet.net pluginforrd
MidVision
 
Devops interview-questions-PDF
Devops interview-questions-PDFDevops interview-questions-PDF
Devops interview-questions-PDF
Mayank Kumar
 
DevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practicesDevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practices
ayoubbahaddouayoub
 
IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101
Sanjeev Sharma
 
Docker Containers in the Enterprise DevOps Journey
Docker Containers in the Enterprise DevOps JourneyDocker Containers in the Enterprise DevOps Journey
Docker Containers in the Enterprise DevOps Journey
TechWell
 
Cisco web ex-cs-0511-final
Cisco web ex-cs-0511-finalCisco web ex-cs-0511-final
Cisco web ex-cs-0511-final
El Taller Web
 
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
eZ Systems
 
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
jaxconf
 
Streamlining Deployments in a Large Websphere Environment
Streamlining Deployments in a Large Websphere Environment Streamlining Deployments in a Large Websphere Environment
Streamlining Deployments in a Large Websphere Environment
XebiaLabs
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
VMware Tanzu
 
Legacy to industry leader: a modernization case study
Legacy to industry leader: a modernization case studyLegacy to industry leader: a modernization case study
Legacy to industry leader: a modernization case study
OSSCube
 
Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...
Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...
Top 8 Reasons ASP.NET Core is the Best Framework for Web Application Developm...
WDP Technologies
 
How Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comHow Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.com
Salesforce Engineering
 
VidyaBhooshanMishra_CV
VidyaBhooshanMishra_CVVidyaBhooshanMishra_CV
VidyaBhooshanMishra_CV
Landis+Gyr
 
Back To Basics
Back To BasicsBack To Basics
Back To Basics
kamalikamj
 
Enterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using JenkinsEnterprise CI as-a-Service using Jenkins
Enterprise CI as-a-Service using Jenkins
CollabNet
 
Datasheet.net pluginforrd
Datasheet.net pluginforrdDatasheet.net pluginforrd
Datasheet.net pluginforrd
MidVision
 
Devops interview-questions-PDF
Devops interview-questions-PDFDevops interview-questions-PDF
Devops interview-questions-PDF
Mayank Kumar
 
DevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practicesDevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practices
ayoubbahaddouayoub
 
Ad

More from Enterprise PHP Center (7)

Zend PHP Solutions for IBM i
Zend PHP Solutions for IBM iZend PHP Solutions for IBM i
Zend PHP Solutions for IBM i
Enterprise PHP Center
 
Microsoft TechDays 2011 - PHP on Windows
Microsoft TechDays 2011 - PHP on WindowsMicrosoft TechDays 2011 - PHP on Windows
Microsoft TechDays 2011 - PHP on Windows
Enterprise PHP Center
 
EPHPC Webinar Slides: Unit Testing by Arthur Purnama
EPHPC Webinar Slides: Unit Testing by Arthur PurnamaEPHPC Webinar Slides: Unit Testing by Arthur Purnama
EPHPC Webinar Slides: Unit Testing by Arthur Purnama
Enterprise PHP Center
 
PHP on Windows Training Program - New Horizons Computer Learning Center Singa...
PHP on Windows Training Program - New Horizons Computer Learning Center Singa...PHP on Windows Training Program - New Horizons Computer Learning Center Singa...
PHP on Windows Training Program - New Horizons Computer Learning Center Singa...
Enterprise PHP Center
 
Accelerate the ROI of PHP in your Enterprise
	Accelerate the ROI of PHP in your Enterprise	Accelerate the ROI of PHP in your Enterprise
Accelerate the ROI of PHP in your Enterprise
Enterprise PHP Center
 
Cisco webex zend con2010 presentation
Cisco webex zend con2010 presentationCisco webex zend con2010 presentation
Cisco webex zend con2010 presentation
Enterprise PHP Center
 
ZendCon2010 - PHP Industrialization at France Telecom - ORANGE
ZendCon2010 - PHP Industrialization at France Telecom - ORANGEZendCon2010 - PHP Industrialization at France Telecom - ORANGE
ZendCon2010 - PHP Industrialization at France Telecom - ORANGE
Enterprise PHP Center
 
Microsoft TechDays 2011 - PHP on Windows
Microsoft TechDays 2011 - PHP on WindowsMicrosoft TechDays 2011 - PHP on Windows
Microsoft TechDays 2011 - PHP on Windows
Enterprise PHP Center
 
EPHPC Webinar Slides: Unit Testing by Arthur Purnama
EPHPC Webinar Slides: Unit Testing by Arthur PurnamaEPHPC Webinar Slides: Unit Testing by Arthur Purnama
EPHPC Webinar Slides: Unit Testing by Arthur Purnama
Enterprise PHP Center
 
PHP on Windows Training Program - New Horizons Computer Learning Center Singa...
PHP on Windows Training Program - New Horizons Computer Learning Center Singa...PHP on Windows Training Program - New Horizons Computer Learning Center Singa...
PHP on Windows Training Program - New Horizons Computer Learning Center Singa...
Enterprise PHP Center
 
Accelerate the ROI of PHP in your Enterprise
	Accelerate the ROI of PHP in your Enterprise	Accelerate the ROI of PHP in your Enterprise
Accelerate the ROI of PHP in your Enterprise
Enterprise PHP Center
 
Cisco webex zend con2010 presentation
Cisco webex zend con2010 presentationCisco webex zend con2010 presentation
Cisco webex zend con2010 presentation
Enterprise PHP Center
 
ZendCon2010 - PHP Industrialization at France Telecom - ORANGE
ZendCon2010 - PHP Industrialization at France Telecom - ORANGEZendCon2010 - PHP Industrialization at France Telecom - ORANGE
ZendCon2010 - PHP Industrialization at France Telecom - ORANGE
Enterprise PHP Center
 
Ad

Recently uploaded (20)

AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 

Cisco webex zend con2010 presentation

  • 1. UNLEASHING THE POWER Cisco’s next-gen platform for WebEx free trials Phillip Shipley Manager, Web Development Collaboration Software Group Cisco Systems ZEND & VMWARE 1 Hello and welcome. My name is Phillip Shipley and I work for Cisco Systems in the WebEx business unit where I manage the Web Development team supporting marketing on webex.com. Today I’ll be talking to you about a recent project of ours in which we used Zend and VMware to successfully deploy a new free trials platform for our products. CC: http://www.flickr.com/photos/dramaqueennorma/191063346/
  • 2. WHO IS ? • Founded in 1996. • Acquired by Cisco in 2007. • Leading SaaS provider of online meetings and collaboration services. • Over one billion minutes monthly. • Primary focus of webex.com is sales and lead gen. • Primary source of leads come from free trials. 2 1. Founded in 1996 by Min Zhu and Subrah Iyer right here in the valley. 2. We were recently acquired by Cisco in 2007. 3. We are the leading Software-as-a-Service provider of online meetings and collaboration services. 4. Our customers use over one billion people minutes monthly, that is the combined amount of time for all users. 5. Our primary focuses on webex.com are sales and lead generation. 6. I’ll be focusing on the lead generation aspect and specifically with our free trial platform, which is the main source of leads for us. 7. Next I’ll be telling you about our problem that led us into this project, but first let me give you a little more context about what a “free trial” of our service is. 8. On webex.com, we have a call to action for users to sign up for a free trial, which is pretty much a requirement for a software-as-a-service product. 9. When a user opts in for a free trial, they are taking through a signup flow that contains two pages of form input and a confirmation screen. So later when I talk about completion rate and timeouts, it is this flow that I am describing. 10.[NEXT]: OUR PROBLEM
  • 3. FUNCTIONAL SPAGHETTI 3 1. I like to describe our previous platform as Functional Spaghetti. 2. What I mean by this is that the previous platform was developed over the course of several years and constantly patched and extended to support new languages and products. 3. Unfortunately through this time and process, multiple individuals contributed to the code without any standards or consistent practices. So we had a solution that worked to this point, but was in no condition to scale to new demands. 4. As a result of the “functional spaghetti” nature of the old platform, we had several technical and business challenges. CC: http://www.flickr.com/photos/oskay/2177296503/
  • 4. Not actually WebEx, illustration only ;-) TECHNOLOGY CHALLENGES 1. Change Management 2. Knowledge Management 3. Coding Standards (lack of) 4. Procedural 5. Not transactional 6. PHP4 7. Very slow 4 1. Inconsistent and patched together code made it very dangerous to make changes. 2. Over the years there was only ever a single developer responsible for the platform, and so there was very little documentation or shared knowledge with rest of the team. About a year ago the primary expert retired, and quick knowledge transfer to a teammate was insufficient. 3. Inconsistent coding practices, repeated code across files, irrelevant variable and method names, I myself could barely traverse it. 4. Fully procedural code, no consistent entry point, not transactional, nor fault-tolerant 5. PHP 4 and originally depended on register_globals, however we fixed that a few years ago 6. Fully synchronous and during peak periods, very slow 7. And by the way, this picture was not taken at WebEx. CC: http://www.flickr.com/photos/geo462rge/3139251796/
  • 5. 1.Time-to-Market 2.Self-Service, Scalability 3.Reporting 4.Reliability, High-Risk 5.Performance BUSINESS CHALLENGES 5 1. Trial offer creation was very manual, with each trial having its own set of templates and often times custom logic in the code specifically for it. A new trial offer took 2-5 days to setup. 2. No business user self-service, so every small change required a developer, even for minor content updates. 3. Limited Reporting built into the platform, we had to depend on external sources like web analytics and our CRM. 4. Based on the risks of modifying the code, QA demands where high for small changes and thus we often opted out of a change just based on the effort to test and ensure everything was still working. 5. Poor user experience during peak traffic which would often cause timeouts when waiting for the confirmation page of a signup.
  • 6. OPPORTUNITY 6 1. With the acquisition by Cisco, we were able to see that Cisco sales so much product because they have tens of thousands of partners who do the majority of their sales. 2. WebEx on the other hand only had a few dozen partners and we did most of our sales through internal reps. 3. In order for WebEx to take the next step of growth, we would need to leverage more partners for sales. 4. As I mentioned before, creating a custom trial signup experience took 2-5 days, so the thought of thousands of partners wanting to offer co-branded trials made it clear that we needed to do something about our free trials platform to support such growth.
  • 7. OUR SOLUTION Robust Popsicle Sticks 7 As you can see we are no longer building with spaghetti, but we wanted to continue using a lightweight material, that was both agile and strong, but could also support complex architectures.
  • 8. Use existing code? What language? Java or PHP? Framework? Which? Community Edition? Enterprise? Physical or virtual? NO PHP DECISION MAKING 8 Extend existing code base? ! [CLICK] No, although the existing platform has served our needs thus far, for all the reasons I described earlier it would probably be more work to refactor it to a solution we could scale than it would be to start from scratch. Language: PHP or Java or other? Java is very common in WebEx and Cisco for major services, but it has a longer development cycle and tends to be a little too heavy for an agile web environment. PHP on the other hand is something we had already proven was very adaptive, performant, and could be developed with quickly. And since PHP5 it has really moved from being a web scripting language to a solid object oriented language. And both a blessing and a curse, PHP is forgiving enough to let you write your code as structured or unstructured as you want, so you are not forced to write everything 100% OOP if a particular part of an app does not need extension or reuse. [CLICK] Switch to standardized framework? Which framework? Cake, CodeIgniter, Symphony, Zend [CLICK] Chose Zend: Newer framework, giving it the benefit of being able to learn from otherʼs mistakes. Mature development lifecycle, friendly to enterprise expectations. Modular design and implementation options (stack or glue). Nice integration with Zend Studio. PHP: Community edition or Enterprise edition? Community edition: •" Free, but since it is necessary to recompile in order to enable some extensions, it is a lot more work to maintain. Also in a corporate environment, where developers do not have root access to servers, there is an added layer of complexity for the developers to work with the system admins on what changes to make and how, which can add significant amounts of time to do something as simple as enable mysql support. •" Little to no support beyond the community, and when something as critical as our free trial system is at stake, we want someone to call should there be a problem. •" Requires external services for advanced features like caching or job queues. Enterprise edition: •" Reasonable cost, easy configuration and management through web GUI. Central management for entire clusters •" Advanced features like job queues, caching, code tracing, etc.
  • 9. External ORM DB JQ SC ZF Events LDAP WebEx APIs CRM NFS Free Trial App VM VM VM LB Reports Cache HIGH-LEVEL ARCHITECTURE 9 Bottoms up: We start withVMware as our virtualization platform. On top of that we run several web serverVMs in a load balanced configuration (RHEL5,Apache2.2). For our PHP app server we run Zend Server 5, centrally managed with Zend Server Cluster Manager. For our Database we are running MySQL Enterprise 5.1. For our application itself, we’ve taken advantage of Zend Framework and Zend Server capabilities wherever appropriate, including, but not comprehensive: Zend Framework - Zend_Auth, Zend_Localize, Zend_Log, Zend_Db, Zend_Validate, Zend_Test... Zend Server - Job Queues, Cache, Session Clustering, and Events We also created our own library of classes for use across multiple applications for things like WebEx API abstraction, authentication, an object-relationship-mapper, customer-relationship-manager interaction, and themes (template sets).
  • 10. WHAT WORKED 1. Starting from scratch 2. Agile development 3. Zend Framework, Server 4. Zend Support, Consulting 5. Virtualization 6. Continuous Integration 10 1. Staring from scratch, great opportunity to make better decisions, and we learned a lot through the process. 2. Agile development process - iterative development cycle saved wasted time on features no longer needed and kept the business closer to the developers. 3. Zend Framework - Pretty good documentation and resources online, huge community for support. Established coding standards for consistent development, abstracted design patterns for better organization and separation of concerns. 4. Zend Server - I mentioned most of the components we are using in the last slide, but perhaps my favorite is the Job Queue and how we are able to disconnect backend processing from the user’s session. 5. Zend Support - We ran into a few issues through the process of deploying Zend Server, but the Zend Support team was very responsive and persistent with resolving our issues. 6. Zend Consulting - Early in our design process we were able to meet with several product managers at Zend, including Matthew Weier O’Phinney and review our plans for Zend Server and Framework usage. Received some great feedback on which components to use and which not to use. 7. Virtualization - Ridiculously convenient to deploy new servers and clone existing ones. 8. Continuous Integration - Identify issues sooner by running unit tests regularly. CC: http://www.flickr.com/photos/whappen/2077570455/
  • 11. LESSONS LEARNED 1.Learn a major ORM 2.Be persistent 3.Leverage the knowledge 4.Consult for speed 5.Ask for directions 11 1. Take the time to learn a major ORM, don’t write your own. Ours started simple, but with every iteration it had to be extended to add more functionality and became complex quickly and harder to debug. 2. Virtualization was common in dev and QA environments, but we hadn’t done much with it in production. Being the first use case in production took a little extra persistence in the process of approvals, but has paid off in terms of time-to-market and time-to-capability. Also very convenient to try something out on a clone and delete it if change doesn’t work. 3. Don’t re-invent the wheel, we saved a ton of time taking advantage of Zend Framework and Zend Server. Also, an excellent development best practice is to google-before-headache and ask on stack overflow. 4. Engage with Zend Consulting to gain insight early in development lifecycle. I’m sure if we had consulted regarding object persistence with Zend Framework we would have been pointed to one of the many examples of combining Zend Framework and Doctrine. 5. Zend Server has a lot of configurations not exposed through UI, so if you wish you could change some behavior, contact support before giving up. CC: http://www.flickr.com/photos/whappen/2077570455/
  • 12. ALIGNING WITH THE BUSINESS Spaces, not tabs! 12 The CIO of Cisco, Rebecca Jacoby, once told us that if we want someone to adopt our software, we need to build it how they want it. When developers go wild and build something the way they think it should work, even if the application is awesome from a technology stand point, it will probably be a complete failure. So let me tell you some of the ways we aligned with our business partners to be successful.
  • 13. • Requirements • Close involvement • Investment • Collaborate on Priorities • Progressive UAT BUSINESS SUPPORT 13 1. Often times the business requirements process for an application takes longer than development itself, and the end result is never what the business originally pictured. So rather than go through a tedious requirements process, we started with a shortened cycle for gathering requirements and used the list to kick start our product backlog. 2. Following the Scrum agile development process, we maintained a close involvement from the business to modify and prioritize the backlog, which resulted in a significantly different final product, based on changes in priorities and experience. 3. Our business partners not only invested in the project financially by more importantly with their time. Had we just received a huge requirements document and been told to return when complete, we certainly would have failed. 4. There are a few teams considered as stakeholders to our free trial experience, so keeping them all involved in a collaborative prioritization process we were able to keep them in sync as well as let them make decisions about changes. 5. A fundamental principle of the scrum process is the sprint review, which includes anyone who is interested to come out and see what work was done in the previous sprint. Through this process we constantly had business users interacting with the application, which is really user acceptance testing. CC: http://www.flickr.com/photos/quinnanya/4670060977
  • 14. KEY RESULTS • Sign-up time: 68% • Completion: 800% • Time-to-Market: 300x • Time-to-Capacity: 30x 14 • Utilizing Job Queues, overall time to signup improved by 68%. • Signup completion rate improved 800% (due to previous system timing out during peak hours). • Time to create new trial offer decreased from 2 days to 5 minutes. • Time to increase capacity decreased from 2 months to 2 days (VM cloning).
  • 15. VIRTUALIZATION • Key for Cisco • VMware ESX • Cloning • No downtime • Dedicated clusters • Speed • MySQL Enterprise • Extended HA • Physical Consolidation 15 • Key initiative for Cisco • VMware ESX • Resource prioritization • Highly Available • Cloning • Configured once, clone as needed • Single VM setup took 1-2 days, clone only takes minutes • No downtime for physical maintenance or upgrades. • Dedicated application clusters • Resource prioritization • Ease of maintenance • Problem isolation • Session clustering across clusters for multiple applications • Physical server procurement and deployment took at least two months, cloning a new VM takes minutes. • MySQL Enterprise certified for VMware with negligible performance cost. • Extended HA combining VMware and Zend Server Cluster Manager. • Cost savings by consolidating physical servers and reducing data center footprint. CC: http://www.flickr.com/photos/fdecomite/3955354747/
  • 17. • Starting over • Zend Monitor & Tracing • Collaboration with Zend • Zend Community 17 • We saw an opportunity, made the rare choice to start over, ended up with not only an awesome free trials platform, but a framework to use for future applications. • New visibility from Zend Monitor has led to several performance enhancements in combination with CodeTracing. • Working closely with Zend provided us with great insight into Server and Framework and helped us make key decisions about architecture. • Huge community of Zend Framework developers provided us with examples and answers to all our questions.
  • 18. • Zend Studio 8 • VM Template • Reviews with Zend • Developer kit packaging 18 • Take advantage of Zend Studio 8’s integration withVMware Workstation for improved development and testing. • CreateVM template based on our ZF application template for kick starting new applications and test environments. • Regular reviews with Zend for product development road maps. • As Matt Merchant talked about yesterday, packaging all the developer tools and guides for consistent environments and practices for improved efficiency.We’ve standardized on things like Zend Studio and Server, and have developer guides, but have not taken the step to preparing a ready-to-go bundle for efficient ramp-up of new developers.
  • 22. 22
  • 23. THANK YOU [email protected] Case study coming soon on zend.com Slides available at www.webex.com/m/zendcon2010.pdf 23