With the constant pressure on IT teams and businesses to do more with less, Kofax has introduced support for Docker containers across our Intelligent Automation platform to help customers get more from their cloud of choice.
Docker lets you deploy “serverless” applications, removing the need to administer server environments or manage operating system tasks, which can significantly reduce the total cost of ownership for your project. In addition, services like Microsoft Azure and Amazon Web Services provide excellent support and pricing models for running containerised applications natively on their cloud platforms helping further reduce effort and expense.
If you are new to the world of Docker, containerisation and, maybe, are slightly intimidated by the complex sounding jargon that accompanies it, here are 8 reasons why you should be considering Docker for your next Kofax project.
Use Your Cloud of Choice
Docker is an open source platform to package all aspects of a software project into an “image” that is ready to run on public cloud services or self-hosted Docker infrastructure. This removes the need to install and manage individual servers or virtual machines.
This means the same image will run identically in different hosting environments, giving you complete portability between providers like Microsoft Azure, Amazon Web Services (AWS), Google Cloud Platform (GCP) or self-hosting. This lets you use your cloud of choice or pursue a multi-cloud strategy without the risk of getting locked in to one provider.
Wide Range of Hosting Options
Each cloud provider offers a range of “container as a service” offerings, with different configuration and pricing options available, from almost completely hands-free running to ones with more control over things like networking or high availability settings. The same Docker project will run on different cloud environments, so projects are not forced to compromise on flexibility to achieve cost savings. Many of the services use an open source technology called Kubernetes to deploy and manage containerised applications at scale.
While this article is not intended to provide an exhaustive tour of the container as a service options available, some popular container services include:
- Amazon Fargate
- Amazon Elastic Container Service (ECS)
- Amazon Elastic Kubernetes Service
- Azure Kubernetes Service (AKS)
- Azure Container Instances
- Google Cloud Kubernetes Engine
- Alibaba Cloud Container Service
- IBM Cloud Kubernetes Service
- Self-hosted Docker infrastructure using on-premise, private cloud or public cloud servers (AWS EC2, Azure Virtual Machines, Google Cloud Compute Engine etc.)
Most clouds also provide services to manage Docker images (called registries), allowing central management and sharing of available images across teams and departments. Popular services for registries include:
- Docker Hub
- Azure Container Registry
- Amazon Elastic Container Registry (ECR)
- GCP Container Registry
- Alibaba Cloud Container Registry
Reduced Infrastructure Costs
Public cloud services for running containers typically have “pay for what you use” pricing models for compute, networking and storage. Typically, this will reduce running costs relative to both self-hosting hardware and software or hosting virtual machines in a public cloud which must be run continuously to provide a service, even at times of low demand.
On Demand Scalability
Using public cloud container services, you don’t have to pay for resources and capacity in case you need it, as happens with more traditional hosting or virtualisation models, but instead the services dynamically scale up and down the number of instances of a container that are running and resources underpinning them, with billing being based on the number of compute hours/seconds that are actually used.
In the course of the typical peaks and troughs of application usage this can result in substantial cost savings, while also removing the worry that your service will run out of horsepower during peak loads.
Lower Administration Overheads
Docker images comes in two flavours, based on Windows or Linux, and include all the libraries and components the software will need when it runs.
When running Docker, as each image is self-contained, with things like networking, storage and databases externalized to the cloud service provider, so there is no operating system to patch, upgrade or administer. In addition, things like managing log files, configuring clusters etc., are typically handled by the container service.
In the lifespan of an application this can save hundreds or even thousands of person hours of effort relative to self-managing this infrastructure.
Leveraging the breadth of options available in the cloud, Kofax Intelligent Automation projects deployed in containers can be configured for both public, internet facing applications (e.g. securely processing identity documents as part of a web onboarding journey) or internal only use cases (e.g. using RPA to integrate into legacy ERP system).
Additional administration savings are gained as the containerisation approach lets you take advantage of “cloud native” features such as centralised logging – so all the logging data from all the servers in your infrastructure is stored in the same place where it can easily be monitored or searched.
Simplified Deployment Footprint
The scripts to create an image of your application are provided as part of the Kofax installation. These scripts can be customised so that only the components of software that are needed for your project are included in the deployment image or to customise the image to meet your organisation’s needs.
In most cases, separate scripts are available for each software module. For example, if you do not need Kapplets or Document Transformation as part of your RPA project, simply don’t run the script or edit the relevant scripts to remove unneeded components. This will simplify the environment and minimise the size of the images you deploy. Alternatively deploy multiple smaller robot servers separating each function into its own images, rather than having one large, complex server image with every component deployed on it.
Consistency and Repeatability
Container images makes it easier to manage testing across the application lifecycle. By using scripts to build images and deploy to cloud environments (aka “configuration as code”), any changes to the scripts can be version controlled ensuring all environments are consistent and predictable – avoiding the “it worked on my machine” debugging challenge.
The typical differences between environments, such as the configuration of a database or licensing details, are externalised from the script and passed in at run time using environment variables. Services like Azure Key Vault or AWS Secrets Manager and Parameter Manager can be used to secure passwords and other sensitive information. This makes it easy to take advantage of cost-effective hosting options for systems like databases, further increasing cost savings.
So, What Are the Downsides?
As with any new technology there is some investment required to understand the concepts and learn the skills required. However, with a wealth of free resources available online and a large community of users this effort is minimised. In addition, Kofax solutions ship with example scripts and tutorials explaining how to create Docker images to help users through the setup process.
Docker Support in Kofax Intelligent Automation
Several Kofax Intelligent Automation platform modules provide Docker scripts and support, including Kofax SignDoc, Kofax Insight, Kofax RPA, Kofax TotalAgility (Docker Windows only) and Kofax Transformation Toolkit (Docker Windows only).
Contact us today, if you’re interested in more information.