Microservices Expo Authors: TJ Randall, Liz McMillan, Elizabeth White, Pat Romanski, AppDynamics Blog

Related Topics: Microservices Expo

Microservices Expo: Article

SOAs Need an Intelligent SON

A new service-oriented network approach is crucial to providing a nimble infrastructure that can accommodate SOA's agility

Service Oriented Architecture (SOA) is the most significant transformation in IT application architecture in the past several years - representing open standards and a more loosely coupled approach to designing, developing, and deploying applications.

While attention is given to the application side of SOA, an often-overlooked ingredient needed to ensure its successful delivery is the underlying network infrastructure. As important as the application tier is, a new service-oriented network (SON) approach is crucial to providing a nimble infrastructure that can accommodate SOA's agility and flexibility. Transforming the application tier without considering the implications of outdated network design poses a significant risk to successful SOA deployments.

A principal feature of a SON is having network devices that are far more intelligent than those found on traditional networks - devices that recognize that SOA traffic is fundamentally different from other network traffic. The SON must clearly and unambiguously understand Web Services language while loosely coupling network resources. Then the SON must virtualize these resources and the commands and business logic to execute the transaction.

Oddly enough, many IT managers have yet to grasp this reality: Yesterday's network won't support tomorrow's applications. In the last year both InfoWorld and Network World did major research surveys of the SOA plans of senior IT managers. When asked what obstacles might litter the path to broader SOA deployment, respondents in both surveys put factors like security, organizational barriers, and slow standards development at the top of their lists.

Of course, history might play a part in this mindset. Not that long ago, the network filled the simple role of transporting application requests from one endpoint to another. Most network devices were virtually "set and forget" tools that directed traffic over various ports from outside the network to internal application assets. Load balancers - the network technology most relevant to application architects and developers - were basically installed, set up for "round robin" load balancing, and never touched again.

Now, as network devices are becoming more intelligent, they can work more cooperatively with applications by offloading advanced needs such as application persistence, SSL acceleration, compression, and caching. Some even have bi-directional proxy capabilities to control application flows, enabling applications and network to work in concert.

The Old School Persists
Unfortunately, many organizations still rely on old devices that aren't optimized to handle XML Web Services traffic effectively. With Web Services and XML, a tremendous amount of context is embedded in the requests passed via SOAP and HTTP. From self-describing data to selectively encrypted elements, understanding the traffic and being able to alter its flow to direct requests and responses better is critical to a successful SOA. Furthermore, in an SOA world where faster application development and service reuse speeds up application change, the burden of configuration change management is significantly increased. A new breed of product and overall network design is needed to support SOA implementations.

There are two critical reasons why last-generation network technology knows little about Web Services. First of all, most traditional devices are connection-specific. They can't understand the traffic flowing through them natively, and rarely dig deeply into the application payload where much of the application logic resides in Web Services traffic.

Second, most network products don't provide the Web Services-friendly API needed to support the constantly changing configuration needs of Web Services, whether requested individually or as part of composite services.

A Real-World Example
Why is this so critical for your SOA plans? Well, consider a basic real-world scenario. You've built a mission-critical Web Service using SOAP that brokers transactions between your primary business partners and internal order processing system. But traditional network devices can't tell the difference between a Web page request and a SOAP application request. This lack of understanding will play a significant role in how reliability is orchestrated with your SOA.

One day, an unforeseen market event (say an interest rate change for a financial services firm) floods your system with transactions. Older load balancing devices might distribute these requests as needed to the next available server that can support them. But if the servers become overloaded, the older devices make it hard to understand why. Further, based on the unique priority of different Web Service requests, it's even more difficult to know where to send them to comply with the business requirements influencing your SOA strategy.

Intelligent full-proxy devices, however, can identify SOAP faults or exceptions and associate them with the actual application server returning the SOAP error codes. Advanced devices can even queue these faults and retry requests to another service endpoint before returning an error to the requesting client. This ensures a better client experience and makes error logging and troubleshooting easier due to native Web Service fluency.

Smart network devices can also prioritize requests based on enforced rules and logic, removing the burden from the application servers that support the requests. Combine this application knowledge with bloated XML traffic and it's easy to see how a high-performance network device can come in handy to crunch the bits into faster, more secure, more intelligent application flows.

More Than Intelligence
But a network technology must be more than just intelligent to support SOA effectively. In a traditional network load balancer world, configuration changes are made via a GUI or command-line interface. Efficiency-focused network operators commonly collect hard-coded scripts written for a specific configuration of IP addresses and servers. These usually work for static environments and events, but the approach conflicts with the agility and flexibility that SOA enables. Architecturally, it opposes the loosely coupled philosophy of SOA. The brittle coupling breaks as changes are made to support business logic, creating more of the challenges that SOA is intended to remove.

The use of SNMP as a common interface language for network integration is also inherently insecure, and requires developers to learn management information bases (MIBs) that define how and what to communicate as defined by the network device.

To support SOA, a network API - or network control plane - that openly understands Web Services language and loosely couples the network resources, IP addresses, pools of servers, and configurations is needed. It will automate mission-critical configurations and make the critical connection between the application realm and the network realm, and is critical to building and deploying a SON.

To understand SON, one must view the network and servers as SOA sees applications. The underlying network and associated resources required to deliver SOA applications are active participants in the SON architecture model, which also delivers agility and flexibility through virtualization of key infrastructure resources, commands, and business logic.

From an agility perspective, this approach enables a SON to expand and contract dynamically based on any variety of performance, availability, or security issues that may develop to ensure the successful delivery of services in the SOA. Knowledge gleaned by intelligent devices about various Web Service needs (plus an API to execute dynamic configuration changes) provides the orchestration engine to support SON. New applications can be deployed faster, without a complete reconfiguration of the network resources.

To illustrate this, visualize a data center with 10 servers and a single Web Service replicated across each server. The network device virtualizes the separate server IP addresses as one "virtual IP" supported by the "pool" of servers. Requests made for a Web Service defined as one virtual IP are directed to the servers best able to support them.

Using our previous financial industry example, as requests increase, the network device can monitor requests, look for errors, and invoke configuration changes to alter device setup, adding more standby servers to the pool or even redirecting new requests to another data center running additional instances of the Web Service. Additionally, prioritized requests based on client request ID or other factors could be sent to an entirely separate pool of servers hosting the service in a manner optimized for high-demand scenarios.

Based on business priority, the number of server resources, the priority, and dynamic changes to the configuration to support automated change can be done seamlessly, with the service and network working together through more network intelligence and control.

The Bottom Line
To support a SOA, some key ingredients include a network device that is highly intelligent, able to understand SOA service flows, speak the same language as the applications, and understand the unique needs of Web Services traffic - all of which will go a long way in helping you design a SON to support your SOA.

More Stories By Jeff Browning

As Product Manager for F5 Networks, Jeff is responsible for driving the product and marketing strategy for F5's iControl API and Software Development Kit. With over 10 years of software industry experience, Jeff's extensive background in Web services, Enterprise Portals, and Software Development tools at leading companies like Microsoft and DataChannel helps bridge the gap between networking technologies and Web services applications for better performing, scalable, and secure enterprise solutions

Comments (1)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

Microservices Articles
At its core DevOps is all about collaboration. The lines of communication must be opened and it takes some effort to ensure that they stay that way. It’s easy to pay lip service to trends and talk about implementing new methodologies, but without action, real benefits cannot be realized. Success requires planning, advocates empowered to effect change, and, of course, the right tooling. To bring about a cultural shift it’s important to share challenges. In simple terms, ensuring that everyone k...
Is advanced scheduling in Kubernetes achievable?Yes, however, how do you properly accommodate every real-life scenario that a Kubernetes user might encounter? How do you leverage advanced scheduling techniques to shape and describe each scenario in easy-to-use rules and configurations? In his session at @DevOpsSummit at 21st Cloud Expo, Oleg Chunikhin, CTO at Kublr, answered these questions and demonstrated techniques for implementing advanced scheduling. For example, using spot instances and co...
Today most companies are adopting or evaluating container technology - Docker in particular - to speed up application deployment, drive down cost, ease management and make application delivery more flexible overall. As with most new architectures, this dream takes significant work to become a reality. Even when you do get your application componentized enough and packaged properly, there are still challenges for DevOps teams to making the shift to continuous delivery and achieving that reducti...
Skeuomorphism usually means retaining existing design cues in something new that doesn’t actually need them. However, the concept of skeuomorphism can be thought of as relating more broadly to applying existing patterns to new technologies that, in fact, cry out for new approaches. In his session at DevOps Summit, Gordon Haff, Senior Cloud Strategy Marketing and Evangelism Manager at Red Hat, discussed why containers should be paired with new architectural practices such as microservices rathe...
With the rise of Docker, Kubernetes, and other container technologies, the growth of microservices has skyrocketed among dev teams looking to innovate on a faster release cycle. This has enabled teams to finally realize their DevOps goals to ship and iterate quickly in a continuous delivery model. Why containers are growing in popularity is no surprise — they’re extremely easy to spin up or down, but come with an unforeseen issue. However, without the right foresight, DevOps and IT teams may lo...
Kubernetes is a new and revolutionary open-sourced system for managing containers across multiple hosts in a cluster. Ansible is a simple IT automation tool for just about any requirement for reproducible environments. In his session at @DevOpsSummit at 18th Cloud Expo, Patrick Galbraith, a principal engineer at HPE, will discuss how to build a fully functional Kubernetes cluster on a number of virtual machines or bare-metal hosts. Also included will be a brief demonstration of running a Galer...
DevOps is under attack because developers don’t want to mess with infrastructure. They will happily own their code into production, but want to use platforms instead of raw automation. That’s changing the landscape that we understand as DevOps with both architecture concepts (CloudNative) and process redefinition (SRE). Rob Hirschfeld’s recent work in Kubernetes operations has led to the conclusion that containers and related platforms have changed the way we should be thinking about DevOps and...
In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, will discuss how to use Kubernetes to setup a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace....
"There is a huge interest in Kubernetes. People are now starting to use Kubernetes and implement it," stated Sebastian Scheele, co-founder of Loodse, in this SYS-CON.tv interview at DevOps at 19th Cloud Expo, held November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA.
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is foundational - something customers routinely cite as a top pain point. In his session at @DevOpsSummit at 21st Cloud Expo, Bill Borsari, Head of Systems Engineering at Datera, explored how organizations can reap the bene...