Businesses today are fortunate to be able to take advantage of mature technology environments on which to run their software applications. And most applications will be fine running on the technology of your choice, regardless of what that may be.
But when it comes to high performance, limited resources or mission critical applications, choosing the right technology suddenly becomes very important. For example, retailers that need to analyze in near real-time huge amounts of customer data. Media companies that want to decode large media files or work with complex animations. Or financial services companies that are conducting real-time fraud analyses and transaction processing. In each of these situations, there is a greater requirement for performance, robustness and high availability.
Even the initial decision of, most likely, choosing a cloud-based infrastructure, then masks a level of complexity. While most cloud service providers offer a similar level of service, there are differences – for example, when it comes to their approach to scaling, or with regards to high compute offerings.
The importance of a scientific approach
At Moove It, we recommend using a scientific and empirical approach to solving these scenarios, as we have done for many of our clients. This involves selecting technologies and infrastructure that you expect to perform the best, based on both previous experience and analysis of your specific situation and technology stack. Then create a Proof of Concept (POC) for each combination.
Having created these POCs, we recommend running stress tests on the combinations, measuring key metrics such as throughput, average response times and error rates among others. Additionally, something that can be overlooked is that you can compare the cost of each infrastructure and evaluate cost efficiency. Over the long-term, these costs can become very significant, particularly if your application scales to thousands or millions of users.
Bringing together all this information will allow you to make informed decisions to choose the best combination of infrastructure and technology to support your organization’s business and technology goals.
Putting it into practice
As an example, for two of our clients, both in the credit card processing industry, it was important to identify the most performant technology-infrastructure combination to run some additional tasks while the card was being processed.
In such a situation, we recommended a combination of testing with Java, Ruby, Python and Node.js, implementing a POC with the main feature set in each. We then set up three different architectures using AWS Lambda, containerization and standalone. Using JMeter it was possible to run several intensive load tests to understand how each combination performed based on their performance metrics. Armed with this knowledge you can select the best combination to accomplish your goals.
Taking the time to analyze, upfront, your objectives alongside the technology you want to use, provides long-term benefits. Taking such an empirical approach doesn’t need to be a complex undertaking – rather it helps provide a structured way through what can be a maze of difficult decisions that executives need to make.