Vahdat said Google relies on SDN to keep its network constantly available and constantly updated. He said every year Google increases the capacity of its network, probably to the same scale as the entire internet when it was 2 or 3 years old. “We have perhaps hundreds of thousands of switching elements,” he said. “We’re introducing new network elements all the time. Making sure we can maintain that pace is very challenging. Without SDN it would not be possible to do that.”
Vahdat added, “Velocity is how quickly we can move from one version of our network to another.” And velocity has to be balanced with availability. Google’s network simply cannot go down.
SDN has been a savior because the company has been able to push a lot of functionality to software for fast updating.
Guru Parulkar, executive director of the ONF, explained that if you implement a network function in software you can get performance and not have to wait for chips to advance. For example, he said you can pick certain packets to do processing in the server and use techniques such as packet encapsulation and decapsulation to process certain packets in software. “Doing this under software control is something that I believe Google must be at the top of the game,” said Parulkar.
Concerns for the Future
However, Google, along with everyone else, has also ridden the wave of Moore’s law, which states that the number of transistors in a dense integrated circuit doubles about every two years.
Vahdat is worried about the future because the rate at which server performance improves is slowing down. He said Moore’s law “has driven Silicon Valley for 40 years, but those days are over.”
Until now, companies such as Google could expect ongoing and significant server performance improvements. But Vahdat said, “We can now expect a couple percent processor performance per year. And we may get more performance out of a chip, but we’re going to have to pay more for it.”
Meanwhile, data is growing faster than compute. And a lot of that data growth is from computer-to-computer communication. Vahdat gave the example of a person searching Google for a restaurant. He said dozens of individual services are involved to come up with the personalized recommendation. Computers determine which restaurants are nearby, which ones are opened right now, and which ones want to produce an advertisement.
“Our app developers wish they could do a lot more, but they’re limited by the network, their compute budget, and the amount of data available in that second,” he said. “Our compute infrastructure is not able to keep up. We’re going to have to pay a lot more or come up with novel ways to do that data processing.”
One way to improve data processing might be cluster computing. Parulkar said, “Cluster computing is when you take 10 servers [for example] and compute on those servers for a single application. Many services can be done on a single server, but more services today require cluster computing.”
Cluster computing, or distributed computing, will put more emphasis on the network, however.
“Our computing demand is continuing to grow at an astounding rate,” said Vahdat. “We’re going to need accelerators and more tightly-coupled compute. The network fabric is going to play a critical role in tying those two together.”
Parulkar agreed, “The network is in the middle. If the network is not high-performance and efficient, it will become a major bottleneck.”