跳转到: 导航, 搜索

Solum/HighLevelRoadmap

系统概述

SolumOverview.png

项目范围

对于开发者:通过提供自动化的 CI/CD 流程,提供易于使用、快速的应用开发体验,用于 OpenStack。

对于发布管理员:通过环境(开发、测试、预发布、生产)、权限(例如,谁可以部署到生产环境)、每个环境运行哪些测试、每个环境的使用量/成本信息等,提供简化的应用程序生命周期管理。

项目愿景包含以下 4 个方面:

1. CI:源代码到镜像(持续集成流程)

 - GIT, build+unit test, generate image, run functional tests, persist image for deployment via Heat

2. CD

 - automated deployment, management of running apps(monitoring, autoscaling, self-healing), blue green deployments, application versioning and rollbacks

3. 环境

 - permissions(I.e. who can deploy to prod),what tests get run in which environment, usage/cost information per environment, etc

4. 开发者工具

 - IDE plugins, SDK's, CLI, UI console

Solum 路线图

之前的里程碑

  • SOLUM-R1:应用程序部署/管理 [R1.1(仅故事 1 和 2),R1.2,R1.3]
  • SOLUM-R4:用户认证
  • 蓝图:https://launchpad.net/solum/+milestone/milestone-1
  • 可靠性改进:错误修复
  • 能够配置单元测试作为 CI 流程的一部分运行
  • 失败重试:作为应用程序开发者,如果 CI 调用由于任何原因失败,我能够触发 CI 工作流程的重新运行,而无需重新提交代码。

里程碑:Kilo

  • 新的 CLI:作为应用程序开发者,我可以使用友好的 CLI 命令来管理我在 Solum 上的应用程序
- I can register a new app with Solum
- I can have automated unit tests executed on my latest code in git
- I can invoke unit tests + auto deployment of my latest code in git
- I can view list of my apps registered with Solum
- I can view detail status of individual apps registered with Solum
- I can delete an app from Solum
- I can register a new custom language pack to support deployment of my app needing a custom runtime     
  • Git 体验
- As an app developer, I want to view all the possible trigger URLs available for my app, so that I can can manually configure my code repository to trigger specific workflows on my code in response to events on my codebase.
- As an app developer, I want the CLI to provide an option to set up such a trigger on my repository when I register a new app to Solum, requesting minimal credentials from me to access the repository.
- As an app developer, I want the CLI to provide an option to set up such a trigger on my repository after my app has been registered, likely as part of the "solum app update" command.
  • 自定义语言包
- As an operator, I can codify setup of custom language stack, and make it available to application developers so that they can start using the custom stack for CI+CD (build, run tests, generate DU). 
- as an application developer, I can codify setup of my custom language stack, and have Solum use my custom stack for CI+CD. 
  • 预定义的语言包
- Implement Python language pack + sample app
- Implement Java Tomcat 7 language pack + sample app
- Implement Ruby on rails language pack + sample app
  • MySQL Trove
-  Demonstrate MySQL Trove integration with an app deployed on Solum


  • 访问友好的日志:AppDev :作为应用程序开发者,我能够访问 Solum 上我的应用程序的构建、测试和部署日志
- When any errors occur in unit testing, build, or deploy, I have access to meaningful log info so that I can effectively troubleshoot what went wrong
- I want my logs to be accessible only to me
- I want to be able to view summary log data (build pass/pail, test pass/fail, number of tests passed/failed etc)
- I want to view my logs scoped to individual pull requests 
- I want to be able to drill down into detail logs
- I would like to see user friendly logs i.e. logs meant to be consumed by an app developer persona
- I want to access real time streaming logs from within the CLI console
  • 服务器版本:在 CLI 中显示服务器版本

里程碑:Liberty

  • 转换为新的 API 资源对象 + 弃用旧的对象(例如,assemblies)
  • 更新 CLI 以使用新的 API 对象
  • 将 bash 脚本转换为 python,以提高可靠性和易于调试(减少技术债务)
  • 非破坏性应用程序更新(应用程序保持相同的 IP,可用性最多只有几秒钟的停顿)

里程碑:Mitaka

  • API/CLI 支持用户查看应用程序部署历史记录
  • 非破坏性应用程序更新(应用程序在连续的应用程序部署中保持相同的 IP)
  • 扩展/缩减 Web 层实例(目前为手动操作,将与 Heat 自动扩展集成,并提供客户选择的参考架构)
  • 将 bash 脚本转换为 python,以提高可靠性和易于调试(减少技术债务)
  • 支持基于微服务的多层应用程序架构
  • 支持在应用程序创建时间和应用程序部署时设置应用程序参数
  • 能够配置容器/VM 大小和/或比例(比例部分尚待讨论,但对于 1:1,我们需要一种方法让用户配置他们需要/想要的 flavor 类型)。我还希望看到超出 Nova 的基础设施选择(例如 Ironic 裸机... 通过交换所选部署形式因素的适当 Heat 模板来实现)

未来的里程碑

  • 服务附加组件框架
  • 通过附加组件框架启用以下服务:MongoDB、NewRelic、MemCache
  • 应用程序性能监控(CPU、内存使用率等)
  • 安全存储密钥(如果操作员的选择不是 barbican,请确保用户密钥以加密形式存储在数据库中)
  • 自定义 SSL 证书
  • 参考架构选择。允许用户从几个预设架构中选择(Solum 将通过不同的 Heat 模板实例化),并最终允许客户完全修改/编辑 Heat 模板以实现最终的自定义。