When should I choose between serverless and microservices?

Serverless and microservices work well together, but they still have their unique qualities. We review their main differences and where one might accomplish goals the other can't.

Joydip Kanjilal

The quest for greater agility, improved performance and scalability brought forth the advent of technologies like microservices and serverless computing. Although serverless computing shares some of the characteristics of microservices -- and developers can use them together -- there are several differences between them. And, sometimes, one is more suited for the job than the other. To know which to use, developers should learn how these two architecture types compare and contrast.

Microservices are best suited for long-running, complex applications that have significant resource and management requirements. You can migrate an existing monolithic application to microservices, which makes it easier to modularly develop features for the application and deploy it in the cloud. Microservices are also a good choice for building e-commerce sites, as they can retain information throughout a transaction and meet the needs of a 24/7 customer base.

On the other hand, serverless functions only execute when needed. Once the execution is over, the computing instance that runs the code decommissions itself. Serverless aligns with applications that are event driven, especially when the events are sporadic and the event processing is not resource-intensive. Serverless is a good choice when developers need to deploy fast and there are minimal application scaling concerns. For example, a good use of serverless computing is a scheduled task that needs to perform some data aggregation and will execute for just a few seconds.

As a rule of thumb, choose serverless computing when you need automatic scaling and lower runtime costs, and choose microservices when you need flexibility and want to migrate a legacy application to a modern architecture.

There are other differences between serverless and microservices that might come into play if a developer needs to choose one over the other.

IT operations                                                          

As a rule of thumb, choose serverless computing when you need automatic scaling and lower runtime costs, and choose microservices when you need flexibility and want to migrate a legacy application to a modern architecture.

An IT organization is more likely to be responsible for a microservices application's operational overhead -- deployment, configuration, support, maintenance and monitoring -- than for that of a serverless application. While it is technically possible to run serverless on in-house IT resources, a typical serverless computing model relies on a cloud vendor that performs all server management, capacity planning and support tasks for the underlying infrastructure.

Functions

Serverless architecture uses functions, which is a named procedure that performs a distinct service and returns a value to the application. Typically, a microservice is larger than a serverless function. And, unlike a serverless function, a microservice can perform more than one function. In other words, a microservice may equate to one or more serverless functions.

Pricing

Cost can be an important differentiator between serverless and microservices. This relates back to the previously mentioned difference that serverless only operates when the application must execute a task, while microservices operate continually. Serverless computing products, such as AWS Lambda, work on a pay-as-you-go model, which means the provider only charges for the specific period of time that the server executes the function. While it is relatively cheap to provision microservices on containers, you pay for the instance to run 24/7, even if there is no load.

Can serverless and microservices work together?

The choice isn't always between serverless and microservices, because some applications rely on both. Microservices and serverless integrate and complement each other's strengths and weaknesses. You can choose to deploy microservices as part of a serverless architecture, or you can host them in containers. Remember to consider portability issues, because serverless applications can only deploy within their respective vendor's infrastructure.

 

来源:https://searchmicroservices.techtarget.com/answer/When-should-I-choose-between-serverless-and-microservices?track=NL-1806&ad=926788&src=926788&asrc=EM_NLN_110871140&utm_medium=EM&utm_source=NLN&utm_campaign=20190405_What%20Chef%27s%20new%20licensing%20terms%20mean%20for%20enterprise%20users

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值