Solum/HighLevelRoadmap
< Solum
系统概述
项目范围
对于开发者:通过提供自动化的 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 模板以实现最终的自定义。
