微服务的微存储
微服务的基本要求之一是应用程序容器变为无状态。但是状态仍然需要存储在其他位置,例如数据库,对象存储,会话文件,cookie,缓存等。
微存储作为一种解决微服务存储可扩展性的新体系结构正在出现。微存储从微服务继承了“只有小东西才能扩展”的思想。
向上扩展不是微存储

向上扩展架构通常被适当地归类为整体,其可扩展性仅限于单个服务器可以提供的功能。向上扩展存储服务器旨在存储企业数据,并由经过认证的IT专业人员进行管理。它们最适合Microsoft Exchange,Microsoft SQL Server,Oracle RDBMS等。它们提供存储合并,无缝管理,高性能和可靠性。NetApp,EMC和HDS是向上扩展存储的领导者。
放大系统通常作为硬件设备出售,是低延迟,事务性数据的理想选择。
扩展架构与微服务架构相差180度。它的单节点限制和硬件设备模型使其不适用于微服务。
横向扩展不是微存储

横向扩展架构也归为分布式存储。它旨在解决向上扩展体系结构的可伸缩性限制。
从应用程序的角度来看,横向扩展系统也是独立的。尽管存储分布在许多服务器上,但它们仍然显示为一个大型系统。这违反了微服务架构的原理。
红帽Gluster,红帽Ceph,Apache Hadoop HDFS,Apache Cassandra是分布式存储体系结构的示例。
向外扩展的目的是减少大量的卷(Petabytes)和吞吐量密集型操作的数量。操作大规模分布式系统的复杂性限制了微服务环境中分布式存储体系结构的可伸缩性。
什么是微存储?

微存储是专门为微服务而构建的存储体系结构。微服务的基本目标是简单性和可伸缩性。微存储的简单性使存储可以像Facebook和Google一样扩展。他们可以从小规模开始,然后发展到100 PB和数十亿以上的用户。
微存储的要求
可伸缩性:最大性能和容量限制取决于单个应用程序实例的需求。通常,这些限制很小并且更容易满足。线性可伸缩性是通过为每个应用程序实例自动配置一个微存储来实现的。整个系统的综合性能可能达到TB / s吞吐量和100 PB以上。
租约:由于每个应用程序实例都配备有专用的存储服务器,因此不需要复杂的多租户和多用户需求。
持久性:操作数据存储在由本地磁盘和内存支持的数据卷上。通过跨服务器复制数据可实现高可用性。诸如MariaDB和MongoDB之类的关键组件提供了内置的复制功能。长期持久性数据将移至对象存储后端,例如Amazon S3和Minio。
如果您的应用程序确实需要高度可用的持久本地磁盘,请查看DRB D项目。我也希望有人将NBD和OpenZFS与一个漂亮的docker这样的管理工具集成在一起。
甚至磁盘制造商都在致力于诸如Open Kinetic和Ethernet Disk之类的新计划来解决微存储空间。
结论
总而言之,包含应用程序二进制文件的应用程序容器仍然是无状态的。应用程序状态数据包括两种类型-半持久性操作数据和持久性长期数据。操作数据使用内存和本地磁盘。长期数据存储在对象存储中。每个应用程序实例都是一个独立的计算和存储生态系统。微型存储使存储成为应用程序堆栈的一部分。基础架构被简化为使用本地磁盘在商品服务器上运行的容器。