小胡子聊自然资源信息化数字中台战略系列之四:技术中台
上一篇说数据中台是最难理解的,今天说的“技术中台”相对容易理解了。
在信息化建设中,特别是企业为了降低研发成本,提高软件的复用率,一般都喜欢走产品化的思路。
产品化好处就是能够快速构建、灵活适应各个用户需求,尽可能用最少的改动量来满足客户需求。
所以,各家在产品研发的时候就会考虑一套比较成熟的技术路线或者开发套路。
比如选用什么的开发框架,能够尽可能在市面上能多存活几年?选用什么样成熟的开发套件能够适应更多更广的需求变化?又简单的或者你选用的开发语言都是一个选型问题。
这些,其实已经算是技术中台层次的问题啦。
快速稳定响应是企业数字化转型过程中的一个核心竞争力,技术中台的价值是企业能够高效、稳定和低成本的打造中台化系统以实现这个核心竞争力。
技术中台将为开发、测试、发布在微服务架构体系下构建的中台服务提供坚实的技术底座,其通常会包含微服务开发及运行所涉及的技术及工具,通过成体系的组件化方案,帮助开发人员专注于业务&数据逻辑,快速开发中台服务,并能够方便的进行自动化运维。
技术中台通过提供相应的框架、工具、平台及自动化流水线,从而实现前面描述的种种能力。
首先微服务架构。基于微服务架构体系构建中台服务,已经成为业界公认的最佳实践。
作为客户来讲,大型系统特别是平台级的,比如大家都在做的国土空间基础信息平台,您可以问一句:是微服务架构吗?
微服务框架提供微服务开发、治理和运维等能力,市面上也已经涌现了一大批微服务框架,这些微服务框架大部分由大型互联网公司在支撑自身业务场景的基础上,而开源出来的,大多数企业需要结合自身的场景特点和实际情况,选择适合自己的一种主流微服务框架,以此为基础开发自己的中台服务。
然后是服务中间件。中间件是独立于操作系统和应用及服务,企业系统会借助中间件在不同的应用和服务之间共享资源。
中间件位于操作系统之上,管理计算机资源和网络通信,是连接不同独立应用和服务与独立系统的软件。
中间件介于操作系统和应用及服务之间,为应用及服务提供服务功能的软件,常见的中间件有消息队列(例如RocketMQ,Kafka等)、倒排索引存储系统(例如Elastic Search,Solr等)、缓存(Redis,Memcached等)、及对象存储(Ceph,阿里云OSS、AWS S3等)等等。
如果简单粗暴理解中间件就是一堆的开发过程用到的工具。比如阿里的中间件谱系图:
阿里技术中台将各种技术中间件等能力进行整合包装,过滤掉技术细节,向前台、业务中台、数据中台提供简单一致、易于使用的应用技术基础设施的能力接口。
最后应该是自动化流水线。微服务架构虽好,但也有一定的局限,这点对于实施人员来讲感触最深。
微服务带来的额外的系统复杂度缺失不可忽视的,特别是对于传统企业来讲,并不具备大中型互联网公司极深的技术储备和积累,稍加不慎,这些复杂度反而会给这些企业带来不可承受之重,所以,通过一系列的工具和平台,帮助企业打造DevOps体系,是技术中台重要的组成部分之一。
DevOps体系首先要帮企业构建CI/CD(持续集成/持续发布)的自动化流水线,以提升中台研发的整体效率。
流水线通常包含标准的开发环境(例如Java开发使用IntellijIDEA,Web前端开发使用WebStorm、VSCode等)、开发规范(例如Java编码遵守阿里巴巴Java开发手册)及统一源代码管理(GitLab、GitHub等Git源代码管理工具或平台是当仁不让的选择)。
通过代码扫描工具对代码的质量和潜在缺陷进行扫描,随即可以通过CI的工具对开发人员提交的源代码进行编辑,自动构建,运行单元测试,并发布到相应的环境进行自动化测试,及测试团队进行人工测试。
即团队开发人员经常集成他们的工作,通常每个开发人员每天至少集成一次,也就意味着每天可能会发生多次集成。
每次集成都通过CI工具支撑自动化的流程进行触发和执行,从而尽早地发现集成错误。
在发布期,自动化运维工具(例如:Ansible、SaltStack等)会替换不同环境的配置参数(通过集中式配置文件或环境变量),将软件包发布至相应的环境中。在软件包发布后,通过基础监控工具对系统进行应用级监控。
实话实说,以上大部分内容都是小胡子看了大几十篇文章后摘抄和转述的;对于大部分从业者来讲我们其实不会太关注这些细节,但懂点总比啥不知道的强。
把握住信息化前进的方向也是必要的;如果我们选用的产品还是陈旧的架构、落后的技术,那么出生即是死亡,毫无意义。
企业技术中台是一个相对复杂的体系,对于企业来讲,不能一蹴而就,企业可以按照以下演进路线逐步完善,比较理性务实的构建适合自己实际情况的技术中台:
第一步:确定并统一技术栈。企业要在去中心化和中心化管控中做到最佳平衡,例如:企业可以考虑选择SpringCloud作为唯一的微服务框架;
第二步:中间件服务化。确定中间件选型标准,构建中间件平台,实现中间件服务化;
第三步:构建基础服务基盘。构建基础服务SDK及微服务脚手架,集成基础服务SDK到微服务脚手架中;
第四步:打造云原生底座。构建基于混合云的容器化平台,构建DevOps工具,打造DevOps体系和文化;
第五步:构建服务治理体系。完善服务治理体系,支撑中台系统持续敏捷而又稳定的迭代。
技术中台说白了就是强调资源整合、能力沉淀的平台体系,技术中台有点像编程时的适配层,起到承上启下的作用,将整个公司的技术能力与业务能力分离,并以产品化方式向前台提供技术赋能,形成强力支撑。
伴随IT技术不断发展演化,绝大多数企业基本上都是摸索、改进、调整、完善、变化、改进……循环中;哪家的最好都不敢说;特别是自然资源信息化领域,真正的实力水平还是看研发投入,后台资金支持。
这一系列文章可能会比较多,欢迎关注继续监督小胡子给写完。
重 要 说 明
文中观点系小胡子思考与任何单位无关。
如有不适通知小胡子立即删除停止传播。
私下交流请加个人微信:gisgisgisgis。
历史系列本系列文章:
小胡子聊自然资源信息化数字中台战略系列之一:数字中台是个什么鬼?