在本教程中,您将一个整体式 node.js 应用程序部署到 Docker 容器,然后在不停机的情况下将该应用程序拆分为微服务。node.js 应用程序承载了一个简单的留言板,其中包含用户之间的线程和消息。

传统的整体式架构难以扩展。随着应用程序代码库的增长,其更新和维护变得复杂。引入新功能、语言、框架和技术变得非常困难,进而限制了创新和新想法。

在微服务架构中,每个应用程序组件都作为自己的服务运行,并通过妥善定义的 API 与其他服务进行通信。微服务是围绕业务功能构建的,每项服务执行单个功能。微服务可以使用不同的框架和编程语言来编写,您可以单独部署它们,并可以将它们作为单个服务或一组服务进行部署。

在本教程中,我们将展示如何在 Docker 容器中运行简单的整体式应用程序,将相同的应用程序部署为微服务,然后将流量切换到微服务而不造成任何停机。完成后,您可以使用本教程和其中的代码作为模板,在 AWS 上构建和部署您自己的容器化微服务。

应用程序架构
整体式架构

整体式架构

整个 node.js 应用程序作为单个服务在容器中运行,每个容器都具有与所有其他容器相同的功能。如果一个应用程序功能遇到需求峰值,则必须扩展整个架构。

 
微服务架构

微服务架构

node.js 应用程序的每个功能都在自己的容器中作为单独的服务运行。这些服务可以独立于其他服务进行扩展和更新。

AWS 体验:中间

完成所需时间:2 小时

完成所需成本:本架构中使用的每项服务均可享受 AWS 免费套餐。如果超出免费套餐的使用量限制,您最多只需支付 0.25 美元即可完成本教程。

使用的技术:要完成本教程,您将使用:

*此估算值假定您在整个教程中遵循建议的配置,并在 24 小时内终止所有资源。

**过去 24 小时内创建的账户可能尚不具有完成此项目所需的一切资源的权限。