• 从硬件编程到软件平台的ci/cd


    硬件编程

    当我们在设计单一硬件时,主要是使用指令控制硬件电门的状态,进而让硬件有特定的能力,如 存储能力/运行能力/可视化能力等。这时候是在特定的硬件开发平台上完成指令的编排。开发人员怎么去确认这些指令呢?不管是.net、java、golang,当他们在进行跨平台适配时,都会对相应的平台提供指令适配。在近年的创信项目中,让软件平台迁移到特定的硬件平台时,进行了大量的硬件指令适配。

    硬件抽象化

    当把硬件指令抽象化后,形成可编程的微内核,也就是操作系统的硬件指令集。指令集形成体系化规范后,微内核将硬件指令集进行抽象,让外围应用只与内核交互。如果有新的硬件出现,将重新完善微内核适配,最终形成硬件接入。当有了可编程的API接口后,硬件与软件将基于特定的协议进行独立交互,不再有强关联性。

    软件编程

    基于OSI7层模型与tcp/ip四层模型,软件编程主要指就socket连接及基于特定应用平台业务实现编程。

    当下流行的web编程主要基于特定的中间件提供其中业务实现部分的编程,如面向servlet标准的java web开发,基于IIS等的.net web实现,或者基于特定web 中间件的业务实现,如python/golang 等web开发。

    基于当下IT基础服务的完整性,我们在软件编程中会使用到大量的基础中间件,为我们的业务实现提供支持服务,如数据存储服务:【数据库/FTP/对象模型等】,或者是基础的数据开发平台等,特定的中间件驱动把socket连接进行了封装,我们只关注特定中间件驱动提供的api即可。

    但整体来说,软件编辑就是在osi等模型的socket封装之后的业务实现。socket为软件提供了跨机器的互联能力。

    硬件资源云化

    socket连接句柄在特定的硬件中是有限的。如果软件对硬件资源是动态的,就需要构建硬件资源池来应对应用对资源的支持。硬件服务能力抽象为资源,统一注册到云管理平台中,应用在部署时对应用资源的使用采用声明制,最终由云管理平台完成应用的自动化部署与监控,根据应用对资源的声明查找硬件资源库中满足声明的资源进行占用,并自动完成应用部署。

    云管理平台

    硬件资源是静态的,待是否在线需要根据实际情况来看,在时间维度上是动态的。硬件云管理平台是一套管理软件,主要由资源注册中心/应用发布调度中心/硬件资源代理服务/硬件资源虚拟化(容器化)等部分组成。云管理平台是一个中心化的应用平台,主控平台管理者所有应用资源的登记/动态监测/资源回收/应用部署等。云管理平台释放了实施团队的双手,让自动化工具完成大多数工作。

    业务系统云化需求

    业务系统从研发到落地应用需要经过多套工序、并且在反复发生。如:需求梳理/代码实现/功能测试/集成测试/应用打包/应用发布与部署等。

    正常情况下需要有多套环境:开发环境/测试环境/准生产环境/生产环境。

    这么多环境,怎么保证一致性?云化部署正好解决了这些内容。资源信息的声明式获取,让运行环境通用化。云环境的自动化部署,让应用环境的部署更为灵活、智能。并且根据需要实现ci/cd等标准工序,让代码检测/自动化测试/版本回归/灰度发布等成为现实...............................

    我们下一步计划

  • 相关阅读:
    408-2012
    如何将用户导入自己的私域流量?“分享购“案例分享
    [DB]数据库--lowdb
    在海外如何制定有效的应用商店本地化策略
    通过 ChatGPT 制作一个短视频
    PerfView专题 (第八篇):洞察 C# 内存泄漏之寻找静态变量名和GC模式
    初探JVM
    centos7.9安装jenkins
    UNIX环境高级编程 学习笔记 第二十章 数据库函数库
    2023-05-26:golang关于垃圾回收和析构函数的选择题,多数人会选错。
  • 原文地址:https://blog.csdn.net/tubierr/article/details/126006580