回到 一开始,Onshape成立是为了为工程师每天面临的问题提供解决方案,例如协作困难,确定困难 设计的哪个版本是最新版本,失去设计数据的控制权以及管理CAD座椅的痛苦。这些挑战中有许多与CAD的几何面无关。但是我们知道我们需要集中精力解决这些问题。

在本文中,我将重点介绍Onshape的一项特殊优势:持续部署。连续部署是一种经常向用户推送对软件进行更改的功能,从而可以快速修复错误并灵活地实现新功能。传统的基于文件的CAD每年或可能每六个月发布一次新功能。很难更频繁地发布新功能,因为此类更改通常需要“架构更改”,而架构更改意味着不兼容和存在回归的风险。

有了Onshape,我们从一开始的目标就是将数据放入云中以允许频繁更新(通常是交付 每三周),而无需停机,并且通过让每个人都使用最新版本来消除软件版本之间的不兼容性。但是我们到底该怎么做呢?

上面,我们有一个Onshape文档的示例。很可爱吧?不幸的是,我们的一位工程师对Onshape代码进行了更改,导致它按以下方式重建:

那怎么会发生呢?事实证明,这是一个有趣的错误,值得追踪,稍后我将进行介绍。重要的是,我们知道此问题并能够解决此问题,然后再将更改交付给任何客户。让我解释一下这怎么可能。

都是关于强大,可靠的版本控制。当我们开始编写Onshape时,我们知道我们需要保留设计,而不管它们是何时创建的或进行了哪些更改。一个工程师的错误修复是另一个回归。仅仅因为某些事情同样有效,并不意味着可以将更改强加给用户。我们对代码路径进行了版本控制,值得庆幸的是,我们的技术合作伙伴西门子提供了控制新内核行为的机制,以便它们模仿较早版本的行为。

这意味着较早的设计可以使用它们在创建时所使用的代码路径,并且结果与那时相同。较新的设计可以使用较新(并且可能更好)的代码路径。

只有一个真正值得信赖或天真的人会认为软件工程师会编写零个未版本化的行为更改–这不是现实的期望。因此,即使有最好的意图,事情仍然会破裂,这不好。

我记得在过去的职业生涯中,每当推送软件的新版本时,我们通常都会处理回归问题。为什么?因为当您没有所有客户数据并且看不到R之间的墙时,无法确保所有内容都是相同的&D队和顾客。我们将尽可能多地进行测试,以推出新版本的软件,并有效地使一切都没有发生太糟的事情。但是我们实际上是盲目的。我们如何看到每个设计?我们如何确保我们从未破坏任何东西?我们不能。事情不可避免地破裂了。

但是,Onshape是不同的。我们的软件可以访问所有Onshape文档。我们的员工无法打开或查看私人文档,但是我们的 软件 可以处理文档并回答简单的问题。

这就是我们的工作。我们每三个星期就会有漫游器在所有文档上进行爬网,并在新版本的Onshape上重新生成它们。所有漫游器需要做的就是告诉我们是否有任何不同的结果,并让我们对差异的类型有所了解,例如某些东西已经改变形状,或者特征状态已经改变。

如果他们确实发现问题,那么我们就有问题了。这不是一个大问题,因为尚未影响任何客户(但是),但如果我们将更改推向生产,那就会成为问题。因此,现在我们需要看一下受影响的文档。我应该再次强调,这些数据很可能是Onshape没人能看到的客户数据,但是该漫游器所做的只是告诉我们哪些文档有问题。那么,如果我们看不到它,我们是否仍然像旧的基于文件的CAD公司一样盲目行事?绝对不。免费的Onshape用户及其公开文档对此非常有用,因为只要他们是公开的,我们就可以像任何人一样轻松地访问它们。在极少数情况下,错误仅在私人文档中可见, 我们要求客户与我们分享 他们几乎总是很乐意提供帮助。

现在,让我们返回上图所示的模糊错误。这是我们手工制作的自动化测试中找不到的错误的简化版本。我们将机器人运行到了生产文档上,但出现了错误。我们看到这些错误均与草图有关,并且存在一些公开示例。然后,我们的工程师使用新旧代码检查了公共文档,并发现草图文本正在退化。 我将为您省去寻找漏洞的无聊的工作(至今仍是有益的),直到最后。 我们对传输到几何服务器的字符串编码进行了更改,从而弄乱了某些Unicode字符。一旦发现错误已修复,我们将再次运行测试,并且失败的结果将在公共和私人文档中消失。

在过去的几年中,这些测试已经发现了许多错误,我们每三周对数百万个文档运行一次。您可能会认为这很疯狂:我们怎么可能做到这一点?好吧,这是云。我们不必等待服务器过热的所有机器完成工作。每当我们的客户制作更多的Onshape文档时,我不必要求操作团队中的某人跳到Best Buy并用新机器填充会议室。我们只是向Amazon Web Services支付费用以在需要它们的时间站立新实例,然后在完成后将它们全部关闭并停止付款。

综上所述,云使Onshape能够交付非凡的价值。它不仅可以安全地存储客户数据,还可以使我们验证新算法,并且弹性扩展意味着我们有足够的能力来保持所有数据的健康。

(对Onshape的“幕后工作原理”感到好奇吗?请在下面的评论中或在 Onshape论坛 我们可能会在以后的博客文章中探讨您的主题。)