Add some Varnish to speed up your Web Applications

As worldwide Web usage continues to grow by leaps and bounds, websites are responsible for handling more users — and more importantly — more data. Companies developing web applications need to ensure their sites are able to provide a compelling experience to their audience. This becomes more difficult when considering the massive amounts of data required to support Internet video streaming and rich media content delivery.

With gigabit Internet networks rapidly becoming the norm, expect the stress on high-traffic websites to only increase over time. This is why software like Varnish is becoming more important for accelerating website performance over the venerable HTTP protocol. Since the development of faster websites is important, let’s take a closer look at Varnish.

Varnish Cache is an HTTP Accelerator

An open source cache serving as an HTTP accelerator, Varnish’s first release became available in 2006. Varnish Software, the company behind the accelerator, provides commercial support for the cache as well as other paid products, including an advanced version of the cache known as Varnish Plus. The company also offers the Varnish API Engine, a commercial solution supporting high-traffic APIs hosted in a scalable online environment.

Like many other cache products, Varnish keeps website data in memory, so it is easily accessible by a web request without having to retrieve the data from a server. The software uses a threaded model, with one thread essentially dedicated to each web connection. An included configuration language gives network engineers more options to control cache behavior and performance — an advantage over similar HTTP accelerators.

Using Varnish helps high-traffic websites, most notably the social media giants, Facebook and Twitter, handle huge amounts of simultaneous users with nary an issue. Varnish also includes advanced load balancing functionality which is vital for optimizing overall server performance. The software is especially popular among content delivery networks as well.

Supporting High-end Software Development Companies

Any company looking at developing a web application with a ton of rich media content, including online gaming, video sites, and music streaming, would benefit from adding Varnish to their site’s architecture. An online video game is only as good as its perceived performance with multiple users simultaneously connected and interacting. An app must handle this interactivity between users while also providing a compelling visual and aural experience.

Server hiccups, buffering, and general slowness adversely impacts gameplay, which leads to disgruntled customers filling social media networks with complaints. Obviously, this leads to fewer players and less revenue for the game developer. This same scenario can play out with any high-traffic rich media-laden web application, thus the importance of making Varnish an important part of the site architecture.

Additionally, software companies developing publically available APIs realize the importance of their overall performance. The standard Varnish Cache works well for most examples of this use-case, but firms needing additional functionality need to consider the commercial Varnish API Engine for a boost in horsepower. 

Varnish’s benefits are obvious for any organization involved in the development of high-traffic — users and/or data — websites. It is an easy way to make the web fly.

Stay tuned for additional insights into the world of QA and software development at the Betica Blog.

News from the World of QA — April 2016

QA plays a vital role in how software gets developed no matter the industry. Here is a look at a few interesting news stories from April related to software quality assurance. If you also want to check out last month’s news, take a look at the March blog post.

QA should have the Power to delay the Release of Video Games

The video game industry obviously depends on the QA role to release a product free of bugs and other gameplay issues. Considering the social media-driven gaming world, news about a buggy title spreads like wildfire within a day or two. The dustbin of video gaming history is filled with companies who gave short-shrift to testing.

A leader of a video gaming testing firm feels QA needs to have a say in when video games are finally released. Andy Robson of Testology spoke earlier in April at the TIGA QA, Localization and Customer Support Summit held in London. “QA should have the power to say this game isn’t ready. We’ve had times when there has been hundreds of issues still logged on our database – but the game has still been released. We need to be given the time to fix these,” said Robson.

Robson notes that marketing pressures ultimately force games to be released before they are properly vetted. It is an arguably unnecessary risk taken by major video game publishers. Many companies simply treat gamers as another QA layer; making final fixes to bug-laden software using post-release patches.

VR Gaming Interfaces complicate Quality Assurance

Ever since The Lawnmower Man hit movie theatres over two decades ago, virtual reality has been expected to enter the technology mainstream. Recently, VR control has reappeared in the video gaming world, and its presence is adding complexity to an already difficult QA role.

Because of these new controller requirements, QA departments have to redesign their testing labs to account for VR headsets and other associated hardware, which is slowing down the quality assurance process. “The VR testing space has been redesigned and rebuilt multiple times throughout the past 12 months and we expect that there will be more redesigning and reconfiguration throughout the next year,” noted VMC’s Kirstin Whittle. 

Considering the applications for VR outside of gaming — the military, surgical, and CAD use-cases are notable — expect QA shops in a variety of industries to consider adding VR testing capabilities to their toolbox over the next few years.

NASDAQ introduces New “Validator” QA Platform

When QA problems happen in the world of stock trading, the financial risks are paramount — an issue we previously noted on the Betica Blog. As one of the world’s largest stock exchanges, NASDAQ is taking the steps to ensure these problems are mitigated by launching a new API-independent QA platform known as NASDAQ Validator. The platform’s audience is expected to be various financial exchanges, clearinghouses, and depositories.

Validator includes a suite containing both manual and automated test tools suitable for the capital markets industry. It focuses on speeding up the manual testing process while also simplifying its use, allowing for validation by a larger stakeholder group. The system interfaces with different securities trading systems from NASDAQ and other providers.

Lars Ottersgård, NASDAQ’s Executive Vice President and Head of Market Technology, commented on the new platform. “By offering Nasdaq Validator to marketplaces worldwide, we are squarely addressing the absolute necessity for robust QA processes, while reducing expenditures and shortening the go-to-market timetable,” said Ottersgård.

Stay tuned for future looks into the wide world of software quality assurance in News from the World of QA here at the Betica Blog.

Vagrant makes the QA Professional’s Life Easier

Previously on the Betica blog, we talked about Docker, a software container application used to package programs with their dependencies. In short, it makes the QA process go more smoothly, especially when migrating applications between servers dedicated to development, testing, and production. It is a fine example of the maturing concept of virtualization throughout the IT industry.

As shops try to fit more virtual environments and software containers onto a server, managing them can become a headache. Enter Vagrant. This open source management software helps you to run and configure virtual machines of all kinds, ultimately making the software development task an easier one.

Vagrant supports the Entire Software Development Process

Vagrant serves as essentially a lightweight software container — similar to Docker. Instead of encapsulating a software application, however, Vagrant packages an entire development environment. It provides a simple to use workflow easily supporting the way software gets written today.

Working with most major virtualization frameworks — KVM, VMware, AWS, and more — Vagrant belongs in the toolbox of any software development shop looking to facilitate the management and portability of development environments. Considering its status as an open source project, expect continued updates as the overall development world evolves. The application is compatible with today’s most popular operating systems — Linux, Mac OS X, and Windows.

Setting up a Vagrant virtual machine is a breeze. Simply tell the application the desired machine type, any software to be installed, and the means for accessing the VM. After a single command line entry, the new machine is installed and configured, and most importantly, the process is easily replicated on the desktop computer of every team member — software engineer or QA.

Even though Vagrant is written in Ruby, the tool is compatible with projects leveraging many other popular programming languages, including C#, Java, Python, PHP, and JavaScript. The application also provides an architecture that supports plug-ins, which means enterprising developers can add their own functionality to the software. Over Vagrant’s six-year history, many enhancements have been developed as plug-ins, which is another testament to the usefulness of the open source community.

Vagrant as a Compliment to Docker

While some feel Vagrant and Docker are competitors, essentially performing similar virtual functions, many shops leverage the two tools in a complimentary fashion. The infographic on this website clearly illustrates how to use both applications together to streamline the configuration and management of virtual machines as well as the virtual environments containing the application (in addition to its libraries and dependent components) to be coded and tested. Depending on the specific scenario, choosing one tool over the other is also warranted.

As the software development process continues to operate at an increasingly faster pace in this era of Agile and DevOps, smart shops need the tools that allow them to make enhancements and bug fixes at the speed of business. Vagrant is another application worthy of further exploration for those involved with software development and the QA process.

Keep tuned to the Betica blog for additional insights into the wide world of QA and software development.