南非的专业工程团队部署开源工具,拯救生命

273 位读者喜欢这篇文章。
Global citizens unite to improve housing with open design and development

Opensource.com

2006年,一个开创性的 TED 演讲 使用统计数据揭示了关于发展中国家令人惊讶的 见解,包括尽管免费提供抗逆转录病毒药物,南非仍有很多人患有艾滋病毒。

Gustav PraekeltPraekelt.org 的创始人,听了这次 TED 演讲,并开始坚持不懈地给当地医院打电话,说服他们启动一项短信计划,以推广抗逆转录病毒药物。 这些电话促成了 txtAlert 项目——一个成功且广受认可的移动健康计划,它显着提高了就医依从性,并为患者创建了与医院沟通的免费渠道。

今天,将近十年后,Gustav 于 2007 年创立的组织 Praekelt.org 继续利用移动技术的强大力量。

这家全球非营利组织使用开源技术为全球数百万人提供基本信息和重要服务,尤其是在非洲。 我们坚定地致力于这样的理念:我们的软件创新应该与促成我们产品交付的开发社区共享。 通过参与并回馈这个社区,我们支持和维持他们为改善世界各地人民生活而开发的丰富的工具和产品生态系统。

Praekelt.org 是 数字发展原则 的支持者,特别是 原则 6,其中指出:

  • 采用并扩展现有的开放标准。
  • 开放数据和功能,并在文档化的应用程序编程接口 (API) 中公开它们,以便更大的社区可以使用。
  • 将软件作为公共产品进行投资。
  • 默认情况下,将软件开发为开源,代码在公共存储库中提供,并通过开发者社区提供支持。

在我们最初的工作中,为了使人口规模的消息传递在世界大部分地区成为可能,可以找到一个很好的例子。 我们在南非的 txtAlert 取得了成功,并且将继续取得成功,但尽管有相当大的兴趣,但在其他地方复制这种成功一直非常具有挑战性。 每个新的消息服务提供商所需的必要集成工作需要太多的定制。

为了解决这个问题,我们创建了 Vumi,这是一个软件库,为消息通信通道集成提供了一个单一的集成点。 它抽象出了所有需要定制集成的差异,并提供了一个单一一致的 API 来与所有这些差异进行对话。 结果是集成和应用程序的重用率显着提高,因为它们只需要编写一次,就可以广泛使用。

Vumi 提供了集成的手段,并且去年与联合国儿童基金会合作,我们推出了 Junebug,一个应用程序服务器,它提供 API 来启动 Vumi 集成,从而在云端和本地部署场景中实现直接消息传递系统集成。 Junebug 现在为南非、尼日利亚和乌干达的国家级孕产妇健康计划提供支持,为准妈妈和母亲提供基本信息。 它还提供短信和 非结构化补充服务数据 (USSD) 访问重要服务,例如国家帮助台和常见问题解答服务。

这些系统在去年处理了超过 3.75 亿条实时消息。

我们是一个相对较小的工程团队,总部位于南非。 如果我们不是站在巨人的肩膀上,我们简直无法想象开发这些服务。 我们提供或构建的所有服务都以开源软件的形式提供。

我们选择的语言是 Python,它使我们能够简洁地用代码表达我们的想法,并且以一种既可读又可维护的方式表达。 我们的消息传递系统是使用 Twisted 构建的,Twisted 是一个使用 Python 构建的优秀事件驱动网络编程框架。 Molo,我们的网络发布平台,是使用 Django 构建的,而优秀的开源 Wagtail CMS 是由我们在 Torchbox 的朋友构建的。

我们的三人网站可靠性工程团队能够通过依赖 Mesosphere 的 Marathon for Apache Mesos 来运行一千多个生产中的应用程序。 我们最近发布了 Marathon Acme,它通过 LetsEncrypt 为 Marathon 的负载均衡器实现自动 SSL/TLS 证书配置,确保我们的服务是安全的。

我们的工程团队是分布式的,Git 实现的工作流程使我们能够以可靠的方式开发软件。 例如,通过使用测试驱动开发,我们能够自动化我们的部署。 通过使用这些开源工具和系统,我们在 2016 年平均每天进行了 21 次自动化部署。 在开放环境中开发软件更容易、更有效。 如果没有这样一个活跃而充满活力的社区可以依靠,我们的工作将会困难得多。

我们很高兴能参与到开源技术集成的这些发展中来。 作为一个使命驱动型组织,我们坚定地致力于继续 分享我们所学到的 和开发的东西。 如果您有兴趣加入我们的团队,请 在此申请。 我们的开源存储库记录了 OS 许可证和贡献指南。 我们欢迎任何社区贡献。 请发送电子邮件至 dev@praekelt.org

标签
User profile image.
Simon de Haan 是 Praekelt 基金会的首席工程师,他拥有罕见的天赋,可以为非工程师解读软件系统和平台。

评论已关闭。

© . All rights reserved.