3 月12 日,又拍云 Open Talk No.29 “云上开发与运维实践”在上海顺利结束。
优维科技 CTO 黎明、bilibili 技术总监毛剑、又拍云运维总监邵海杨,围绕高效运维、微服务化下运维平台构建,系统架构等话题与大家展开探讨,为现场以及观看活动直播的开发者们带来一场精彩的技术盛宴。
Open Talk 是由又拍云发起的系列主题分享沙龙,用全干货的形态,为互联网从业人员呈现以技术为主,同时涵盖产品、营销、融资等各个方面的专业知识,帮助企业成员不断提升自身专业技能,以推动企业更快发展。
DevOps:宁花机器一分,不费程序员一秒
又拍云运维总监邵海杨分享了 DevOps 在又拍云的实践,他认为 DevOps 的本质是弹性、无关性和不可变性。
弹性(横向扩展,负载均衡,资源互用,编排回滚)
无关性(硬件,系统,网络,抚平差异,皆面向服务)
不可变基础设施(虚拟化,容器化,SDN,随取随用)
基于本质他提出“ DevOps 的八荣八耻”,并认为 DevOps 的落地需要很大的成本,一定要自上而下的推进。
第一:以可配置为荣,以硬编码为耻。可配置包括本地配置;集中配置,动态生成;环境变量;服务自动发现,自动生成四种方式。
第二:以互备为荣,以单点为耻。又拍云的四种做法是:无状态/负载均衡;无共享/消息队列;松耦合/异步处理;分布式/集群协作。
第三:以随时重启为荣,以不能迁移为耻。Pet-cow 故障是常态,要做好随时能覆盖故障的准备。
第四:以整体交付为荣,以部分交付为耻。又拍云的云存储服务全部用真机,这样可以进行资源统一调度分配。
第五:以无状态为荣,以有状态为耻。要擅于利用公共资源池(云服务/容器云/弹性云),不要把所有的鸡蛋都放在同一个篮子里。
第六:以标准化为荣,以特殊化为耻。又拍云标准化的三个手段:统一输入、输出(git / ansible);统一流程控制(yaml / playbook);抽象底层设计-复用组件(函数库)。
第七:以自动化工具为荣,以手动+人肉为耻。对于公有云服务来说可靠性很重要,一定要注意用程序自动化生成,提高效率。
第八:以无人职守为荣,以人工介入为耻。要进行自动化运维何监控常态化操作。
如何构建面向微服务的运维平台
优维科技 CTO 黎明主要分享了微服务架构特点和如何构建面向微服务的运维平台等内容。他认为巨石架构就是把所有的大脑打包在一起,以CS 架构的程序为代表。面对互联网化“多、快、好、省”的使用场景,巨石架构面临诸多挑战,这意味着业务系统架构也必然往“微服务”化的方向去走。在“微服务化”的场景下,运维平台不可能独善其身。需要提高平台扩展能力,增强整个平台的灵活性。
如何伴随公司业务的发展或者未雨绸缪先做架构的优化和规划?黎明认为可以从以下三点着手:
技术选型。微服务通常意味着一个异构的架构,做这样的平台会用到多种语言如 JSON、JAVA、PSP 等,这些语言必须能够很好的兼容,所以协议的选择非常关键。
微服务的规划。包含单一职责原则,明确发布接口,独立部署、升级、扩展和替换三块内容。
平台构建。包括构建管理和任务管理。
bilibili 监控体系:从巨石系统到微服务化
bilibili 早期发展快速,采用的是巨石系统。bilibili 技术总监毛剑分享他从研发和监控角度对系统架构的思考和展望,他们把巨石系统进行拆分,逐步变成微服务化的架构,希望做到各个系统更加独立完善,各司其职。
业务层:业务指标,如注册成功率、投稿成功率,实时关注业务情况;
应用层:“端”监控,链路层监控,日志,异常,通过端上采集数据上报才得到;
系统层:网络、 IDC、CDN、中间件、数据库。
毛剑认为把所有的监控系统全部打通到一个系统非常困难,所以 bilibili 没有尝试打造一个非常庞大的系统,而是分成一块块,比如:Misaka 专注“端”监控这一件事情。然后借鉴谷歌的 Trace 概念将全业务系统串联起来,并通过 Sky eye 来察看所有的问题。举例来说,假如首页有个故障,前端会上报带 Trace ID 到 Misaka,Misaka 可能就标红,接着可能需要研发同学看一下,结果发现是另外一个ELK出了问题。
从研发的角度来看待监控系统,毛剑认为报警很重要。首先需要及时报警,出问题能第一时间得知;其次需要正确报警,避免误报;还需要有报警规划,报警如何做收点。总的来说,做好一整套监控体系,需要把他们拆分成非常小的系统分而治之。
虽然天公不作美,活动当天下午上海大雨磅礴,但开发者们依旧热情奔赴这场我们用心准备干货的约会,Open Talk 将继续用更多干货回馈大家,我们下一站广州见!