Week1 LiTianyi Common - XLab-Tongji/AIOpsConceptualModeling GitHub Wiki
云平台
云计算平台也称为云平台,是指基于硬件资源和软件资源的服务,提供计算、网络和存储能力。云计算平台可以划分为3类:以数据存储为主的存储型云平台,以数据处理为主的计算型云平台以及计算和数据存储处理兼顾的综合云计算平台。
使用者/购买者对基础设施的投入被转换为OPEX(Operating Expense,即运营成本):企业和机构不再需要规划属于自己的数据中心,也不需要将精力耗费在与自己主营业务无关的IT管理上。他们只需要向“云”发出指示,就可以得到不同程度、不同类型的信息服务。节省下来的时间、精力、金钱,就都可以投入到企业的运营中去了。对于个人用户而言,也不再需要投入大量费用购买软件,云中的服务已经提供了他所需要的功能,任何困难都可以解决。基础设施的能力具备高度的弹性(增和减):可以根据需要进行动态扩展和配置。
docker
Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
应用场景包括:Web 应用的自动化打包和发布;自动化测试和持续集成、发布;在服务型环境中部署和调整数据库或其他的后台应用;从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,可以大大减少编写代码和在生产环境中运行代码之间的延迟。
Kubernetes
Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。可以将Docker看成Kubernetes内部使用的低级别组件。Kubernetes不仅仅支持Docker,还支持Rocket,这是另一种容器技术。 使用Kubernetes可以:自动化容器的部署和复制;随时扩展或收缩容器规模;将容器组织成组,并且提供容器间的负载均衡;很容易地升级应用程序容器的新版本;提供容器弹性,如果容器失效就替换它,等等...
容器部署时代: 容器类似于 VM,但是它们具有轻量级的隔离属性,可以在应用程序之间共享操作系统(OS)。因此,容器被认为是轻量级的。容器与 VM 类似,具有自己的文件系统、CPU、内存、进程空间等。由于它们与基础架构分离,因此可以跨云和 OS 分发进行移植。容器因具有许多优势而变得流行起来。
容器是打包和运行应用程序的好方式。在生产环境中,需要管理运行应用程序的容器,并确保不会停机。例如,如果一个容器发生故障,则需要启动另一个容器。Kubernetes 提供了一个可弹性运行分布式系统的框架。Kubernetes 会满足扩展要求、故障转移、部署模式等。例如,Kubernetes 可以轻松管理系统的 Canary 部署。
Kubernetes 可以提供:
-
服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果到容器的流量很大,Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。
-
存储编排 Kubernetes 允许您自动挂载您选择的存储系统,例如本地存储、公共云提供商等。
-
自动部署和回滚 您可以使用 Kubernetes 描述已部署容器的所需状态,它可以以受控的速率将实际状态更改为所需状态。例如,您可以自动化 Kubernetes 来为您的部署创建新容器,删除现有容器并将它们的所有资源用于新容器。
-
自动二进制打包 Kubernetes 允许您指定每个容器所需 CPU 和内存(RAM)。当容器指定了资源请求时,Kubernetes 可以做出更好的决策来管理容器的资源。
-
自我修复 Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器,并且在准备好服务之前不将其通告给客户端。
-
密钥与配置管理 Kubernetes 允许您存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。您可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。
本体和知识图谱
维基:本体实际上就是对特定领域之中某套概念及其相互之间关系的形式化表达(formal representation)。
本体就是对那些可能相对于某一智能体(agent)或智能体群体而存在的概念和关系的一种描述。 ——汤姆·格鲁伯——《迈向知识共享型本体的设计原则》
我的理解:本体首先是哲学上提出来的,简单来说就是一种概念,如人这个概念集合,它是一种抽象集合用来表达世界上的具体的实际的物体,而在人工只能领域上我们主要将本体论的观念用在知识表达上,即借由本体论中的基本元素:概念及概念间的关连,作为描述真实世界的知识模型。
本体要素
常见的本体构成要素包括:
- 个体(实例):基础的或者说“底层的”对象。
- 类:集合(sets)、概念、对象类型或者说事物的种类。
- 属性:对象(和类)所可能具有的属性、特征、特性、特点和参数。
- 关系:类与个体之间的彼此关联所可能具有的方式。
- 函数术语:在声明语句当中,可用来代替具体术语的特定关系所构成的复杂结构。
- 约束(限制):采取形式化方式所声明的,关于接受某项断言作为输入而必须成立的情况的描述。
- 规则:用于描述可以依据特定形式的某项断言所能够得出的逻辑推论的,if-then(前因-后果)式语句形式的声明。
- 公理:采取特定逻辑形式的断言(包括规则在内)所共同构成的就是其本体在相应应用领域当中所描述的整个理论。这种定义有别于产生式语法和形式逻辑当中所说的“公理”。在这些学科当中,公理之中仅仅包括那些被断言为先验知识的声明。就这里的用法而言,“公理”之中还包括依据公理型声明所推导得出的理论。
- 事件 (哲学):属性或关系的变化。
本体语言
W3C组织也开始定义了许多本体论的相关语言,如RDF、OWL等。
知识图谱定义
旨在描述真实世界中存在的各种实体或概念。其中,每个实体或概念用一个全局唯一确定的ID来标识,称为它们的标识符(identifier)。 类似于我们对于一个网页会有一个URL,对于数据库中的一条记录会有一个主键id等思想是一样的,强调去刻画thing,这里的thing是和传统web上的网页对比较的。每个属性—值对(attribute-valuepair,又称AVP)用来刻画实体的内在特性,而关系(relation)用来连接两个实体,刻画它们之间的关联。知识图谱亦可被看作是一张巨大的图,图中的节点表示实体或概念,而图中的边则由属性或关系构成。上述图模型可用W3C提出的资源描述框架RDF 或属性图(property graph)来表示。 ————王昊奋
Google知识图谱(英语:Google Knowledge Graph,也称Google知识图)是Google的一个知识库,其使用语义检索从多种来源收集信息,以提高Google搜索的质量。
(The world is notmade of strings , but is made of things.)
构建
实体对齐(ObjectAlignment)
旨在发现具有不同标识实体但却代表真实世界中同一对象的那些实体,并将这些实体归并为一个具有全局唯一标识的实体对象添加到知识图谱中。虽然实体对齐在数据库领域被广泛研究,但面对如此多异构数据源上的Web规模的实体对齐,这还是第一次尝试,目前多采用聚类的方法。聚类的关键在于定义合适的相似度度量。(我的理解就是归一化)
为知识图谱构建schema相当于为其建立本体(Ontology)。最基本的本体包括概念、概念层次、属性、属性值类型、关系、关系定义域(Domain)概念集以及关系值域(Range)概念集。在此基础上,我们可以额外添加规则(Rules)或公理(Axioms)来表示模式层更复杂的约束关系。面对如此庞大且领域无关的知识库,即使是构建最基本的本体,也是非常有挑战的。
自顶向下的方式
指通过本体编辑器(Ontology Editor)预先构建本体。当然这里的本体构建不是从无到有的过程,而是依赖于从百科类和结构化数据得到的高质量知识中所提取的模式信息。
自底向上的方式
通过上面介绍的各种抽取技术,特别是通过搜索日志和Web Table抽取发现的类别、属性和关系,并将这些置信度高的模式合并到知识图谱中。自顶向下的方法有利于抽取新的实例,保证抽取质量,而自底向上的方法则能发现新的模式。