The current technology trends in platform infrastructure come with great promises of speed and efficiencies for developers and operators, helping organisations to act faster, and with more confidence, in transformation and migration projects. However, careful consideration is needed before decisions are made on technology solutions that may lock organisations in to increased complexity or higher cost model.
Automation solutions primarily exist to automate and manage the IT footprint, removing manual repetitive tasks in favour of standardised automated activities. Activities that are typically undertaken by an Automation solution include Orchestration, Configuration Management, Application Deployment, Continuous Delivery.
There are numerous options for automation on the market, the solutions we tend to see being adopted are based on either Puppet or Red Hat Ansible, with supporting services provided by Terraforms, Chef and Vagrant.
Containers bring about speed, efficiency, and process simplification for IT application deployment. Containers change the way we deploy application, based on operating-system-level virtualisation. Containers are designed to be isolated from each other and from their host with their own run-time environment, filesystems, processes, and compute resources. They are smaller/lighter and faster to build than virtual machines, and because of their decoupled nature they are portable, which is important for any organisation wanting reliability when moving applications between platforms.
Like Automation, there are many options available, however the industry is fast standardising on Kubernetes as the orchestration engine of choice for many container implementations. This is being deployed in solutions such as Pivotal Container Service, Red Hat OpenShift, VMware PKS.
Serverless computing takes the scales model of virtual machines and Containers down to the next level and allows developers to stop worrying about infrastructure. It is the new frame of reference for developers. By abstracting away everything but a block of code, the execution of a single function. The serverless model makes it faster for developers to iterate and deploy new code, enabling smaller teams and faster development.
While initially these services were only available on public cloud, they’ve now traversed into solutions available for many multi-cloud environment, including private cloud and self-hosted. AWS Lambda, Google Cloud Function and Apache Openwhisk are all examples of solutions available today and many suppliers are working to integrate these technologies into specific offerings spanning both Containers and Serverless.
While all these solutions bring significant benefits to specific people and functions of the business, the two big issues to overcome are culture and integration. The culture (DevOps/Agile) issue has been well discussed and I’d like to draw some attention to the integration aspects.
For all these solutions to deliver well for an organisation they need to be integrated and managed in a holistic way, otherwise you simply shift the cost and the complexity from one place to another. Consideration needs to be given to the big picture in choosing solutions and suppliers that can bring efficiencies in both cost and process . Solutions that provide strong integration between applications/services and are backed by solid support communities provide the best chance of gaining maximum benefit. Therefore, organisations should look to suppliers that can provide integration across multi-platform/cloud, automation, containers, and serverless solutions, and importantly, provide ease in the operation and management of these solutions. Suppliers that provide these types of integrated and supported solutions may seem to be more expensive in capital costs, but often have significantly lower operational costs, and a better ROI/TCO model.
To determine the best solution for the business, it’s vital to understand the future requirements and to be able to compare potential solutions against a manifesto or reference architecture. Development of a high-level reference architecture should not be onerous and should provide enough detail to allow technologists to develop products and solutions. A manifesto is even easier to develop and sets principles in place that can provide clear guidance to everyone. The manifesto or reference architecture could comprise statements as simple as:
In summary, the continued exponential development of products and services provides opportunities for organisations to work faster, smarter, with more confidence, and provide a better experience for customers. However, organisations need to be aware of deploying multiple point/silo solutions where there may be poor integration, differing support models or product development philosophy, and where little leverage is available. It would serve most organisations well to step back, apply some light governance, and look to partners and suppliers that can help them in establishing reference architecture and in developing integrated solutions.