如何搭建云服务器平台
网络时代回答您:
1、你要在官网上注册一个账号,只要有了账号就可以选购里面的各种套餐了,根据企业网站的大小、成本以及流量等综合考虑确定所选套餐。
2、在你购置云服务器的时候会要求你选择要安装的操作系统,这些操作系统是以镜像文件的方式供客户选择的。一般默认的操作系统都是属于“纯净版”的,里面是不附带任何编程环境的,需要自己手动去配置。如果你想要省事的话,可以选择有环境的镜像文件。
3、当操作系统安装完,环境配置好了之后,你就能够登录控制台去查看自己服务器的状态了,基本到了这一部分就成功搭建了环境了。
以上回答希望能帮到您,关于服务器的详情可到网络时代官网进行咨询。
什么是微服务
微服务架构的系统是一个分布式的系统,按业务进行划分为独立的服务单元,解决单体系统的不足,同时也满足越来越复杂的业务需求。
一单体架构
11什么是单体架构
在软件设计的时候经常提到和使用经典的3层模型,即表现层,业务逻辑层,数据访问层。虽然在软件设计中划分了3层模型,但是对业务场景没有划分,一个典型的单体架构就是将所有的业务场景的表现层,业务逻辑层,数据访问层放在一个工程中最终经过编译,打包,部署在一台服务器上。此时服务架构如图:
12单体架构存在的不足
在小型应用的初期,访问量小的时候这种架构的性价比还是比较高的,开发速度快,成本低,但是随着业务的发展,逻辑越来越复杂,代码量越来越大,代码得可读性和可维护性越来越低。用户的增加,访问量越来越多单体架构的应用并发能力十分有限。可能会有人想到将单体应用进行集群部署,并增加负载均衡服务器,再来个缓存服务器和文件服务器,数据库再搞个读写分离。这种架构如图:
这种架构虽然有一定的并发能力,及应对一定复杂业务,但是依然没有改变系统为单体架构的事实。大量的业务必然会有大量的代码,代码得可读性和可维护性依然很差。如果面对海量的用户,它的并发能力依然不够。基于以上单体架构系统的不足,提出了微服务架构。
二微服务
21什么是微服务
说了这么多现在来看看到底什么是微服务。微服务最初是由Martin Fowler提出来的他的理解如下:
微服务架构就是将单一程序开发成一个微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信,通常是HTTP RESTFUL API。这些服务围绕业务能力来划分,并通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。
1
总结起来微服务就是将一个单体架构的应用按业务划分为一个个的独立运行的程序即服务,它们之间通过HTTP协议进行通信(也可以采用消息队列来通信,如RoocketMQ,Kafaka等),可以采用不同的编程语言,使用不同的存储技术,自动化部署(如Jenkins)减少人为控制,降低出错概率。服务数量越多,管理起来越复杂,因此采用集中化管理。例如Eureka,Zookeeper等都是比较常见的服务集中化管理框架。
22微服务的优势
1)将复杂的业务拆分成多个小的业务,每个业务拆分成一个服务,将复杂的问题简单化。利于分工,降低新人的学习成本。
2)微服务系统是分布式系统,业务与业务之间完全解耦,随着业务的增加可以根据业务再拆分,具有极强的横向扩展能力。面对搞并发的场景可以将服务集群化部署,加强系统负载能力。
3)服务间采用HTTP协议通信,服务与服务之间完全独立。每个服务可以根据业务场景选取合适的编程语言和数据库。
4)微服务每个服务都是独立部署的,每个服务的修改和部署对其他服务没有影响。
23微服务和SOA的关系
SOA即面向服务的架构,SOA是根据企业服务总线(ESB)模式来整合集成大量单一庞大的系统,微服务可以说是SOA的一种实现,将复杂的业务组件化。但它比ESB实现的SOA更加的轻便敏捷和简单。
将一个单体应用拆分成一组微小的服务组件,每个微小的服务组件运行在自己的进程上,组件之间通过如RESTful API这样的轻量级机制进行交互,这些服务以业务能力为核心,用自动化部署机制独立部署,另外,这些服务可以用不同的语言进行研发,用不同技术来存储数据 。
通过以上的定义描述,我们可以基本确定给出微服务的节特征:
用微服务来进行实践到生产项目中,首先要考虑一些问题。比如下图的微服务业务架构:
在上图图表展示的架构图中,我们假设将业务商户服务A、订单服务B和产品服务C分别拆分为一个微服务应用,单独进行部署。此时,我们面临很多要可能出现的问题要解决,比如:
1、客户端如何访问这些服务?
2、每个服务之间如何进行通信?
3、多个微服务,应如何实现?
4、如果服务出现异常宕机,该如何解决?
以上这些都是问题,需要一个个解决。
在单体应用开发中,所有的服务都是本地的,前端UI界面,移动端APP程序可以直接访问后端服务器程序。
现在按功能拆分成独立的服务,跑在独立的进程中。如下图所示:
此时,后台有N个服务,前台就需要记住管理N个服务,一个服务 下线 、 更新 、 升级 ,前台和移动端APP就要重新部署或者重新发包,这明显不服务我们拆分的理念。尤其是对当下业务需求的飞速发展,业务的变更是非常频繁的。
除了访问管理出现困难以外,N个小服务的调用也是一个不小的网络开销。另外,一般微服务在系统内部,通常是无状态的,而我们的用户在进行业务操作时,往往是跨业务模块进行操作,且需要是有状态的,在此时的这个系统架构中,也无法解决这个问题。传统的用来解决用户登录信息和权限管理通常有一个统一的地方维护管理(OAuth),我们称之为授权管理。
基于以上列出的问题,我们采用一种叫做网关(英文为API Gateway)的技术方案来解决这些问题,网关的作用主要包括:
网关(API Gateway)可以有很多广义的实现办法,可以是一个软硬一体的盒子,也可以是一个简单的MVC框架,甚至是一个Nodejs的服务端。他们最重要的作用是为前台(通常是移动应用)提供后台服务的聚合,提供一个统一的服务出口,解除他们之间的耦合,不过API Gateway也有可能成为 单点故障 点或者性能的瓶颈。
最终,添加了网关(API Gateway)的业务架构图变更为如下所示:
所有的微服务都是独立部署,运行在自己的进程容器中,所以微服务与微服务之间的通信就是IPC(Inter Process Communication),翻译为进程间通信。进程间通信的方案已经比较成熟了,现在最常见的有两大类: 同步调用、异步消息调用 。
同步调用
同步调用比较简单,一致性强,但是容易出调用问题,性能体验上也会差些,特别是调用层次多的时候。同步调用的有两种实现方式:分别是 REST 和 RPC
基于REST和RPC的特点,我们通常采用的原则为: 向系统外部暴露采用REST,向系统内部暴露调用采用RPC方式。
异步消息的方式在分布式系统中有特别广泛的应用,他既能减低调用服务之间的耦合,又能成为调用之间的缓冲,确保消息积压不会冲垮被调用方,同时能保证调用方的服务体验,继续干自己该干的活,不至于被后台性能拖慢。需要付出的代价是一致性的减弱,需要接受数据 最终一致性 ,所谓的最终一致性就是只可能不会立刻同步完成,会有延时,但是最终会完成数据同步;还有就是后台服务一般要实现 幂等性 ,因为消息发送由于性能的考虑一般会有重复(保证消息的被收到且仅收到一次对性能是很大的考验)。最后就是必须引入一个独立的 Broker,作为中间代理池。
常见的异步消息调用的框架有:Kafaka、Notify、MessageQueue。
最终,大部分的服务间的调用架构实现如下所示:
在微服务架构中,一般每一个服务都是有多个拷贝,来做负载均衡。一个服务随时可能下线,也可能应对临时访问压力增加新的服务节点。这就出现了新的问题:
这就是服务的发现、识别与管理问题。解决多服务之间的识别,发现的问题一般是通过注册的方式来进行。
具体来说:当服务上线时,服务提供者将自己的服务注册信息注册到某个专门的框架中,并通过心跳维持长链接,实时更新链接信息。服务调用者通过服务管理框架进行寻址,根据特定的算法,找到对应的服务,或者将服务的注册信息缓存到本地,这样提高性能。当服务下线时,服务管理框架会发送服务下线的通知给其他服务。
常见的服务管理框架有:Zookeeper等框架。
如上的问题解决方案有两种具体的实现,分别是: 基于客户端的服务注册与发现 、 基于服务端的服务注册与发现 。
优点是架构简单,扩展灵活,只对服务注册器依赖。缺点是客户端要维护所有调用服务的地址,有技术难度,一般大公司都有成熟的内部框架支持。
优点是所有服务对于前台调用方透明,一般小公司在云服务上部署的应用采用的比较多。
前面提到,单体应用开发中一个很大的风险是,把所有鸡蛋放在一个篮子里,一荣俱荣,一损俱损。而分布式最大的特性就是网络是不可靠的。通过微服务拆分能降低这个风险,不过如果没有特别的保障,结局肯定是噩梦。
因此,当我们的系统是由一系列的服务调用链组成的时候,我们必须确保任一环节出问题都不至于影响整体链路。相应的手段有很多,比如说:
蘑菇街基于 OpenStack 和 Docker 的私有云实践
本次主要想分享一下过去一年时间里,我们在建设基于Docker的私有云实践过程中,曾经遇到过的问题,如何解决的经验,还有我们的体会和思考,与大家共勉。
在生产环境中使用Docker有一些经历和经验。私有云项目是2014年圣诞节期间上线的,从无到有,经过了半年多的发展,经历了3次大促,已经逐渐形成了一定的规模。
架构
集群管理
大家知道,Docker自身的集群管理能力在当时条件下还很不成熟,因此我们没有选择刚出现的 Swarm,而是用了业界最成熟的OpenStack,这样能同时管理Docker和KVM。我们把Docker当成虚拟机来跑,是为了能满足业务上对虚拟化的需求。今后的思路是微服务化,把应用进行拆分,变成一个个微服务,实现PaaS基于应用的部署和发布。
通过OpenStack如何管理Docker我们采用的是OpenStack+nova-docker+Docker的架构模式。nova- docker是StackForge上一个开源项目,它做为nova的一个插件,通过调用Docker的RESTful接口来控制容器的启停等动作。
我们在IaaS基础上自研了编排调度等组件,支持应用的弹性伸缩、灰度升级等功能,并支持一定的调度策略,从而实现了PaaS层的主要功能。
同时,基于Docker和Jenkins实现了持续集成(CI)。Git中的项目如果发生了git push等动作,便会触发Jenkins Job进行自动构建,如果构建成功便会生成Docker Image并push到镜像仓库。基于CI生成的Docker Image,可以通过PaaS的API或界面,进行开发测试环境的实例更新,并最终进行生产环境的实例更新,从而实现持续集成和持续交付。
网络和存储
网络方面,我们没有采用Docker默认提供的NAT网络模式,NAT会造成一定的性能损失。通过OpenStack,我们支持Linux bridge和Open vSwitch,不需要启动iptables,Docker的性能接近物理机的95%。
容器的监控
监控方面,我们自研了container tools,实现了容器load值的计算,替换了原有的top、free、iostat、uptime等命令。这样业务方在容器内使用常用命令时看到的是容器的值,而不是整个物理机的。目前我们正在移植Lxcfs到我们的平台上。
我们还在宿主机上增加了多个阈值监控和报警,比如关键进程监控、日志监控、实时pid数量、网络连接跟踪数、容器oom报警等等。
冗灾和隔离性
冗灾和隔离性方面,我们做了大量的冗灾预案和技术准备。我们能够在不启动docker daemon的情况下,离线恢复Docker中的数据。同时,我们支持Docker的跨物理机冷迁移,支持动态的CPU扩容/缩容,网络IO磁盘IO的限速。
遇到的问题及解决方法
接近一年不到的产品化和实际使用中我们遇到过各种的问题,使用Docker的过程也是不断优化Docker、不断定位问题、解决问题的过程。
我们现在的生产环境用的是CentOS 65。曾经有个业务方误以为他用的Docker容器是物理机,在Docker容器里面又装了一个Docker,瞬间导致内核crash,影响了同一台物理机的其他Docker容器。
经过事后分析是2632-431版本的内核对network namespace支持不好引起的,在Docker内创建bridge会导致内核crash。upstream修复了这个bug,从2632-431升级到2632-504后问题解决。
还有一个用户写的程序有bug,创建的线程没有及时回收,容器中产生了大量的线程,最后在宿主机上都无法执行命令或者ssh登陆,报的错是"bash: fork: Cannot allocate memory",但通过free看空闲的内存却是足够的。
经过分析,发现是内核对pid的隔离性支持不完善,pid_max(/proc/sys/kernel/pid_max)是全局共享的。当一个容器中的pid数目达到上限32768,会导致宿主机和其他容器无法创建新的进程。最新的43-rc1才支持对每个容器进行pid_max限制。
我们还观察到docker的宿主机内核日志中会产生乱序的问题。经过分析后发现是由于内核中只有一个log_buf缓冲区,所有printk打印的日志先放到这个缓冲区中,docker host以及container上的rsyslogd都会通过syslog从kernel的log_buf缓冲区中取日志,导致日志混乱。通过修改 container里的rsyslog配置,只让宿主机去读kernel日志,就能解决这个问题。
除此之外,我们还解决了device mapper的dm-thin discard导致内核crash等问题。
体会和思考
最后分享一下我们的体会和思考,相比KVM比较成熟的虚拟化技术,容器目前还有很多不完善的地方,除了集群管理、网络和存储,最重要的还是稳定性。影响稳定性的主要还是隔离性的不完善造成的,一个容器内引起的问题可能会影响整个系统。
容器的memcg无法回收slab cache,也不对dirty cache量进行限制,更容易发生OOM问题。还有,procfs上的一些文件接口还无法做到per-container,比如pid_max。
另外一点是对容器下的运维手段和运维经验的冲击。有些系统维护工具,比如ss,free,df等在容器中无法使用了,或者使用的结果跟物理机不一致,因为系统维护工具一般都会访问procfs下的文件,而这些工具或是需要改造,或是需要进行适配。
虽然容器还不完善,但是我们还是十分坚定的看好容器未来的发展。Kubernetes、Mesos、Hyper、CRIU、runC等容器相关的开源软件,都是我们关注的重点。
Q&A
Q:请问容器间的负载均衡是如何做的
A: 容器间的负载均衡,更多是PaaS和SaaS层面的。我们的P层支持4层和7层的动态路由,通过域名的方式,或者名字服务来暴露出对外的接口。我们能够做到基于容器的灰度升级,和弹性伸缩。
Q:请问你们的OpenStack是运行在CentOS 65上的吗
A: 是的,但是我们针对OpenStack和Docker依赖的包进行了升级。我们维护了内部的yum源。
Q:请问容器IP是静态编排还是动态获取的
A: 这个跟运维所管理的网络模式有关,我们内部的网络没有DHCP服务,因此对于IaaS层,容器的IP是静态分配的。对于PaaS层来说,如果有DHCP服务,容器的App所暴露出来IP和端口就可以做到动态的。
Q:请问你们当时部署的时候有没有尝试过用Ubuntu,有没有研究过两个系统间的区别,另外请问你们在OpenStack上是怎样对这些虚拟机监控的
A: 我们没有尝试过Ubuntu,因为公司生产环境上用的是CentOS。我们的中间件团队负责公司机器的监控,我们和监控团队配合,将监控的agent程序部署到宿主机和每个容器里,这样就可以当成虚拟机来进行监控。
当然,容器的数据是需要从cgroups里来取,这部分提取数据的工作,是我们来实现的。
Q:容器间的网络选型有什么建议,据说采用虚拟网卡比物理网卡有不小的性能损失,Docker自带的weaves和ovs能胜任吗
A: 容器的网络不建议用默认的NAT方式,因为NAT会造成一定的性能损失。之前我的分享中提到过,不需要启动iptables,Docker的性能接近物理机的95%。Docker的weaves底层应该还是采用了网桥或者Open vSwitch。建议可以看一下nova-docker的源码,这样会比较容易理解。
Q:静态IP通过LXC实现的吗
A: 静态IP的实现是在nova-docker的novadocker/virt/docker/vifspy中实现的。实现的原理就是通过ip命令添加 veth pair,然后用ip link set/ip netns exec等一系列命令来实现的,设置的原理和weaves类似。
Q:容器内的进程gdb你们怎么弄的,把gdb打包到容器内吗
A: 容器内的gdb不会有问题的,可以直接yum install gdb。
Q:共享存储能直接mount到容器里吗
A: 虽然没试过,但这个通过docker -v的方式应该没什么问题。
Q:不启动Docker Daemon的情况下,离线恢复Docker中的数据是咋做到的
A: 离线恢复的原理是用dmsetup create命令创建一个临时的dm设备,映射到Docker实例所用的dm设备号,通过mount这个临时设备,就可以恢复出原来的数据。
Q:Docker的跨物理机冷迁移,支持动态的CPU扩容/缩容,网络IO磁盘IO的限速,是怎么实现的,能具体说说吗
A:Docker的冷迁移是通过修改nova-docker,来实现OpenStack迁移的接口,具体来说,就是在两台物理机间通过docker commit,docker push到内部的registry,然后docker pull snapshot来完成的。
动态的CPU扩容/缩容,网络IO磁盘IO的限速主要是通过novadocker来修改cgroups中的cpuset、iops、bps还有TC的参数来实现的。
Q:请问你们未来会不会考虑使用Magnum项目,还是会选择Swarm
A:这些都是我们备选的方案,可能会考虑Swarm。因为Magnum底层还是调用了Kubernetes这样的集群管理方案,与其用Magnum,不如直接选择Swarm或者是Kubernetes。当然,这只是我个人的看法。
Q:你们的业务是基于同一个镜像么,如果是不同的镜像,那么计算节点如何保证容器能够快速启动
A:运维会维护一套统一的基础镜像。其他业务的镜像会基于这个镜像来制作。我们在初始化计算节点的时候就会通过docker pull把基础镜像拉到本地,这也是很多公司通用的做法,据我了解,腾讯、360都是类似的做法。
Q:做热迁移,有没有考虑继续使用传统共享存储的来做
A: 分布式存储和共享存储都在考虑范围内,我们下一步,就计划做容器的热迁移。
Q:请问你们是直接将公网IP绑定到容器吗,还是通过其他方式映射到容器的私有IP,如果是映射如何解决原本二层的VLAN隔离
A:因为我们是私有云,不涉及floating ip的问题,所以你可以认为是公网IP。VLAN的二层隔离完全可以在交换机上作。我们用Open vSwitch划分不同的VLAN,就实现了Docker容器和物理机的网络隔离。
Q:Device mapper dm-thin discard问题能说的详细些吗
A:4月份的时候,有两台宿主机经常无故重启。首先想到的是查看/var/log/messages日志,但是在重启时间点附近没有找到与重启相关的信息。而后在/var/crash目录下,找到了内核crash的日志vmcore-dmesgtxt。日志的生成时间与宿主机重启时间一致,可以说明宿主机是发生了kernel crash然后导致的自动重启。“kernel BUG at drivers/md/persistent-data/dm-btree-removec:181!”。 从堆栈可以看出在做dm-thin的discard操作(process prepared discard),虽然不知道引起bug的根本原因,但是直接原因是discard操作引发的,可以关闭discard support来规避。
我们将所有的宿主机配置都禁用discard功能后,再没有出现过同样的问题。
在今年CNUTCon的大会上,腾讯和大众点评在分享他们使用Docker的时候也提到了这个crash,他们的解决方法和我们完全一样。
Q:阈值监控和告警那块,有高中低多种级别的告警吗,如果当前出现低级告警,是否会采取一些限制用户接入或者砍掉当前用户正在使用的业务,还是任由事态发展
A:告警这块,运维有专门的PE负责线上业务的稳定性。当出现告警时,业务方和PE会同时收到告警信息。如果是影响单个虚拟机的,PE会告知业务方,如果严重的,甚至可以及时下掉业务。我们会和PE合作,让业务方及时将业务迁移走。
Q:你们自研的container tools有没有开源,GitHub上有没有你们的代码,如何还没开源,后期有望开源吗,关于监控容器的细粒度,你们是如何考虑的
A:虽然我们目前还没有开源,单我觉得开源出来的是完全没问题的,请大家等我们的好消息。关于监控容器的细粒度,主要想法是在宿主机层面来监控容器的健康状态,而容器内部的监控,是由业务方来做的。
Q:请问容器的layer有关心过层数么,底层的文件系统是ext4么,有优化策略么
A:当然有关心,我们通过合并镜像层次来优化docker pull镜像的时间。在docker pull时,每一层校验的耗时很长,通过减小层数,不仅大小变小,docker pull时间也大幅缩短。
Q:容器的memcg无法回收slab cache,也不对dirty cache量进行限制,更容易发生OOM问题。----这个缓存问题你们是怎么处理的
A:我们根据实际的经验值,把一部分的cache当做used内存来计算,尽量逼近真实的使用值。另外针对容器,内存报警阈值适当调低。同时添加容器OOM的告警。如果升级到CentOS 7,还可以配置kmemlimit_in_bytes来做一定的限制。
Q:能详细介绍下你们容器网络的隔离
A:访问隔离,目前二层隔离我们主要用VLAN,后面也会考虑VXLAN做隔离。 网络流控,我们是就是使用OVS自带的基于port的QoS,底层用的还是TC,后面还会考虑基于flow的流控。
Q:请问你们这一套都是用的CentOS 65吗,这样技术的实现。是运维还是开发参与的多
A:生产环境上稳定性是第一位的。CentOS 65主要是运维负责全公司的统一维护。我们会给运维在大版本升级时提建议。同时做好虚拟化本身的稳定性工作。
Q:请问容器和容器直接是怎么通信的网络怎么设置
A:你是指同一台物理机上的吗我们目前还是通过IP方式来进行通信。具体的网络可以采用网桥模式,或者VLAN模式。我们用Open vSwitch支持VLAN模式,可以做到容器间的隔离或者通信。
Q:你们是使用nova-api的方式集成Dcoker吗,Docker的高级特性是否可以使用,如docker-api,另外为什么不使用Heat集成Docker
A:我们是用nova-docker这个开源软件实现的,nova-docker是StackForge上一个开源项目,它做为nova的一个插件,替换了已有的libvirt,通过调用Docker的RESTful接口来控制容器的启停等动作。
使用Heat还是NOVA来集成Docker业界确实一直存在争议的,我们更多的是考虑我们自身想解决的问题。Heat本身依赖的关系较为复杂,其实业界用的也并不多,否则社区就不会推出Magnum了。
Q:目前你们有没有容器跨DC的实践或类似的方向
A:我们已经在多个机房部署了多套集群,每个机房有一套独立的集群,在此之上,我们开发了自己的管理平台,能够实现对多集群的统一管理。同时,我们搭建了Docker Registry V1,内部准备升级到Docker Registry V2,能够实现Docker镜像的跨DC mirror功能。
Q:我现在也在推进Docker的持续集成与集群管理,但发现容器多了管理也是个问题,比如容器的弹性管理与资源监控,Kubernetes、Mesos哪个比较好一些,如果用在业务上,那对外的域名解析如何做呢,因为都是通过宿主机来通信,而它只有一个对外IP
A: 对于Kubernetes和Mesos我们还在预研阶段,我们目前的P层调度是自研的,我们是通过etcd来维护实例的状态,端口等信息。对于7层的可以通过Nginx来解析,对于4层,需要依赖于naming服务。我们内部有自研的naming服务,因此我们可以解决这些问题。对外虽然只有一个IP,但是暴露的端口是不同的。
Q:你们有考虑使用Hyper Hypernetes吗 实现容器与宿主机内核隔离同时保证启动速度
A:Hyper我们一直在关注,Hyper是个很不错的想法,未来也不排除会使用Hyper。其实我们最希望Hyper实现的是热迁移,这是目前Docker还做不到的。
Q:你们宿主机一般用的什么配置独立主机还是云服务器
A:我们有自己的机房,用的是独立的服务器,物理机。
Q:容器跨host通信使用哪一种解决方案
A: 容器跨host就必须使用3层来通信,也就是IP,容器可以有独立的IP,或者宿主机IP+端口映射的方式来实现。我们目前用的比较多的还是独立ip的方式,易于管理。
Q:感觉贵公司对Docker的使用比较像虚拟机,为什么不直接考虑从容器的角度来使用,是历史原因么
A:我们首先考虑的是用户的接受程度和改造的成本。从用户的角度来说,他并不关心业务是跑在容器里,还是虚拟机里,他更关心的是应用的部署效率,对应用本身的稳定性和性能的影响。从容器的角度,一些业务方已有的应用可能需要比较大的改造。比如日志系统,全链路监控等等。当然,最主要的是对已有运维系统的冲击会比较大。容器的管理对运维来说是个挑战,运维的接受是需要一个过程的。
当然,把Docker当成容器来封装应用,来实现PaaS的部署和动态调度,这是我们的目标,事实上我们也在往这个方向努力。这个也需要业务方把应用进行拆分,实现微服务化,这个需要一个过程。
Q:其实我们也想用容器当虚拟机使用。你们用虚拟机跑什么中间件我们想解决测试关键对大量相对独立环境WebLogic的矛盾
A:我们跑的业务有很多,从前台的主站Web,到后端的中间件服务。我们的中间件服务是另外团队自研的产品,实现前后台业务逻辑的分离。
Q:贵公司用OpenStack同时管理Docker和KVM是否有自己开发Web配置界面,还是单纯用API管理
A:我们有自研的Web管理平台,我们希望通过一个平台管理多个集群,并且对接运维、日志、监控等系统,对外暴露统一的API接口。
Q:上面分享的一个案例中,关于26内核namespace的bug,这个低版本的内核可以安装Docker环境吗,Docker目前对procfs的隔离还不完善,你们开发的container tools是基于应用层的还是需要修改内核
A:安装和使用应该没问题,但如果上生产环境,是需要全面的考虑的,主要还是稳定性和隔离性不够,低版本的内核更容易造成系统 crash或者各种严重的问题,有些其实不是bug,而是功能不完善,比如容器内创建网桥会导致crash,就是network namespace内核支持不完善引起的。
我们开发的container tools是基于应用的,不需要修改内核。
Q:关于冗灾方面有没有更详细的介绍,比如离线状态如何实现数据恢复的
A:离线状态如何实现恢复数据,这个我在之前已经回答过了,具体来说,是用dmsetup create命令创建一个临时的dm设备,映射到docker实例所用的dm设备号,通过mount这个临时设备,就可以恢复出原来的数据。其他的冗灾方案,因为内容比较多,可以再另外组织一次分享了。你可以关注一下http://moguio/,到时候我们会分享出来。
Q:贵公司目前线上容器化的系统,无状态为主还是有状态为主,在场景选择上有什么考虑或难点
A:互联网公司的应用主要是以无状态的为主。有状态的业务其实从业务层面也可以改造成部分有状态,或者完全不状态的应用。不太明白你说的场景选择,但我们尽量满足业务方的各种需求。
对于一些本身对稳定性要求很高,或对时延IO特别敏感,比如redis业务,无法做到完全隔离或者无状态的,我们不建议他们用容器。
多进程好还是多线程好等等,并不是说因为Spark很火就一定要使用它。在遇到这些问题的时候、图计算,目前我们还在继续这方面的工作:作为当前流行的大数据处理技术? 陈,它能快速创建一个Spark集群供大家使用,我们使用OpenStack? 陈。 问,Hadoop软硬件协同优化,在OpenPOWER架构的服务器上做Spark的性能分析与优化:您在本次演讲中将分享哪些话题。 问。多参与Spark社区的讨论。曾在《程序员》杂志分享过多篇分布式计算、Docker和Spark打造SuperVessel大数据公有云”,给upstrEAM贡献代码都是很好的切入方式、SQL,并拥有八项大数据领域的技术专利,MapReduce性能分析与调优工具。例如还有很多公司在用Impala做数据分析:企业想要拥抱Spark技术,对Swift对象存储的性能优化等等。例如与Docker Container更好的集成,大数据云方向的技术负责人,Spark还是有很多工作可以做的?企业如果想快速应用Spark 应该如何去做,具体的技术选型应该根据自己的业务场景,Docker Container因为在提升云的资源利用率和生产效率方面的优势而备受瞩目,高性能FPGA加速器在大数据平台上应用等项目,再去调整相关的参数去优化这些性能瓶颈,一些公司在用Storm和Samaza做流计算: 相比于MapReduce在性能上得到了很大提升?
尽管云服务器具有种种好处,但是要想玩转这种高科技的玩艺,还是需要有一定的知识背景。而云服务器在各行各业的应用非常广泛,主要包括了办公类应用(企业管理系统OA、ERP、CRM、企业邮箱等)、网站类应用(网站、论坛、博客等)以及其他类型的应用(数据库、虚拟主机等)。
下面以华云为例,以流程形式,一步步为大家介绍如何实现云服务器上的这些应用。
网站应用服务器
网站是服务器上最常见的应用,按规模可以根据网站的日均PV区分,按类型可以区分为门户类网站、企业类网站、个人网站、交易型网站、论坛、博客等。
网站应用服务器的部署流程如下:在云服务器上部署网站前,首先必须确保您有云服务器的管理权限,或者是云服务器的空间和接口程序。
拥有云服务器的管理权限后,在云服务器上实现网站应用的步骤如下:
1、需要在系统上安装安装web服务如IIS(默认有装),apache;
2、需要安装网站的相应环境,如aspnet10/20/30/35/40,php;
3、需要网站所使用的数据库,如mysql,mssql。
拥有云服务器的空间和接口程序,在云服务器上实现网站应用的步骤如下:
1、 需要在web服务上配置好网站所需的相应环境;
2、 需要添加网站所使用的权限;
3、 开启网站使用的端口。
部署网站需要注意以下几点:
1、 防火墙是否有做一些限制,如网站的80端口是否有开启;
2、 服务器是否有做一些会阻止外部访问网站的安全策略;
3、 域名解析式否正确,是否对网站绑定了相应的域名;
4、 相关的网站环境是否配置正确,网站文件的权限是否设置正确,可以使用探针进行测试。
常规办公应用服务器
随着电脑在办公中的需求越来越重要,办公软件也成为了企业必须具备的基本软件应用。办公软件的种类非常多,应用最多的主要是OA、ERP、CRM、企业邮箱等,这些办公软件在云服务器上的部署是大致相同的。
在云服务器上实现办公应用的步骤如下:
1、 安装所需要的办公软件;
2、 安装办公软件相应的数据库;
3、 检查办公软件所需要的端口是否有开启;
4、 检查防火墙开启情况,是否有对端口进行限制。
虽然各种常规软件应用在云服务器上部署大致相同,但也存在一定的差异,具体如下:
常规软件分为CS架构和BS架构的软件,CS架构的软件直接安装即可,安装BS架构的软件需要安装该软件所需要的环境,如aspnet,php。
部署办公类应用需要注意以下几点:
1、 如果是BS架构的的应用,需要安装相应的环境如aspnet,php;
2、 软件所使用的端口是否有限制,如邮局使用的端口一般为25和110;
3、 软件的服务是否有设置成开机启动,避免服务器重启后,应用没有启动。
数据库应用服务器
随着IT行业应用部署规模的日益增大,越来越多的企业使用云服务器作为单独的数据库应用服务器,用云服务器安装数据库服务。
在云服务器上实现数据库应用的步骤如下:
1、 安装相应的数据库软件如mysql;
2、 配置mysql数据库,设置数据库文件的存放路径,对配置文件进行相应的编译;
3、 管理数据库的用户名与密码,避免使用弱密码,防止被入侵;
4、 确认是否已将数据库服务设置成开机自动启动。
部署数据库应用需要注意以下几点:
1、 对数据进行备份,以免数据丢失。
2、 保证数据库应用服务器的安全,以免黑客**数据或破坏数据。
虚拟主机应用服务器
虚拟主机极大的促进了网络技术的应用和普及,虚拟主机的租用服务也成了网络时代新的经济形势。之前都是使用物理服务器来实现虚拟主机应用,随着云计算技术的发展与普及,越来越多的网络用户选择了使用云服务器来实现虚拟主机应用。
在云服务器上实现虚拟主机应用的步骤如下:
1、 搭建NET环境和php环境等;
2、搭建好IIS来存放主机站点,搭建好FTP服务,方便数据的上传于下载;
3、 确认是否设置虚拟主机服务开机自动启动。
部署虚拟主机应用需要注意以下几点:
1、 需要确保网络的畅通,保证主机网站能够正常的运行;
2、 需要安装相应的杀毒软件,配置相应的安全策略,确保服务器的安全与稳定,主机才能运行流畅;
3、 可以安装虚拟主机管理系统软件,方便购买与管理虚拟主机;
4、 如果安装了虚拟主机管理系统软件,则需要保障它的正常运行,防止管理主机与购买主机时出错。
Windows Server 2016提供了以下三种安装选项:
Server Core(服务器核心):这是一种最小化的安装选项,只包含操作系统的核心组件。它没有图形用户界面 (GUI),并且主要通过命令行界面进行管理。Server Core提供了较小的安装占用空间和更低的系统资源消耗,使其更适合作为网络服务器运行,特别是对于一些不需要图形界面的服务器角色,如域控制器、文件服务器和 DNS 服务器等。
Server with Desktop Experience(带有桌面体验的服务器):这种安装选项类似于传统的Windows桌面操作系统,具有完整的图形用户界面 (GUI) 和桌面体验。它提供了更直观的用户界面和可视化管理工具,适合那些需要进行日常桌面管理任务的场景,例如用作远程桌面服务器或特定应用程序的主机。
Nano Server(纳米服务器):Nano Server是一种极小化的安装选项,主要面向云环境和容器化应用。它只包含核心组件和最基本的系统服务,没有图形用户界面,并通过远程管理工具进行管理。Nano Server具有更小的存储占用和更低的资源需求,同时提供更高的安全性和可靠性,适用于构建云基础架构、容器平台和微服务应用等场景。
选择适合您需求的安装选项取决于您的服务器角色、管理需求和资源限制。Server Core和Nano Server提供了更轻量级的部署,而Server with Desktop Experience提供了更传统的桌面体验和管理方式。
问题一:如何使用华为企业云服务器 打开浏览器,找到华为企业云服务官网。进入官网后找到弹性云主机后点击立即购买,进入云主机选择界面后点击立即购买。提示登录自己的用户名账号,进入购买页面。
选择好自己的云主机后点击立即购买,使用快捷支付方式(或其他方式也行)。(提示:如果选择Windows系统,则要在CPU选择至少1 GB )
购买完成后,会收到一个IP地址,用户名,密码。打开电脑开始-->所有程序--->附件-->远程连接。输入IP ,用户名,密码即可进入。
问题二:华为云服务器怎么用 1)在百度搜索华为企业云,选择官网第一个进入;
2)在左上角会看见注册,我们选择注册账号,按步骤注册完之后选择之前页面的登录;
3)选择“产品”,点击“弹性云服务器”,在页面中,点击“立即购买”;
4)选择相应的云服务器的配置,完成订单提交,支付环节;
5)整个华为云服务器申请流程,就已经操作完成了。
登入华为企业云官网》弹性云服务器ECS》立即购买》设置云服务器参数》提交订单》云服务器使用:
使用方法:
1、远程连接管理云服务器终端;
2、安装wampserver等服务器管理软件;
3、把网页html或者php文件放到目录下;
4、通过公网IP访问;hwclouds/product/ecs
问题三:华为云服务器详细操作指南? 1)在百度搜索,华为企业云,选择官网第一个进入;
2)在左上角会看见注册,我们选择“注册”账号,按步骤注册完之后选择之前页面的“登录”;
3)选择“产品”,点击“弹性云服务器”,在页面中,点击“立即购买”;
4)选择相应的云服务器的配置,完成订单提交,支付环节;
5)整个华为云服务器申请流程,就已经操作完成了。
登陆华为企业云官网》弹性云服务器ECS》立即购买》设置云服务器参数》提交订单》云服务器使用:hwclouds/product/ecs。
问题四:登录华为云服务器操作方法 华为云服务器直接登陆的操作方法:
1、从华为企业云网站的管理控制台进入获取默认的云服务器账号和密码(华为企业云也会主动发送给你账户密码),完成用户名与密码获取后,再登录云服务器。
2、Windows系列的,使用,PC本地电脑的,左下角的“开始”菜单按钮中,找到“运行”-> mstsc进入主机控制面板
Linux系列的,一般使用远程putty,secureCRT,xmanager等工具,使用SSH,serial,telnet等协议建立连接后可以打开字符窗口或者图像操作界面。可以远程登陆Linux的终端。如果怕麻烦,可以使用wdcp控制面板,直接在网页界面就可以管理hwclouds/product/ecs
问题五:华为云服务怎么使用 云相册是云服务的一种,通过云相册登陆华为账号后云服务也随着开启;直接通过云服务登陆华为账号时,云相册是默认关闭的。
华为云服务
(1)华为云服务的开启途径
1)直接启动应用:在桌面上点击“华为云服务”图标,登录华为账号开启华为云服务;云相册默认关闭;
2)通过设置:点击“设置”->“华为云服务”,登录华为账号开启华为云服务;云相册默认关闭;
3)通过云相册:点击“图库”->“云相册”->“立即登录”,使用华为账号登录开启云相册,同时自动开启了华为云服务;
4)通过其他华为应用:通过预置的音乐、视频、文件管理器的网盘、手机服务、花粉俱乐部、华为钱包等联网应用登陆华为账号后,会提示用户是否开启华为云服务(如下图)。选择“开启并继续”,所有华为服务中的自动同步和上传开关默认打开;选择“暂不开启”则不会开启云服务。
问题六:华为云服务器怎么配置云硬盘 华为云服务器配置需要考虑这三个方面的内容:
1、云服务器性能的保障;
2、云服务器带宽的质量;
3、云服务器运营商的研发能力;
综合上面几个方面,国内云服务器满足条件的提供商有:华为企业云hwclouds/product/ecs,百度云,小米云,云影。
问题七:华为云服务器怎么使用 1)在百度搜索华为企业云,选择第一个进入;
2)在左上角会看见注册,我们选择注册账号,按步骤注册完之后选择之前页面的登录;
3)登陆到华为企业云,登陆成功以后,然后再点击管理控制台
4)进入华为企业云控制台首页,后在弹性云服务器ECS旁边点击
5)在实例下面看到了你买的这台华为企业云服务器,这里有一个IP地址,你可以复制这个地址到客户端中登陆你的云服务器,或者是点击更多-----连接管理终端
此时会提示你输入管理终端的密码,这个是你在第一次登陆的时候就设置好的。不知道则可以通过找密码这个功能找回。
密码成功以后就会提示,输入操作系统的账号密码,然后就可以进行操作了。直接hwclouds/product/ecs
问题八:如何在华为云服务器上面建立网站 第一步,通过把网站的内容上传到云服务器上;
1、从华为企业云官网的管理控制台进入获取默认的服务器账号和密码(华为企业云主机购买成功后,也会主动发送给你账户和密码),完成后,再登录服务器。
2、windows系列的,使用开始运行-> mstsc进入主机控制面板
Linux系统的,下个SSH客户端,可以远程登陆linux的终端。如果嫌麻烦,可以使用wdcp控制面板,直接网页界面就能管理。
第二步,把域名的IP地址指向云服务器的对应IP地址,进行相互的绑定,包括数据库;
第三步,做好网站的信息和云主机的备案工作;
第四步,网站可以正常访问了。
问题九:如何登陆华为企业云服务器 1、从华为企业云的控制台进入获取默认的服务器账号和密码(华为企业云也会主动发送给你账户密码),完成后,再登录服务器。
2、windows系列的,使用开始运行-> mstsc进入主机控制面板
linux系列的,下个SSH客户端,可以远程登陆linux的终端。如果嫌麻烦,可以使用wdcp控制面板,直接网页界面就能管理。
问题十:华为云服务器是什么? 华为云计算服务器(又称云服务器或云主机),是云计算服务体系中的一项虚拟主机产品,该产品有效的解决了传统物理主机与VPS服务中存在的管理难度大,业务扩展性弱的缺陷。在实际应用中的云主机具有三个方面的弹性能力:主机服务配置与业务规模可灵活的进行调整;主机集群内弹性可伸缩;计费方式灵活。hwclouds/product/ecs
0条评论