Services > Automation
Our services on automation enable you and your staff to efficiently execute all project phases, from the early planning phase up until operations.
We provide you with insights on automation opportunities, we identify where automation is implemented in your project, and we support in creating the automation tasks.
Tooling wise, we leverage industry leading Open Source solutions like Ansible, Puppet, Chef, Terraform or visualisation frameworks like GraphViz all tied with open data interchange formats like JSON or XML for easy interfacing to your existing infrastructure operations systems.
Project and Infrastructure Documentation
In brownfield scenarios, up-to-date infrastructure documentation is lacking. A semi automated Current State Analysis can provide important and structured insights for existing infrastructure aiding the design processes.
Introducing automated tools allows creating dynamic documentation which also can self update long after project completion where necessary.
Leveraging automation for project and infrastructure documentation supports the following goals.
- Efficient mechanisms to maintain always up-to-date, where possible automatically generated, documentation.
- Reduce time spent on formatting and interoperability issues.
- Link sources of information and documentation, e.g. program code or data bases.
- Lower costs by considering open source documentation frameworks.
- Machine readable formats for input to other project phases.
To leverage automation for project and infrastructure documentation, we propose the following methodology.
- Identify and understand documentation requirements and demand.
- Identify sources of information for documentation and how to access, e.g. data bases, existing documents, content management systems, cloud infrastructures like Amazon or MS Azure.
- Identify content type, e.g. graphical representations, code snipets, text, tables, media.
- Identify automation opportunities.
- Investigate options, considering requirements, complexity, benefits, risks, and maturity.
- Support or own implementation.
Implementation & Migration
Expressing infrastructure as code allows for repeatable, parametrized deployments that would be hard to implement consistently by manual means. Interfaces to IP databases and other API driven components allow for feedback into the documentation processes described above.
In addition, automating deployments and migrations reduce the time to implement to a minimum leading to reduction of downtime especially in migration scenarios.
Leveraging automation for implementation and migration supports the following goals.
- Minimize deployment time.
- Avoid human errors in element configurations.
- Derive development, testing or staging environments quickly from production deployments.
- Allow for efficient re-deployments when parameters change.
- Make deployments vendor independent, especially when it comes to cloud or virtualized deployments.
To leverage automation for implementation and migration, we propose the following methodology.
- Translate infrastructure design rules to code.
- Choose appropriate tooling infrastructure according to deployment tasks.
- Leverage API based parametrization to and from documentation and provisioning databases.
As the implementation tooling provides automated output on deployed parameters like IP addressing, interfaces, cloud infrastructure in machine readable formats, these can easily fed to the predefined test rules.
Leveraging automation for test automation support the following goals.
- Enable automated, agile testing procedure which allows for automated retesting on each deployment.
- Identify infrastructure not working according to test specs quickly and mitigate.
- Reuse test infrastructure for operations processes post implementation.
To leverage automation for test automation, we propose the following methodology.
- Define test rules as parametrized code.
- Parametrize and execute test rules after each implementation step to identify connectivity or service issues.
- Visually display test result in human or machine readable formats.