
持久性编程
我们做得对吗?
几年前,我的团队正在为一个增强型 911 (E911) 紧急呼叫中心进行一个商业 Java 开发项目。我们试图使用传统的 Java over SQL 数据库模型来满足该项目的数据存储需求,这让我们感到沮丧。在对项目的特定需求(和非需求)进行一些反思之后,我们深吸一口气,决定从头开始创建我们自己的自定义持久层。
通过关键路径追踪进行分布式延迟分析
CPT 可以提供可操作且精确的延迟分析。
低延迟是许多 Google 应用(如搜索)的重要特性,延迟分析工具在维持大规模低延迟方面起着至关重要的作用。对于包含功能和数据不断演变的服务的复杂分布式系统,将总体延迟保持在最低水平是一项具有挑战性的任务。在大型、真实的分布式系统中,现有的工具(如 RPC 遥测、CPU 分析和分布式跟踪)对于理解整个系统的子组件很有价值,但在实践中不足以执行端到端延迟分析。可扩展且精确的细粒度跟踪已使关键路径追踪成为许多 Google 应用(包括 Google 搜索)的分布式延迟分析的标准方法。
中间件 101
现在和未来需要了解的内容
无论是将复杂的软件组件分解为更小的服务,在计算机之间传输数据,还是为无缝通信创建通用网关,您都可以依靠中间件来实现不同设备、应用程序和软件层之间的通信。随着敏捷运动的兴起,科技行业已采用快速瀑布模型来为每个结构需求(包括集成、通信、数据和安全)创建层堆栈。鉴于此范围,现在的重点必须放在端点连接和敏捷开发上。这意味着中间件不应仅仅充当执行简单请求-响应命令的面向对象的解决方案。中间件可以通过结合微服务架构来开发整体分散的生态系统,从而通过多个网关整合拉取-推送事件和流。
自主计算
我们经常跨自主边界进行计算,但确保独立的模式的含义很少被讨论。
自主计算是一种业务工作模式,它使用协作来连接领地及其使者。这种基于纸质表格的模式已经使用了几个世纪。在这里,我们解释领地、协作和使者。我们研究使者如何在自主边界之外工作,并且在保持局外人身份的同时仍然很方便。我们还研究了如何在不同的领地之间启动工作,长时间运行,并最终完成。
数据的规划和关怀
毫无理由地重新排列桶
诸如“我们如何保护这些数据?”之类的问题只有在开始时提出才有效,而不是在一些律师或政府官员坐在会议室里,翻阅您的数据和日志,并在他们的呼吸下发出威胁的声音时才问。我们关心的所有关于数据的事情都需要预见,但似乎在我们急于创造“利益相关者价值”的过程中,我们愿意牺牲这些重要的属性,只是表现得像数据饕餮,直到像 Monty Python 的《人生意义》中的 Creosote 先生一样,我们爆炸了,将半消化的数据散落在餐厅各处。