隔离作用是什么?
隔离,这个词的范畴可大可小,可以指物理隔离(两个网段不能直接通信),也可以指逻辑隔离(两个数据库不能相互读写)。今天谈谈比较广义的“隔离”-----软件隔离。在软件领域,最容易被忽视却又最应该加强的就是软件方面的隔离——操作系统缺省配置下,每个进程/线程都可以访问任意地址;数据库没有建立合适的隔离机制,不同用户数据库之间相互影响、甚至被攻击者利用。
系统软件层面,操作系统的VLAN,IP地址与网卡绑定的内核参数都是实现软件隔离的手段 应用层方面,通过防火墙(硬/软)把各个应用部署到不同的网络区,使用iptables等工具根据源/目标地址和端口以及协议进行过滤,也是实现软件隔离的方式之一 很多技术或者实践都可以视为对“隔离”技术的延伸。比如代码签名,就是确保只有受信任的代码才能执行,防止恶意程序或者误操作导致未授权限的代码被执行;容器/虚拟机的出现使得每台机器上都只运行一个应用程序,这也可以视作一种隔离——因为容器能够限制住单个应用所能调用的资源最大上限,而且能够很方便地迁移。
但是,不管怎么演变,这些技术和思路都是为了解决同一个问题:不同来源的程序或者进程应该只对自己产生的影响负责!这就是隔离的意义所在。 对于云计算这种新的计算形态,业界也有各种各样的方案去实现计算的隔离。比如将不同用户的请求分配到不同的CPU上,采用虚拟化技术(包括硬件和软件两种形式)让不同用户能够拥有独立的主机,甚至使用防火墙把各个云都封闭起来,这些都是为隔离而生的。