Automation
An automatic data center and low-level network infrastructure management solution
Who the client is
A networking software provider offering solutions in areas including SDN, WAN controllers, SD-WAN/LAN, monitoring, NFV platform and networking security software. It wanted to reduce the cost of installing and configuring a complex software stack, by building a solution that makes its network management application easily deployable.
The challenge
The network management application ran on a complex software stack, and installing and configuring it was costly. The system was delivered by multiple parties, so the architecture had to be coordinated across all of them, and each service had to be configured, managed and scaled on its own while the whole system stayed simple to install.
What was at risk:
- A high cost of installing and configuring the software stack for every deployment
What we did
- Collected requirements from all stakeholders.
- Coordinated the creation of the entire architecture design with multiple parties involved in delivering the full system.
- Built a Virtual Appliance with the infrastructure management system based on microservices in individual containers.
- Introduced Kubernetes and a custom Kubernetes Operator to manage, upgrade, scale and recover the services.
- Delivered each component of the system in iterations to conform with the client's requirements, cooperating closely with the client-side product owner.
- Took part in the client's internal QA process.
- Improved the system's user experience by proposing multiple changes to the UI design.
How it works
The system ships as one image and manages itself once it runs, in four layers.
- Virtual Appliance A pre-configured virtual machine image contains the operating system, the container orchestration platform and the application itself, and the system installs without internet access.
- Microservices The infrastructure management system is built from microservices, each provided in an individual container.
- Kubernetes Kubernetes simplifies the configuration and lifecycle management of each service. Its basic abstractions, Services, Deployments, StatefulSets and Pods, manage and scale each service individually.
- Custom Operator A custom Kubernetes Operator performs complex, application-specific actions beyond what Kubernetes itself provides, so the system upgrades, scales and recovers from failure automatically.
Outcomes
Made possible
Offline install
The Virtual Appliance installs the full system, operating system to application, without internet access.
Technical
Self-upgrading, self-healing
A custom Kubernetes Operator upgrades, scales and recovers the system from failure automatically.
Business
Requirements → production
CodiLime covered every stage from gathering requirements to a fully working solution on the client's infrastructure.
Tech & stack
Platform
OpenShift
Python
Ansible
Anonymized example — fuller write-up available on request.
