当前位置:网站首页>从硬件编程到软件平台的ci/cd
从硬件编程到软件平台的ci/cd
2022-07-28 02:01:00 【thubier(段新建)】
硬件编程
当我们在设计单一硬件时,主要是使用指令控制硬件电门的状态,进而让硬件有特定的能力,如 存储能力/运行能力/可视化能力等。这时候是在特定的硬件开发平台上完成指令的编排。开发人员怎么去确认这些指令呢?不管是.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等标准工序,让代码检测/自动化测试/版本回归/灰度发布等成为现实...............................
我们下一步计划
边栏推荐
- Introduction to the reduce() function in JS
- Is the interface that can be seen everywhere in the program really useful? Is it really right?
- style=“width: ___“ VS width=“___“
- windbg
- CNN中的混淆矩阵 | PyTorch系列(二十三)
- 数字孪生农业丨智慧农业稻米加工厂从“看天吃饭”到“知天而作”
- IO flow: node flow and processing flow are summarized in detail.
- Representation of children and brothers of trees
- How do you use the jar package sent by others (how to use the jar package sent by others)
- New infrastructure helps the transformation and development of intelligent road transportation
猜你喜欢

【ELM分类】基于核极限学习机和极限学习机实现UCI数据集分类附matlab代码

Is the interface that can be seen everywhere in the program really useful? Is it really right?

Notes for the fourth time of first knowing C language

JS中的reduce()函数介绍

基于FPGA的64位8级流水线加法器

“29岁,普通功能测试,我是如何在一周内拿到5份Offer的?”

Usage of delegate

【自我成长网站收集】

Redis AOF log persistence

数据中台建设(三):数据中台架构介绍
随机推荐
What "posture" does JD cloud have to promote industrial digitalization to climb to a "new level"?
特征值和特征向量
Typescript (zero) -- introduction, environment construction, first instance
Is the interface that can be seen everywhere in the program really useful? Is it really right?
Digital twin agriculture - Smart agriculture rice processing plant has changed from "watching the sky to eat" to "knowing the sky to work"
Day 19 of leetcode
[software testing] - unittest framework for automated testing
POC simulation attack weapon - Introduction to nucleus (I)
Four methods of modifying MySQL password (suitable for beginners)
unity中物体碰撞反弹(学习)
Interpretation of cesium3dtilesets using customshader and examples of Omni effects
Data center construction (III): introduction to data center architecture
style=“width: ___“ VS width=“___“
Building of APP automation environment (I)
阿憨的故事
JS 事件对象2 e.charcode字符码 e.keyCode键码 盒子上下左右移动
Deep residual learning for image recognition shallow reading and Implementation
【信号处理】基于高阶统计量特征的通信系统中微弱信号检测附matlab代码
Collision and rebound of objects in unity (learning)
D multi production single consumption