对使用事件FC构建整个项目的后端API服务 这种场景,你们建议怎么去组织项目,一个服务一个代码仓库(s.yaml) 通过CI去触发部署?还是整个项目一个代码仓库,项目中区分多个服务目录中去单独书写 s.yaml 分别去触发部署、有没有最佳实践;
根据您描述的情况,建议将每个服务分别存储在不同的代码仓库中,通过CI/CD流程进行部署。
将每个服务独立存储在不同的代码仓库中可以使得服务之间的依赖关系减小,并且易于单独管理和部署,同时还能够增加代码的可重用性和灵活性。此外,当需要对单个服务进行更改时,也不会影响到其他服务。
在每个服务的代码仓库中,可以单独书写服务配置文件,如 s.yaml,并根据需要设置自动化构建和部署流程。这种方法能够更好地管理服务部署的整个生命周期,并且便于进行跨团队协作和版本控制。
当然,如果您有特殊的需求或限制,可以考虑整个项目一个代码仓库,并在项目中区分多个服务目录中去单独书写服务配置文件,但这种方法可能会对部署和管理代码带来挑战。
总之,对于这种场景,建议使用分布式代码仓库去管理多个服务,并设置合适的CI/CD流程进行自动化构建和部署
对于使用事件FC构建整个项目的后端API服务,建议按照功能模块或业务模块来划分不同的服务,一个服务一个代码仓库,并且在每个服务仓库中单独书写对应的s.yaml文件,分别去触发部署。这种方式可以使得不同服务之间的代码独立管理,便于团队协作和版本控制,同时也可以避免出现一个服务因为其他服务的修改而不得不重新部署的情况。
对于部署触发,可以使用CI/CD工具来实现自动化部署,例如阿里云的流水线(Pipeline)服务。在每个服务的代码仓库中设置相应的触发条件(例如提交代码到主干分支),当代码仓库中的代码有更新时,触发CI/CD流水线自动化部署到对应的函数计算服务中。
需要注意的是,如果不同服务之间有共同使用的资源(例如数据库),需要考虑如何协调不同服务之间的资源访问,避免因为资源冲突而导致的问题。可以考虑将共同使用的资源单独作为一个服务,并让其他服务通过API调用来访问该服务。
我建议是拆分部署,不知道你们是什么应用。拆分部署是比如一个api一个服务,单独调用。 量大的话可以这么做,比如请求支付的 请求查询的 请求写入的,可以自己细化完全打散。
此答案来自钉钉群“阿里函数计算官网客户"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。