Full Stack Python logo Full Stack Python

全部主题 | Blog | 时讯 | @fullstackpython | Facebook | 源码

持续集成

持续集成可以让构建、测试和部署应用自动完成。不管是由个人还是整个团队创建的软件项目,通常都会以持续集成为中心,来确保重要的步骤(如单元测试)都自动化完成了,而不是用手工处理。

持续集成为何重要?

当把持续继承(CI)作为软件项目开发过程中的一个步骤后,就可以大大减少部署时间,因为持续集成将那些需要人工干预的步骤次数最小化了。使用 CI 的小缺点有两处:第一,开发者需要花费一定的时间进行初始化设置;第二,如果一个项目被拆分成了多个部分,比如从单一架构到 微服务 架构,就会有一些不间断的维护工作。

自动化测试

使用 CI 的另外一个主要的优势是测试可以在部署过程中自动完成。 当开发者们检查源码库中的代码时,可以通过运行一个综合的测试套件 unit集成测试 来防止部署受损的问题发生。在检查期间,任何由测试套件捕获的偶然出现的 bug 都会报告出来,从而阻止部署过程继续。

源码审查中的自动化测试就像是保龄球保险杠,可以防止代码质量偏离正规。整合了单元和集成测试的 CI 可以保证任何代码修改都不会破坏现有的测试,从而确保软件能够按照预期工作。

持续集成的例子

下面的这幅图片从更高的层面说明了持续集成和部署是如何工作的。

One potential way for continuous integration to work with source control and a deployment environment.

如上图所示,当新的代码合并到源码库后,就会触发一个钩子来通知持续集成服务器有新的代码需要构建(如果通知功能不可用,持续集成服务器也可以采用轮询代码库的方式)。

持续集成服务器会获取到代码然后构建并测试。如果所有的测试都通过了,持续集成服务器就开始部署过程。新的代码会被同步到正在进行部署操作的服务器上。最后,通过重启服务以及相关的部署活动后,便完成了部署过程。

持续集成服务器和部署还有其它的结构图,以上仅是一种设置相对简单的例子。

开源持续集成(CI)项目

有很多种可以根据需要进行配置的免费开源持续集成服务器。

需要注意的是,其中有很多服务器都不是用 Python 实现的,但是可以很好地与 Python 应用配合使用。Polyglot 组织(使用超过一种语言和生态系统的组织)经常为他们的项目使用单一的集成服务器,而不管这些项目是用什么语言实现的。

Jenkins CI 相关的资源

通用持续继承相关资源

接下来你想为你的部署做什么工作?

我如何对应用中出现的错误进行日志记录?

我能做些什么来减少我的 web 应用安全漏洞?

什么是 Docker 以及如何使它适合 Python 部署?

#### 在这里注册以便每月能收到一份邮件资料,内容包含本站的主要更新、教程和 Python 书籍的打折码等。

The Full Stack Python Guide to Deployments 想找到一个完整的,一步一步的部署方案吗?请看《The Full Stack Python Guide to Deployments》.

邮件获取更新

##### 注册以便每月能收到一份邮件资料,内容包含本站的主要更新和 Python 教程。

目录

1. 简介学习编程为什么用 Python?Python 2 还是 3?企业 PythonPython CommunityBest Python Podcasts最佳 Python 资源最佳 Python 视频2. 开发环境VimEmacs3. 核心语言生成器推导式4. Web 开发Web 框架DjangoFlaskBottlePyramidMorepath其它 Web 框架Web 设计级联样式表 (CSS)JavaScriptWebSockets模板引擎Web 应用安全静态网站生成器Jinja25. 数据关系型数据库NoSQL 数据存储对象关系映射器PostgreSQLMySQLSQLite6. Web APIsAPI 集成API 的创建Twilio7. 部署服务器平台即服务(PaaS)操作系统Web 服务器WSGI 服务器源码控制应用程序依赖静态内容任务队列配置管理持续集成日志监控Web 分析Docker缓存微服务DevOpsNginxApache HTTP 服务器CaddyGreen Unicorn (Gunicorn)UbuntuPelicanLektorMkDocs8. 测试单元测试集成测试代码度量调试9. MetaBotsChange LogFuture DirectionsAbout the AuthorSQLAlchemyPeewee …或者显示全部目录内容.

持续集成

重要的更新内容会通过 Twitter 账号@fullstackpython发布。


需要更加详细的教程吗?请看 《The Full Stack Python Guide to Deployments》。

Chapters

1. 简介2. 开发环境3. 核心语言4. Web 开发5. 数据6. Web APIs7. 部署 » 持续集成 8. 测试9. Meta …or view the full table of contents.


This site is based on Matt Makai's project Full Stack Python, thanks for his excellent work!

此网站由 @haiiiiiyun开源爱好者们 共同维护。 若发现错误或想贡献,请访问: Github fullstackpython.cn 项目