Introduction
Network infrastructure has primarily been managed using traditional, manually driven methods. However, this approach is not equipped to handle the widening demands placed upon network infrastructure to deliver connectivity at scale and speed while maintaining security. Network engineering teams who want to get ahead are looking to the robust, mature model of continuous integration and continuous deployment (CI/CD), pioneered by application development teams, to improve their processes for network creation and management.
It’s important to note that while CI/CD is a powerful tool for more complex automation scenarios, simpler tasks are increasingly being handled through no-code automation solutions.
Development teams are exploring ways to enhance their CI/CD pipelines to speed up application deployment. This shift involves transitioning from separate DevOps and NetOps activities towards an integrated NetDevOps approach. CI/CD is a crucial component of DevOps, and well-established development teams utilize it to expedite and de-risk their development processes. However, the ease of integrating CI/CD tools with networking varies across different network domains.
Network teams are either harnessing pipelines to enhance their ability to manage specific network changes or streamlining the testing and deployment of automation and orchestration assets, such as workflows and scripts.
Anuta ATOM is adaptable to network engineers, regardless of their software development and scripting proficiency. To achieve this, we consistently refine our strategy to develop a NetOps pipeline for network infrastructure as code.
Why is CI/CD & Collaboration Relevant in ATOM?
![](https://www.anutanetworks.com/wp-content/uploads/2024/01/Add-a-little-bit-of-body-text-3-1024x576.png)
The life cycle of Automation involves Developing, Deploying, and Operating Workflow or other such Artifacts encompassing different personas, application environments, and CI/CD ecosystems.
Let us review this by taking an example of Automation of a Software Upgrade Method of Procedure (MOP) with Pre and post-checks.
- Personas
- Product Owner
- Developer
- Operations
- ATOM Application Environment
- Development
- Test & Staging
- Production
- CI/CD EcoSystem
- Source Control – Git
- Build – Jenkins
MOP LifeCycle - Design, Develop, Deploy, Operate & Enhance
- Gather Automation Requirements – Product Manager
- Example – Vendor, Device models, Software Upgrade MOP, etc.
- Design the MOP
- Personas – Developer & Product Manager
- Environment – Development
- Activities
- Create a new MOP Blueprint
- Review the design with the Product Manager
- Output
- High-level Software Upgrade MOP Blueprint
- Develop MOP & other artifacts
- Personas – Developers
- A different developer can develop each component in the MOP. For example,
- Pre & Post Checks and Validation – Developer 1
- Image Upload – Developer 2
- Upgrade and Device Reboot – Developer 3
- A different developer can develop each component in the MOP. For example,
- Environment – Development
- Activities
- Collaborate with Other Co-Developers
- Unit & Integration Testing
- Code Security vulnerabilities
- Feedback loops and iterate
- Commit to Source Control
- Output
- Software Upgrade MOP Developed with
- User input form
- Pre Checks & Disk Space Checks
- Image Upload
- Upgrade
- User Approvals for Device Reboot
- Device Reboot
- Post Checks
- Pre & Post Check Validations
- Error Handling, Retries, and Rollbacks
- Software Upgrade MOP Developed with
- Personas – Developers
- Packaging, Version Control, and Distributions
- Personas – Developer
- Environment – Development, CI Tools – Git
- Docker Registries
- Shared or Customer repositories
- Output
- Software Upgrade MOP Ready for Deployment
- Deploy in Test/Staging
- Personas – Developer, Operations
- Environment – Test & Staging, CD Tools – Jenkins
- Activities
- Install or Upgrade, Migrate, etc.
- Comprehensive testing
- Acceptance Testing
- Feedback, Rollback, and Iterate
- Output
- Software Upgrade MOP Ready for Production Rollout
- Deploy in Production
- Personas – Developer, Operations
- Environment – Production, CD Tools – Jenkins
- Activities
- Install or Upgrade, Migrate, etc.
- Sanity testing
- Feedback, Rollback, and Iterate
- Operate – Operations Team
- Enhancements – In case of enhancements, a subsequent version of the MOP can be developed by extending the existing one. Developers check out the existing package from Source Control and enhance it. The Development, Test, and Deployment cycles for such incremental updates are usually shorter. A few examples can be
- Additional Pre & Post Checks
- Support a new OS Type or device model
- Integration with ITSM Ticketing systems such as ServiceNow
- Email and ChatOps (Slack, Webex, etc.) Notifications
What should be the Design Considerations?
In a demanding automation scenario, a complex Method of Procedures (MOP) often requires collaboration among multiple developers. This complexity presents various challenges–
- Complexity: Some MOPs involve multiple developmental and integration testing stages, making them intricate and challenging to manage effectively.
- Iterative Process: The development and integration testing phases may undergo multiple iterations to ensure optimal results, leading to an iterative and time-consuming process.
- Diverse Stakeholders: Different stakeholders, including Product Managers, Developers, and Operations teams, play essential roles in the MOP development and execution.
- Visual Clarity: Utilizing visual programming tools can significantly enhance the clarity of MOPs, making them easier to understand and manage.
- Long Life Cycle: MOPs have a long life cycle and will experience numerous revisions throughout the automation journey to adapt to changing requirements.
- Version Control: Maintaining version control for MOPs is critical, ensuring that different iterations and changes are tracked and managed effectively.
- Deployment Flexibility: MOPs must support deployment to various target environments, including staging, integration, and production environments.
ATOM doesn’t reinvent the wheel regarding CI/CD tools. Instead, it effortlessly integrates into existing CI/CD pipelines by providing essential APIs and tools.
Additionally, ATOM enhances the developer experience by incorporating collaboration features within the application. This means developers can collaborate directly within the ATOM environment, allowing them to share their code with peers for reviews and updates, streamlining the development and testing process.
How ATOM Operates
![](https://www.anutanetworks.com/wp-content/uploads/2024/01/Ci-cd-1024x591.png)
Facilitating the ‘CI’
ATOM offers an Integrated Development Environment (IDE) for MOP Development, enabling visual programming and seamless integration with Source Control systems like Git, GitHub, GitLab, and more.
Furthermore, ATOM supports a multifaceted framework for CI/CD–
- Integration with Build Automation Tools: ATOM ensures seamless integration with popular build automation tools such as Jenkins through well-documented APIs. This empowers developers to automate the build process, triggering builds as code changes are pushed to the repository. This automation streamlines the CI process and reduces the risk of manual errors.
- ATOM SDKs & Private Workspaces: Developers benefit from ATOM’s Software Development Kits (SDKs) to facilitate custom CI/CD pipelines and workflows. Additionally, private workspaces allow teams to collaborate while maintaining version control and code security. This private workspace functionality fosters a controlled environment for CI/CD development.
- Code Validation: ATOM offers a suite of validation tools, including syntax and code style checks, ensuring that code adheres to defined coding standards. These checks can be integrated into the CI/CD pipeline, preventing flawed code from progressing further in the pipeline.
- Diverse Testing Suites: ATOM’s CI/CD capabilities encompass a spectrum of testing suites, including Unit, Sanity, Regression, and Integration testing. This diversity ensures that code changes are subjected to comprehensive testing, enhancing the quality and reliability of the software.
- Code Security and Vulnerability Analysis: ATOM incorporates built-in tools to analyze code security and vulnerabilities. Automated scanning and reporting help developers identify and mitigate security issues early in development, reducing the likelihood of security breaches in production.
- Versioning: ATOM provides robust version control, allowing teams to track changes to their codebase effectively. This versioning ensures that different software versions can be easily managed, compared, and rolled back if necessary, a fundamental requirement for CI/CD pipelines.
- Packaging and Distribution: The platform assists in packaging applications or services in a format suitable for deployment. It streamlines the process of creating artifacts that can be easily distributed across various environments, reducing the potential for inconsistencies between development, testing, and production environments.
- Environment Management: ATOM enables efficient environment management by defining and providing environments for different CI/CD pipeline stages. This facilitates reliable and repeatable code deployment to various environments, including staging and production.
Enabling Collaborative Development
ATOM provides an IDE for Low Code through Visual Programming and no-code MOP Development, allowing CI/CD and collaboration.
Developers can request collaboration from other co-developers.
ATOM supports–
- ATOM SDKs and Private Workspaces
- Collaboration Invitations to the participants.
- Assignment of Roles to Participants
- Editor – Full read and write access to the MOPs and Artifacts
- Commenter – Can only add comments to the MOPs and Artifacts
- Viewer – Read-only access to the MOPs and Artifacts
- MOP and artifacts visible in participants’ Private Workspace
- Address Comments to a specific participant or a group of participants.
- Email Notifications and Reminders
- Attach discussion to an MOP or an Element within the MOP
- MOP discussions marked with Overlays and Attention Grabbers
Facilitating the ‘CD’
ATOM’s support for CD includes
- Maintenance Mode: ATOM facilitates the implementation of maintenance mode for applications and services. This feature allows administrators to gracefully pause or restrict access to specific components during updates or maintenance activities, ensuring a smooth end-user experience even during deployment.
- Activate and Deactivate Method of Procedures (MOPs): ATOM can easily activate and deactivate MOPs. This simplifies the process of initiating or halting planned maintenance activities.
- Maintain Different Versions of MOPs: ATOM recognizes the need to maintain different MOPs. It allows for version control and management of maintenance plans, enabling teams to track and apply specific versions according to the deployment requirements.
- Upgrade Scripts: ATOM streamlines the execution of upgrade scripts, which are essential for updating databases, configurations, or other components during deployment. These scripts are automated and orchestrated, reducing the likelihood of human error and ensuring consistency.
- Auto-Rollback in Case of Errors: ATOM is designed to perform automatic rollbacks in the event of deployment errors or issues. This feature reverts the changes to a previously stable state, minimizing downtime and ensuring that the application or service remains functional.
- Monitoring Infrastructure: ATOM supports CD by providing a comprehensive monitoring infrastructure. This includes real-time monitoring and alerting capabilities to track the health and performance of deployed applications and the Upgrade process. Monitoring metrics help in the early detection of issues, enabling proactive responses and maintaining high availability.
Software Upgrade with ATOM– MOP Development and Deployment
Anuta offers a comprehensive solution for software upgrades with device adapters, services, and MOP packages. Developers can choose from pre-made packages as a starting point, develop from scratch, or import their code.
The development process begins with requirement gathering, followed by developers using the ATOM IDE to create MOP Blueprints. Collaboration requests are sent to Product Owners for design review. The Software Upgrade Method of Procedure (MOP) is divided into Sub-MOPs, which can be assigned to different developers to expedite delivery. For instance, tasks like pre- and post-checks, Disk Space Checks, and Device Reboot are handled by different developers.
Collaboration invitations are sent to co-developers throughout development, and participants can engage in discussions at both the MOP and element levels. Email reminders help keep the project on track. Collaboration scenarios encompass sharing global variables, error handling, code optimization, code reviews, and input/output specifications for each Sub-MOP, etc.
Once Sub-MOPs are developed, validated, and tested, they are committed to a versioned Source Code Repository like Git. These Sub-MOPs are then integrated into a main MOP, which undergoes code validation and testing. Developers collaborate to address any issues that arise during integration. A code commit to Git triggers downstream Continuous Integration (CI) processes, including code validation, executing various testing suites, and security analysis.
Developers make necessary adjustments if issues arise during CI, and the process repeats until the MOP is deployment-ready. The MOP is deployed automatically into a staging environment for further testing by QA and Operations teams, following a cycle until it is ready for production deployment.
The automated deployment process includes transitioning ATOM in and out of Maintenance Mode, activating new and deactivating existing MOPs, automated upgrades, and monitoring. Auto-rollback mechanisms are in place in case of errors.
The deployment in a production environment can be manual or automated, with Network Operations Teams conducting sanity checks. Any issues found are communicated to the team for resolution. Finally, the Software Upgrade MOP is ready to roll out software upgrades on Production Network Devices.
Summary
In a world where network infrastructure demands speed, scale, and security. Network engineering teams increasingly use continuous integration and deployment (CI/CD) to streamline network creation and management processes. This paradigm shift from separate DevOps and NetOps activities toward a unified NetDevOps approach is crucial for keeping up with the pace of network innovation and automation.
ATOM is pivotal in enabling this transition, catering to network engineers regardless of their software development proficiency. By providing a low-code, no-code approach to automation, ATOM makes complex tasks more accessible. With a focus on CI/CD and collaboration, ATOM revolutionizes the network automation landscape.
The collaborative development process, exemplified through a Software Upgrade Method of Procedure (MOP) scenario, demonstrates how ATOM simplifies and accelerates network automation. From design and development to testing, deployment, and even rollbacks in case of errors, ATOM’s capabilities streamline and enhance the entire CI/CD pipeline.
Additional Contributors: Atmesh Agarwal, Manisha Dhan