week1 XieJintao Common - XLab-Tongji/AIOpsConceptualModeling GitHub Wiki
云计算平台(云平台):
在云端提供基于硬件资源和软件资源的服务
特点:
硬件管理对使用者/购买者高度抽象,无需了解是如何处理或怎样处理的,在使用时向云端发送一个信号,在很短的时间内就可以返回相应的结果。 帮助企业和个人减少在IT运营和软件购买上的成本,基础设施具备的能力弹性增加,可以根据需要动态的租用云平台的相关服务。
云平台服务类型:
-
1 基础设施即服务(IaaS): 把IT的基础设施作为一种资源通过网络提供给用户,普通用户不必自己构建一个数据中心等硬件设施,而是通过租用的方式,从IaaS服务提供商获得计算机基础设施服务,包括服务器,存储,网络等服务。
-
2 软件即服务(SaaS): 通过云平台提供软件服务。软件完全运行在云平台上,使用者购买的是软件的使用权而非所有权(在云平台上租用软件)。
-
3 平台即服务(PaaS): 为开发者开发提供稳定的开发环境,一个软件即服务的开发者在云平台上开发而不是建立自己的相关基础设施,云平台的使用者是开发人员而不是普通用户。
-
4 附加服务: 一些本地的应用本来就可以为用户提供有用的功能,但通过访问云平台中的附加服务,可以扩展/加强相关应用的功能。比如iTunes,客户端的软件对播放音乐和其他的基本功能十分有用,而访问附加服务可以提供购买音频视频等一系列附加服务。
云平台面临的问题:
- 1.兼容性问题
- 2.云平台管理问题
- 3.安全问题
- 4.新的挑战(云平台需要具有新的功能)
Docker:
开源的应用容器引擎,让开发者将他们的应用以及依赖包打包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux/Windows机器上,也可以进行虚拟化。 容器完全使用沙箱机制,相互之间不会有任何的接口(类似于iPhone的app),容器性能开销极低
应用场景:
- web应用的自动化打包和发布
- 自动化测试和持续测试/发布
- 在服务型环境中部署和调整数据库或其他后台
- 从头编译或扩展现有的open shift(一种PaaS)或cloud foundry(一种PaaS)平台来搭建自己的PaaS环境
* 架构:
Docker采用C/S架构模式,使用远程API来管理和创建Docker容器。Docker容器通过Docker镜像来创建,容器和镜像的关系与面向对象中的对象和类的关系相似(容器是镜像的实例,镜像是容器的抽象)
使用步骤:
随着Docker在云计算市场中领先地位的日益稳固,容器技术也成为了一种主流技术。为了对用户的应用程序使用容器技术,可遵循以下五个步骤。 Docker容器技术已在云计算市场中风靡一时了,而众多主流供应商则面临着技术落后的窘境。那么,是什么让Docker容器技术变得如此受欢迎呢?对于刚入门的新手来说,容器技术可实现不同云计算之间应用程序的可移植性,以及提供了一个把应用程序拆分为分布式组件的方法。此外,用户还可以管理和扩展这些容器成为集群。 在企业用户准备把应用程序迁往容器之前,理解应用程序的迁移过程是非常重要的。这里将介绍把用户应用程序迁往Docker容器的五个基本步骤。
- 步骤1:
分解。一般来说,应用程序都是复杂的,它们都有很多的组件。例如,大多数应用程序都需要数据库或中间件服务的支持以实现对数据的存储、检索和集成。所以,需要通过设计和部署把这些服务拆分成为它们自己的容器。如果一个应用程序能够被拆分成为越多的分布式组件,那么应用程序扩展的选择则越多。但是,分布式组件越多也意味着管理的复杂性越高。
- 步骤2:
选择基础映像。当执行应用程序迁移时,应尽量避免推倒重来的做法。搜索Docker注册库找到一个基本的Docker映像并将其作为应用程序的基础来使用。 随着时间的推移,企业将会发现这些Docker注册库中基本映像的价值所在。请记住,Docker支持着一个Docker开发人员社区,所以项目的成功与否很大程度上取决于用户对于映像管理和改良的参与度。
- 步骤3:
安全管理问题。安全性和管理应当是一个高优先级的考虑因素;企业用户不应再把它们当作应用程序迁移至容器的最后一步。反之,企业必须从一开始就做好安全性和管理的规划,把它们的功能纳入应用程序的开发过程中,并在应用程序运行过程中积极主动地关注这些方面。这就是企业应当花大功夫的地方。 基于容器的应用程序是分布式应用程序。企业应当更新较老的应用程序以支持联合身份管理方法,这将非常有利于确保分布式应用程序的安全性。为了做到这一点,应为每一个应用程序组件和数据提供一个的标识符,这个标识符可允许企业在一个细粒度的级别上进行安全性管理。企业用户还应当增加一个日志记录的方法。
- 步骤4:
增加代码。为了创建镜像,企业用户需要使用一个Dockerfile来定义映像开发的必要步骤。一旦创建了映像,企业用户就应将其添加至Docker Hub。
- 步骤5:
配置测试部署。应对在容器中运行的应用程序进行配置,以便于让应用程序知道可以在哪里连接外部资源或者应用程序集群中的其他容器。企业用户可以把这些配置部署在容器中或使用环境变量。 对基于容器的应用程序进行测试类似于对其他分布式应用程序的测试。企业可以对每个容器进行组件测试,并将容器集群作为一个整体进行测试。 确定应用程序应如何能够在负载增加的情况下进行扩展。如果用户正在使用一个集群管理器(例如Swarm),则可测试其性能。 最后,把容器部署到实际生产环境中。为了积极主动地关注基于容器的应用程序的运行状况,可考虑实施必要的监控和管理机制 。确保打开日志记录功能。 很多应用程序迁移至云计算都是采用容器技术的。虽然迁移有一点复杂,但是容器可以保护应用程序投资并赋予了它一个更长的使用寿命。
不同的应用程序拆分为很多的组件,每一个组件分别通过的合适的镜像创建容器,分别部署在新的环境中
Kubernetes(K8s):
是一个开源的、用于管理云平台中多个主机上的容器化应用的应用,是一个容器编排引擎。 Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例(一个不够,当一个应用程序为SaaS时,仅仅部署一个软件肯定是不够的)以便对应用请求进行负载均衡。 在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
组件:
- 1 Master组件:提供集群的管理控制中心,通常在一台VM/机器上启动所有的Master组件,并且不会在这台VM/机器上运行用户容器。
- 2 Node组件:节点组件运行在Node,提供Kubernetes运行时环境,以及维护Pod。
知识图谱:
显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。 知识图谱,是通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论。 知识图谱,它能为学科研究提供切实的、有价值的参考。
本体:
形式化的,对于共享概念体系的明确而又详细的说明
本体提供的是一种共享词表,也就是特定领域之中那些存在着的对象类型或概念及其属性和相互关系;或者说,本体就是一种特殊类型的术语集,具有结构化的特点,且更加适合于在计算机系统之中使用;或者说,本体实际上就是对特定领域之中某套概念及其相互之间关系的形式化表达(formal representation)(在某种程度上可以理解为类)。