网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
在标准化实施完以后,由于数目的增加,或者是一些运维场景的增多,我们会逐步的进行一些工具化和自动化,这个阶段我们的运维的效率得到提升。
但是众多的工具以及自动化脚本,会让我们的管理过程中比较困难,随着人员的变动或者是一些工具维护过程中的差错,我们的自动化运维工具的受众群体不太稳定。
这个时候我们就需要一个平台将我们的运维工具以及运维过程中的一些经验进行沉淀,借助这个平台实现我们的智能化运维,于是我们从运维人员的需求和体验出发出发进行了一个运维平台产品化的构建。
银行卡组织云运维平台的概况
我给大家介绍一下我们IT体系建设的情况,差不多十年前我们以ITIL为基础构建了流程平台,变更、事件、问题、服务等流程通过这个平台进行流转。
在五年前我们从开放平台转化为云运维平台,在这个过程中,我也建立了IaaS虚拟化资源平台,同时我们也跟业界一样构建了CMDB,用于同意管理运维数据。
但是在运转下来以后,我们发现还有很多需求需要实现,主要三个方面:
软硬件节点数目不断增加,日常运维迫切需要一个适应各种运维场景的高效自动化平台,减少重复劳动。
需求是将运维人员的经验需要在一个平台沉淀,形成一个智能化场景库,将运维服务或能力的复用,从而提高整体运维质量和运维效率。
第三个需求是在传统的流程化运维的基础上,注入智能化场景,将运维工作从依靠人工判断、流程决策,逐步转为依靠机器智能分析判断。
所以基于这三方面需要,我们建设了一个云计算环境下面向规模化运维的平台。
云运维平台主要解决的是以下几个痛点:
- 互联网业务在我所在的公司开展特别快,还会有一些营销活动,这样就需要运维有一个快速的响应。
- 我们的硬件数目有了一个几何级的增长。
- 最近几年频繁的使用一些开源架构新兴技术,对运维技术增加了要求。
- 运维工具散乱,缺乏同同一管理。
- 我们运维数据没有一个同一的的展示
- 第六个是我们的人力增长目前比较缓慢,我们在审计过程中会有一些人工安全性方面的问题。
出于这些方面考虑,我们运维平台的愿景,是运维的质量以及可运维设备的数量不因我们的运维人员的数量或者是技能的变化改变,从而实现我们的运维的数量和质量都达到一个可控的。
银行卡组织的云运维平台是个怎样的产品
接下来给大家介绍一下我们运维平台这个产品,主要四个方面:
第一是资源统一调度,我们可以将资源整合,我们通过资源平台提供的API包括,包括Openstack、数据库管理平台、容器管理平台、分布式存储管理平台、网络管理平台、安全管理平台,将我们所常用的运维操作,都整合在我们这个运维平台中,将我们的运维流程尽量的简化,实现自助化运维。
第二,我们希望借助我们运维平台尽量实现自动化管理,减少我们手工操作,实现自动的数据收集、自动应用安装、自动配置和更新、自动数据分析、自动扩展、自动备份恢复、自动鼓掌处理等。
第三是多维为可视化,让各个角色有一个在平台上都有一个独立的视角,以角色重定义运维。如网络管理视图,系统管理视图、监控视图、报表视图等。统一报表系统,统一全局数据并提供可自定义多维报表。
最后一个就是实现高性能,我们希望我们这个运维平台可以满足万级节点的并发收集、执行。
云运维平台建设场景
这个是我们运维平台的场景规划图,下面是我们一个核心的调动模块。包括执行、采集以及和其他流程的对接,中间是我们这个运维平台主要要做的事情,我们把这个叫做运维OS,图表管理实现自动化拓扑和自定义报表,全生命周期管理是实现应用系统从上线到下线通过我们这个平台实现一个自动化的实施。
运行环境管理和运维工具给实际的运维人员提供一个比较便利的一个操作环境,包括备份比对,作业编排以及参数管理等,容量管理我们是希望通过我们这个平台将监控的数据进行一个汇总,实现对容量的管控。
高可用管理对我们各个应用系统,各个层面的组件的可用性进行一个统一的管理,可用性监控,自动化可用性演练。
重点场景一:生命周期管理
第一个是生命周期管理,我们周围在以前的一个部署过程中,通常是这样的,开发人员写一个是需求文档通过内部流程给运维接口人,他会协调各资源管理员分配资源,形成部署方案,最后将这个部署方案通过人工构建变更的方式实施。
这里面有两个问题,一是传递过程中可能偏差,第是周期比较长,我们希望借助我们的云运维平台实现参数级别的电子化传递,以及自动化的部署。也就是用户在我们平台上面选择需要的组件,以及资源需求,由我们的管理员分配、确认实际的部署资源。
最后由平台进行一个自动化的部署,并在部署过程中自动进行各项规范标准的实施。
重要场景二:运行环境管理
第二个场景是我们的运行环境管理,包括资源类的CPU、内存、IP、端口、访问关系等,以及我们运维人员关注的,定时任务、备份策略、自启动项目等。我们通过云运维平台对运行环境进行管理,替代原有excel表格,并进行自动化设置。
重要场景三:持续部署管理
第三个场景是持续部署管理,传统部署方式我们会遇到一些问题,包括:应用版本通过版本服务器多次人工传递,各应用的配置、维护脚本没有统一标准;通过表格人工维护各环境的参数差异,不同环境人工修改参数;应用的安装过程视变更人员经验,异常告警没有统一标准,回退方式不统一等。
为此,我们做了一个持续发布的标准,而且将这些标准借助这个平台可以实施,包括:统一版本传递路线,版本标准化;构建生产、测试、研发环境配置差异库,平台根据所在环境自动生存对应参数;标准化应用部署过程,多节点安装顺序自由编排,按照编排顺序进行安装;标准异常告警;故障时按照编排顺序逆向回退。
重要场景四:运行环境维护
第四个场景是是常用运维工具集成,包括我们常用的应用重启、健康检查、隔离、恢复工具,服务器的一些物理测试,以及自动装机后自动接入OpenStack或者是其它资源管理平台的自动对接,网络设备的健康检查,还有一些定期的安全检查,我们把这些工具集成在我们的云运维平台上。
重要场景五:画像场景
第五个场景是我们应用为维度的应用画像,通常我们一个应用可能有很多的元素,大家想知道这些元素会比较困难,例如这个应用的架构是什么样的,可能只有在一些应用的开发设计人员,或者是一些骨干的心中才能知道,也不一定特别的准确。
应用的参数可能有很多要到服务器查。应用版本、参数变迁、维护记录需要翻变更,应用各个层面的容量情况需要找各专业室查。应用的情况普遍说不清,要废很大的力气才知道是什么样。
我们在云运维平台里面,借助我们之前提到的各种产品管理工具,容量管理和高可用管理,我们放在一个视图的画像里面,根据变迁维护历史以及应用的容量、高可用信息,还可以计算出这个应用他的运维方面的成熟度。
云运维平台技术方案
在硬件资产层面我们通过一些snmp等工具获取状态及操作,虚拟资源层面我们目前借助openstack及其它管理平台提供的接口进行管理,操作系统之上我们通过自主开发的核心调度系统对linux及应用进行管理。
我们整个平台是使用权的一个部署,除了下面的缓存和MySQL其他所有的组件都是全容器的部署,前端使用apache、haproxy、keepalived;后端使用jboss、rabbitmq、ansible、zookeeper;数据存储采用mysql、redis、ceph等;另外我们还有一个安全服务模块,检查是否会有一些高危操作。
业务流技术
上图是我们具体的一个业务流程,左边是我们这个云运维平台的界面,一个运维请求会被封装为一个消息会放到消息队列里面,schedule模块接收到消息后按照调度算法,自动分配给ansible节点,ansible节点通过ssh到服务器上执行,并将执行结果异步返回给消息队列。
schedule的调度算法与Ansible分布式架构
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
- 174 道运维工程师面试题
- 128道k8s面试题
- 108道shell脚本面试题
- 200道Linux面试题
- 51道docker面试题
- 35道Jenkis面试题
- 78道MongoDB面试题
- 17道ansible面试题
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!