Automation as a Service

This article explains how automation as a service, as well as Step, can help companies improve their automation and developer efficiency.

Written by Dorian Cransac
Illustration for Automation as a Service

Introduction

A recent study by McKinsey & Company predicts that nearly 800 million jobs could be lost to automation in the near future. This process will continue to accelerate as companies keep investing in automation tools, and entry barriers such as infrastructure are disappearing due to technological advances (Cloud Computing, Big Data Frameworks, etc).

This phenomenon is resulting in mounting pressure for both IT technicians and recruiters. Skilled developers and automation specialists were already heavily sought after; technicians capable of building and maintaining automation stacks are becoming more sparse as the complexity of automation increases. In order to increase the efficiency of a limited number of skilled developers, those developers are focusing on the most technical aspects of automation, while less demanding tasks are deferred to those who are not as proficient in code but understand automation and business goals.

The purpose of this paper is to explain how the concepts of automation as a service, as well as our platform (Step), help clients achieve this goal.

Automation eclipses code

“Automation is a term for technology applications where human input is minimized,” according to IBM. Automation can apply to both entirely mechanical processes, the execution of a code routine, or both; the purpose of automation is to have a machine perform a task that a human would otherwise be doing.

The feedback loop between human users and automation technology is long, complex, and inefficient. A team of engineers will require a complex release process to deliver and refine new automation routines.

The goal of our next-generation automation platform is to make automation more easily accessible for business users to create and use new automation routines on the fly.

This has been achieved by creating a clear interface between code and business logic and by exposing core services in a way that’s understandable and easily accessible to non-technical users.

Combined with a user-friendly web editor, this approach allows users to define automation routines and execute them based on atomic automated actions which are familiar to them.

Reducing redundant work in IT

The segmentation of IT departments and the overlap in responsibilities across departments leads to redundancy and sub-optimal efficiency. This discrepancy is caused by the inherent difficulty in coercing multiple people and groups of people to work together.

This problem is efficiently solved by using a common automation problem. Automation typically involves tools, services, files, servers, and other shareable assets which are all connected together. Multiple teams or departments need to share these assets by sending screenshots via email, sharing them on a common drive, or other forms of communication. The following diagram illustrates what an unorganized automation project may look like, with satellite teams working on it for different reasons.

These satellite teams implement and use automation in different contexts (testing, monitoring, etc), while still using the same types of components regardless of this context.

Each of them will use their own set of tools, follow different conventions, and will have difficulty sharing their work with others within the organization. For instance, a functional testing team will automate every step of an application’s use case and will not pass the resulting scripts to the load testing team, despite the code being reusable and applicable.

We have created a broader concept of automation platforms, which encompasses the needs of the different purposes served by automation in the context of IT and provides enough structure and guidance to maximize efficiency in every phase of its implementation. We are now covering a very wide range of practices, including service monitoring, all variations of testing, and pure robotic process automation in production.

Code and data as a service

One of the key differentiating aspects between automation platforms is the ability to consolidate the way the different assets involved in automation are accessed and managed.

When deploying automation code onto the platform, users can use them to compose their own scenarios and execute them concurrently and at scale.

Users are also able to freely collaborate and share automation artifacts or results with one another.

Automation at scale

Scaling use-cases

There is a lot of overlap in the software used across a large IT organization; monitoring in production, support teams using automation reports as a reference for comparative incident analysis, end-to-end testing teams, and developers involved with continuous integration will all have similar use-cases and affinities. The following figure shows how wide the spectrum of [what] is.

Note: From the perspective of operations, most clients prefer to split the automation platform into two instances: one for services related to production use, and one for internal purposes. This will result in isolated deployments and distinct operational procedures.

Scaling the platform

As the number of users and use cases increase, the need for capacity and infrastructure resources increases as well. It is therefore critical that the automation platform be designed from the ground up for horizontal scalability.

In the case of Step, the workload is split in the form of keywords, the executions of which are then distributed across an agent grid at runtime, providing near-unlimited capacity (assuming that platform admins add enough physical resources to support new agents).

Many of our clients have chosen to use Step directly in our cloud, thus avoiding operational headaches such as installation, upgrades, and housekeeping. For more information on SaaS cluster costs, see https://step.exense.ch/pricing/ which provides precise numbers based on the most common use cases of the platform.

Conclusion

As has been demonstrated, automation as a service is a functional, efficient, and cost-effective solution to the redundancy inherent in large-scale software development; the scalability, ease of use, saved time, and reduced cost of automation all combine to be the most effective way of handling large scale browser testing. These are all core tenants of Step and are the reason that our platform is the primary load-testing service currently available.

Summary: This article explains how the concepts of automation as a service, as well as Step, can help companies improve their automation and developer efficiency.

Want to hear our latest updates about automation?

Don't miss out on our regular blog posts - Subscribe now!

Image of a laptop device to incentivize users to subscribe