使用cloud-init初始化配置服务器环境及初始化项目,阿里云实践

使用cloud-init初始化配置服务器环境及初始化项目,阿里云实践,第1张

使用cloud-init编写脚本,在创建服务器的时候就写入脚本,在无人值守的情况下完成服务环境的配置/软件的安装(nginx/php等)/自己开发的项目的初次部署及配置.

在创建阿里云ECS的时候写入:

主要干了两件事:

要用cloud-init的,需要先看下 cloud-init官网

php composer-setup.php 执行失败...原因还不知道

我这里三个环境的名字是:production/staging/test,各个文件的目录也是这样

初次部署项目使用的是工具deploy,在我们其他项目中也有介绍,如:

使用deployer部署工具配合阿里云RDC完成部署

deployer文档

摘要: 洛神是阿里云飞天中负责虚拟网络的系统,她为阿里云客户提供了丰富的网络产品,如VPC、SLB等。同时,她也是ECS,RDS,OSS,NAS等100多个云产品的网络基础设施。她还支撑了阿里巴巴集团和蚂蚁金服集团众多业务,如电商、支付、物流等。

“最好的网络就像神一样,无处不在,又感知不到她的存在 …… 大繁至简,这是我们努力的方向。”     – 阿里云网络高级技术专家 孙成浩

2018杭州·云栖大会的主会场上,阿里云产品总监何云飞介绍了阿里云自主研发的云操作系统飞天的全面升级版飞天2.0。作为飞天2.0核心组成部分之一,洛神首次向外界揭开了她神秘的面纱。在随后的未来网络技术专场上,阿里云网络高级技术专家孙成浩对飞天洛神进行了更为详细的阐述。本文是首次对飞天洛神的概念、演进、架构、特点等方面进行系统化的解读。

什么是飞天洛神

从物理网络到用户感知到的网络之间存在一个虚拟网络层。在阿里云,我们给这套虚拟网络系统起了个名字,叫做洛神。洛神是阿里云飞天中负责虚拟网络的系统,她为阿里云客户提供了丰富的网络产品,如VPC、SLB等。同时,她也是ECS,RDS,OSS,NAS等100多个云产品的网络基础设施。她还支撑了阿里巴巴集团和蚂蚁金服集团众多业务,如电商、支付、物流等。在全球范围内,洛神服务着百行百业超过百万的用户。在双十一、世界杯、春运等互联网流量的尖峰时刻,为每一个消费者的流畅网络体验而默默保驾护航。

很多人都知道阿里云有一个飞天(Apsara)系统,系统中各组件是用各种神的名字命名的,包括盘古,伏羲,女娲,神农等,其中盘古是分布式文件系统,伏羲是分布式调度系统。为什么叫虚拟网络系统叫洛神呢?在古代,河运是非常重要的交通手段,就好比今天的网络一样。因此,在给虚拟网络系统起名的时候,我们就起了一个河神的名字,叫洛神。

飞天洛神的架构

洛神是阿里云的分布式操作系统飞天的一部分。在飞天的基础架构里面,最上层是各种云产品,包括大家熟悉的云产品RDS,ECS,VPC,SLB等等,支撑这些是飞天的3个基础组件,包括存储系统盘古,资源管理伏羲和网络管理洛神。也就是说,洛神除了支撑了阿里云的网络云产品之外,另外一个重要的角色就是支撑了其他云产品的网络基础设施。

讲到洛神的技术架构,洛神系统由3大模块组成

– 数据平面,控制平面和管理平面。

数据平面负责云网络中数据包的处理,它就如同物理世界中的网线和路由交换设备,把数据包高效率低延迟的从发送端送到目的地。类似的,洛神数据平面也包含各种不同角色的组件,包括支持各种不同类型计算形态的虚拟交换机,用于数据中心互连的DCN网关,用于云网络连接公网的internet网关,用于云上云下互连的混合云网关,提供负载均衡能力的负载均衡网关和提供端接入能力的智能接入网关。为了提高这些组件的转发性能,洛神不仅使用了软转发的技术,而且也对软硬件结合甚至纯硬件的技术进行了广泛应用。

控制平面则控制如何处理数据包,他是洛神的业务大脑。从技术上看,洛神的控制平面是一个层次性的分布式控制系统,最底层的设备控制器主要负责控制和管理数据平面的各种组件,同时在每个区域存在一个虚拟网络控制器,在全局存在一个全球路由控制器。区域的虚拟网络控制器则负责本区域的云网络的管理与调度, 全局路由控制器则负责协调调度各个区域的资源形成一张全球的云网络。基于虚拟网络控制器和全局路由控制器之上的则是NFV控制器,完成虚拟网络高级功能例如VPN等产品的编排和抽象。

洛神的管理平面是网络运维和运营的中枢,它管理着海量的网元以及用户,这里的海量指的是千万级虚拟机和百万级网元。为了能做到这一点,洛神的管理平台是基于大数据以及机器学习技术实现的,它对网络运行当中产生的海量数据进行实时/离线计算,数据建模,来驱动网络资源的提前规划,网络系统的日常维护以及网络产品的智能运营。整个管理平面包括了一套高性能,分布式的数据分析系统,由它分析出来的数据提供给智能运维和智能运营系统,完成资源规划,网络建设,系统变更,实时监控,故障逃逸,产品运营等整个网络产品生命周期的工作。最终达到排无人值守的网络变更,先于用户的问题发现,高效简单的故障逃逸以及丰富全面的产品及用户运营的效果。

飞天洛神的技术演进之路

洛神能够成为飞天的四大支柱之一,不是一天炼成的。洛神的演进经历了四个阶段。

首先是经典网络阶段,在这个阶段,网络只有一个概念,就是公网带宽。经典网络阶段的问题是用户无法自定义网络拓扑,这样使得用户无法完成云上云下的混合云联通。为了解决这个问题,洛神进入了VPC阶段,VPC阶段里,洛神在每个地域虚拟了数百万张网络,并且用户可以完全自定义这张网络。随着网络规模越来越大,洛神也从区域网络进入到全球网络的阶段,在这个阶段,洛神主要解决如何更好的管理超大规模网络的问题,云企业网和云连接网构成了第三代洛神的两个主要特性。

满足了主要的客户的需求之后,我们开始思考如何进一步提升用户体验。用户对网络的核心诉求是什么?其实,客户的最大诉求是网络足够强健可靠,不要发生问题。就像使用水和电一样,用户是不需要了解发电站和泵站在哪里的。因此,洛神希望网络对用户是无感知的,又是无处不在的。洛神的发展,是一个从0到1,到100,再回到0的演进过程,大繁至简,这是我们在研发下一代洛神中努力的方向,这也是我们首先在业界提出Networkless理念背后的思考。

飞天洛神的特点

洛神的关键特点,包含安全,弹性和可靠,这3个特性也是洛神达到最终Networkless状态的关键特征。

安全是基本盘,因为overlay技术把网络逻辑的隔离掉,用户的网络之前完全不会互通。并且洛神中还包含了各种加密服务可以给到用户,打造更深层次的的安全。弹性有两个数字,一个是秒级的转发性能的弹性,洛神支持从1MB到1TB在一秒内完成弹性,另一个是规模的弹性,洛神的单网络支持10w台计算节点的规模。这样,洛神既可以支持小到虚拟web主机这样的服务,也可以支持打到双11零点这样的海量峰值流量。谈到可靠性,我们参考年平均故障时间这个参数,洛神引发的单实例故障时间只有50ms,这个故障时间是极其短的。

关键设计

接下来我们详细分析下洛神弹性和可靠性的关键设计。洛神系统的数据面,本身就是一台巨大的交换机。大家都知道,交换机的转发芯片对数据包的处理,都是pipeline的,硬件处理永远不会停下来,那洛神的数据面也是如此。从一个数据包进入洛神系统开始,到出去洛神系统的整个过程,经历了洛神系统里面的各个组件,都是不会被打断的,这样只处理一件事情的数据面,一定是高效的。洛神的数据面包含了软硬件结合的转发技术和架构。此外,洛神系统的网络永远不会因为维护而中断,这意味着,洛神里面的所有组件,都支持热升级。

在可靠性角度上看,多机房容灾是高可用的基础。当阿里云的某一个数据中心云机房开始部署的时候,洛神系统在物理设施部署完成之后会首先进行部署。这个时候,机房里面有计算集群,网关和控制平台。计算集群上面有我们的虚拟交换机组件。对于数据面和控制面的关键结点都是集群部署的,单台服务结点的问题不会对用户产生任何的影响。当vm的宿主机出现宕机等严重问题的时候,可以在机房范围内进行迁移,迁移本身也不会对vm的网络属性和连通性产生任何的影响。每个云机房里面都会部署集群的网关和控制器结点,而且随着机房的增多,会自动在云机房里面形成环形的备份关系。当一个新的机房建设起来,洛神系统部署之后,会自动加入到这个备份链里面。这样,当某一个机房的关键结点由于异常出现问题的时候,都可以自动在秒级切换到备份机房,由备份机房的洛神系统来提供服务。这种多层次容灾机制,保证用户可以在很快的时间内恢复业务。

除了多机房容灾之外,如何快速发现bug和快速恢复,是可靠性的另一个关键点。为了解决这个问题,洛神首先设计了基于流的染色系统。如果把洛神系统看成一个整体的交换机,那么从特性上来看,洛神系统是一个支持流跟踪的交换机,具有各种丰富的策略。洛神系统的下面是物理网络的设备和交换机,通过洛神系统的流标记的能力和设定的策略,可以同时在物理网络和虚拟网络里面具备流的染色,特定报文的镜像,采样,跟踪等的能力。这些动作产生的日志,都会通过采集后做实时计算,如果流量有异常,会产生报警和日志给到管理员,部分报警可以触发故障的自动处理和恢复。还有一部分数据经过计算处理,会产生数据报表和用户画像,也可以给到用户一张炫酷的大屏。这个本质上就是数据化的能力。

结束语

飞天洛神的使命是让网络更简单。大家都知道AWS提出了Serverless的概念,和Serverless类似,洛神以Networkless的理念作为设计目标,我们希望用户不再去关心网络拓扑,网络带宽,网络地址这些专业技术,让用户感知不到网络的存在。Networkless首先是通过不断的提高弹性和网络的可靠性来达到的,除此之外的关键特性就是NAAS化,让用户只关心网络通,而不需要去关心网络各种组件。

之前我们单位夜晚有一台设备down了,这台设备做的堆叠,而不是备份,所有下联线路全部连接在主设备上。结果当晚凌晨,主设备的电源模块损坏了!这... 你能看出规律吗?我也想知道为什么它偏偏凌晨损坏了!

所以说,偶然性事件,不能说大部分!

但是夜间割接倒是正常,选择在用户最少的时候做可能影响业务的必要事情是常识。

首先很荣幸能够为大家解答这个问题,让我们一起走进这个问题,现在我们一起探讨一下。

下面我为大家分享,我个人对这个问题的看法与意见,希望我的回答能给大家带来帮助,也希望大家能够喜欢我的分享。

夜黑风高,杀人越货。这个时间点是正常人休息时间,而黑客则选择在这个时候活动,不论是安全攻击,或者是DDOS,都可能造成服务器故障。

大家如果有更好的关于这个问题的解答,还望一起评论出来共同讨论这话题。

我最后在这里,祝大家生活愉快每天开开心心工作快快乐乐生活, 健康 生活每一天,家和万事兴,年年发大财,生意兴隆,谢谢!

来自16年经验老程序员的靠谱回答。

主要有以下几个原因

首先,确实服务器的宕机一般都发生在凌晨使用率最低的时候,但是这个使用率只是针对用户而言的。

实际上,在凌晨的时候,服务器是很忙的。主要忙哪些事情呢?主要是一些定时任务,还有数据库备份等。很多比较耗时的操作比如报表统计都会安排在半夜,以免半天影响正常业务,所以这个时候,服务器都是在高负荷运转的,容易产生事故。

同理,发布新代码或者更改功能,也会选择在晚上的业务低峰期。无论前期的测试工作做的多么到位,也难免会隐藏一些bug,到了凌晨,这些bug(比如死循环)已经跑了一段时间了,在无人值守的情况下就可能触发各种故障。

如果上线时间比较短还好,遇到更新比较大的情况下,程序员奋战到大半夜,这个情况下人是很疲惫的,更容易忙中出错。

比如死循环和内存泄漏,是需要经过一段时间才能表现出来的。白天有人实时监控,自然出现故障的几率比较小,就算出现故障了,也能很快修复,让用户无法觉察。

夜黑风高,杀人越货。这个时间点是正常人休息时间,而黑客则选择在这个时候活动,不论是安全攻击,或者是DDOS,都可能造成服务器故障。

计科专业从事嵌入式软件开发多年,最近因为公司需要搞后台研发,经常选择升级的时机放在凌晨,而且大型的数据处理也是放在这个时间段内,经常发生的服务器宕机也是在这个时段。都是在用户使用少的时候开始折腾,折腾的次数多也就容易出现服务器问题。由于做的是物联网设备,在工作中遇到的宕机主要有这么几种情况,对大量数据的操作导致CPU占比在一段时间内骤增从而导致数据接收模块出问题,导致系统监控出现问题,很多设备信息检测不到了。

对数据库的操作太频繁导致效率的下降,也是影响系统性能很重要的一部分,其实服务器也是普通电脑的构成,主要的资源是CPU和内存,这两个因素无论是哪种都有可能导致系统的崩盘,如果是CPU被占满了,系统的反应会变得异常缓慢,时间长了可能还会慢慢缓过劲来,内存如果占满了那么会导致系统的崩溃,直接运行不下去了,其实宕机核心点不会跑出这两种因素。

现在就常见的服务器宕机问题做个归纳总结:

1.磁盘空间被占满,现在程序员运行的时候都习惯于带上log打印,如果时间长了加上没有清理的机制早晚会出问题,这个错误在平时运行过程中经常出现,如果使用的云计算服务器通常在系统崩盘之前都会发个短信,通知你的系统处于崩溃的边缘。

2.并发性能问题,如果多个人同时操作一个数据库或者数据块,会导致系统假死状态,这种属于争抢CPU资源问题,可以通过增加硬件配置以及优化软件代码的效率去解决,数据量如何足够大就可以考虑分布式的管理

3.数据受损或者被破坏导致系统崩盘,所以常见的做法是都会配置备份盘,出现问题抓紧拿到备份盘来顶上,现在公司使用的是阿里云的服务器,稳定性相比之前好太多了,中间换过电信云,腾讯云虽然价格低点,最后受不了直接换成阿里云,再也不想换回去了,数据的稳定性永远是第一位的。

4,一些没有必要的误操作,很多时候是因为程序员或者运维人员的误操作大致服务器大面积的宕机,这种事件在很多云服务提供商身上都发生过,根本层面还是管理问题。后台管理的任何细节都有可能

服务器宕机查找问题的几个线索:

1.看看服务器是不是存在内存泄漏问题,有些时候重启机器开始还能正常运行弄了一段时间之后就会变得非常缓慢,十有八九都是内存的问题

2.是否有黑客入侵造成,有些非常关键重要的数据也是黑客最感兴趣的,一般来讲这种概率不是很高

3.是不是数据库死锁导致的,访问量过大导致,连接数过多造成的。

服务器宕机一旦发生就会引起用户的无数的投诉,无论在什么情况下稳定永远是第一位,现在大的功能升级除非已经百分百验证成功,否则引起的后果不堪设想。

希望能帮到你。

来自华为的维护人员粗略的回答:

1,业务类:系统定时任务。 比如说晚上的统计报表,任务刷新,数据刷新,或者数据备份。等等。都是在晚间凌晨的时候做的。这个时候会导致CPU/内存/空间(磁盘/数据库)/IO(磁盘读写)会很高。所以导致可能出现宕机或者资源不足的情况。

2,操作类:如果需要进行割接/升级/打补丁/整改之类的操作的时候,都是有可能触发情况。很多情况需要重启进程/服务/系统。

3,bug类,不管是Linux系统或者业务系统都有可能存在bug导致系统崩溃或者服务器宕机。这种情况在白天也有可能发生。

4,硬件问题。如单板/磁盘等硬件由于实用年限问题等慢慢也会老化,比如说磁盘阵列的磁盘就很容易损坏。

5,突然的业务拥堵导致数据量很大,导致传输以及业务拥堵。以及磁盘空间满载或者数据库表空间满了。导致出现问题。都是可能发生问题的情况的。

偶发性的,可以能是你浅意识的,因为这种问题印像最深刻,可能认为比较多,通过做记录去试下。

宕机一般分5种情况:

1、程序上出了问题导致程序崩溃。

2、cpu\Gpu 、内存占满了。

3、硬盘空间满了

4、数据库表空间满了

5、机房温度过高

以上是个人在运维过程中所遇到的问题,做的总结性回答

虽说在凌晨的时候,使用系统的用户非常少,但是服务器在这个时候要做的工作可能一点儿也没有少:

再说一个很久以前看到的,同行们分享的服务器宕机的经历,有些经历非常之神奇,大家就当段子看吧(为了方便,我就按照第一人称来讲述)。

我们服务的甲方是一家医院,机房就在医院的楼中,最近机房的服务器经常性的发生宕机,公司的工程师去了几次也没有发现问题;后来公司被折腾的没办法了,决定让一个工程师晚上住在机房,看看半夜机房中究竟发生了什么事儿,想着就算找不到原因,也能在服务器宕机后第一时间重启。

后来发现原因,到了凌晨三四点的时候,机房门打开了,进来一个值夜班的小护士,看了一眼说:“又没有人,开着空调不浪费电么?”然后就把机房的空调关掉了,然后气温上升...

服务器宕机是指服务器因为一些原因导致服务器无法正常运行,造成网络断开,无法正常使用网络。服务器宕机一般都发生在凌晨,为什么会出现这种情况呢? 像我们公司是从事 科技 互联网设备生产的,为了不影响正常生产,系统升级的时候一般都是在凌晨,而且很多的数据处理也放在这个时候,服务器在这个时候也容易出现问题,具体分析有以下几种原因:

1. 系统在升级或处理大的数据时,硬盘空间被占满,如果没有人能及时清理磁盘空间,服务器就会出现卡顿的问题造成宕机。

2.如果是多台设备同时在操作,使用这一个数据库,会引起系统假死的现象,这个是属于抢占CPU的资源造成的,会导致服务器不堪自负,网站访问量猛增,程序中毒遭到很多的应用都在消耗服务器,最终死机无法响应。

3.由于凌晨维护人员减少,会出现断电,温度过高等等环境因素的影响,使服务器死机等等,不过这种情况是很少见的,因为现在机房都有发电机备用避免停电造成的数据丢失,温度也是采用的恒温系统。

4.有的企业为了节省服务器的费用,会租用较低配置的服务器来从事很多的工作,使服务器超负荷运转,结果是可以预料得到的,宕机就会经常发生。

5.服务器宕机一般和内存有很大的关系,有些服务器运行了一段时间后速度就变慢了,基本上就是内存出现问题,要检查一下内存是否存在泄漏的问题。

服务器宕机会出现一系列的问题,造成的损失也是无法估量的,只有平时定期做好维护,在凌晨的时候也要注意掌握使用状况才能避免宕机,无论在任何时候,服务器的稳定运转才是最重要的。

这里需要说明一下,服务器宕机是什么意思呢? 我们日常说的“宕机”中的“宕”其实指的是英文“down”,宕机表示当前服务器或服务无响应或者不在线状态。

服务器的宕机可分为人为控制的宕机、不可控的宕机。 这两者有什么区别呢,下面来具体说明一下:

1、人为可控的宕机行为

服务器长时间的运行可能会带来一些(非致命性)问题,又或者我们需要对服务器进行软/硬件的升级维护时,可能需要停机或者重启操作。这种情况下的宕机是可控的,在我们的计划之内。

2、不可控宕机行为

这种因素就很多了,比如说 服务器突然蓝屏、服务异常崩溃、突然断电断网了 ,这时候服务(器)就无法正常提供服务,这些都是不可控因素导致的。

而 在我们的日常运维工作中,计划性的宕机维护一般都选择在半夜 来做这些事,为什么呢,原因主要有这几点:

1、 减少对用户的影响

凌晨大家基本上都休息了,用户量较白天来说小得多,所以选择在此时进行系统及硬件的维护导致的宕机对用户的影响较小,就算有影响也只是影响小部分用户。

2、 有足够的时间来处理故障

在凌晨进行维护,就算有问题,技术人员也有足够的时间(比如说:00~05点)去处理故障。如果换成在日间维护,服务(器)宕机1小时以上投诉单全都过来了,压力很大的。

原理其实很简单:这就如同我们白天忙碌着很多事物性的工作,就如同搬运工一样,不停的搬运物品入库,只有在物品都搬运完了的时候,我们才能开始整理这些物品,整理仓库,。

其二,服务器在白天的时候,其实都在实时处理数据的“搬运工”状态,只有在实时性数据处理工作(搬运工作)完成以后,才有机会或才能腾出手来去做数据的归纳和整理。所以,服务器的宕机时间,通常会发生在使用率最低的时间段。仅此。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/574425.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-04
下一篇2023-07-04

发表评论

登录后才能评论

评论列表(0条)

    保存