What Are Microservices and How to Utilize Them in Your Network

Microservices at the Edge

In late 2018, Amazon announced the winning cities for its new headquarters. The company has garnered much attention in the past year with its explosive growth. Similarly, Netflix is in the news with its increasing investments in original productions. Investigating and understanding the infrastructure of these organizations can shed light onto a part of how and why these companies are so successful. Amazon and Netflix both employ a technique of interest to IT professionals across industries. This technique not only has huge implications for productivity, but also for the network edge and the Internet of Things: microservices.

What Microservices Are

The term most commonly refers to microservices architecture as a method for structuring an application as a collection of loosely coupled business-defined services to implement those capabilities. Each microservice is a modular component of a self-contained process that provides unique business capabilities. The purpose is to eliminate interdependence and thus improve the agility of software development and maintenance.

Figure 1: An example of the microservices architecture

Figure 2: The traditional monolithic architecture

Costs and Benefits

In this case, the benefits outnumber the costs. A key takeaway is that this structure should not be implemented for the sake of implementation. There must be purpose behind it to solve a problem that actually needs to be solved. As a company grows, so do its engineering needs. The traditional monolithic architecture can become difficult to understand and modify over time. Thus, this structure slows down application development and deployment over time due to IDE and web container overloads, obstacles to scale, and long-term commitment to a technology stack. Consider the following example from Cloud Academy:

“Imagine a web application with separate functions including payment, login, and history. If a particular function starts consuming more processing power, the entire application’s performance will be compromised.”

Monoliths are dependent in terms of both software and developers, limiting scale and efficiency.

If implemented correctly, there can be direct ROI from microservices.

COSTS

BENEFITS

  • Requires coordination: With independent teams and functions, it can get complex if unorganized
  • Testing: can become complicated and tedious due to distributed deployment
  • Potential Duplication: a distributed system may result in duplicate solutions and thus additional complexity for developers
  • Additional Complexities to Mitigate: fault tolerance, latency, load balancing
  • Speed: deployment and maintenance
  • Scalability: Because of its speed and structure, it is ideal to scale
  • Focus: Rather than focusing on software capabilities, this is based on business capabilities and thus goals and priorities
  • Modularity: one microservice can continue if another fails. This also results in fast defect isolation.
  • Security
  • Easy Integration
  • Latest Technologies: disaggregation allows software developers to use the latest technologies
  • Productivity

 

There is a simple approach for mitigating and avoiding the costs listed above: remaining goal-oriented. As Matt McLarty states in his article on learning from the SOA movement, “In order to be successful with microservices, we must focus on the goals, intended benefits and principles before considering the enabling technologies.”This means prioritizing actual solutions rather than reorganizing for the sake of reorganizing.

Comparison to Service-Oriented Architecture 

If this sounds familiar, that is because the term is new, but the idea is not. In essence, microservices are the ideal, refined form of service-oriented architecture. As former Google and eBay executive, Randy Shoup, said in an interview with InfoQ in 2015, “It’s SOA done properly.”

MICROSERVICES

SOA

  • Architecture methods
  • Discrete packages of business rules and processes aligned with business needs
  • General idea
  • Costly infrastructure

 

Current Examples

Netflix and Amazon are some of the most prominent “poster children” in the microservices discussion. According to Smartbear, “the Netflix application is powered by an architecture featuring an API Gateway that handles about two billion API edge requests every day which are handled by approximately 500+ microservices.” Simply put, Netflix runs on microservices. This architecture is so successful that the company has an open source software center.  Amazon’s shift to a distributed system supported its global scaling efforts with an architecture that allowed building software components rapidly and independently. However, there are other enterprises that utilize this architecture, like eBay and Google. Employees of smaller companies like SoundCloud and Groupon have also described their knowledge and experiences with microservices to break down inefficient monoliths.

Microservices matter for enterprises because they enhance network functionality. Network functionality has a direct impact on business-critical applications, and thus, decisions.

There are new companies using the power of microservices on a new frontier: building the intelligent edge.

Future Applications: The Edge and IoT

The Internet of Things makes use of everyday technology, from cars to retail store beacons, to compute on the devices themselves. This allows enterprises to collect vast amounts of valuable data in real time. Microservices have the potential to enhance IoT and evolve the edge into an intelligent edge. This is done by increasing efficiency of the devices themselves. The use of this architecture can overcome geographical and resource limitations. Furthermore, the architecture is reusable on this virtualized edge. Microservices can also increase the security of IoT devices with on-site data processing. This is the result of a minimized attack surface with specific functions that only run when necessary. Furthermore, continual development, deployment, integration, and testing can be done on a single function.

Current examples of industry leaders and startups alike demonstrate that microservices can be better in the long run because of its modular structure. This allows for continual development, deployment, and maintenance. Failures are self-contained because the processes are independent from each other, minimizing damage. In sum, this solution for the typical monolithic structure has huge implications not only for team productivity, but also for the productivity of new technologies.