UNLEASHING THE POWER

Similar documents
PHP on IBM i: What s New with Zend Server 5 for IBM i

Migrating SaaS Applications to Windows Azure

Managing the Cloud as an Incremental Step Forward

VMware ESXi in a Cloud-based Lab David Davis, VCP, VCAP, and vexpert

Table of contents. Performance testing in Agile environments. Deliver quality software in less time. Business white paper

Enabling Database-as-a-Service (DBaaS) within Enterprises or Cloud Offerings

Accelerating Time to Market:

HP Application Lifecycle Management

Simplifying Storage Operations By David Strom (published 3.15 by VMware) Introduction

Integration Maturity Model Capability #5: Infrastructure and Operations

PHP in the Cloud. Running Business-Critical PHP Applications in the Cloud

Assignment # 1 (Cloud Computing Security)

Streamlining BEA WebLogic Server Application Development. With VMware Infrastructure 3. With VMware Infrastructure 3

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Oracle Reference Architecture and Oracle Cloud

Top 10 Considerations for Enterprise Agile Tools.

Why is a good idea to use OpenNebula in your VMware Infrastructure?

SaaS A Product Perspective

Zend and IBM: Bringing the power of PHP applications to the enterprise

INTRODUCTION TO CLOUD COMPUTING CEN483 PARALLEL AND DISTRIBUTED SYSTEMS

How Cisco IT Automated End-to-End Infrastructure Provisioning In an Internal Private Cloud

Best Practices in Release and Deployment Management

Introduction. Setup of Exchange in a VM. VMware Infrastructure

Frequently Asked Questions Plus What s New for CA Application Performance Management 9.7

Automating the Virtual Datacenter. Saša Hederić VMware Systems Engineer SE Europe

VMware on VMware: Private Cloud Case Study Customer Presentation

Migrating Applications From IBM WebSphere to Apache Tomcat

Expert Reference Series of White Papers. VMware vsphere Essentials

Appendix A: Case Studies

Federal Secure Cloud Testing as a Service - TaaS Center of Excellence (CoE) Robert L. Linton

Private Cloud: Regain Control of IT

HP Agile Manager What we do

SOA REFERENCE ARCHITECTURE: WEB TIER

API Management Introduction and Principles

Modernize IAM with a Web Scale LDAP Directory Server

Harnessing the Power of the Microsoft Cloud for Deep Data Analytics

PLATFORM-AS-A-SERVICE: ADOPTION, STRATEGY, PLANNING AND IMPLEMENTATION

Microsoft DFS Replication vs. Peer Software s PeerSync & PeerLock

JOB ORIENTED VMWARE TRAINING INSTITUTE IN CHENNAI

Private Cloud for WebSphere Virtual Enterprise Application Hosting

Building an Enterprise Hybrid Cloud with the VMware vcloud Solution

Installation Guide Avi Networks Cloud Application Delivery Platform Integration with Cisco Application Policy Infrastructure

Assembling a Next Generation Enterprise Web Infrastructure with Drupal and Acquia

Mobile Cloud Computing T Open Source IaaS

White Paper. Anywhere, Any Device File Access with IT in Control. Enterprise File Serving 2.0

Migration and Building of Data Centers in IBM SoftLayer with the RackWare Management Module

Creating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION

EMC Integrated Infrastructure for VMware

Azure Day Application Development

A Gentle Introduction to Cloud Computing

Net Developer Role Description Responsibilities Qualifications

Ellucian CRM: platform overview

AppStack Technology Overview Model-Driven Application Management for the Cloud

Fujitsu Cloud IaaS Trusted Public S5. shaping tomorrow with you

Customizing and Integrating

Best Practices for Building Mobile Web

IBM PureApplication System for IBM WebSphere Application Server workloads

PROSPHERE: DEPLOYMENT IN A VITUALIZED ENVIRONMENT

Using Cloud Services for Building Next Generation Mobile Apps

Unwired Revolution Gains Full Visibility into Enterprise Environments with Server Side and Mobile App Monitoring from New Relic.

Cisco Unified Communications and Collaboration technology is changing the way we go about the business of the University.

Senior Business Intelligence/Engineering Analyst

IBM API Management Overview IBM Corporation

Table of Contents. Abstract. Cloud computing basics. The app economy. The API platform for the app economy

An Oracle White Paper May Oracle Tuxedo: An Enterprise Platform for Dynamic Languages

SAP Enterprise Architecture in the Era of SAP HANA, Infrastructure, Platforms, Software and Everything-as-a-Service

Cisco Data Preparation

80% 50x. 30x. CASE STUDY: How WaveMaker Got Faster, Better, More Agile with Docker. Lower Costs. Better Performance. Greater App Density

Ease Server Support With Pre-Configured Virtualization Systems

Cloud-based web hosting consolidation with an IBM Drupal solution

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Monitoring, Managing and Supporting Enterprise Clouds with Oracle Enterprise Manager 12c Name, Title Oracle

DevOps for CA Plex Automated Testing

SECURE, ENTERPRISE FILE SYNC AND SHARE WITH EMC SYNCPLICITY UTILIZING EMC ISILON, EMC ATMOS, AND EMC VNX

Hands-On Lab. Embracing Continuous Delivery with Release Management for Visual Studio Lab version: Last updated: 12/11/2013

SkySight: New Capabilities to Accelerate Your Journey to the Cloud

Migration and Building of Data Centers in IBM SoftLayer with the RackWare Management Module

VMware Virtual Infrastucture From the Virtualized to the Automated Data Center

CA Virtual Assurance/ Systems Performance for IM r12 DACHSUG 2011

Increasing Business Efficiency and Agility for ATGbased. Systems. the business challenge: upgrading the development pipeline

The Benefits of Deployment Automation

Best Overall Use of Technology. Jaspersoft

Using SUSE Cloud to Orchestrate Multiple Hypervisors and Storage at ADP

Lombardi Whitepaper: Why You (Probably) Cannot Afford to Use IBM for BPM. Why You (Probably) Cannot Afford to Use IBM for BPM

Oracle Public Cloud - An Enterprise Cloud for Business Critical Applications

HAWAII TECH TALK SDN. Paul Deakin Field Systems Engineer

What s New in SharePoint 2016 (On- Premise) for IT Pros

Desktop Activity Intelligence

Delivering Analytics that Scale

Planning, Provisioning and Deploying Enterprise Clouds with Oracle Enterprise Manager 12c Kevin Patterson, Principal Sales Consultant, Enterprise

Solving the Big Data Intention-Deployment Gap

vcloud Suite Architecture Overview and Use Cases

Dell Active System, Enabling service-centric IT, the path to the Cloud. Pavlos Kitsanelis Enterprise Solutions Lead Greece, Cyprus, Malta

Simplified Private Cloud Management

Transcription:

UNLEASHING THE POWER ZEND & VMWARE Cisco s next-gen platform for WebEx free trials Phillip Shipley Manager, Web Development Collaboration Software Group Cisco Systems 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. 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 2

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/

TECHNOLOGY CHALLENGES 1. Change Management 2. Knowledge Management 3. Coding Standards (lack of) 4. Procedural 5. Not transactional 6. PHP4 7. Very slow Not actually WebEx, illustration only ;-) 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/

BUSINESS CHALLENGES 1. Time-to-Market 2.Self-Service, Scalability 3. Reporting 4.Reliability, High-Risk 5. Performance 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. 5

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 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. 7

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. DECISION MAKING Use existing code? NO What language? Java or PHP? PHP Framework? Which? Physical or virtual? Community Edition? Enterprise? 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. 8 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.

LB HIGH-LEVEL ARCHITECTURE External DB VM VM VM LDAP Free Trial App WebEx APIs ORM JQ SC ZF CRM Reports Cache Events NFS Bottoms up: We start with VMware as our virtualization platform. On top of that we run several web server VMs 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). 9

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! 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. 12 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.

BUSINESS SUPPORT Requirements Close involvement Investment Collaborate on Priorities Progressive UAT 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 Utilizing Job Queues, overall time to signup improved by 68%. Signup completion rate improved 800% (due to previous system timing out during peak hours). 14 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 Key initiative for Cisco 15 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 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 Code Tracing. 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. 17

Zend Studio 8 VM Template Reviews with Zend Developer kit packaging Take advantage of Zend Studio 8 s integration with VMware Workstation for improved development 18 and testing. Create VM 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.

Knock knock 19 19

Who s there? 20

Loading......very...long...pause... 21

22

THANK YOU phillip.shipley@webex.com Slides available at www.webex.com/m/zendcon2010.pdf Case study coming soon on zend.com 23