Soumettre la recherche
Mettre en ligne
02.python.开发最佳实践
•
Télécharger en tant que PPTX, PDF
•
2 j'aime
•
895 vues
Na Lee
Suivre
Signaler
Partager
Signaler
Partager
1 sur 29
Télécharger maintenant
Recommandé
Continuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CI
Chu-Siang Lai
Continuous Delivery Workshop with Ansible x GitLab CI (2nd)
Continuous Delivery Workshop with Ansible x GitLab CI (2nd)
Chu-Siang Lai
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
Chu-Siang Lai
Continuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CI
Chu-Siang Lai
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
Will Huang
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式
Bo-Yi Wu
Node.js從無到有 基本課程
Node.js從無到有 基本課程
Simon Su
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
GO LL
Recommandé
Continuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CI
Chu-Siang Lai
Continuous Delivery Workshop with Ansible x GitLab CI (2nd)
Continuous Delivery Workshop with Ansible x GitLab CI (2nd)
Chu-Siang Lai
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
Chu-Siang Lai
Continuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CI
Chu-Siang Lai
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
Will Huang
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式
Bo-Yi Wu
Node.js從無到有 基本課程
Node.js從無到有 基本課程
Simon Su
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
GO LL
前端工程師一定要知道的 Docker 虛擬化容器技巧
前端工程師一定要知道的 Docker 虛擬化容器技巧
Chu-Siang Lai
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
Shengyou Fan
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
Wen-Tien Chang
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Chu-Siang Lai
Node.js长连接开发实践
Node.js长连接开发实践
longhao
人人网开发一站式体验
人人网开发一站式体验
zhen chen
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
wantingj
docker intro
docker intro
koji lin
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC
Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)
Chu-Siang Lai
從軟體開發角度 談 Docker 的應用
從軟體開發角度 談 Docker 的應用
謝 宗穎
Koa 正在等一個人
Koa 正在等一個人
Fred Chien
Vagrant教學
Vagrant教學
Onnie Fong
[OSDC12]相依性管理 - 以Ruby開發為例
[OSDC12]相依性管理 - 以Ruby開發為例
YC Ling
Docker應用
Docker應用
Jui An Huang (黃瑞安)
Automate with Ansible basic (2/e)
Automate with Ansible basic (2/e)
Chu-Siang Lai
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
Bo-Yi Wu
课题三:Nginx基础知识
课题三:Nginx基础知识
Liu Allen
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)
Will Huang
Docker 淺入淺出
Docker 淺入淺出
Miles Chou
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
JoXuZi
广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf
bj_qa
Contenu connexe
Tendances
前端工程師一定要知道的 Docker 虛擬化容器技巧
前端工程師一定要知道的 Docker 虛擬化容器技巧
Chu-Siang Lai
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
Shengyou Fan
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
Wen-Tien Chang
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Chu-Siang Lai
Node.js长连接开发实践
Node.js长连接开发实践
longhao
人人网开发一站式体验
人人网开发一站式体验
zhen chen
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
wantingj
docker intro
docker intro
koji lin
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC
Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)
Chu-Siang Lai
從軟體開發角度 談 Docker 的應用
從軟體開發角度 談 Docker 的應用
謝 宗穎
Koa 正在等一個人
Koa 正在等一個人
Fred Chien
Vagrant教學
Vagrant教學
Onnie Fong
[OSDC12]相依性管理 - 以Ruby開發為例
[OSDC12]相依性管理 - 以Ruby開發為例
YC Ling
Docker應用
Docker應用
Jui An Huang (黃瑞安)
Automate with Ansible basic (2/e)
Automate with Ansible basic (2/e)
Chu-Siang Lai
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
Bo-Yi Wu
课题三:Nginx基础知识
课题三:Nginx基础知识
Liu Allen
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)
Will Huang
Docker 淺入淺出
Docker 淺入淺出
Miles Chou
Tendances
(20)
前端工程師一定要知道的 Docker 虛擬化容器技巧
前端工程師一定要知道的 Docker 虛擬化容器技巧
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Node.js长连接开发实践
Node.js长连接开发实践
人人网开发一站式体验
人人网开发一站式体验
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
docker intro
docker intro
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)
從軟體開發角度 談 Docker 的應用
從軟體開發角度 談 Docker 的應用
Koa 正在等一個人
Koa 正在等一個人
Vagrant教學
Vagrant教學
[OSDC12]相依性管理 - 以Ruby開發為例
[OSDC12]相依性管理 - 以Ruby開發為例
Docker應用
Docker應用
Automate with Ansible basic (2/e)
Automate with Ansible basic (2/e)
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
课题三:Nginx基础知识
课题三:Nginx基础知识
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)
Docker 淺入淺出
Docker 淺入淺出
Similaire à 02.python.开发最佳实践
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
JoXuZi
广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf
bj_qa
美团前端架构简介
美团前端架构简介
pan weizeng
Puppet安装总结
Puppet安装总结
Yiwei Ma
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
Scourgen Hong
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
Max Lai
互联网创业服务器运维工具集
互联网创业服务器运维工具集
zhen chen
Monitor is all for ops
Monitor is all for ops
琛琳 饶
Btrace intro(撒迦)
Btrace intro(撒迦)
ykdsg
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
Andy Dai
Track2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewave
OpenCity Community
Python 于 webgame 的应用
Python 于 webgame 的应用
勇浩 赖
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
scott liao
Ansible 101
Ansible 101
YI-CHING WU
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
YingSiang Geng
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
LetAgileFly
Software Engineer Talk
Software Engineer Talk
Larry Cai
Maven初级培训
Maven初级培训
Cody Zhang
合久必分,分久必合
合久必分,分久必合
Qiangning Hong
Maven初级培训
Maven初级培训
ytsolar
Similaire à 02.python.开发最佳实践
(20)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf
美团前端架构简介
美团前端架构简介
Puppet安装总结
Puppet安装总结
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
互联网创业服务器运维工具集
互联网创业服务器运维工具集
Monitor is all for ops
Monitor is all for ops
Btrace intro(撒迦)
Btrace intro(撒迦)
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
Track2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewave
Python 于 webgame 的应用
Python 于 webgame 的应用
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
Ansible 101
Ansible 101
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Software Engineer Talk
Software Engineer Talk
Maven初级培训
Maven初级培训
合久必分,分久必合
合久必分,分久必合
Maven初级培训
Maven初级培训
Plus de Na Lee
Aruba-MESH-解决方案.pdf
Aruba-MESH-解决方案.pdf
Na Lee
火山引擎-飞连产品介绍.pdf
火山引擎-飞连产品介绍.pdf
Na Lee
2007 - 应用系统脆弱性概论
2007 - 应用系统脆弱性概论
Na Lee
2007 年互联网基础设施安全的想法
2007 年互联网基础设施安全的想法
Na Lee
01.python.开发最佳实践
01.python.开发最佳实践
Na Lee
手机网络游戏平台
手机网络游戏平台
Na Lee
淘宝连锁店
淘宝连锁店
Na Lee
Plus de Na Lee
(7)
Aruba-MESH-解决方案.pdf
Aruba-MESH-解决方案.pdf
火山引擎-飞连产品介绍.pdf
火山引擎-飞连产品介绍.pdf
2007 - 应用系统脆弱性概论
2007 - 应用系统脆弱性概论
2007 年互联网基础设施安全的想法
2007 年互联网基础设施安全的想法
01.python.开发最佳实践
01.python.开发最佳实践
手机网络游戏平台
手机网络游戏平台
淘宝连锁店
淘宝连锁店
02.python.开发最佳实践
1.
© 2008 绿盟科技www.nsfocus.comnsfocus.com
© 2008 绿盟科技www.nsfocus.comnsfocus.com Python 开发最佳实践 密级:内部使用 —— 基于虚拟机的 Python 开发环境
2.
回顾一下
3.
• 期望达到的目标 – 通过标准化、自动化降低对开发、测试、生产环境的沟通 障碍 •
降低互相理解各自环境的难度 • 降低定位问题难度 – 让每次代码提交都能知道是否能―正常运行‖ • 刚开始―正常运行‖仅仅意味着进程可以正常启动,随着覆盖度越来 越高,除性能、漏报、误报这些,大部分都应该是能被测试到的 – 加快―开发->测试->部署‖的时间,避免反复沟通,反复调 整 • 大致思路 – DevOps – 基础设施代码化:Infrastructure As Code – 持续集成(CI): Continuous Integration – 持续交付(CD): Continuous Delivery • http://book.douban.com/subject/6862062/
4.
• 持续集成的工作流程(细节可以看 URL) http://wiki.developerforce.com/page/Bestpractices:Continuous_Integration_Techniques 如果要很好的实现这个需要: 1.
开发人员本地有很方便的本地环境(开 发机,sandbox) 2. 开发人员本地环境、开发环境、测试环 境、生产环境像代码一样管理
5.
好的开发环境意味着什么?
6.
• Python 社区是一个变化非常快的社区 –
知识和工具都需要及时更新,跟进社区的变化 • Python 开发的最佳实践(推荐阅读) – The Hitchhiker’s Guide to Python! • 英文版:http://docs.python-guide.org/en/latest/ • Python 自身的包管理工具(推荐阅读) – Python 套件管理程序简介 • http://t.cn/zYdfQqV – Python 的虚拟环境及多版本开发 • http://t.cn/zjOzu0y – Hitchhiker’s Guide: • Linux:http://t.cn/zYdfQqI • Windows:http://t.cn/zYdfQqf
7.
• 主要工具(Python 包管理三大利器) –
pip • Python 的包管理工具,原有 easy_install 不再维护 • http://www.pip-installer.org/en/latest/ – virtualenv • Python 的环境管理工具,隔离 Python 不同环境的影响 • http://www.virtualenv.org/en/latest/ – virtualenvwrapper • virutalenv 的增强工具包,实现了很多很方便的工具 • http://virtualenvwrapper.readthedocs.org/en/latest/
8.
要实现 一个功能 搜寻 开源库 验证 是否可用 选定 引入代码库 开发 测试 上线 第三方库引入的示意图
9.
Python 运行时 Sandbox
有了 那操作系统级 Sandbox 呢?
10.
那操作系统级别的 Sandbox? 那不就是虚拟机么? 怎么像代码一样管理虚拟机呢? 有没有简单的框架呢?
11.
vagrant + veewee 自动化的开发环境构建工具,用于 降低开发环境配置时间。 vagrant
的扩展工具,主要用构建 vmware/kvm/virtualbox 的 basebox 的 工具
12.
vagrant + veewee
= 构建环境的利器! 目前 veewee 对 vagrant v1.1.x 版本兼容性还有问题 因此我们还在 vagrant v1.0.x 这个版本上
13.
制作 通常是运维人员 使用 通常是开发人员、测试人员 基本概念和基本流程 templates 虚拟机配置模版 basebox 虚拟机模版 box
虚拟机文件vagrant box repackage 'base' vagrant basebox build 'ESPP-BASE' --nogui –force vagrant basebox export 'ESPP-BASE' vagrant basebox define 'ESPP-BASE' 'PA.10.04.4.x64-base' box 虚拟机实例 vagrant init vagrant box remove 'base' vagrant box add 'base' ESPP-BASE.box vagrant up vagrant ssh vagrant status vagrant halt; vagrant suspend; vagrant resume vagrant v1.0.x 的官方文档:http://docs-v1.vagrantup.com/v1/docs/index.html
14.
使用者视角 研发人员、测试人员的主要场景 http://gitlab.lab.intra.nsfocus.com/devops-document/tree/master/Python/Python.Best.Practice
15.
• 从―虚拟机文件‖创建―虚拟机实例‖ – cd
~/vagrant(进入 vagrant 的工作目录) – vagrant init – vagrant box remove 'base' – vagrant box add 'base' ESPP-BASE.box – vagrant up • 启动并使用―虚拟机实例” – cd ~/vagrant(进入 vagrant 的工作目录) – vagrant ssh – vagrant status – vagrant halt; vagrant suspend; vagrant resume 使用者视角的演示
16.
• 打包”虚拟机实例” – cd
~/vagrant(进入 vagrant 的工作目录) – vi Vagrantfile – 方法一:vagrant box repackage 'base' – 方法二(管理员):vagrant package 'base' --base 'ESPP-base' --output base.box 使用者视角的演示 http://docs-v1.vagrantup.com/v1/docs/vagrantfile.html
17.
• 配置”虚拟机实例”的具体方法 – cd
~/vagrant(进入 vagrant 的工作目录) – vi Vagrantfile • 如何修改”虚拟机实例”配置 – http://docs-v1.vagrantup.com/v1/docs/vagrantfile.html • 如何配置多个”虚拟机实例” – http://docs-v1.vagrantup.com/v1/docs/multivm.html • 介绍示例 Vagrantfile 的内容 使用者视角的演示
18.
管理员视角 研发人员、测试人员的主要场景 http://gitlab.lab.intra.nsfocus.com/devops-document/tree/master/Infrastructure/Vagrant
19.
• 从―虚拟机配置模版‖创建―虚拟机模版‖ – cd
~/vbox(进入 vagrant 的管理目录) – vagrant basebox define 'ESPP-BASE' 'PA.10.04.4.x64-base' – vagrant basebox build 'ESPP-BASE' --nogui --force – vagrant basebox ssh 'ESPP-BASE' • 导出―虚拟机模版‖ – vagrant basebox export 'ESPP-BASE' – ESPP-BASE.box 就是可以给他人使用的虚拟机模版 • 介绍―虚拟机模版文件‖ – definition.rb – preseed.cfg – *.sh 管理员视角的演示
20.
开发 -> 测试
-> 生产 如何在不同环境中传递
21.
源代码 workflow 虚拟机配 置模版 Python 运 行时环境 (第三方包清单) 部署脚本 研发 运维 研发 研发/ 运维 开发 (开发环境) 源代码 虚拟机配 置模版 Python 运 行时环境 (第三方包清单) 部署脚本 第
x 轮提交 (测试环境) 源代码 虚拟机配 置模版 Python 运 行时环境 (第三方包清单) 部署脚本 源代码 虚拟机配 置模版 Python 运 行时环境 (第三方包清单) 部署脚本 上线前测试 (测试环境) 发布 (生产环境) 自动化测 试代码 自动化测 试代码 自动化测 试代码
22.
如何排错?
23.
• 如何排错? • 查文档! –
vagrant 的文档写得不错——全面、简单、易懂 – http://docs-v1.vagrantup.com/v1/docs/index.html – http://docs-v1.vagrantup.com/v1/docs/getting- started/index.html • 可能需要 console 登上去才能解决的问题 – 安装过程中、各种限制、需要看进展、…… – export DISPLAY='10.52.32.1:0.0' – vagrant basebox build 'ESPP-BASE' --force
24.
深入了解
25.
• veewee 的虚拟机配置模版目录 –
/var/lib/gems/1.8/gems/veewee-0.3.7/templates/ • 用户目录中的环境 – .vagrant • 记录虚拟机 UUID 和状态,不用管 – ~/.vagrant.d/ • vagrant 的通用配置,例如 vagrant 这个用户的 ssh_key – ~/VirtualBox VMs/ • VirtualBox 的虚拟机目录,不用管 – ~/vbox/ • 管理员创建虚拟机模版的工作目录(可以是任意目录) – ~/vagrant/ • 使用 vagrant 的工作目录(可以是任意目录) – ~/vagrant/Vagrantfile • vagrant 的配置文件,最好是每个项目配置一个
26.
• 安装 vagrant
+ veewee – http://gitlab.lab.intra.nsfocus.com/devops- document/tree/master/Infrastructure/Vagrant/Installa tion.md
27.
课后作业
28.
• 推荐给大家的文档 – Vagrant
快速入门 • http://docs-v1.vagrantup.com/v1/docs/getting-started/index.html – Vagrant 手册 • http://docs-v1.vagrantup.com/v1/docs/index.html – Vagrant 教程 • http://gitlab.lab.intra.nsfocus.com/devops- document/tree/master/Infrastructure/Vagrant – Python 开发环境最佳实践 • http://gitlab.lab.intra.nsfocus.com/devops- document/tree/master/Python/Python.Best.Practice – 持续关注 vagrant 和 veewee 的变化 • 是不是支持 vmware 啦? • veewee 是不是兼容 vagrant 1.1.x 啦? • …… • Python 社区是个发展非常快的社区
29.
谢谢!
Télécharger maintenant