
可扩展系统的基本要素
|
265
的墙壁和天花板上挤满了硬件,你只需单击或双击鼠标即可进行配置。更妙的是,你可
以使用专为操作设计的脚本语言自动调用配置。我们称之为
基础架构即代码
(
IaC
),也
是
DevOps
的基本要素。
传统上,虚拟机是应用程序的部署单元。然而,在过去几年中,基于容器技术的新型轻
量级方法不断涌现,其中
Docker
(
http://www.docker.com
)就是一个突出的例子。容器
镜像支持将应用程序代码和依赖项打包到单个可部署单元中。当部署运行在容器引擎
(如
Docker
引擎)上时,容器与其他容器共享主机操作系统,并以隔离进程的方式运行。
与虚拟机相比,容器消耗的资源更少,因此可以在单个虚拟机上打包多个容器,更有效
地利用硬件资源。
容器通常与集群管理平台(如
Kubernetes
或
Apache Mesos
)一起使用。容器编排平台为
你提供
API
来控制容器的执行方式、时间和位置。平台允许你自动部署容器并支持使用
自动缩放的不同系统负载,简化集群中在多个节点部署多个容器的管理工作。
16.4
数据湖
你每隔多久在自己最喜欢的社交媒体上翻看历史记录,来查找
5
年前、
10
年前甚至更早
之前发布的照片?我敢打赌,并不常发生。我敢赌你的通讯录好友也很少这么做。不妨
试一下翻看记录,你可能会发现,回溯的时间越远,渲染照片所需的时间就越长。
这是大规模管理历史数据面临的挑战之一。随着时间的推移,你的系统将生成许多
PB
级或更多的数据。数据中的大部分很少被你的用户访问。但出于你的应用程序业务领域
规定的原因( ...