Our agenda today involves:Understanding the cloud platforms and architecturesWhy SaaS apps are so popularThe complexities of SaaS appsHow to get a complete “cloud pespective” on your SaaS performance
Not all Cloud platforms and architectures are the same – knowing that is important. Because who you select as a partner Can give you different challenges.
Here we see various development platforms used in SAAS applications.-the LAMP solution stackSOAP used in Apache AccessJ2EE Development stackMany of these can come from Open SourceWhile it is outside the scope of this presentation, it is important to recognize that not all platforms are the same. Some more than others will be more ideal for your SaaS application. All of them inherently have a sweet spot and all have some performance challenges built-in. This is not a step to be taken lightly in your decision making.Notes:Apache Axis is an implementation of the SOAP ("Simple Object Access Protocol) SOAP is a lightweight XML protocol for exchanging structured information in a decentralized, distributed environment.Apache Struts is an open-sourceweb application framework for developing Java EEweb applications.LAMP is an acronym for a solution stack of free, open source software, originally coined from the first letters of Linux (operating system), Apache HTTP Server, MySQL (database software), and PHP, Python or Perl (scripting language), principal components to build a viable general purpose web server[1].OpenLDAP Software is a free, open source implementation of the Lightweight Directory Access Protocol (LDAP) The OpenLDAP server (slapd, the Standalone LDAP Daemon) architecture was split between a frontend which handles network access and protocol processing, and a backend which deals strictly with data storage. The architecture is modular and many different backends are available for interfacing to other technologies, not just traditional databases.A Servlet is a Java class which conforms to the Java Servlet API, a protocol by which a Java class may respond to http requests. Thus, a software developer may use a servlet to add dynamic content to a Web server using the Java platform. The generated content is commonly HTML, but may be other data such as XML.Spring is a layered Java/J2EE application platform - You can use all of Spring's functionality in any J2EE server, and most of it also in non-managed environments. A central focus of Spring is to allow for reusable business and data access objects that are not tied to specific J2EE services. Such objects can be reused across J2EE environments (web or EJB), standalone applications, test environments, etc without any hassle.Hibernate is an object-relational mapping (ORM) library for the Java language, providing a framework for mapping an object-orienteddomain model to a traditional relational database. Hibernate solves object-relational impedance mismatch problems by replacing direct persistence-related database accesses with high-level object handling functions.The Java 2 Platform, Enterprise Edition (J2EE) defines the standard for developing multitier enterprise applications. The J2EE platform simplifies enterprise applications by basing them on standardized, modular components, by providing a complete set of services to those components, and by handling many details of application behavior automatically, without complex programming.
Many of us had heard of or use Facebook – they started as a social networking site, now they allow a variety of services to be aggregated and mashed up from multiple sources – platform as a service – they now describe themselves as a platform!I will use the Facebook architecture as an example – by the time I finalized these slides these numbers have already changed and they will change again before I finish this Webinar!Top tier made up of eight-core web servers running Linux and Apache.Bottom tier is 800 eight-core Linux servers, distributing over 40 terabytes of user data (this tier stores all the metadata about each object in the database, such as a person, a photo, or event)Middle tier is caching servers, because the 800 database servers can’t serve up all the needed dataFacebook receives 15,000,000 requests per second for both data and connections.95% of data queries can be filled from the cache server’s 15 TB of RAM.Only 5% (500,000) queries per second have to be passed to the MySQL databases and their relatively slow hard drivesVirginia data center is too far away from the Santa Clara facility’s MySQL databases – Just 7 milliseconds of Internet delay would add 3500 seconds of delay, or the equivalent 1 hour of latency.I know of other very large SAAS providers that have very similar architectures!.007 x 500,000 = 3500 seconds
Next Lets talk about Building SaaS Applications.Why even build an app in the cloud? What are the advantages or disadvantages?
Our customers tell us, their development teams need to: Upgrade existing apps and/or bring new applications to market much faster, business executives expect they deliver new apps more rapidly and more often.They Also have to deal with a much more complex application environment-Fixing code in production is not an option. And today with SOX that is a big NO anyway.There are 3 main reasons SAAS has become so popular:First ) Speed to Market – which helps meet the requirement for quick releasesSecondly) Ease of Operational Management – You don’t always know how much you will need to scale and this model allows the ease of getting additional capacity quickly!Thirdly) Developer Productivity – The SaaS model allows developers to focus on functional requirements and not have to worry so much about infrastructure.
Lets look at an example of Rich Functionality of a SaaS application developed using a point and click interface – Someone told me to check out this site – I was amazed!AppExchange has over 847 Apps and 214 Services and growing
What are the expectations of your customers?Service levels agreements record a common understanding about services, priorities, responsibilities and guarantees between the cloud provider and ultimately the cloud user.The rich on-demand functionality in a SAAS environment also introduces multiple points of failure – (James to ask Question here)Some of the questions you need to be asking are:What happens if, for example, SalesForce.com has an issue?Are you supporting all the services?What is the agreed escalation process?What is the SLA and Who is responsible for it? What kind of Penalty is imposed if the SLA is not met? “I know of one SAAS provider who’s penalty is to give one months credit to its consumer if the SLA is not met any time during a one month period.”Not only could this become be very costly if you have repetitive issues, but you also run the risk of damaging your brand and losing customers
Now lets look at some of the complexities in Testing, Monitoring and Supporting service levels.According to ITIL - performance = expectations!If your site does not have acceptable performance it is essentially not usable and therefore not availableWhy speed means moneyGoogle benefits materially from fast performance. First, when it comes to search, Google discovered when its search page loads fractionally faster, users search more often, which of course leads to more opportunities for Google to place its highly lucrative text ads. Second, a faster Web application foundation means that Google's online applications for e-mail, word processing, spreadsheets, and calendars can become faster and fuller-featured"Our business does well if people are using the Web a lot and are able to use it easily and quickly," Google co-founder Sergey said.
What are the common performance hotspots?Today too many people just look at Data Center Latency.Connection Speeds globally can play an important role in how your application responds. What is good performance in San Francisco may not be so good in Hong Kong. How well your application is constructed plays an important role in its usability once your hosting it over the cloud(James Ask question here)For example – China imposes filtering on all internet content – if you are not testing your SaaS app from outside the firewall you will not see the geographic dependencies.Testing from outside your firewall means looking at many things that can break between a visitor and your websiteCDN’sDNSRoutersLoad BalancersServersThird-party contentClient Side scriptsBrowser-add-onsYou need a view into what the consumer of your service is experiencing – how many times do you hear “ everything looks fine in the data center” ? In this virtual environment – the health of the data center is important but today it is only a small portion of the application.You need to verify the health of all these systems, from all locations, all the time!Today there are many tools for testing applications – but not many which allows you to run free on demand tests from cities around the world. I will be talking about one such tool available from keynote later in the presentation.
Let’s face it – with SAAS your applications are no longer in one place!Traditional Performance management disciplines have come from an IT centric view of the world.With the Cloud, Web Services, distributed datacenters, CDN’s, advanced browser technology and mobile devices your application now lives everywhere!Estimates show that 75% of performance issues happen either in the browser or in the path to the browser.
To be more specific, I believe revolution of change has began with the browser and how we view it.The browser is no longer just fetching images and HTML and playing the role of a document reader. Web 1.0Web 2.0Double Click>>>Google AdSenseBritannica Online>>> WikiPediaContent management systems >>> WikisComputers >>> Mobile DevicesThe browser itself is now a platform with asynchronous execution happening on the browser side! Browsers have become full fledged application environments. Rendering, executing, initializing and transacting!How is this changing performance management? Most performance management tools were developed with the idea that that browser doesn’t matter;That most performance bottlenecks are really in the network, or in the application (at the data center). This is no longer true. A large portion of the work I do with customers is identifying and improving the delay within the browser. How the browser threads and serializes on JavaScript, or related to the initialization and rendering time of a Flash or Silverlight module. If you are going to do serious performance management, you need to understand the browser. This means new tools and new ways of understanding what is going on in this new Browser “Platform”.The Web and it’s browsers are one of the world’s biggest and most important computing platforms!
Cloud application performance is impacted by a number of different things!Daily business transactions, Boundaries between organizations, Rich User Interfaces – Not only are you faced with the WEB, but now you have mobile devices with a lot of diversity. An Iphone does not process data the same way a Droid or a BlackBerry does.To the Web – the World is Flat - SAAS applications are global – they have to conform to many different languages, governments, regulations, and currencies of the international users.You need to understand where the problem is happening and who’s responsibility it is to fix it.
Site Domains have increased from a few domains to 5-25 domains3rd party content requests have increasedPage sizes have increasedHosting locations have gone from a single location to many locationsSites now are expected to work on mobile devicesComplexity and distribution is increasing!
Performance, why should you measure it?What is the nor that my clients see everyday?What happens to that norm during maintenance windows or increased load?What happens when we change the site? ( and believe me it will change and change often!)What happens when one of my 3rd party domains has a glitch? Is it really my fault? Should my SLA get impacted?What should I do in the future to make my performance and availability better? How about Load test from the Internet?
Now lets look at some of the complexities in Testing, Monitoring and Supporting service levels.Remember today >> performance = expectations!If your site does not have acceptable performance it is essentially not usable and therefore not available
Methods we use today to measure the end user experienceSynthetic testing (simulating visitor requests)Real Browser Monitoring (delivers a true picture of what users are experiencing)LoadTesting from outside the firewall
You have to build performance in. So that means testing at every phase in the application life cycle. Test in dev, test in QA, test pre launch, test post launch, test in production. With the complexity we have discussed this testing needs to be coordinated, user centric (and browser centric) and done with tools that support the rapid development life cycle.Secondly test from the Internet or the cloud. Internal data center testing is no longer an option. I like to tell my customers who are struggling with seeing why they should test from the Internet, ….” no, only if you users or end customers aren't’ sitting in your data center”? If not, then you probably want to test where they actually live. There is no predictive model for performance of an application nor site over the Internet. You can’t approximate it. You can’t guestimate it.Thirdly test with a real browser……If the browser is now a platform….and so much is dependant on the client side processing, rending, that is happening there…you can’t test with non browser based technologies. I won’t call out names here but some of the mostly commonly used tools to do performance testing are still living in a 1990’s paradigm of request response, content and images. They are non browser based and therefore are missing in some cases 50% or more of the user experience.Finally, capture the right metrics. Lookat the right things…..the things that really impact users.It would be expensive for companies to set up and maintain dozens of their own servers in various countries and carriers.Why use an independent third party service like Keynote?Cost No setup timeViewed as impartialCan track your site against your competitorsVisibility into backbone healthNon intrusive
Make use of an on demand SAAS external testing service such as Keynote for Web and Mobile applications!LoadTest and monitor from the Internet!Run some of the same measurements inernaly and external for faster triage and understanding.Test from the internet during development!Use a non-biased 3rd party for testing – this adds credibility to your SLA’s!Deliver the Service you promised and which your customers expect!