Les idees claires, or Clear Ideas, is a surrealistic painting by Rene Magritte, and was just on display at San Francisco MOMA. The painting depicts a clear sky, large cloud, and a sea, but between the sky and the sea floats a very large rock. The painting suggests that one can have clear ideas, yet there are barriers and issues.
In a city where when we say cloud, we think software, I simply can’t help but look at the painting and think of the barriers and issues that come along when adopting the Cloud. Just about any company, in any industry, anywhere in the world, is embracing the cloud in some form or fashion--be it public, private or somewhere in between. There are many reasons to do so--cost savings, faster deployments, better performance, scalability, flexibility--you name it. The buzz words we hear everywhere--serverless, elastics, on demand, etc.--make it seem that cloud adoption will be a smooth glide in the clear blue skies, but the reality is that there will be many barriers and issues on the way...many “rocks” to navigate around. For the different stakeholders in an organization, the rocks will be of different shapes and sizes.
The challenges for the folks who are responsible for making sure applications are available, stable and reliable when deployed to the cloud revolve around reckoning server configurations, varying load conditions, networks and their independent and collective impact on app’s performance. Though cloud providers give plenty specifications on their hardware, it is quite likely that several applications run on a given server, so there could be some functional discrepancies. Network conditions can vary from one data center to another, and we all know how network condition impact the app’s performance. Even if you get the most precise and detail info on the underlying cloud infrastructure, as seasoned of pro you may be, your gut feel is not enough to assume that there will be no issues post launch. In fact, the more seasoned you are, you know that the best thing to do will be to:
- Run some performance tests on the new environment and use those as a baseline in your pre-production environment. Then simulate both normal and heavy production conditions in order to evaluate overall performance. Do a “huge’ load test so you can figure where your breaking points are and optimize as much as you can.
- Grab the new network conditions and emulate them in your performance tests.
- Mind your APIs- to begin with apps these days consume plenty of external APIs to complete their functionalities. When an app is in a cloud environment, the APIs flavors are plenty- PaaS, SaaS, IaaS... If multiple calls are made simultaneously, the behavior of an API will vary, so you need to plan API load tests scenarios.
- Once in production, use your monitors to continuously validate your performance; it is the way to validate both performance and functionality while your application is running.
- Test for performance over and over again and throughout the development and operations processes.
So, while there are many factors to be considered while creating your performance testing strategy, what tools can get you the job done should be pretty straight forward. You can start with Open Source solutions such as JMeter and Galting, but you know they will only take you so far. Once more insights and analytics are needed, not to mention scheduling test, reusing scripts, exporting different type of results for the different stakeholders, etc., you’d have to look into commercial tools because they will greatly simplify your workflow and let you stay ahead of performance issues.
A "rock in the sky" is as surreal as it gets, though it’s merely an expression of realism. Testing apps deployed in cloud IS realistic and clearly the idea is to have great performance. So, I’ll slightly paraphrase a popular San Francisco saying--there must be a solution for that. True dat--Micro Focus Performance Testing solutions: LoadRunner, Performance Center, StormRunner Load and Silk Performer. The comprehensive portfolio will give you an array of supported protocols and technologies, assets and license centralization, advanced reporting capabilities, rich integrations for CI/CD, ability to scale for huge loads, load generators management, and so, so much more that you will be able to remove any rocks and have a clear vision. You can try any or all of those performance testing tools for free and see which one works best for you.
Though the Magritte exhibit is over, if and when you visit San Francisco, go check out SF MOMA, there are always good stuff to see. The city may be buzzing with technology, but art is and always will be a big part of San Francisco.