Network Development Lifecycle (NDLC)

Let's take a look at the role of a network development lifecycle in the automation process.

Creating an NDLC

A network development lifecycle can be adopted to help provide a high-level vision and guidance around network development. A framework for the branch structure is required. Developers need to perform Git commits, while frequently checking in their code.

A common data model format needs to have the following properties:

  • It is followed uniformly by all developers.

  • It has established naming conventions established.

  • It has standardized templates and developed programmatic code formats.

  • Code includes comments.

A formalized pull request structure, including documentation, testing requirements, and an overall approval process, is the foundation for merging code from development into production.


Create CI/CD

Create the build (CI) and release (CD) pipeline structure. Small feature releases and pre-approved changes can be efficiently merged into the master branch. The code change will is delivered automatically when the next scheduled release occurs. Disruptive changes, larger changes, and major feature releases should require approvals and be scheduled in advance especially larger one-time releases. Schedule these changes outside of the regular release cycle, depending on urgency.


Automation and traditional approaches

Many traditional NDLCs directly translate to network automation code development strategies. The “Prepare, Plan, Design, Implement, Operate, Optimize” (PPDIOO) methodology from Cisco, for example, nicely fits the network automation vision laid out in this course. The same lifecycle approach to network infrastructure should be applied to the new network automation code.

The first steps (i.e, preparation, planning, and design) are performed in the text editor. Meanwhile Ansible is used to perform the implement and operate steps.

Refactoring code is considered the optimization stage of the lifecycle.

Get hands-on with 1200+ tech skills courses.