如何开发应用程序以便于部署?

我为一家为各行业提供分布式控制系统的公司工作。 我们发现ITpipe理技能在技能和兴趣方面都有很大的不同。 我们拥有从石油生产工厂的专业ITpipe理员队伍到船上厨师的兼职工作。

常见的操作员站在Windows平台上,通常随附具有重影图像的恢复光盘。 这种方法可行,但并不是非常高科技,对于拥有大量dynamic信息和项目阶段的复杂工厂来说,这些工作并不是很理想,而且软件更新也很多。

我们正在研究虚拟机和远程安装的集中式站点pipe理,configuration修订(站点信息,调整参数等),控制软件修订(二进制文件),系统监视(错误日志,警报),testing实验室pipe理,用户pipe理等,远程诊断/故障排除。

作为一个pipe理员,你会怎样看待你是否要在一个巨大的生产工厂工作来pipe理生产networking? 我们应该研究哪些技术让系统pipe理员受益? Layman和IT怪胎一样。

底层的物stream基础设施应该是什么,什么是好的前端?

我的首要任务是“与行业标准工具集成和testing”,我需要每天使用的定制更新/部署/监控/维护接口越less越好。

部署 – 使用Microsoft技术(如Windows安装程序安装数据库(MSI文件))来安装Windows Installer修补程序(MSP)和Windows安装程序转换(MST)以提供自定义configuration选项。 单独这些技术将允许软件单独部署Active Directory / Group Policy,在更大的SCCM场景中。

监控 – 通过发布SNMP陷阱或WMI计数器,让第三方监控软件可以查看应用程序输出的任何错误或性能指标,从而避免出错。

身份validation – 正如mh所述 ,集成身份validation对于域环境中的用户来说是一个巨大的优势,它不适合于小型工作组,因此需要考虑。

configuration – 我的个人偏好是%APPDATA%中基于文本的configuration和用户文件(高速caching等),文本文件可以通过脚本进行pipe理或部署,我可以select不将更改传播到服务器 。 mh提出了关于使用注册pipe理机构进行组策略的一个有效的观点,大多数情况下,注册pipe理机构是configuration的最佳场所; 不要放在那里太多,但它是为每个应用程序几KB的数据而devise的,而不是兆字节。

为了安全,它必须一直是集成authentication。 开发自己的身份validation机制或者使用第三方方法可能会很有趣,您认为这种方法比集成方式更安全或更灵活,但这意味着需要pipe理更多的用户名和密码,pipe理员不会喜欢你,您的用户也不会。

对于configuration,请坚持registry。 认真。 伟大的registry与configuration文件的参数是独立的机器,其中用户不介意修改自己的configuration,但对于真正的最终用户与远程系统没有参数。 使用registry意味着可以使用组策略轻松地部署初始configuration和任何更改,或者 – 对于组策略不可用的情况 – 只需双击.reg文件即可。 更改可以逐步合并,通过使用HKCU,它可以在多用户环境下正常工作。

初始configuration非常重要。 避免在此阶段中input“现在inputjarglepoink服务器的名称”等对话框。 初始configuration应该无需用户交互或input。 看看GPOpipe理的MS Office安装是如何工作的 – 正确设置,用户在Outlook第一次运行时不需要input他们的用户名或Exchange服务器名称。 收到。

对于数据访问,请使用无DSN的连接string。 ODBCconfiguration不是太难以推送给远程用户,但这是另一层出问题的事情; 不需要DSN有助于消除该方面的复杂性。

testingtestingtesting。 作为标准的非pipe理员用户进行testing。 确保它的工作。 注销并以不同的标准非pipe理员用户身份重新login。 确保它仍然有效。 确保常见的设置保持通用,不常见的设置不常见。

所有这一切 – 以及上面的build议重新:微星 – 应该有助于创build一个用户的电脑永远不必被实际访问或远程进入,以执行有关应用程序的工作的设置。

我最缺less的东西是正确的文件。

高层次的观点是这样的:

  • 所有交换机正确logging
  • 什么时候该应用程序需要重新启动
  • 如何configuration日志logging
  • 等等,yadda yadda(实际上取决于客户的需要)

使用或开发可让您摆脱软件部署业务的应用程序。 我希望每次开始检查更新时都能打电话回家的应用程序,然后可以自行更新,或者SaaStypes的应用程序,其中95%的应用程序是服务器端的。

你可以做的任何事情,以避免最终用户的电话和电子邮件是值得的钱和你花在它上面的时间。