Welcome!

Microservices Expo Authors: Stackify Blog, Aruna Ravichandran, Dalibor Siroky, Kevin Jackson, PagerDuty Blog

Related Topics: Microservices Expo, Mobile IoT

Microservices Expo: Article

Five Overlooked Factors of Mobile Application Performance

Why addressing them can help you triumph in the mobile arms race

Too often, little consideration is given to performance testing in the context of mobile application testing. We are reaching a tipping point in how consumers are accessing the Internet, with more than 50% of users expected to access the Web via a mobile device by the end of 2013. With this increase in mobile usage comes the need (really, a requirement) for organizations to meet an increased expectation in application performance.

As users demand the same experience whether they are accessing Web-based content from their smart phones, tablets, or laptop computers, the performance of your mobile application has never been more crucial to the performance of your bottom line. Not only are user expectations creating a need for better performing apps, your competitors are rushing to mobilize their apps, creating a sort of "mobile arms race" in which the loser risks market share, customers, and revenue. To effectively compete and meet user expectations, you need to ensure that performance testing is central to all aspects of your app development process.

Here are five overlooked factors in mobile application performance that, if addressed, will help your company triumph in, rather than be crushed by, the mobile arms race.

#1 Time to start addressing performance issues
When it comes to performance testing your mobile application, good things do not come to those who wait. The longer you wait, the more expensive it will be to fix any issues you uncover. It can be up to 100x more expensive to find and fix problems with your app after deploying to production than it is to address performance throughout the development process. But when in your design process should you start testing for and taking performance into consideration?  This is something you should be doing from the word "go". Build performance service level objectives (SLOs) into your development objectives so that QA and functional testing teams have performance goals. Once your SLOs have been established, testing, analyzing, optimizing, and validating those objectives early and often will save you from headaches and lost revenue associated with post-deployment performance nightmares.

#2 Instability of networks
You cannot control the network but you can control how your application will perform in the network. When testing app performance, many companies do so in isolation, under pristine network conditions. As anyone who has traveled, had a call dropped, service interrupted, or tried to connect to the network at a tech conference knows, network conditions change throughout the day and from location to location. Without taking this variability into account when testing your app, you will not have a clear sense of your app's performance in the real world. By planning for the variability of the network throughout the development life cycle and incorporating real-world network conditions into the testing environment, you will have a much better chance of deploying an app that performs up to your SLOs regardless of where or when it is used.

#3 Discovery
Know thy device. Know thy network. Know thy user. These discovery mantras will keep you focused on key areas of application performance. How will your app run on iPhone vs. Android, iPad vs. Kindle Fire, Verizon vs. AT&T, 4G vs. 3G, New York vs. LA, London vs. Tokyo? Each device, network, and location has its own set of limitations that you will have to account for as a developer. To get your app to meet SLOs, including varying geographic or user-specific SLOs, you have to test for each and every variable. With network, software, and device upgrades being introduced seemingly on infinite loop, it is necessary to continue this in-depth testing throughout the lifecycle of your app.

#4 Designing for performance
What makes a great sports car is twofold. First, it has to look fantastic. Second, and more importantly, it has to perform. Without world-class technology under the hood, it is not a machine, but art. The same principle applies to an app. It could have the most intuitive user interface design with an outstanding look, feel, and style, but all of that means nothing unless it performs. How do you do this? Consider performance as you design or code. Some critical considerations include being aware of cache space, reducing app turns by combining Java Script files, and placing a premium in your development process on optimizing data sent to and from the app. Make this an ongoing process even after app deployment because as new content is added, the structure and size of your site or app will necessarily change. Also, optimize your content. Different devices will display your app at different sizes and image qualities. Reduce the size of page graphics if needed. Remind your marketing department that even though the company logo does look better with more pixels, your customers are more interested in how fast the image loads, not how big it is. Balancing performance with design is a delicate issue but keep in mind that without this balance, a beautiful app that doesn't load fast enough is like a Ferrari with a Yugo engine. People will try it once but never use it again.

#5 Efficient Delivery Strategies
Not all content for your app has to be sent from your hosting location. By utilizing a Content Delivery Network (CDN), you can easily distribute dynamic content closer to your end users. This will decrease load time, reduce latency, and give users a better interactive experience with your site. For example, if your data is located on servers in San Francisco, users in London will experience greater latency than users in Chicago. By considering early on in the development process what content can be placed on a CDN and having already discovered locations of your end users, you will be able to provide users in remote locations with a faster time to first byte along with overall faster transaction times and increased performance. You also need to consider third party content that will be displayed on your site. Since you have less control over that content and its load times, be sure to, whenever possible, design your application so that it is less dependent upon such third party content.

What Does This All Mean?
Given that most companies are developing and deploying mobile apps not for fun, but to help their business grow, there is significant risk in overlooking these factors. In the mobile arms race, app performance is the new deciding factor in determining which companies profit and which lose customers. By addressing these five factors from the very first stages of mobile application development, you will place your company at an advantage over the competition. Not only will addressing them provide tangible benefits like saving time and money on fixing issues, it will also keep your company's reputation, public image, and customer loyalty in tact, important non-tangibles in a Twitter-driven world. So, plan for performance early, test for it often, and you will have a much greater chance of being victorious in the new mobile arms race.

More Stories By Mark Tomlinson

Mark Tomlinson is the Senior Director, Application Performance Engineering at Shunra Software (www.shunra.com), a Philadelphia-based company that helps firms worldwide ensure application performance and end user experience. He has 20 years of experience of real-world scenario testing of very large and complex systems. He is regarded as an expert and leader in software testing automation with specific emphasis on performance.

@MicroservicesExpo Stories
The nature of test environments is inherently temporary—you set up an environment, run through an automated test suite, and then tear down the environment. If you can reduce the cycle time for this process down to hours or minutes, then you may be able to cut your test environment budgets considerably. The impact of cloud adoption on test environments is a valuable advancement in both cost savings and agility. The on-demand model takes advantage of public cloud APIs requiring only payment for t...
"Codigm is based on the cloud and we are here to explore marketing opportunities in America. Our mission is to make an ecosystem of the SW environment that anyone can understand, learn, teach, and develop the SW on the cloud," explained Sung Tae Ryu, CEO of Codigm, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
High-velocity engineering teams are applying not only continuous delivery processes, but also lessons in experimentation from established leaders like Amazon, Netflix, and Facebook. These companies have made experimentation a foundation for their release processes, allowing them to try out major feature releases and redesigns within smaller groups before making them broadly available. In his session at 21st Cloud Expo, Brian Lucas, Senior Staff Engineer at Optimizely, discussed how by using ne...
Many enterprise and government IT organizations are realizing the benefits of cloud computing by extending IT delivery and management processes across private and public cloud services. But they are often challenged with balancing the need for centralized cloud governance without stifling user-driven innovation. This strategy requires an approach that fundamentally reshapes how IT is delivered today, shifting the focus from infrastructure to services aggregation, and mixing and matching the bes...
"CA has been doing a lot of things in the area of DevOps. Now we have a complete set of tool sets in order to enable customers to go all the way from planning to development to testing down to release into the operations," explained Aruna Ravichandran, Vice President of Global Marketing and Strategy at CA Technologies, in this SYS-CON.tv interview at DevOps Summit at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
While we understand Agile as a means to accelerate innovation, manage uncertainty and cope with ambiguity, many are inclined to think that it conflicts with the objectives of traditional engineering projects, such as building a highway, skyscraper or power plant. These are plan-driven and predictive projects that seek to avoid any uncertainty. This type of thinking, however, is short-sighted. Agile approaches are valuable in controlling uncertainty because they constrain the complexity that ste...
Cavirin Systems has just announced C2, a SaaS offering designed to bring continuous security assessment and remediation to hybrid environments, containers, and data centers. Cavirin C2 is deployed within Amazon Web Services (AWS) and features a flexible licensing model for easy scalability and clear pay-as-you-go pricing. Although native to AWS, it also supports assessment and remediation of virtual or container instances within Microsoft Azure, Google Cloud Platform (GCP), or on-premise. By dr...
"This all sounds great. But it's just not realistic." This is what a group of five senior IT executives told me during a workshop I held not long ago. We were working through an exercise on the organizational characteristics necessary to successfully execute a digital transformation, and the group was doing their ‘readout.' The executives loved everything we discussed and agreed that if such an environment existed, it would make transformation much easier. They just didn't believe it was reali...
"We're developing a software that is based on the cloud environment and we are providing those services to corporations and the general public," explained Seungmin Kim, CEO/CTO of SM Systems Inc., in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
It’s “time to move on from DevOps and continuous delivery.” This was the provocative title of a recent article in ZDNet, in which Kelsey Hightower, staff developer advocate at Google Cloud Platform, suggested that “software shops should have put these concepts into action years ago.” Reading articles like this or listening to talks at most DevOps conferences might make you think that we’re entering a post-DevOps world. But vast numbers of organizations still struggle to start and drive transfo...
Agile has finally jumped the technology shark, expanding outside the software world. Enterprises are now increasingly adopting Agile practices across their organizations in order to successfully navigate the disruptive waters that threaten to drown them. In our quest for establishing change as a core competency in our organizations, this business-centric notion of Agile is an essential component of Agile Digital Transformation. In the years since the publication of the Agile Manifesto, the conn...
The cloud revolution in enterprises has very clearly crossed the phase of proof-of-concepts into a truly mainstream adoption. One of most popular enterprise-wide initiatives currently going on are “cloud migration” programs of some kind or another. Finding business value for these programs is not hard to fathom – they include hyperelasticity in infrastructure consumption, subscription based models, and agility derived from rapid speed of deployment of applications. These factors will continue to...
While some developers care passionately about how data centers and clouds are architected, for most, it is only the end result that matters. To the majority of companies, technology exists to solve a business problem, and only delivers value when it is solving that problem. 2017 brings the mainstream adoption of containers for production workloads. In his session at 21st Cloud Expo, Ben McCormack, VP of Operations at Evernote, discussed how data centers of the future will be managed, how the p...
Let's do a visualization exercise. Imagine it's December 31, 2018, and you're ringing in the New Year with your friends and family. You think back on everything that you accomplished in the last year: your company's revenue is through the roof thanks to the success of your product, and you were promoted to Lead Developer. 2019 is poised to be an even bigger year for your company because you have the tools and insight to scale as quickly as demand requires. You're a happy human, and it's not just...
Enterprises are adopting Kubernetes to accelerate the development and the delivery of cloud-native applications. However, sharing a Kubernetes cluster between members of the same team can be challenging. And, sharing clusters across multiple teams is even harder. Kubernetes offers several constructs to help implement segmentation and isolation. However, these primitives can be complex to understand and apply. As a result, it’s becoming common for enterprises to end up with several clusters. Thi...
DevOps teams have more on their plate than ever. As infrastructure needs grow, so does the time required to ensure that everything's running smoothly. This makes automation crucial - especially in the server and network monitoring world. Server monitoring tools can save teams time by automating server management and providing real-time performance updates. As budgets reset for the New Year, there is no better time to implement a new server monitoring tool (or re-evaluate your current solution)....
We just came off of a review of a product that handles both containers and virtual machines in the same interface. Under the covers, implementation of containers defaults to LXC, though recently Docker support was added. When reading online, or searching for information, increasingly we see “Container Management” products listed as competitors to Docker, when in reality things like Rocket, LXC/LXD, and Virtualization are Dockers competitors. After doing some looking around, we have decided tha...
"Opsani helps the enterprise adopt containers, help them move their infrastructure into this modern world of DevOps, accelerate the delivery of new features into production, and really get them going on the container path," explained Ross Schibler, CEO of Opsani, and Peter Nickolov, CTO of Opsani, in this SYS-CON.tv interview at DevOps Summit at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
The benefits of automation are well documented; it increases productivity, cuts cost and minimizes errors. It eliminates repetitive manual tasks, freeing us up to be more innovative. By that logic, surely, we should automate everything possible, right? So, is attempting to automate everything a sensible - even feasible - goal? In a word: no. Consider this your short guide as to what to automate and what not to automate.
identify the sources of event storms and performance anomalies will require automated, real-time root-cause analysis. I think Enterprise Management Associates said it well: “The data and metrics collected at instrumentation points across the application ecosystem are essential to performance monitoring and root cause analysis. However, analytics capable of transforming data and metrics into an application-focused report or dashboards are what separates actual application monitoring from relat...