本文是笔者过去一年在公司内部定制Jupyter的一些经验总结。
Jupyter提供了一站式多kernel集成的notebook开发环境,经历了Jupyter Notebook、JupyterLab等多个版本后,使用用户越来越多,在笔者公司内部也搭建了一套Jupyter平台供数据科学、数据分析的同学使用。
端到端的定制Jupyter
定制一个Jupyter平台包括以下
- 部署方式:JupyterLab非常容易在本地进行部署,在公司内部署的时候我们采用了docker容器方式,方便进行版本升级,可以实现物理资源的隔离保证单个实例的稳定性
- 数据存储:docker容器本地磁盘只提供image存放,所有的数据、脚本统一使用共享存储(我们使用了ceph共享磁盘),所有的个人配置、定制扩展包、脚本、数据文件统一保存在共享存储,实现和实例的解耦合
- 数据集成:公司内部数据分析需要频繁进行数据吞吐,通过pyhive扩展包的封装实现对hive的访问,并将高频query_hive、create_table等进行封装,设置参数开关,例如缓存、引擎路由、最大行数等
- 功能定制:包括代码分享、代码协作、代码的版本管理、内容同步等
- 内容建设:Jupyter平台上不同用户使用熟练程度不同,按照部门和职能在编码场景上有一定重合度,针对此我们开发了典型场景的demo、典型功能的代码块,方便在公司内部推广优秀编码经验,对齐大家的使用方式
- 监控体系:包括实例资源监控(方便用户了解实例状态,避免oom crash)、功能使用情况监控(平台可以及时了解推出功能的使用情况)
- 运营体系:通过产品培训、圆桌沟通、帮助文档、使用技巧分享等方式持续的进行平台运营
公司内部如何做好一个赋能工具
转型做产品一年半,目前还没有形成自己的体系和理解,这里是一些做工具的碎片理解,还需要多多淬炼
- 内部产品/B端产品如何生存发展:非常现实的讲,公司内部资源竞争中产品需要吸引注意力,尽一切办法让自己的产品吸引业务方用户、大佬的关注,任何产品都是资源堆积起来的,有了资源产品的功能才能丰富起来,最终用户和产品都收益
- 体验的分层:产品的体验是分层的好看的交互界面UI、好用的功能、稳健的计算速度和系统稳定性;建议从底层往前端一步步的优化体验,稳定性>计算性能>功能丰富度>好看的界面
- 了解用户:2020年流行起来的躬身入局,B端产品有一定的专业门槛,产品经理要不断的向用户学习,了解用户的场景、业务、使用方式,针对Notebook读代码、和用户交流都是很好的了解用户的方式
- 引领用户:了解用户如果理解为产品立足根本,通过对竞品、前沿技术的理解并转化为公司内部一个个功能,安利给用户使用则体现了产品的提升;在设计新功能、新体验的时候要注意对用户原有的使用路径的保护,润物细无声的方式将新的功能、方法渗透到用户的产品使用中
以上是一些碎碎念,希望可以在未来持续的精进理解,搭建更好用的数据分析工具,赋能用户。