The state of the art of microservices in 2020

The architecture style of microservices is an approach to developing a single application as a set of small services, each operating according to a distinct process and interacting with lightweight mechanisms, often using a HTTP source API. These services are based on business opportunities and can be deployed independently using fully automated deployment equipment. There is an absolute minimum of centralised management of these services, which can be written in different programming languages and using different storage technologies.

James Lewis and Martin Fowler (2014) [6]

Introduction

The global market for microservices in the cloud is expected to grow by 22.5% in 2020, while the US market is expected to maintain its growth rate at 27.4% [5]. The trend is that developers are giving up local applications in favour of the cloud. It will help companies minimize downtime, optimize resources and reduce infrastructure costs. Experts also predict that by 2022 90% of all applications will be developed using the micro-services architecture [5]. This article will help you discover what micro-services are and how companies currently use them.

What are micro-services?

Micro-services are widespread all over the world. But what are micro-services? A microservice is an architecture model where an application is based on a set of small interconnected services. They are based on the principle of a single responsibility which, according to Robert C. Martin, brings together things that change for the same reason and shares things that change for different reasons [2]. The micro-services architecture has also been expanded to include freely connected services that can be designed, deployed and maintained independently of each other [2].

Moving away from monolithic architecture

Microservices are often compared to traditional monolithic software architecture. In a monolithic architecture, the software is designed to stand on its own, i.e. the program components are interconnected and interdependent rather than just interconnected. In a closely related (monolithic) architecture, each component and its associated components must be present to execute or compile the code [7]. If an element needs to be updated, the entire application also needs to be rewritten.

This does not apply to applications that use a micro-services architecture. Since each module is independent, you can change it without affecting other parts of the program. This reduces the risk that a change in one element will lead to unexpected changes in other elements.

Companies may encounter problems if they cannot scale monolithic architecture, if their architecture is complex to modernise, or if its maintenance is too complex and costly [4]. The solution to this problem is to split a complex task into smaller, independently functioning elements.

Monolith of architecture versus microservices. The picture is from [3].

How developers around the world build their microservices

Microservices are known to improve scalability and performance. But are these the main reasons why developers around the world build their microservices? The research project State of Micro Services 2020 [1] discovered how developers around the world build their microservices and what they think of them. The report was prepared with the help of 660 microservice providers from Europe, North America, Central and South America, the Middle East, South-East Asia, Australia and New Zealand. The table below shows the average valuation of emissions related to the maturity of micro-services [1].

Category Average valuation (of 5)
Creation of new projects 3.8
Maintenance and troubleshooting 3.4
Work efficiency 3.9
scalability issues 4.3
Dealing with performance issues 3.9
Teamwork 3.9

As can be seen from the table, most experts are satisfied with the micro-services to solve scalability problems. On the contrary, maintenance and problem solving seem to be a challenge for them.

According to the advanced technologies of their architecture, most experts use Javascript/Typescript (almost ⅔ microservices are created in these languages). Secondly, they mainly use Java.

Although there are many possibilities for using micro-services, most experts use Amazon Web Services (49%), followed by a dedicated server. In addition, 62% prefer AWS Lambda as a serverless solution.

Most of the micro-services used by the experts use the HTTP protocol for communication, followed by events and GPRPC. In addition, most experts use RabbitMQ to work with messages, followed by Kafka and Redis.

In addition, most people work with Continuous Integration (CI) micro-services. In the report, 87% of respondents used IC solutions such as GitLab CI, Jenkins, or GitHub Actions.

The most popular debugging solution for 86% of respondents is magazine maintenance, with 27% of respondents using journals ONLY.

Finally, most people believe that micro-services architecture will become the standard for more complex systems or upstream development.

Cases of successful use of microservices

Many companies have converted their monolithic architecture into micro-services.

Amazon

In 2001, development delays, encryption problems and interdependencies between services prevented Amazon from meeting the growing scalability requirements of its user base. Faced with the need to rethink its monolithic architecture from top to bottom, Amazon has dissected its monolithic applications into small independent and service-oriented applications [3][9].

In 2001 Amazon decided to switch to micro-services, years before the term became fashionable. This change has forced Amazon to develop various solutions to support micro-services architectures such as Amazon AWS. Thanks to rapid growth and adaptation to micro-services, Amazon has become the most valuable company in the world, with the first market capitalization in the world to reach the highest level of profitability. July 2020 is estimated at $1,433 billion [8].

Netflix

Netflix launched its film streaming service in 2007 and faced scale problems in 2008. They faced significant corruption in the database and were unable to send DVDs to their members within three days [10]. This was the starting point when they recognised the need to move from a few failure points (such as relational databases) to a more scalable and reliable distributed system in the cloud. In 2009 Netflix started the migration of its monolithic architecture to micro-services. They started migrating their non-usable film encoding platform to work as independent microservices in the cloud [11]. The transition to micro-services has enabled Netflix to solve scale-up problems and service interruptions. Nevertheless, they have been able to reduce their costs because the cost of a cloud per stream has been replaced by the cost of the data centre [10]. Today Netflix transmits about 250 million hours of content per day to more than 139 million subscribers in 190 countries [11].

More than

After running Uber, they had trouble developing and implementing new features, fixing bugs and quickly integrating new changes. They therefore decided to switch to micro-services and split the application structure into micro-services in the cloud. In other words: Uber has created a micro-service for every function, such as passenger and travel management. The switch to micro-services has brought many advantages, such as a clear vision of each service owner. This has improved speed and quality, allowing teams to focus only on the services they need to develop, update virtual services without disrupting other services, and achieve more robust fault tolerance [11].

It’s all about scalability!

China is a good example of how scalability can be guaranteed. With its huge population, China has had to adapt, create and test new solutions to meet new challenges to some extent. Statistics show that China currently serves around 900 million Internet users [14]. On a single day in 2019 (the equivalent of Black Friday in China), Alibaba’s various trading platforms recorded a peak of 544.00 trades per second. The total amount of data processed by the Alibaba cloud was about 970 petabytes [15]. So what is the impact on the technology?

Many technologies arose from the need to solve the problem of scalability. For example, Tars was founded by Tencent in 2008 and made available to the Linux Foundation in 2018. It is widely used and has improved over the last ten years [12]. Tarsus is free software, and many organizations make important contributions and expand the capabilities and value of the structure [12]. Tars supports multiple programming languages, including C++, Golang, Java, Node.js, PHP and Python, and can quickly build systems and automatically generate code, so the developer can focus on business logic to achieve operational efficiency Tars is used in Tencent’s business areas, such as QQ, WeChat social networking, financial services, IT, automobiles, video, online gaming, cards, application market, security and many other key companies. In March 2020, the Tars project was transformed into the TARS Foundation, an open source fund for micro-services, which aims to support the rapid growth of contributions and membership in a community focused on creating an open platform for micro-services [12].

Don’t forget to check out the new free Linux Foundation Building Microservice Platforms with TARS training.

About the authors:

Isabella Ferreira is a supporter of the TARS Foundation, an open source fund for cloud-based microservices under the Linux Foundation.

Mark Shan is Chairman of the Tencent Open Source Alliance and Chairman of the Board of Directors of the TARS Foundation.

References:

State of Microservices 2020

2] https://medium.com/hashmapinc/the-what-why-and-how-of-a-microservices-architecture-4179579423a9

Understanding Microservices and Their Impact on Companies

https://www.leanix.net/en/blog/a-brief-history-of-microservices

5] https://www.charterglobal.com/five-microservices-trends-in-2020/

https://martinfowler.com/articles/microservices.html#footnote-etymology

https://whatis.techtarget.com/definition/monolithic-architecture

https://ycharts.com/companies/AMZN/market_cap

9] https://thenewstack.io/led-amazon-microservices-architecture/

https://media.netflix.com/en/company-blog/completing-the-netflix-cloud-migration

https://blog.dreamfactory.com/microservices-examples/.

https://www.linuxfoundation.org/blog/2020/03/the-tars-foundation-the-formation-of-a-microservices-ecosystem/

https://medium.com/microservices-architecture/top-10-microservices-framework-for-2020-eefb5e66d1a2

https://www.statista.com/statistics/265140/number-of-internet-users-in-china/

https://interconnected.blog/china-scale-technology-sandbox/

This platinum sponsor of the Linux Foundation was sponsored by Tencent.

Related Tags:

microservices trends 2020,state of microservices 2020,microservices frameworks 2020,microservices architecture diagram,what are microservices,microservices technology trends,low-code api development,microservices market growth,microservices technology stack,what is microservices in cloud computing,cloud native microservices,microservices cloud deployment,why use microservices,microservicios,microservices statistics,types of microservices,golang microservices 2020,microservices example,why microservices,microservices survey,microservices stack