To run cloud-computing networks across a large number of servers, companies like Microsoft are increasingly relying on software-defined networks. SDNs are networks of equipment that decouple hardware from software and execute the software in the cloud or in clusters of distributed IT servers.
IEEE Senior Member Albert Greenberg, a Microsoft Distinguished Engineer, has been involved in this area for decades. Last month, he received the 2015 ACM SIGCOMM Award for Lifetime Contribution, “for pioneering the theory and practice of operating carrier and data center networks.” He is the director of development for Microsoft Azure Networking, a cloud-computing platform that encompasses analytics, database, storage, and other services. And a decade ago, he coauthored “A Clean Slate 4D Approach to Network Control and Management,” which outlined what were to become SDNs.
In this interview with The Institute, Greenberg expands on SDN technology, how Microsoft is implementing it, and what he’s working on next.
What are software-defined networks, and why are they important?
Greenberg: Networks should adapt to application requirements rather than the other way round. Otherwise, it limits networking approaches and capabilities. If infrastructures are programmable and automated, then we can move the flexibility of applications and workloads across data centers and clouds. We can also provision and configure physical and virtual networks faster, and centralize network operations’ visibility and control.
SDNs are about using software to make this possible, allowing for optimal utilization of users’ existing physical network infrastructures as well as the benefits of centralized control. Operators tell the network what to do through control interfaces based on well-defined objectives for high performance and functionality. Prior to SDNs, networks without central control were self-organized according to decentralized configurations, which meant networks were less reliable and had lower levels of performance and security.
What is Microsoft Azure, and how does it take advantage of SDNs?
Greenberg: Azure is a cloud-computing platform with a collection of integrated services including analytics, computing, database, mobile, identity, networking, storage, and the Web. Developers and IT professionals can use it to build and manage enterprise, mobile, Web, and Internet of Things applications faster. It also supports a broad selection of operating systems, programming languages, frameworks, tools, databases, and devices, and integrates with existing IT environments.
In Azure, we created a private software-defined data center supported by a virtual network for every customer—entirely on the servers. That way the network can be virtualized, and we can create the data centers without changing the hardware.
How can people access Azure?
Greenberg: Azure is available in 140 countries, in 10 languages and 24 currencies. It runs on a worldwide network of Microsoft’s data centers, which also provides the core infrastructure and foundational technologies for all of Microsoft’s online services, including Bing, MSN.com, Office 365, Xbox Live, Skype, and OneDrive.
What does Microsoft’s cloud network look like today?
Greenberg: We opened our first data center in 1989, which hosts more than 1 million physical servers. The cloud-scale physical networks are managed via a simple common platform called the Network-State Management Service. Our systems are able to detect, pinpoint, isolate, and route around any faulty components to keep the system running because of it.
What’s next for you?
Greenberg: I’ve been working on Microsoft’s SmartNIC, a hardware component to help accelerate SDNs. It incorporates the same technology used to speed up the indexing and searching for Bing—FPGA (field programmable gate array), which is software-programmable. SmartNIC is going to be applied to functions such as encryption, quality-of-service processing, and storage acceleration, which helps take the load off the cloud and gives us the ability to meet future demands.
We're a software company, and this technology will make it possible to roll out hardware at the speed of software. No one can tell what technology is going to be like in a year so we need hardware that can be reconfigurable to match new functionalities. With SmartNIC, we can change the FPGA programming as often as we need to.