控制/MCU
如何将单片机应用程序‘重构’至微服务中
单片机应用程序遍布于当今的各类业务中。这些使用传统IDE构建而成的应用程序易于开发和测试,起码在刚开始的时候便于部署和扩展。然而,它有一个最大的缺点,那就是:这一程序的规模只会变得愈发大型和复杂,而最终会成为一种对各企业来说极其复杂的代码,因而会阻碍这些企业快速有效地回应日益变化的业务需求和客户需求。
由于单片机应用程序是开发应用程序的一种为人熟知的方式,所以在某些情况下,特别是在应用程序开发的早期阶段,它们能起到一定的帮助作用。此外,单片机应用程序还将业务逻辑视作其核心,并通过定义服务、域对象和活动的模块来实现。数据库和消息传递组件,以及公开API或实施用户界面的网络组件会围绕业务逻辑这一核心与外相接。
然而,虽然开发人员以模块化方式构建了这些应用程序,但他们却将其部署为了单片机应用程序——例如,将Java应用程序打包为WAR文件,并将其部署于应用程序服务器技术cn.bluehost.com上或打包为独立且可执行的JAR,亦或是将Rails和Node.js应用程序打包为目录层次结构。
在项目初期阶段,这种模式可以带来很多好处,但随着应用程序的发展和功能的增加,一切就会开始变得复杂且缺乏灵活性。而事实上,开发得越成功的应用程序反而会越难管理——包括对原始信息和逐行(一行接一行)添加代码的管理。
在这时,要想实现程序的连续交付是不可能的,而且单片机应用程序也需分解成更小的部分。另外,在大型单片机应用程序上单独进行回归测试可能需要很长时间——尤其是在您的流程中设有手动UI(用户界面)或笔测试要求时。事实上,对于开发人员(尤其是那些刚接触这一应用程序的新手)来说,从事与之相关的工作已经很难了,更别提要真正弄懂这种程序了。而修复错误和解决漏洞——甚至还有增加新功能所花费的时间都将会呈指数式增长。
实施这些操作在任何情况下都有可能会出现问题,但如今的公司却都需要能高效且有效地响应新客户的需求以及日益变化的市场动态。对于您的公司来说,如果对关键应用程序作出更改就如将远洋班轮掉头一样艰难的话,那您公司的市场竞争力将会受到严重影响。
因此,单片机应用程序可能会同时阻碍企业进行创新和获得成功:由于采用新的计算机语言或技术可能会带来挑战,而单片机应用程序也难以扩展,所以这就会减弱企业满足日益增长需求的能力。此外,随着DevOps、微服务和容器的普及,单片机应用程序也可能会阻碍企业雇佣想从事最新技术相关工作的新兴人才。
那么,各公司需要为之采取哪些措施呢?亚马逊、eBay和Netflix这些超大型公司就是使用微服务架构成功部署应用程序的绝佳例子。他们将应用程序拆分为一小组基于业务功能而相互关联的服务。每个服务实现一组不同的功能——实际上就是以迷你应用程序的身份提供服务,同时具备自己独立的业务逻辑、适配器甚至是数据库模式。各服务可以以不同的方式组合在一起,然后以新产品的形式推出。
全部0条评论
快来发表一下你的评论吧 !