APIs, APIs, everywhere

It’s a world dominated by APIs, and you likely hear and use the term several times a day. If you’re a service provider of any sort, you have APIs that others rely on, and there are APIs that you consume to keep the business running (Google Maps API, payment APIs, etc.). But this is just the tip of the iceberg. To those in the computer programming world, an Application Programming Interface (API) is a broad term that covers more than just maps and purchases.

What is an API?

Let’s begin with the standard textbook definition before we drill deeper using everyday business vocabulary. If we ask Wikipedia about APIs, it has the following to say:

In computer programming, an application programming interface (API) is a set of subroutine definitions, communication protocols, and tools for building software. In general terms, it is a set of clearly defined methods of communication among various components. A good API makes it easier to develop a computer program by providing all the building blocks, which are then put together by the programmer.

An API may be for a web-based system, operating system, database system, computer hardware, or software library.

The cost of API downtime

It’s hard to quantify how much downtime hurts, but Gartner released a study in 2014 which pegged the number at $300,000 per hour. This is a modest average, of course. Consider the business loss caused by an hour of downtime during, say, Black Friday discount season. For more horror stories of how malfunctioning/non-functioning APIs killed business or employee spirit, see here and here.

While the business side of API downtime cannot be understated, there’s also a hidden loss that might be even greater in the long run — team morale. Developers love automation and reliability in systems (actually we all do; imagine your mail server going down several times a day!), and downtimes break their code and frustrate them. If these persist, the problems will soon start affecting other business functions (sales and marketing) who will get tired of continually losing face in front of the customer.

1: UPtrends

A complete solution for all kinds of API monitoring (remember our broad definition of an API from earlier?), Uptrends provides monitoring for websites, APIs, servers, and more. It touts a happy customer base of 25,000, with names such as Vimeo, Microsoft, Volkswagen, Vimeo, and more, among its clients.

One unique feature of Uptrends is browser-based testing. The service spins up actual different browsers to run your app/website and provides a detailed metric on how it’s performing.

But response times and metrics are only half the story. Uptrends also give you a detailed, asset-wise performance report, so you know exactly what’s causing a bottleneck where. When an error is encountered, the service takes a screenshot and sends it to you, so you can see exactly how it feels on the other end of the equation. 🙂

All in all, Uptrends is a reliable and delightful service trusted by many big names.

2: Amazon Cloudwatch ( FOR AWS )

If you have infrastructure on AWS, CloudWatch cannot be recommended enough. Besides application monitoring, CloudWatch also has infrastructure monitoring, helping your DevOps team sleep peacefully at night.

As per the official description, CloudWatch offers:

  • Application monitoring
  • System-wide visibility
  • Resource optimization
  • Unified operational health

So, as long as you have an AWS-only deployment, CloudWatch will be able to monitor your application uptime, performance, resource usage, network bandwidth, disk/CPU usage, and so on, providing a robust solution to all sorts of monitoring.

Perhaps the most significant advantage with CloudWatch is that you virtually don’t need to set anything up. The AWS services generate relevant logs and share them directly with CloudWatch, which ends up on a neat and simple-to-understand dashboard.

3: Rigor

If you live by performance metrics and put customer experience above everything else, Rigor is worth a look. The name is well chosen, as you can get as rigorous with the tool as you want. 🙂

One of the most useful features of Rigor is functional testing. If you’re not into the testing lingo, don’t worry; functional testing refers to the act of testing the entire flow of a transaction, and not just focus on a single endpoint.

In some ways, functional testing is more important than unit testing, because it implicitly covers unit testing and provides customer experience prediction directly.

4: API Fortress

Next in line is API Fortress, which aims to be a Swiss-army-knife of API monitoring for various teams in an organization, and does it pretty well.

Aimed at both testers and developers, API Fortress allows the creation of visual, collaborative tests like any other modern API monitoring tool out there, and then walk a little more distance regarding convenience and features. The two I like most are Load Testing and Mocking.

For developers, API Fortress can create a test suite from a given API specification. So, if you follow Swagger, OpenAPI, or RAML, half of the work is already done. API Mocking allows your dev teams to define the interface of the new API as a mock service, upon which the QA teams can start building the test suites immediately. No more tiring, long waits for the actual API to finish before QA can get started!

5: AgilityWorks

The clue is in the name. At least in this case. AgilityWorks is focused more on the Continuous Delivery / Agile side of things, helping teams who like to “ship early, ship often.” For many, AgilityWorks appears to be Test Automation as a Service (TAaaS), a relatively new term, but one what makes a lot of sense and is much needed.

Onboarding isn’t automatic, as different companies might do test automation differently, which is why the AgilityWorks team is ready to get you up and running with the system. Collaboration is also baked right in, so all your teams can participate in creating, running and monitoring tests and key API metrics.

Related Posts
Build API like a pro in no time. Organizations are changing to Microservices Architecture model