Networking is often considered an afterthought in the software development lifecycle. But software-defined networking (SDN) functionality is now being used to dynamically scale and protect enterprise applications. The rise of advanced networking capabilities and virtual LAN (VLAN) services promises to allow organizations to test a network's effect on applications earlier in the DevOps lifecycle.
The rise of virtual networking is particularly important to the DevOps model, where people are involved in testing throughout the software development lifecycle. "Using exactly the same technology during app development and subsequent deployment brings agility to the DevOps process, streamlining application development and reducing costs," Cliff Grossner, directing analyst for data center, cloud and SDN at Infonetics Research, said.
Virtual networking is taking off, with major players launching services like VMware's NSX and Cisco's Application Centric Infrastructure. These services come with a variety of virtual networking functionality. Enterprises use various integrations to support additional networking functionality, such as application delivery controllers (ADCs), firewalls and global server load balancing, or GSLB, capabilities from specialty vendors like F5 Networks, KEMP Technologies and Palo Alto Networks.
Going beyond the pipes
Traditionally, smart networking services are considered only in the latter phases when software is being released into production, Lori MacVittie, principal technical evangelist at F5 Networks, said. But ADC companies are adding a variety of new networking-related features that can be configured and programmed earlier in the SDLC, such as F5's synthesis architecture for software-defined application services (SDAS).
Using exactly the same technology during app development and subsequent deployment brings agility to the DevOps process.
directing analyst for data center, cloud and SDN, Infonetics Research
The ability of SDAS to provide identity and access management, and its programmable nature, fit well into the development and implementation phases, MacVittie said. For example, an application requiring identity services could be configured by developers using SDAS rather than coded from scratch. This makes it possible for the service to forward to the app exactly the data necessary to perform any user-specific processing and personalization.
Designing an app that is usable on both mobile and traditional platforms can require extensive customization to ensure quality of experience. An externalized SDAS mobile optimization and acceleration service can detect and identify the client platform and automatically adjust the content to best suit the target. This alleviates the need to specifically address each platform in the application itself.
Application templates can encapsulate an application's complete service configuration and can be treated like code artifacts for purposes of integration with continuous delivery and integration efforts. Those templates can then be used to provision SDAS via a RESTful API through a variety of means: scripts, a rich set of partner solutions, or SDAS orchestration and management software.
Bringing the network into software development
The challenge that many organizations face lies in replicating the servers, configurations and networks used in production. Providing a realistic version of networking services is similar to the way that service virtualization technologies championed by IBM, HP, CA Technologies and Parasoft are being used to better develop and test applications.
Virtual LANs have not been widely used by developers and testers until recently, Jason Dover, director of product line management at KEMP Technologies, said. The company recently began offering a free version of the service for the development and testing sides of the application lifecycle. Powershell and Java API wrappers can instantiate instruments and integrate this smart network functionality into common development and testing scenario workflows. This reduces the need for organizations to leverage the same technology in development and testing that is used in production, Dover said.
In general, application development is moving in the direction of dumb pipes and smart endpoints, but the challenge is keeping track of what is happening at the physical level to avoid over-commitment, Dover explained. "If you are spinning up tunnels and connections and you don't have the ability to understand the physics of the pipe, there is a potential for over-commitment," he said.
Start with the network in mind
It is important for developers to familiarize themselves with the features of their advanced SDN tool. These can include a wide variety of security, performance, availability, mobility, and identity and access control services that can be incorporated into application architectures, F5 Networks's MacVittie said.
It is also important to take a DevOps approach to integrating and deploying those services, she added. Clearly identifying the integration points between the services and the application, as well as jointly determining which aspects of the application experience in terms of performance, scale and availability are critical to success, will help craft the right policies and templates.