操作系统的接口是什么(68架构模板)
admin
2023-08-30 12:01:36

程序员瓶颈突破架构师架构设计的理论与实践

每个程序员都有一个成为建筑师的梦想,但他手里没有枪就无法点燃奇梦。本系列文章分享如何让你手里有枪。只要努力,科技的梦想一定会实现,这应该是众多梦想中最接近表面的一个。

“平台”技术

当业务规模相对较小,系统复杂度不高时,运维、测试、数据分析、管理等支撑功能主要由各系统或团队独立完成。

随着业务规模越来越大,系统越来越复杂,子系统越来越多,如果继续以碎片化的方式实现这些支撑功能,就会发现存在大量的重复工作。

所以我们自然会想到把这些配套功能做成一个平台,避免重复做轮子,减少不规范带来的沟通合作成本。

运维平台

运维平台的核心职责分为配置、部署、监控、应急响应四个部分,每个职责对应系统生命周期的一个阶段,如下图所示。

配置:主要负责资源的管理。例如机器管理、IP地址管理、虚拟机管理等。

部署:主要负责系统上线发布。比如包管理、灰度发布管理、回滚等。

监控:主要负责系统投入运行后相关数据的收集和监控,以便及时发现问题。

紧急:主要负责处理系统故障。比如停止程序,注销故障机,切换IP等。

操作和维护平台的核心设计元素是& quot四个现代化& quot:标准化、平台化、自动化、可视化。

标准化

要制定运维标准,规范配置管理、部署流程、监控指标、应急能力等。每个系统都要按照运维标准来实现,避免不同系统采用不同的处理方法。

标准化是运维平台的基础。没有标准化,就没有运维平台。

如果一个系统不能自我改造以满足操作和维护标准,该怎么办?通常的做法是不改造系统,规范适配由中间方完成。

比如某系统提供RESTful接口查询当前性能指标,运维标准是性能数据通过日志定期上报,那么你可以写一个定时程序访问RESTful接口获取性能数据,然后转换成日志上报给运维平台。平板化

传统的人工运维模式需要大量的人力,效率低下且容易出错。因此,需要在运维标准化的基础上,将运维的所有相关操作整合到运维平台中,通过运维平台完成运维工作。

运维平台的优势在于:

运维标准可以固化到平台中,不需要运维人员死记硬背。

运维平台提供了简单方便的操作,但人工操作效率低且容易出错。

运维平台是可复用的,一套运维平台可以支撑几十万个业务系统自动化。

传统人工运维效率低下的一个主要原因是进行大量的重复性操作,这些操作可以通过运维平台固化,由系统自动完成。

比如一个手工部署需要登录机器,上传包,解压包,备份旧系统,覆盖旧系统,启动新系统,需要大量重复或者类似的操作。

有了运维平台,平台需要提供自动化能力。要完成上述操作,部署人员只需单击& quot开始部署& quot按钮,并在系统部署后通知部署人员

可视化的原理类似于汽车的仪表板。如果屏幕上只显示一串数字,相信大部分人看到一串数字的第一眼都会感到眩晕,也很难将数据与具体情况联系起来。

有了仪表盘,通过仪表盘上指针的偏差范围和指针所指区域的颜色,就能一目了然的看出当前状态是低速、中速还是高速。

与简单的数据列表相比,可视化具有以下优点:

可以直观的看到数据的相关属性,比如汽车仪表盘中数据的最小值是0,最大值是100,单位是MPH。

能够显示数据的含义,比如汽车仪表盘上不同速度的颜色指示。

能够一起显示相关数据,比如汽车仪表盘的速度和里程,

测试平台

测试平台的核心当然是测试,包括单元测试、集成测试、接口测试、性能测试等。可以在测试平台上完成。

测试平台的核心目的是提高测试效率和产品质量,其设计的关键是自动化。传统的测试方法是测试人员手工执行测试用例,测试效率低,重复性工作多。

通过测试平台提供的自动化能力,无需人工参与即可重复执行测试用例,大大提高了测试效率。

为了达到& quot自动化& quot,测试平台的基本架构如下图所示。

用例管理

测试自动化的主要手段是通过脚本或代码进行测试。比如单元测试用例是代码,接口测试用例可以用Python写,可靠性测试用例可以用Shell写。

为了重复执行这些测试用例,需要对测试平台进行用例管理,管理的维度包括业务、系统、测试类型、用例代码。比如网购业务的订单系统的接口测试用例。资源管理

测试用例只能在特定的运行环境下执行,包括硬件(服务器、手机、平板电脑等。)、软件(操作系统、数据库、Java虚拟机等。)和业务系统(被测系统)。

除了性能测试,一般自动化测试对性能要求不高,所以为了提高资源利用率,大部分测试平台都会使用虚拟。

技术来充分利用硬件资源,如虚拟机、Docker等技术。任务管理
任务管理的主要职责是将测试用例分配到具体的资源上执行,跟踪任务的执行情况。任务管理是测试平台设计的核心,它将测试平台的各个部分串联起来从而完成自动化测试。数据管理
测试任务执行完成后,需要记录各种相关的数据(例如,执行时间、执行结果、用例执行期间的CPU、内存占用情况等),这些数据具备下面这些作用:
展现当前用例的执行情况。
作为历史数据,方便后续的测试与历史数据进行对比,从而发现明显的变化趋势。例如,某个版本后单元测试覆盖率从90%下降到70%。
作为大数据的一部分,可以基于测试的任务数据进行一些数据挖掘。例如,某个业务一年执行了10000个用例测试,另外一个业务只执行了1000个用例测试,两个业务规模和复杂度差不多,为何差异这么大?

数据平台

数据平台的核心职责主要包括三部分:数据管理、数据分析和数据应用。每一部分又包含更多的细分领域,详细的数据平台架构如下图所示。

数据管理
数据管理包含数据采集、数据存储、数据访问和数据安全四个核心职责,是数据平台的基础功能。
数据采集:从业务系统搜集各类数据。例如,日志、用户行为、业务数据等,将这些数据传送到数据平台。
数据存储:将从业务系统采集的数据存储到数据平台,用于后续数据分析。
数据访问:负责对外提供各种协议用于读写数据。例如,SQL、Hive、Key-Value等读写协议。
数据安全:通常情况下数据平台都是多个业务共享的,部分业务敏感数据需要加以保护,防止被其他业务读取甚至修改,因此需要设计数据安全策略来保护数据。数据分析
数据分析包括数据统计、数据挖掘、机器学习、深度学习等几个细分领域。
数据统计:根据原始数据统计出相关的总览数据。例如,PV、UV、交易额等。
数据挖掘:数据挖掘这个概念本身含义可以很广,为了与机器学习和深度学习区分开,这里的数据挖掘主要是指传统的数据挖掘方式。
例如,有经验的数据分析人员基于数据仓库构建一系列规则来对数据进行分析从而发现一些隐含的规律、现象、问题等,经典的数据挖掘案例就是沃尔玛的啤酒与尿布的关联关系的发现。
机器学习、深度学习:机器学习和深度学习属于数据挖掘的一种具体实现方式,由于其实现方式与传统的数据挖掘方式差异较大,因此数据平台在实现机器学习和深度学习时,需要针对机器学习和深度学习独立进行设计。数据应用
数据应用很广泛,既包括在线业务,也包括离线业务。例如,推荐、广告等属于在线应用,报表、欺诈检测、异常检测等属于离线应用。
数据应用能够发挥价值的前提是需要有“大数据”,只有当数据的规模达到一定程度,基于数据的分析、挖掘才能发现有价值的规律、现象、问题等。
如果数据没有达到一定规模,通常情况下做好数据统计就足够了,尤其是很多初创企业,无须一开始就参考BAT来构建自己的数据平台。

管理平台

管理平台的核心职责就是权限管理,无论是业务系统(例如,淘宝网)、中间件系统(例如,消息队列Kafka),还是平台系统(例如,运维平台),都需要进行管理。
如果每个系统都自己来实现权限管理,效率太低,重复工作很多,因此需要统一的管理平台来管理所有的系统的权限。
权限管理主要分为两部分:身份认证、权限控制,其基本架构如下图所示。

身份认证
确定当前的操作人员身份,防止非法人员进入系统。例如,不允许匿名用户进入系统。为了避免每个系统都自己来管理用户,通常情况下都会使用企业账号来做统一认证和登录。权限控制
根据操作人员的身份确定操作权限,防止未经授权的人员进行操作。例如,不允许研发人员进入财务系统查看别人的工资。

相关内容

热门资讯

全程科普!有没有炸金花房卡链接... 微信游戏中心:拼三张房卡,添加微信【55051770】,进入游戏中心或相关小程序,搜索“微信拼三张房...
全程科普!创建金花链接房间房卡... 微信游戏中心:拼三张房卡,添加微信【33903369】,进入游戏中心或相关小程序,搜索“微信拼三张房...
全程科普“熊猫大厅牛牛房卡在哪... 微信游戏中心:牛牛房卡,添加微信【8488009】,进入游戏中心或相关小程序,搜索“微信牛牛房卡”,...
全程科普!如何创建微信斗牛房间... 微信游戏中心:拼三张房卡,添加微信【55051770】,进入游戏中心或相关小程序,搜索“微信拼三张房...
全程科普!微信群打炸金花链接房... 微信游戏中心:拼三张房卡,添加微信【33903369】,进入游戏中心或相关小程序,搜索“微信拼三张房...