基于 ROS 交付应用的相关机制介绍

阿里云资源编排服务(ROS)为我们快速搭建和整合云计算资源环境提供一个低成本、标准化的方案。基于ROS提供的能力,我们所要做的就是将所需的资源以资源模板的形式进行定义,然后就可实现对所定义云资源的快速生产。除此之外,ROS将应用构建和资源释放的过程也进行了简化。

本文将主要介绍 VPC 的网络机制以及利用 ROS 在 VPC 网络环境下快速交付应用的原理和机制。本文将主要从如下两个方面进行介绍:

  • VPC 环境的网络机制
  • 基于 Ansible 快速交付应用

VPC 环境的网络机制

专有网络VPC(Virtual Private Cloud),帮助用户基于阿里云构建出一个隔离的网络环境。在这个网络环境中,您可以完全自己配置网络,包括选择自有IP地址范围、划分网段、配置路由表和网关等。此外对于应用开发者而言,VPC为应用提供了一个与外界隔离的、安全的运行环境。

下图是 VPC 的网络架构图:

由图可知,一个典型的 VPC 网络环境,包括一个VPC、虚拟路由器(VRouter)、虚拟交换机(VSwitch)、安全组(Security Group)和云服务器(ECS)。

虚拟路由器是VPC网络中的重要功能组件,它可以连接VPC内的各个交换机,同时也是连接VPC与其他网络的网关设备。每个路由器中维护一张路由表,它会根据具体的路由条目的设置来转发网络流量。

虚拟交换机为VPC网络提供基础网络设备,它连接不同的ECS。在VPC网络内创建ECS时,必须指定云产品实例所在的交换机。

安全组类似虚拟防火墙功能,用于设置单个或多个 ECS 实例的网络访问控制,它是重要的安全隔离手段。在创建 ECS 实例时,必须选择一个安全组。您还可以添加安全组规则,对该安全组下的所有 ECS 实例的出方向和入方向进行网络控制。

一个 VPC 网络环境通过虚拟路由器划分网段、配置路由表和网关来管理多个虚拟交换机,而每个虚拟交换机又连接着不同的ECS,除此之外,VPC中加入安全组,帮助用户更好的提高网络控制的灵活度。

下一跳

VPC 在帮助用户构建一个隔离的网络环境的同时,带来的问题便是 VPC环境下的 ECS 实例不能直接访问公网。对于一些特定的情况,ECS 实例需要访问公网去获取一些资源,此时一种做法是给需要访问公网的ECS实例申请弹性IP,但当面对多个 ECS 实例需要同时访问公网的需求时,这种做法的并不可行,另一种做法就是以SNAT网关访问公网的方式为 VPC 网络环境设置下一跳,如下图所示 :

在VPC环境下申请一台额外的ECS实例并为其绑定EIP,然后配置这台ECS实例的iptables,最后在指定的VPC 网络的路由表中添加一条下一跳是这台 ECS 的路由项,此时这台 ECS 即可做为指定 VPC 网络的SNAT 网关,并且 VPC 下的其他 ECS 均可通过该网关实现对公网的访问。

对于大多数的开发者而言,他们希望所开发的应用可以方便的从公网上获取资源,但又不希望应用及其运行环境完全暴露在公网下,下一跳的出现正好解决了这个问题,它不仅满足了利用较少的EIP实现大量ECS同时访问公网的需求,而且没有破环 VPC 隔离和安全的特性。

额外 EIP

下一跳机制完美的解决了 VPC 环境下 ECS 访问外网的问题,但是对于一个应用而言,最终是能够被外界用户访问到,在VPC环境下,部署在ECS上的应用外网是访问不到的,为此,需要为应用申请一个额外的 EIP,以解决公网访问 VPC 环境下应用的问题。

下面将介绍在 VPC 网络环境构建一个连接 SLB 和 RDS 资源的应用,如下图所示:

上图显示在VPC下构建一个SLB资源,然后在SLB下连接了运行应用的ECS实例,而ECS向下又连接了一个RDS。在应用部署过程中,ECS实例可通过下一跳实现对外网资源的访问和获取。应用部署完成后,外界用户如何访问已搭建的应用呢?此时就需要为SLB配置一个额外的EIP,外界用户通过额外的EIP或者该EIP对应的域名将请求发送到SLB,SLB收到请求后根据监听和分发机制,将请求进一步转发给某台ECS,ECS根据请求内容,获取相应资源后,作出响应。

基于 Ansible 快速交付应用

到目前为止,用户基于 ROS 交付应用可以有两种途径:一种是通过ROS构建好资源,然后登陆到ECS上手动搭建应用运行环境,另一种是利用Cloud-Init机制,将构建应用的步骤编写成脚本,然后将脚本随着ECS资源的构建发送到ECS的User-Data中,Cloud-Init执行User-Data 以完成应用的构建。这两种方式随着ECS数量的增多,操作成本也会相应的增大。那么如何在降低构建应用操作成本的同时,实现对应用的快速交付呢?这里就要使用自动化管理工具Ansible,如下图所示:

用户首先在一台Master机器上安装 Ansible,然后在这台 Master 机器上通过python调用ROS API完成 IaaS 资源的的生产,并用生产出来的 ECS 的登录信息更新 Ansible 的 Inventory 文件,最后根据所要部署的应用,从 Git 上获取相应的 playbook 或者用户可根据应用部署过程自己编写 playbook,进而通过执行playbook完成应用的部署。这种方式带来的最大的好处是,不论所要部署应用的 ECS 数量有多少,在应用部署时只需调用一次命令即可完成所有的部署工作,大大降低的了应用部署的复杂度。

基于 Ansible 快速搭建Redis集群

为了更好的阐述 Ansible 快速交付应用的功能,下面将介绍在 VPC 网络环境下基于 Ansible 快速搭建Redis集群(一主两备)的交付过程,如下图所示:

首先在安装有 Ansible 的 Master 机器上通过 python 调用 ROS API 生成三台ECS用于搭建 Redis 集群,然后根据ECS的登录信息更新 Ansible 的 Inventory 文件,并生成搭建 Redis 的 playbook 执行文件,接着从 Git 上获取搭建 Redis 的 Playbook,最后,在 Ansible 服务器上运行 playbook 执行文件,即可完成Redis集群的搭建。

值得注意的是,根据 playbook 执行文件的设置,用户可以搭建只有一台 Master 的 Redis,也可以搭建拥有一台 Master(主服务器)、两台 Slave(从服务器)的标准配置的 Redis 集群,并且为了提高Redis 集群的高可用性,可以在搭建 Redis 集群后为其部署高可用解决方案 Sentinel。所有的这些工作,Ansible 可以实现一键部署,大大提高了工作效率。

时间: 2024-10-29 12:20:59

基于 ROS 交付应用的相关机制介绍的相关文章

验证码对抗之路及现有验证机制介绍

验证码对抗之路及现有验证机制介绍 目明@阿里聚安全 yahoo邮箱在九几年的时候,业务深受各种邮箱机器人的困扰,存在着大量的垃圾邮件,于是他们找到了当时仍在读大学的路易斯·冯·安(Luis von Ahn),并设计了经典的图形验证码,即通过简单的扭曲图形文字进行机器的识别. 通过这个简单的图形,他们很快的控制住了垃圾邮件的数量,并将大量的机器人据之门外. 但是即使验证码解决了垃圾邮件的问题,我们仍要提出一个问句: 验证码是必要的吗? 阿里有句简单的话:不忘初心,方得始终. 验证码不是一个功能性的

ASP.NET基于角色的窗体安全认证机制

asp.net|安全 说明:两个月前我刚学 ASP.NET, 在 codeproject.com 看到题目叫 Role-based Security with Forms Authentication 的文章,觉得很有帮助.当时就想翻译成中文.不过直接翻译实在没意思,这两天我参照 Heath Stewart的这篇文章,并且根据自己的理解,把它按照自己的想法和表达方式写成中文.附带上自己为这篇文章做的一个演示的web应用程序. 如果有理解错误的地方,欢迎来信指出或发表评论. 概要: ASP.NET

3d地图-基于ROS的室内环境3D地图创建,求指导。

问题描述 基于ROS的室内环境3D地图创建,求指导. 老师让我们做这个,给了我们一个kinect一代,另外两个组员不做,可是我想完成这个任务,寒假抽出时间了解了相关的内容,还是一头雾水,还望有前辈指导,我现在想首先能做到模仿. 解决方案 http://www.taodocs.com/p-9432833.html

redis4.0之基于LFU的热点key发现机制

前言 业务中存在访问热点是在所难免的,redis也会遇到这个问题,然而如何发现热点key一直困扰着许多用户,redis4.0为我们带来了许多新特性,其中便包括基于LFU的热点key发现机制. Least Frequently Used Least Frequently Used--简称LFU,意为最不经常使用,是redis4.0新增的一类内存逐出策略,关于内存逐出可以参考文章<Redis数据过期和淘汰策略详解>. 从LFU的字面意思我们很容易联想到key的访问频率,但是4.0最初版本仅用来做内

SQL Server 2008数据仓库可伸缩性相关功能介绍

SQL Server 技术文档 作者: Eric N. Hanson, Kevin Farlee, Stefano Stefani, Shu Scott, Gopal Ashok, Torsten Grabs, Sara Tahir, Sunil Agarwal, T.K. Anand, Richard Tkachuk, Catherine Chang, 以及 Edward Melomed, Microsoft Corp. 技术检查员:Eric N. Hanson, Microsoft Corp

火车采集器的相关术语介绍

  火车采集器的相关术语介绍           1.采集任务 采集任务是火车采集器中对于数据采集和数据发布任务的完整配置,包含采集规则和发布模块. 2.采集规则 即我们对如何采集和采集什么的问题给出一些设置让采集器按照设置的规则来执行, 这个设置可以从火车采集器里面导出保存为.ljobx文件,也可以再次导入火车采集器. 3.发布模块 在火车采集器中,发布模块是对"将已经采集到的数据发布到哪里"进行的设置. 包括WEB在线发布模块和数据库发布模块,其设置分别可以导出保存为.wpm文件和

Redis内核基于时间点的备份恢复和基于AOF日志的增量同步机制设计

直播视频回顾 Redis内核支持基于时间点的备份恢复 Redis内存数据库,须有一种机制能够把内存中的数据持久化到硬盘上,再将硬盘中数据备份到备份系统中,才能去做恢复.Redis原生的持久化机制包括RDB持久化和AOF持久化两种. RDB持久化 RDB持久化触发方式有两种: 手动触发:执行BGSAVE命令: 自动触发:配置SAVE选项,在指定时间内发生指定次数的key修改,自动进行后台RDB SAVE. RDB持久化流程如下: 在做RDB SAVE时需要fork一个子进程,每次RDB SAVE生

一种基于NoSQL的并行数据增量处理机制研究

一种基于NoSQL的并行数据增量处理机制研究 华中科技大学  刘炜 云计算为数据处理工作带来了新的机遇与挑战.传统的关系型数据库在大数据的需求面前显得力不从心,而分布式非关系型数据库由于其高可靠性.高可用性的特性,能够满足大数据带来的高并发.高读写需求.然而,分布式非关系型数据库优越的性能是以牺牲SQL数据处理能力为代价的.因此,提高非关系型数据库的数据处理能力就成为一个重要的研究课题.非关系型数据库数据处理能力可以从离线数据处理和在线数据处理两个方面进行提高.在离线数据处理方面,将开源MapR

基于分割的数字图像云存储机制

基于分割的数字图像云存储机制 吕骁博 郭耀 陈向群 随着云计算和数据中心的发展,数据处理和存储工作逐渐转移到云平台上. 通过云服务器存储数字图像可以解决图像存储和共享的问题,但是一些云服务器可能难以保证这些数字图像数据的可靠性和可用性,导致用户隐私泄露. 本文提出了一种基于分割的数字图像云存储机制,并采用了两种不同的图像分割算法:分块分割和分层分割.为了验证该机制,实现了一个支持隐私保护的数字图像云存储工具,针对不同图像分割方法进行了比较分析与实现,对所选的不同云服务器服务质量进行了测试. 通过