单体应用程序是使用不同的层,用户界面层,业务层和持久性层构建的。微服务架构的中心思想是通过实现特定域将功能划分为垂直层。
用户界面
用户界面(UI)是设备中人机交互和通信的重点。这可以包括显示屏,键盘,鼠标和桌面外观。这也是用户与应用程序或网站进行交互的方式。
为了提供和存储该网站的内容,AWS提供了服务。
- Amazon Cloudfront是一项快速的内容交付网络(CDN)服务,可在开发人员友好的环境中以低延迟,高传输速度向全球客户安全地交付数据,视频,应用程序和API。
- Amazon S3是一种对象存储服务,可提供行业领先的可扩展性,数据可用性,安全性和性能。
微服务
AWS具有支持微服务开发的各种集成构建基块。
- AWS Lambda允许您运行代码而无需置备或管理服务器。您只需为您消耗的计算时间付费。借助Lambda,您几乎可以为任何类型的应用程序或后端服务运行代码-只需进行零管理即可。只需上传您的代码,Lambda便可以处理以高可用性运行和扩展代码所需的一切。您可以将代码设置为自动从其他AWS服务触发,或直接从任何Web或移动应用程序调用它。
- AWS Docker容器使您可以在无服务器(Fargate)或由AWS管理的EC2实例服务器上运行应用程序。借助容器服务,我们可以根据业务需求专注于构建和管理应用程序-后端/ Web应用程序。您可以将代码上传到AWS容器中,AWS将启动它们。 AWS包含的内容将提供敏捷性,灵活的扩展性,弹性,ECS使用AWS VPC IAM高度隔离地启动容器,从而使您可以构建高度安全的应用程序。
数据存储
数据存储区用于保留微服务所需的数据。会话数据的流行存储是内存中的缓存,例如Memcached或Redis。在应用程序服务器和数据库之间放置缓存是减少数据库读取负载的常用机制,从而可以允许资源用于支持更多写入。缓存还可以改善延迟。对于更大的数据,AWS提供了关系数据库和NoSQL数据库。 AWS提供对象存储库S3 ,这是非常流行的对象存储库,可用于托管静态网站。
- Amazon Aurora是为云构建的与MySQL和PostgreSQL兼容的关系数据库,将传统企业数据库的性能和可用性与开源数据库的简单性和成本效益相结合。
- Amazon DynamoDB创建一个数据库表,该表可以存储和检索任何数量的数据并服务于任何级别的请求流量。
这是AWS及其不同层上的完整微服务架构,以及这些层上使用的Amazon服务。