Speed up DC/ISP operation with automation

Andrea Dainese
August 12, 2023
Post cover

Operating on a data center (DC) or backbone Internet Service Provider (ISP) typically involves a significant amount of human effort, resulting in operational costs that are often overlooked. However, these costs can be optimized by harnessing the power of automation to handle simple and repetitive tasks efficiently.

It is important to emphasize that while automation brings numerous benefits, it is not a free solution. Each task that is to be automated must go through a well-defined and documented process of task definition. This ensures that every step is clearly articulated and understood.

To streamline the automation process and reduce effort, tasks should be categorized and grouped into a small, finite number of possibilities. Each possibility is defined by specific attributes or parameters that differentiate it from others. By doing so, the scope becomes well-defined and manageable, allowing the NetDevOps team to design and implement the automation software effectively.

The overall approach to automation can be divided into the following phases:

  1. Assessment
  2. High-level design
  3. Low-level design
  4. Development
  5. Testing and Improving
  6. Production

The ultimate objective of this approach is to develop an automation system that empowers the customer to continue improving and expanding the automation capabilities independently. The Return on Investment (ROI) of the automation solution can be quantified by measuring the number of tasks that the tool executes, resulting in significant time savings and improved operational efficiency.

Moreover, beyond cost savings, the automation system provides additional benefits such as self-documentation and standardization of tasks. This not only facilitates audits and compliance requirements but also enables better collaboration, knowledge sharing, and overall operational excellence within the organization.

Assessment

The NetDevOps team collaborates closely with the customer to define the scope of automation and compile a comprehensive list of tasks to be automated. It is crucial for the team to not only audit the existing scope but also suggest potential areas for expansion. This ensures that the automation solution addresses the broader operational needs of the organization.

High-level design

Once the scope is defined, the NetDevOps team proceeds to document the tasks within that scope. This documentation provides a clear overview of the tasks and serves as a foundation for the subsequent stages of development.

Low-level design

In this phase, the NetDevOps team, in close collaboration with the customer, defines the specific task parameters. These parameters allow for grouping tasks into a limited number of variability while ensuring comprehensive coverage of the defined scope. Additionally, the development framework to be utilized for the automation solution is selected, considering factors such as scalability, compatibility, and maintainability.

Development

Leveraging a dedicated lab environment, the NetDevOps team begins the development of the automation system. This stage involves programming and configuring the software to execute the defined tasks efficiently. Best practices for coding standards, version control, and documentation are followed to ensure a robust and maintainable solution.

Testing and Improving

The automation system undergoes rigorous testing in the lab environment to identify any bugs, issues, or areas for improvement. Feedback from testing is incorporated into iterative cycles, allowing for continuous enhancement of the automation solution. This stage aims to ensure that the system performs reliably and accurately, meeting the defined requirements and expectations.

Production

Once the automation system has been thoroughly tested and refined, it is ready for deployment in a production environment. The NetDevOps team, in collaboration with the customer, implements the automation tool on a small subset of scenarios initially. This allows for validation and fine-tuning of the system in real-world operational settings. Once successful, the customer gains autonomy in utilizing the automation system across a broader range of tasks and scenarios.