In less than a year, the WEX Tech Talk series has become a popular way for our global tech community to come together to share ideas and get inspired. Most recently, Chris Browning, who heads up our enterprise architecture team, gave WEXers a guided tour of microservices architecture, which allows applications to be broken down into smaller pieces that work together, making them easier to build, maintain and evolve over time. This is in stark contrast to the more traditional monolithic approach of developing applications in one piece.
In his intro, Chris explains, “Microservices has become a reality because of the massive improvements we’ve seen in technology over the past 10 to 15 years, triggering an evolution from hardware-based infrastructure to more software-based infrastructure.”
It’s easy to see why microservices is the future: It allows for the unexpected and the not-yet-created—like a house with the potential to be remodeled in the future—whereas monolithic architecture affords no opportunities for later improvements to be made.
Netflix and Amazon are both prime examples of microservices industry leaders. When they ran into technology problems no one had ever seen before in terms of scale and volume, they turned to microservices to solve things differently. WEX, too, is deploying microservices technology to scale and create more efficient solutions.
Microservices Versus Monolithic Architectures
In his Tech Talk, Chris walks WEXers through a comparison of monolithic and microservices architectures, noting that with microservices, scalability is achieved because each capability is separated into its own process, allowing the deployment of individual microservices based on need. Monolithic architecture, by comparison, relies on a single database-dependent platform that implements all the capabilities required by a system. This approach creates a tightly coupled architecture with interdependencies between systems where scaling is only possible through a duplication of the entire system.
Chris notes several advantages to microservices architecture, including:
- The ability to be individually built, versioned, and deployed
- Improved system availability when implemented properly
- Better adherence to service boundaries
- Greater power and freedom for developers who can use multiple platforms and languages across services
Yet, microservices also introduces a new level of complexity that many in the tech industry aren’t yet at ease with: “Simplicity and consistency are among the core tenets of a monolithic solution, and developers are often comfortable with its straightforward approach,” says Chris. “Microservices are more complex, with multiple systems, multiple latency and connectivity issues all in play. In the right situation, the benefits of microsystems outweigh the challenges and risks—you just need to be aware of the complexities and be ready to manage them.”
That’s why a key element of microservices architecture is designing for failure. “Microservices are going to break, and they are going to break regularly,” advises Chris. “If you’re not comfortable allowing a [new] tool … into your system, then your software development processes aren’t mature enough for you to be implementing microservices.”
A Shift in Culture
Microservices architecture enables people to solve a problem in the best way using the best technology for that specific microservice, but it also demands that IT teams include all the people needed end-to-end to solve a customer problem. Each team should also have a direct connection all the way through to the end user. This is why a shift from monolithic to microservices architecture may necessitate a new way of putting IT teams together and alter how they work.
“In the microservices world, a team tends to own a product over its full lifetime, so you end up with a multi-functional group that’s responsible for both the solution and the service,” says Chris. “Companies like Amazon believe it’s in their developers’ interest to suffer greatly when they screw up and cause their customers pain. But it’s not all negative, as developers benefit from seeing the customer impact of what they develop.”
In his conclusion, Chris tells WEXers, “The microservices world ends up being more about smart applications and dumb pipes, where the network is dumb and the intelligence lives in the applications.” And this world of microservices and smart applications isn’t much different from the world of payments, where each day we strive to create intelligent, useful products and deliver them to our customers.
Interested in working at a technology organization that values and fosters innovation? Check out current job listings and the benefits of being a WEXer at our career center.