Netpicker architecture overview

Netpicker is an on-premise containerized solution designed to automate network device configuration and testing. The architecture leverages Docker containers, role-based access, and Git repositories to manage and execute tests efficiently within a customer’s environment.

Architecture Components

1. Admin and Engineer Roles

  • Admin: Responsible for installing containers on-premise, managing role-based access, and configuring agents.
  • Engineers: Utilize the Netpicker web interface to run tests and analyze results.

2. Network devices

  • The network devices are connected to the Netpicker agent, which facilitates communication and data exchange.

3. Netpicker agent

  • A Docker container that resides within the customer’s network environment.

Responsibilities:

  • Connecting to network devices to execute tests and backups.
  • Storing credentials locally to ensure secure access to network devices.

4. Credentials Management

  • Credentials required for network device access are securely stored by the Netpicker agent.

5. Netpicker API

  • Acts as the intermediary between the Netpicker Agent and other components.
  • Facilitates communication and data exchange across the system.

6. Netpicker GUI

  • A web-based interface used by engineers to initiate tests, monitor processes, and view results.
  • Supports role-based access control configured by the admin.

7. Customer Docker environment

  • Tests and other operations are executed within the customer’s Docker environment.
  • This isolation ensures that the operations do not interfere with other customer systems.

8. Workers for Test, Backup, etc.

  • Multiple worker containers are deployed to handle specific tasks such as testing and backing up configurations.
  • These workers are managed and coordinated by the Netpicker system.

9. Netpicker database

  • Results from tests and other operations are stored in the customer’s local database.
  • Ensures data privacy and compliance with customer data policies.

10. Git repository

  • Device configurations and test scripts are stored in a Git repository.
  • Facilitates version control and collaborative management of configurations and test cases.

Workflow

  • Installation: Admin installs the Netpicker containers in the customer’s on-premise Docker environment.
  • Configuration: Admin configures the Netpicker agent with necessary credentials and connects it to network devices.
  • Role Setup: Admin sets up role-based access for engineers via the Netpicker GUI.
  • Device Interaction: The Netpicker agent interacts with network devices using stored credentials.
  • Test Execution: Engineers use the Netpicker GUI to run tests which are executed by workers in the Docker environment.
  • Result Storage: Test results are stored in the Netpicker database.
  • Configuration Management: Device configurations and test scripts are managed and stored in a Git repository.

Security Considerations

  • Credential Storage: Credentials are stored locally by the Netpicker agent to prevent unauthorized access.
  • Role-Based Access: Admins can define access levels for different engineers, ensuring only authorized personnel can perform specific actions.
  • Data Privacy: All test results and configurations are stored within the customer’s infrastructure, ensuring compliance with data privacy regulations.