There’s a lot of buzz around microservices today. They’re the new hotness in application architectures and are often mentioned in conjunction with their BFF, containers. A recent survey conducted by InfoQ revealed that both were high on the “using or planning to use” list, with containers (71.79% of respondents) barely beating out microservices (70.4%). Interestingly, the same research showed that microservices were in use more today (32.21%) than containers (29.44%).
Regardless, it seems inarguable that microservices and containers are technologies that are on most organizations’ radars.
Like any significant shift in application architectures, however, there is a comparable shift in the network as the app services and network functions adapt to meet the needs of these new application architectures. This is partially due to the reality that changes – especially radical ones – in application architectures change network patterns and are often accompanied by new languages, web platforms, and the challenges that arise from them around security.
For example, the move from client-server to the (now) traditional three-tier web application brought with it not just another tier in the application architecture but a complementary tier of infrastructure designed to provide for the scale and performance required of apps in the burgeoning Internet era. You may recall the sudden growth of XML gateways, XML security gateways, XML firewalls, and other related “network” devices focused solely on addressing the challenges arising from the (then) new app architecture, SOA.
Then as cloud and mobile started to make their impact known, security rose to the fore and a spate of new network security solutions were born. These were focused on managing and securing mobile devices, including the networks on which these devices were acting, as well as cloud access security brokers. A subtle shift in “the network” occurred here that is still being felt; the expansion of “the network” to include, virtually, the Internet. Continuing dispersal of applications across multiple environments will no doubt be answered by the network with a continued migration of traditionally LAN-bound services (particularly security) to the Internet, “as a service.”
Today, we’re seeing the rise of microservices and APIs, primarily RESTful ones in application architectures. At the same time the Internet of Things and explosive growth of applications and human users continues to drive the need for scale, but today that scale is focused on operations.
The result is that the network needs to (and is, in many cases) respond with efforts to realize architectural compatibility with the applications (services) its tasked with scaling, securing, and optimizing. That means adopting virtual and containerized form factors – including cloud, and an emphasis on orchestration and automation. Templates, APIs, and the ability to integrate with the frameworks and toolsets that will ultimately drive deliver of applications into production is the goal, today.
The “network” is responding. APIs abound. Templates and support for other template systems (OpenStack Heat and AWS Cloud Formation Templates anyone?) are becoming commonplace, as is support for treating app delivery infrastructure “as code”.
This adaptation is not like traditional adaptations in the network, where speeds and feeds of packets are key. This latest adaptation is about speed of provisioning and the capabilities of APIs as feeds in the network. It’s a focus on realizing architectural compatibility with the application architecture whether it’s deployed in a public or private (on-premises) cloud, as a single, monolithic application or a decoupled set of a hundred microservices.
Make no mistake; networking is impacted – and even driven – by changes in application architectures. There is a symbiotic relationship between the two that cannot be ignored, particularly as we move into an operationally focused era in which coordination and cooperation is key for businesses to deliver the applications they rely on today to succeed and grow.