It's no secret that modern IT systems require more and more performance, reliability and at the same time the flexibility, scalability and efficiency required to meet the demands of the modern user and solve business problems. The peculiarity of today's situation is that it is impossible to sacrifice any of these parameters.

Software-controlled and software-defined
It is well known that the development of data processing centers has already allowed us to get closer to solving the problem. Another thing is that the data center is not only and, probably, not so much the physical integration of the components of the IT infrastructure, as a platform for the concentration of advanced trends and developments. And since data centers today are key elements of the IT landscape, the development of all areas of corporate IT has begun to fit into a single vector.
More specifically, the concept of a software-defined Data Center (Software Defined Data Center - SDDC) is becoming increasingly common. During the implementation of this concept, the overall objective is set as follows: without degrading the reliability and performance parameters of IT solutions as a whole (the upper bar for which hardware components were asked and continue to be assigned) to increase the adaptability of the computing infrastructure, the degree of equipment utilization, and thus all the other characteristics mentioned above.
')
With regard to technical implementation, it’s about the fact that literally all elements of the IT infrastructure, ranging from computing power to the most versatile data processing services in the data center (such as, say, data deduplication, backup or load balancing), begin to live in space virtualization. And accordingly, all elements that were traditionally implemented in purely hardware way become software-defined.
It must be said that the network infrastructure in this respect has long remained (and still is largely) a very conservative area. The principles themselves, in accordance with which the information transmission architecture is formed, the ideas of structuring the information flow actually remained unshakable for decades, while the computing architecture and approaches to data storage underwent significant changes. Nevertheless, the term Software Defined Networks is gradually becoming more and more popular, and the corresponding systems are increasingly being implemented in practice. According to IDC estimates, made in the second half of last year, by the end of 2017, the market should have reached 1.2 billion dollars, having increased over two years from 225 million dollars. The growth more than five times looks convincing, although even such ones seemed impressive numbers for SDN technology are clearly far from potentially achievable.
Before speaking directly about SDN, I note that the role of software in optimizing network traffic has been and continues to be quite high for many years. At least it has always been higher than in the field of data storage systems, which, by the way, are also close to software defined ideas. Today, in ensuring the quality of traffic, a pool of various software systems collectively plays almost more pain than all the “iron” foundation, originally incorporated into the architecture of a network device. The term virtualization, as part of the same software development, is also often pronounced in the context of a conversation about network devices. Many, in fact, external software services aimed at optimizing the operation of networks and data protection, are now firmly perceived as an integral part of data transmission technologies. In other words, if we say that software-defined networks have appeared a long time ago, then formally this thesis will be correct. The most diverse software has long and very closely interwoven into the world of network devices, and in order to better understand the essence of the concept software defined in its modern sound, we will try to clearly separate them from the solutions of previous generations.
This is not for you and here you are not here: understand the details of the SDN

Of course, the current software definition of networks has nothing to do with the logical separation of transmission channels, which has long been a standard practice for implementing network communications, and, while ensuring an adequate level of performance, can always be implemented programmatically. In SDN networks, logical separation is preserved, and it simply cannot be otherwise.
You should also clearly separate the concept of SDN networks from the now quite popular NVF (Network Function Virtualization). The basic idea of ​​NFV is to virtualize network services, thus abstracting them from the equipment of one manufacturer or another. As a result, common servers often become the typical hardware foundation of virtualized network services. The ideas embodied in SDN are much wider, but if necessary, virtualization of network functions can be fully implemented within the respective devices.
Separately, SDN should be singled out against the background of a whole set of software technologies related to optimization of network traffic and applied in a specific configuration of architectural solutions, with a specific profile of the network traffic profile and requirements for its security. It should be said about such technology as Application Delivery Network (ADN), which in turn provides for the implementation of several mechanisms: Application Delivery Controller (ADC), WAN Optimization Controllers (WOCs), Web Application Firewalls and Secure Access Gateways. It hardly makes sense to tire with the long enumeration of individual functions of this pool of mechanisms, therefore I will only note the principal points. The fact that the task of ensuring the security of data transmission here stands out in particular, it is clear from the above names. As for network optimization, it is certainly very much in demand and significantly increases the transfer efficiency. A kind of “trump card” of this technology is that it acts according to the situation developing at a certain point in time in a certain segment of the network, and in accordance with this situation it uses certain methods of influencing traffic (somehow deduplication, caching and a whole a number of others). The basis of network optimization and protection of network segments is often the hardware complexes, but due to the very high requirements regarding the adaptability of the functions of these devices to practical data transfer scenarios, the software here also plays a very large role.
Returning to the topic of SDN, it is important to note that in this case we do not have a conflict with the previously used software development. If necessary, SDN devices are able to take on these functions, which, as a rule, eliminates the need to install special devices both in data centers and remote sites.
As a result, we can safely say that Software Defined Networks allows you to implement the full set of services that have appeared in the framework of individual technological developments over the entire existence of data networks. At one time or another, these developments were dictated by the need to optimize network traffic, as well as the need to protect data and, in general, corresponded to the level of development of the software IT infrastructure at any given time.
In other words, SDN networks are the most fundamental approach to using software solutions in building data networks. And thanks to the ideology and architecture can provide the customer with a number of additional features.
What we should build a network ...
Of course, SDN networks have a common architecture, which differs markedly from the classical one. As part of the traditional paradigm, as is well known, lies the concept of a static network. Initially created and customized network domains form its basis, and in this sense the originally implemented architectural model does not change with time. Network engineers are responsible for designing the network topology, configuring the parameters of quality of service (QoS), and during operation for maintaining these parameters, as well as for localizing and eliminating problems in switching or routing traffic.
In the case of SDN networks, this notion of a fixed environment no longer exists. Instead, the routing scheme may vary depending on the actual data flows in different parts of the network, which in turn depend on the load profile of the application systems that work on top of this network.

Currently, there are several essentially competing models of SDN networks, among which the most recognizable is perhaps the Open Network Foundation (ONF) model. It is already presented in great detail in literary sources and I will not repeat its numerous descriptions. Despite its recognition, so far this model can hardly be called leading in the market. Rather, it is only one of the options for implementing the concept of the Software Defined Network, and along with it there are also alternative designs. Among them there are models similar in ideology to what ONF offers (the so-called fabric-based networks); traffic. A detailed analysis of these schemes is the subject of a deeply professional narration that, in the conditions of a not very confident understanding of all the subtleties of SDN technology even in professional circles, it still seems premature.
Of course, the previous generation of routers could not function completely in an isolated and static state. Information exchange between them (at least in some kind of "short-range order"), leading to the constant updating of local routing tables on each device, always occurred. This is a regular process that determines the subsequent routes of data movement within the framework of a pre-built network topology. This process is implemented with the operation of any network and in the well-established network terminology is called the control plane. Based on the corresponding settings, the end-to-end movement of data across the network directly occurs, and this movement in the aggregate is called the data space (data plane). In traditional network devices, such a separation, if any, exists, rather as a theoretical paradigm, which makes it possible to structure the individual functions of a network device and thus better understand their operation. The logic at the level of the internal architecture in this case remains absolutely monolithic.
The basic idea of ​​SDN networks is to separate these two spaces, which, according to the experience already gained in using software control technologies of various hardware devices, should lead to simplified management and the emergence of opportunities for its maximum flexibility. As a result of this separation, the control plane actually turns into the operating system of the computer network, while the data plane, on the contrary, plays the role of passive routing, implemented through commands generated at the level of the control plane. Thus, the development of network technologies fits into the overall technology vector. If you go back to the topic of software-defined data centers, then there the solutions are also divided into two spaces, - in relation to the SDDC, this is the same control space (control plane) and service space (service plane).
In other words, the network becomes fully programmable, and the most important thing in this property is that this programming in most practical situations, in fact, is initiated not by the administrators, but by the application systems themselves. That is, based on the logic of their operation and the need for network resources at the moment, application systems "set the task" for the SDN network.
SDN sprouts on the IT landscape
In the near future, when the well-known concept of the Internet of things begins, finally, begins to take practical shape, the network traffic will be more dynamic, more saturated, and more diverse in format. The number of application systems that both business and individual users work with will also increase.

The emerging concept of EDGE Computing, which is essentially complementary to the ideas of IoT, directly indicates that a significant part of the burden will fall on the branches.
Today's universal mobility can also be viewed as a kind of “pen test” for the Intentet of Things technology. At the level of functioning of applied systems, these two worlds probably seem completely different, but they have a lot in common in the projection on network technologies. And in this sense, it is not by chance that now you can find quite a large number of publications linking SDN with mobility, and with IoT, and with EDGE Computing.
Another powerful potential for the development of SDN networks lies in the explosive growth of video content, both when using the Internet by individual users and in corporate networks.
There is also a strong opinion that a kind of “crystallization point” for the development of SDN networks will become a large business dealing with the problems of generating, storing and distributing electronic content according to the outsourcing model. These can be mobile operators, home television operators, or companies that take decisions to maintain the life cycle of electronic information resources for their corporate clients. It is believed that, first, the concept of Software Defined Networks will find wide application in their data centers, and after some time will begin to cover the entire space of electronic communications.