Welcome!

Industrial IoT Authors: Elizabeth White, Stackify Blog, Yeshim Deniz, SmartBear Blog, Liz McMillan

Blog Feed Post

Programmability in the Network: Versioning Patterns

#devops API and application versioning becomes a requirement when dev is agile.

Agile development methodologies advocate a rapid release cycle. Facebook, for example, noted last year that it pushes code live twice a day. Organizations may never push code that often, but they do push new versions, new features, and new APIs on a much more frequent cycle than has been done in the past. In the old days, such rollouts were few and far between, carefully coordinated to ensure that clients were updated at the same time. It was, for the entire organization, a task of gargantuan proportions. Migration when versioning becomes critical to the functionality (or stability or security or performance) becomes problematic in an agile environment. It's more likely that you'll be supporting at least two if not three or more versions of the same API or application and encouraging migration over time.

Assuming this is the status quo today, it begs the question how an organization deploys and maintains multiple versions of the same application or API without also maintaining multiple versions of the entire application delivery infrastructure chain. Certainly this is an option, but an operationally (and capitally) expensive one. A much better option is to leverage programmability in the network to implement support for versioning; ensuring that clients and applications or APIs match up.

The goal of implementing a versioning pattern in infrastructure is fairly straightforward: run multiple versions in parallel to enable a transitional client migration strategy. There are two common methods of achieving this goal:

  • URI-based versioning
  • HTTP Header-based versioning 

Both are easily supported by most programmable load balancing proxies. 

versioning-partition-diagram

There are two primary methods of versioning applications and APIs and both are equally supported by programmable load balancing proxies. In both cases, the proxy must be able to intercept and inspect the request. It acts as an intermediary; as far as the client is concerned, it is the ultimate endpoint. Reality is that it is only the penultimate endpoint, as the actual destination must be determined based on URI or HTTP header values (or a combination thereof).

In the network demesne we call this HTTP Message Steering. It is the ability of an intelligent intermediary to parse messages - not packets, but messages - and from that determine where to direct the request. This enables the proxy to make decisions based on a number of factors. While versioning patterns generally make use of HTTP URI or Accept header values, there's no reason this information could not be carried within the message (payload) in an XML element, e.g. <version>3</version>. 

By placing the onus for parsing and choosing the version appropriate endpoint on the load balancing proxy, developers can roll out new versions without also rolling out methods of diverting requests to the right version, and the proxy can support virtually thousands of versions simultaneously*.

Using programmability in the network to manage versioning also provides a centralized, single point of entry through which versions can ultimately be deprecated and decommissioned. An intelligent, programmable load balancing proxy can also respond directly to the client, which means if a version is decommissioned the proxy can redirect the client to a new version, to a support page or to the new version of the client instead. This eliminates application black-holes and frustrated customers who may not know they need to migrate to a new version. Resources that might have been necessary to support this type of functionality without a programmable load balancing proxy can be re-provisioned to support current and new versions instead.

Programmability in the network supports agile development methodologies by providing a scalable, flexible and logical point in the network where decisions regarding version handling can be quickly made. Devops, in conjunction with developers, can quickly roll out new releases and simultaneously manage multiple versions with alacrity and thus eliminate complexity and costs in the application infrastructure.

* Obviously supporting more than a few versions of the same application or API is not recommended, but hey - if you want to, knock yourself out.


 F5 Networksclip_image003[5]clip_image004[5]clip_image006[5]clip_image007[5]clip_image008[5]

Read the original blog entry...

More Stories By Lori MacVittie

Lori MacVittie is responsible for education and evangelism of application services available across F5’s entire product suite. Her role includes authorship of technical materials and participation in a number of community-based forums and industry standards organizations, among other efforts. MacVittie has extensive programming experience as an application architect, as well as network and systems development and administration expertise. Prior to joining F5, MacVittie was an award-winning Senior Technology Editor at Network Computing Magazine, where she conducted product research and evaluation focused on integration with application and network architectures, and authored articles on a variety of topics aimed at IT professionals. Her most recent area of focus included SOA-related products and architectures. She holds a B.S. in Information and Computing Science from the University of Wisconsin at Green Bay, and an M.S. in Computer Science from Nova Southeastern University.

IoT & Smart Cities Stories
Founded in 2000, Chetu Inc. is a global provider of customized software development solutions and IT staff augmentation services for software technology providers. By providing clients with unparalleled niche technology expertise and industry experience, Chetu has become the premiere long-term, back-end software development partner for start-ups, SMBs, and Fortune 500 companies. Chetu is headquartered in Plantation, Florida, with thirteen offices throughout the U.S. and abroad.
DXWorldEXPO LLC announced today that ICC-USA, a computer systems integrator and server manufacturing company focused on developing products and product appliances, will exhibit at the 22nd International CloudEXPO | DXWorldEXPO. DXWordEXPO New York 2018, colocated with CloudEXPO New York 2018 will be held November 11-13, 2018, in New York City. ICC is a computer systems integrator and server manufacturing company focused on developing products and product appliances to meet a wide range of ...
SYS-CON Events announced today that DatacenterDynamics has been named “Media Sponsor” of SYS-CON's 18th International Cloud Expo, which will take place on June 7–9, 2016, at the Javits Center in New York City, NY. DatacenterDynamics is a brand of DCD Group, a global B2B media and publishing company that develops products to help senior professionals in the world's most ICT dependent organizations make risk-based infrastructure and capacity decisions.
René Bostic is the Technical VP of the IBM Cloud Unit in North America. Enjoying her career with IBM during the modern millennial technological era, she is an expert in cloud computing, DevOps and emerging cloud technologies such as Blockchain. Her strengths and core competencies include a proven record of accomplishments in consensus building at all levels to assess, plan, and implement enterprise and cloud computing solutions. René is a member of the Society of Women Engineers (SWE) and a m...
Nicolas Fierro is CEO of MIMIR Blockchain Solutions. He is a programmer, technologist, and operations dev who has worked with Ethereum and blockchain since 2014. His knowledge in blockchain dates to when he performed dev ops services to the Ethereum Foundation as one the privileged few developers to work with the original core team in Switzerland.
@DevOpsSummit at Cloud Expo, taking place November 12-13 in New York City, NY, is co-located with 22nd international CloudEXPO | first international DXWorldEXPO and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time t...
Headquartered in Plainsboro, NJ, Synametrics Technologies has provided IT professionals and computer systems developers since 1997. Based on the success of their initial product offerings (WinSQL and DeltaCopy), the company continues to create and hone innovative products that help its customers get more from their computer applications, databases and infrastructure. To date, over one million users around the world have chosen Synametrics solutions to help power their accelerated business or per...
DXWordEXPO New York 2018, colocated with CloudEXPO New York 2018 will be held November 11-13, 2018, in New York City and will bring together Cloud Computing, FinTech and Blockchain, Digital Transformation, Big Data, Internet of Things, DevOps, AI, Machine Learning and WebRTC to one location.
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...
Charles Araujo is an industry analyst, internationally recognized authority on the Digital Enterprise and author of The Quantum Age of IT: Why Everything You Know About IT is About to Change. As Principal Analyst with Intellyx, he writes, speaks and advises organizations on how to navigate through this time of disruption. He is also the founder of The Institute for Digital Transformation and a sought after keynote speaker. He has been a regular contributor to both InformationWeek and CIO Insight...