In the 1990s, automation in the world of software was still limited to simplifying processes by compiling code and automating build processes, with the aim of improving the quality of software. Since then, technologies have developed at a rapid rate. Our background report explains where we are today and what the future holds.
Automation is changing
Already back in 1880, Paul Lafargue wrote a short pamphlet entitled “The right to be lazy”. In this essay, he imagined a society in which people would use automatic machines not to compete in terms of productivity, but in which they would exploit the advantages of such machinery to make their lives easier.
For software engineering, this “laziness” means:
- Increasing the level of abstraction by leaving it to tools to take care of the details.
- Reusing software components instead of rewriting them from the ground up.
- Automating recurring tasks.
Paranor has always applied this right to be lazy – and it has proved to be an impressive way to boost productivity and quality.
Already in the 1990s, we addressed the first point in this list and started to apply model-driven development principles and to write tools for graphical processing of state machines and database schemas. In the process, we left it to code generators to write the code, but we wrote these generators ourselves and were able to optimise them in order to produce the most efficient code. The development of domain-specific languages and code generators has been one of our specialities and strengths since then.
Since the start of the new millennium, we have also looked in great detail at reusability by focusing on open-source software. Here, not only do we integrate tried-and-tested, high-quality libraries and frameworks in our software, but we also contribute to their success as a committer in some of these projects. Similarly, we have also been closely following the emergence of continuous integration and testing. Since 2005, we have rigorously introduced these methods in our projects and defined our own standards for the tool environment.
For several years now, the development of automation in the IT sector has been striking, particularly also due to the rise of the DevOps movement. Before this, software development teams and operations teams were strictly segregated. Today, these areas work together seamlessly (DEVelopment & OPerationS) to ensure that the software passes through all the phases from creation to deployment (installation and configuration of the software at the customer) as quickly as possible. Whereas the initial focus was on continuous integration and testing, the path ultimately led to the provisioning of fully-automated infrastructure and software installation/updates (Continuous Delivery, Continuous Deployment).
In the field of technology, the emergence of containers (Docker), cloud services and new web technologies has accelerated the progress of automation. Thanks to container technologies like Docker, an application can be packed into a container together with all the necessary resources and installed anywhere. Cloud providers like Amazon (Paranor is an AWS partner) offer API (Application Programming Interfaces) to provide the entire infrastructure. And because web technologies make installation on clients unnecessary (tablets, PCs, smartphones), the distribution of new software can be dramatically accelerated. Here is just one example: already in 2014, Amazon deployed new software on its servers more than once every second!
Paranor has already been taking advantage of these new technologies for several years now in order to add Continuous Delivery and Continuous Deployment to its portfolio of automation technologies and therefore address the automation of recurring tasks. This has been done on the one hand via the focus on web applications that can be deployed in this way, but on the other hand also through our partnerships with Amazon (AWS cloud services) and Red Hat. Ansible Tower is a powerful IT automation engine from Red Hat, which enables cloud provisioning, configuration management, application deployment and service orchestration.
Paranor can offer all the required in-depth expertise and certifications – please feel free to contact us for a personal consultation if you are interested.