A first look at Microservices

In the world of software development, there are multiple architectures when it comes to creating new products. One of the most commonly used nowadays is microservices. According to Microsoft, a microservices architecture, “consists of a collection of stand-alone and small services. Services are independent of each other and each must implement individual business functionality.”

That is, microservices are a set of small services that run independently and can even have different programming languages. Expert Javier Garzas emphasizes that, despite the autonomy of the services, there are a minimum number of them that manage common processes (such as access to databases). “There are no rules about how big each microservice has to be, or how to split the application into microservices,” says the computing scientist.

According to a study by the automation company Camunda, conducted in July 2018 among software architects, engineering managers and other application development experts, it yielded an overwhelming result: 63% of the companies surveyed use microservices architectures. Among the benefits that respondents mention are: “Improving employee efficiency, improved end-customer experience and infrastructure cost savings…”.

However, a statistic from the same study found that the companies surveyed “are largely unaware of the impact that microservices architectures can have on their revenue-generating business processes.” This is because only 45% of companies surveyed explicitly document the business processes that are part of their microservices.

Therefore, at Tecnova we want to help you decide, how much do you want to use microservices? Let’s review some important considerations regarding your use.

 

Use it for the demanded task

For Dataversity, the basic purpose of any microservice is to “focus on a task and get it right,” that is, when developing microservices, it doesn’t matter what the service is done for or what the service is developed to: the only approach it has is that the microservice perform the scheduled action.

 

They must be decentralized and built by small teams

Each microservice organizes its own data. Therefore, for this same portal, data redundancy, consistency, and integrity are important when running a service. Decentralization is important to avoid couplings between services. “By isolating the data store from each Microservice entity, the changes have minimal impact and the agility of independent services is maintained,” states the site.

For Microsoft, the microservice must be small enough “for a small working team to build, test, and deploy. Small teams favor agility,” it emphasizes.

 

It favors and enhances with agility

Regarding the above, Microsoft asserts that because microservices are deployed independently, it is more agile “than managing bug fixes and feature versions. You can update a service without redeploying the entire application and roll back an update if something goes wrong.”

 

Good maintenance

The microservice entity is developed and maintained individually in the repository where it is created. This architecture allows for the reduction of errors, since only part of the developed application fails, not the entire application. In addition, according to Dataversity, microservices are evolving and developing in backward compatibility, allowing access and interoperability with older systems.”

 

Make cloud adoption easier: leveraging its scalability

Microservices can be easily moved to the cloud, according to the TechTarget portal. Especially in the face of the possibilities it offers, around its scalability and elasticity of uses in the cloud. “Microservices illustrate how to build components to use the cloud, and the same API managers used to apply security practices to microservices can be used for load balancing and instance management.”

Meanwhile, Dataversity states that microservices don’t necessarily require a cloud to operate, “but in the cloud it works very well.” This is because if different services are hosted in the cloud, because there are microservices there, they can use containers for efficient resource transfer, which are “relatively easy to build with Microservice components”.

Jason McGee, vice president of IBM Cloud Platform, says microservices “are enabling companies to mix and match open source container solutions so they don’t have to build everything from scratch.”

 

A Business-Focused Look

According to TechTarget, if the goal is to take full advantage of microservices, application architects need to join with enterprise architects. This, to identify what the microservice should do aligned with business objectives. Therefore, the specialized website states that a good microservices strategy should identify “the business functions of applications and then map common or very similar functions between applications”. These functions will be the objectives for creating applications.

If your company is looking to apply these good practices in microservices, do not hesitate to contact Tecnova to develop customized solutions.