DevOps emphasizes the collaboration between software developers and other IT professionals (e.g., server, storage,...
security and network experts) to rapidly develop, test and release new software.
The goal is to establish a culture where software delivery can happen rapidly, frequently and reliably -- using automation wherever possible and rapidly testing code for distribution across multiple servers.
Microservices and the componentization of applications
DevOps leverages the componentization of applications in smaller applets -- or microservices -- that can be distributed across a range of data center resources (i.e., public or private clouds). Containers (e.g., Docker) are becoming a popular way to rapidly introduce new microservices for testing.
Microservices and DevOps applications require the rapid provisioning of compute, storage and network resources that enable them to run fast, scale as necessary, perform with high reliability and remain secure. Networks need management tools that account for DevOps and automation needs -- reducing downtime and handling increased complexity without also sending Opex sky-high.
DevOps and automation network needs
The network is responsible for rapidly provisioning the appropriate resources for DevOps applications and also plays a critical role in securing and managing these rapidly migrating applications. The agility and rapidly changing requirements of microservices, however, challenge the capabilities of traditional networks. The disaggregation of the application means that there are too many moving parts for manual networking -- so network automation is critical. The ability to pretest network resources with DevOps is important to avoid potential slowdowns of application deployment times (e.g., going back to fix network issues). A fundamental ideal: Developers shouldn't have to worry about network resources, including IP addresses or firewall rules.
Where SDN, DevOps and automation meet
Software-defined networking optimizes the network for DevOps and automation, giving IT organizations deploying complex applications the ability to control the rapid provisioning of network resources and services (including security policies). SDN enables centralized management of the network and reduces operational costs by shifting the challenges of (manual) configuration from people to technology.
SDN-based networks can automatically detect changes in traffic flow and select the path data takes through a network based on parameters such as application type, quality of service and security rules. A software control plane manages and hides network complexity, with the ability to make 10,000 switches look like one. SDN can direct the network to provide services aligned with its associated applications and support rapid deployment of a large number of new applications and microservices (e.g., containers).
DevOps and automation recommendations
Leading IT organizations are rapidly adopting converged DevOps teams to accelerate application development and reduce costs. The DevOps style of application development requires rapid provisioning, scalable resources and automated operations to flexibly deliver IT services. The challenge is that the traditional methods of network provisioning (e.g., manually configuring each device) can't scale to meet the complexity of distributed applications (e.g., Hadoop big data and internet of things).
SDN provides the ability to automate network processes to rapidly provision network/security resources to DevOps applications. It can reduce operational costs by shifting the challenges of (manual) configuration from people to technology. Many hyperscale cloud providers -- including Google, Apple, Facebook and Microsoft -- have already deployed SDN technologies to help automate the provisioning and management of their networks. IT leaders should consider deploying SDN to meet the evolving needs of their DevOps teams and associated applications.
Better together: DevOps and SDN
How the definition of SDN has changed
What SDN enthusiasts can learn from NASA