SlideShare a Scribd company logo
1 of 24
持续交付
使用云计算和虚拟化技术
个人简介
冯智超
chaojiwudi.com
    程序员;
准Geek;
    伪军迷;
向客户交付价值
手工部署
自动化
一切皆代码
流水线
流水线监控
尽可能模拟产品环境
云和虚拟化
Chef
•   chef server/client
•   chef solo
•   role
•   cookbook
•   recipe
•   resource/provider
Amazon VPC
• ec2-run-instances ami-a54d67d1 --
  instance-type t1.micro --region us-
  west-1 --key MY_AMZ_KEY

• knife ec2 server create
  "role[rails_server]" --image ami-
  31814f58 --flavor t1.micro --
  availability-zone us-east-1a --ssh-key
  MY_AMZ_KEY
vagrant
Vagrant::Config.run do |config|
config.vm.box = "centos6"

config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = "/PATH/TO/chef-
repo/cookbooks"
chef.roles_path = "/PATH/TO/chef-repo/roles"
chef.add_role "db_master_server"
 end
end
•     yun node create NODE_NAME
     •     yun node list
     •     yun node destroy NODE_NAME
     •     yunssh NODE_NAME
     •     yun chef NODE_NAME ROLE

+---------------------+------------+--------------+--------------+-------+---------+----------+
| created_at           | id       | image         | ip         | name | state | type |
+---------------------+------------+--------------+--------------+-------+---------+----------+
| 2011-12-09 19:06:45 | i-b3442af4 | ami-2e10406b |                         | test2 | stopped | t1.micro |
| 2011-12-09 20:03:34 | i-e95a34ae | ami-2e10406b |                          | test3 | stopped | t1.micro |
| 2011-12-09 21:05:15 | i-3f513f78 | ami-2e10406b | 50.18.4.229 | ci | running | m1.small |
| 2011-12-10 01:15:36 | i-8782ecc0 | ami-2e10406b | 50.18.36.117 | qa | running | t1.micro |
+---------------------+------------+--------------+--------------+-------+---------+----------+
4 rows in set
button-click 部署
local machine                                                          CI server



                  Acceptance         Git                               Acceptance            Acceptance
Package                                            Package                                                     Publish
                  Standalone        Repo                               Standalone              Staging

                                                          the same as local




                                                     CI                                 EC2/VMW
                                                    Repo                                   are
                                                                                                                Dist
                                                                                                                Repo




                                                                   Prod A                      Prod B

                               QA / Performance / BAT …              Pre-Production               Production




                                     EC2/VMW                           EC2/VMW                   EC2/VMW
                                        are                               are                       are
OS: centos
              node                   server: apache
                                     app: tomcat + war
                                     config files




                               web         db

environment
                                        back
                          search
                                        end




                     QA test              uat              staging



                                                   perfomance
                         showcase
                                                       test
个人经验
github.com/flanker/yun
github.com/flanker/infoq-demo
持续交付 - 使用云计算和虚拟化技术

More Related Content

Viewers also liked

从0到1:平安云的构建和运维实践
从0到1:平安云的构建和运维实践从0到1:平安云的构建和运维实践
从0到1:平安云的构建和运维实践Hardway Hou
 
虚拟桌面云 终端用户运算未来展望
虚拟桌面云  终端用户运算未来展望虚拟桌面云  终端用户运算未来展望
虚拟桌面云 终端用户运算未来展望ITband
 
Cloud Operations Challenges - Talk by ChinaNetCloud at Joint Cisco event
Cloud Operations Challenges - Talk by ChinaNetCloud at Joint Cisco eventCloud Operations Challenges - Talk by ChinaNetCloud at Joint Cisco event
Cloud Operations Challenges - Talk by ChinaNetCloud at Joint Cisco eventChinaNetCloud
 
统一的云平台实现IT大集中和核心网云化
统一的云平台实现IT大集中和核心网云化统一的云平台实现IT大集中和核心网云化
统一的云平台实现IT大集中和核心网云化Kun Liu
 
迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉
迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉
迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉Hardway Hou
 
4 个步骤 对抗管道完整性威胁
4 个步骤  对抗管道完整性威胁4 个步骤  对抗管道完整性威胁
4 个步骤 对抗管道完整性威胁T.D. Williamson
 
The consortium 基于状态的数据中心自动化管理工具
The consortium  基于状态的数据中心自动化管理工具The consortium  基于状态的数据中心自动化管理工具
The consortium 基于状态的数据中心自动化管理工具Leo Zhou
 
It基础架构的自动化编排
It基础架构的自动化编排It基础架构的自动化编排
It基础架构的自动化编排Bill Wang
 
云运维的理念和思维
云运维的理念和思维云运维的理念和思维
云运维的理念和思维昕 姚
 
2014 Hpocon 黄慧攀 upyun - 平台架构的服务监控
2014 Hpocon 黄慧攀   upyun - 平台架构的服务监控2014 Hpocon 黄慧攀   upyun - 平台架构的服务监控
2014 Hpocon 黄慧攀 upyun - 平台架构的服务监控Michael Zhang
 
在云应用方面,丰田能教会我们什么?
在云应用方面,丰田能教会我们什么?在云应用方面,丰田能教会我们什么?
在云应用方面,丰田能教会我们什么?Hardway Hou
 
云计算推动金融业 I T 架构变革
云计算推动金融业 I T 架构变革云计算推动金融业 I T 架构变革
云计算推动金融业 I T 架构变革Hardway Hou
 
企业变革时代的云化之路
企业变革时代的云化之路企业变革时代的云化之路
企业变革时代的云化之路Hardway Hou
 
云趋势和实践 - 上海有孚网络股份有限公司
云趋势和实践 - 上海有孚网络股份有限公司云趋势和实践 - 上海有孚网络股份有限公司
云趋势和实践 - 上海有孚网络股份有限公司Hardway Hou
 
以业务为中心的云自动化 V mware-v-realize-automation-7
以业务为中心的云自动化 V mware-v-realize-automation-7以业务为中心的云自动化 V mware-v-realize-automation-7
以业务为中心的云自动化 V mware-v-realize-automation-7Frank Chang
 
Aws summit devops 云端多环境自动化运维和部署
Aws summit devops   云端多环境自动化运维和部署Aws summit devops   云端多环境自动化运维和部署
Aws summit devops 云端多环境自动化运维和部署Leon Li
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignMichael Noll
 

Viewers also liked (17)

从0到1:平安云的构建和运维实践
从0到1:平安云的构建和运维实践从0到1:平安云的构建和运维实践
从0到1:平安云的构建和运维实践
 
虚拟桌面云 终端用户运算未来展望
虚拟桌面云  终端用户运算未来展望虚拟桌面云  终端用户运算未来展望
虚拟桌面云 终端用户运算未来展望
 
Cloud Operations Challenges - Talk by ChinaNetCloud at Joint Cisco event
Cloud Operations Challenges - Talk by ChinaNetCloud at Joint Cisco eventCloud Operations Challenges - Talk by ChinaNetCloud at Joint Cisco event
Cloud Operations Challenges - Talk by ChinaNetCloud at Joint Cisco event
 
统一的云平台实现IT大集中和核心网云化
统一的云平台实现IT大集中和核心网云化统一的云平台实现IT大集中和核心网云化
统一的云平台实现IT大集中和核心网云化
 
迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉
迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉
迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉
 
4 个步骤 对抗管道完整性威胁
4 个步骤  对抗管道完整性威胁4 个步骤  对抗管道完整性威胁
4 个步骤 对抗管道完整性威胁
 
The consortium 基于状态的数据中心自动化管理工具
The consortium  基于状态的数据中心自动化管理工具The consortium  基于状态的数据中心自动化管理工具
The consortium 基于状态的数据中心自动化管理工具
 
It基础架构的自动化编排
It基础架构的自动化编排It基础架构的自动化编排
It基础架构的自动化编排
 
云运维的理念和思维
云运维的理念和思维云运维的理念和思维
云运维的理念和思维
 
2014 Hpocon 黄慧攀 upyun - 平台架构的服务监控
2014 Hpocon 黄慧攀   upyun - 平台架构的服务监控2014 Hpocon 黄慧攀   upyun - 平台架构的服务监控
2014 Hpocon 黄慧攀 upyun - 平台架构的服务监控
 
在云应用方面,丰田能教会我们什么?
在云应用方面,丰田能教会我们什么?在云应用方面,丰田能教会我们什么?
在云应用方面,丰田能教会我们什么?
 
云计算推动金融业 I T 架构变革
云计算推动金融业 I T 架构变革云计算推动金融业 I T 架构变革
云计算推动金融业 I T 架构变革
 
企业变革时代的云化之路
企业变革时代的云化之路企业变革时代的云化之路
企业变革时代的云化之路
 
云趋势和实践 - 上海有孚网络股份有限公司
云趋势和实践 - 上海有孚网络股份有限公司云趋势和实践 - 上海有孚网络股份有限公司
云趋势和实践 - 上海有孚网络股份有限公司
 
以业务为中心的云自动化 V mware-v-realize-automation-7
以业务为中心的云自动化 V mware-v-realize-automation-7以业务为中心的云自动化 V mware-v-realize-automation-7
以业务为中心的云自动化 V mware-v-realize-automation-7
 
Aws summit devops 云端多环境自动化运维和部署
Aws summit devops   云端多环境自动化运维和部署Aws summit devops   云端多环境自动化运维和部署
Aws summit devops 云端多环境自动化运维和部署
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - Verisign
 

Similar to 持续交付 - 使用云计算和虚拟化技术

DockerCon14 Performance Characteristics of Traditional VMs vs. Docker Containers
DockerCon14 Performance Characteristics of Traditional VMs vs. Docker ContainersDockerCon14 Performance Characteristics of Traditional VMs vs. Docker Containers
DockerCon14 Performance Characteristics of Traditional VMs vs. Docker ContainersDocker, Inc.
 
KVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackKVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackBoden Russell
 
Performance characteristics of traditional v ms vs docker containers (dockerc...
Performance characteristics of traditional v ms vs docker containers (dockerc...Performance characteristics of traditional v ms vs docker containers (dockerc...
Performance characteristics of traditional v ms vs docker containers (dockerc...Boden Russell
 
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @OrbitzEnabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @OrbitzSteve Hoffman
 
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...manssandstrom
 
Everyday tools and tricks for scaling Node.js
Everyday tools and tricks for scaling Node.jsEveryday tools and tricks for scaling Node.js
Everyday tools and tricks for scaling Node.jsNikolay Stoitsev
 
DevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux ContainersDevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux Containersinside-BigData.com
 
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...Arthur Berezin
 
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
2016 - Easing Your Way Into Docker: Lessons From a Journey to Productiondevopsdaysaustin
 
infraxstructure: Stas Levitan, "Always On" business in cloud - 2016"
infraxstructure: Stas Levitan, "Always On" business in cloud - 2016"infraxstructure: Stas Levitan, "Always On" business in cloud - 2016"
infraxstructure: Stas Levitan, "Always On" business in cloud - 2016"PROIDEA
 
Optimising Productivity with AWS Developer Tools
Optimising Productivity with AWS Developer ToolsOptimising Productivity with AWS Developer Tools
Optimising Productivity with AWS Developer ToolsAmazon Web Services
 
Instrumentación de entrega continua con Gitlab
Instrumentación de entrega continua con GitlabInstrumentación de entrega continua con Gitlab
Instrumentación de entrega continua con GitlabSoftware Guru
 
Windows Azure Zero Downtime Upgrade
Windows Azure Zero Downtime UpgradeWindows Azure Zero Downtime Upgrade
Windows Azure Zero Downtime UpgradePavel Revenkov
 
Plugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 TaiwanPlugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 TaiwanRack Lin
 
AWS Lambda from the trenches
AWS Lambda from the trenchesAWS Lambda from the trenches
AWS Lambda from the trenchesYan Cui
 
Galera Multi Master Synchronous My S Q L Replication Clusters
Galera  Multi Master  Synchronous  My S Q L  Replication  ClustersGalera  Multi Master  Synchronous  My S Q L  Replication  Clusters
Galera Multi Master Synchronous My S Q L Replication ClustersPerconaPerformance
 
Virtual Infrastructure
Virtual InfrastructureVirtual Infrastructure
Virtual InfrastructureBryan McLellan
 
Building enterprise class disaster recovery as a service to aws - session spo...
Building enterprise class disaster recovery as a service to aws - session spo...Building enterprise class disaster recovery as a service to aws - session spo...
Building enterprise class disaster recovery as a service to aws - session spo...Amazon Web Services
 

Similar to 持续交付 - 使用云计算和虚拟化技术 (20)

DockerCon14 Performance Characteristics of Traditional VMs vs. Docker Containers
DockerCon14 Performance Characteristics of Traditional VMs vs. Docker ContainersDockerCon14 Performance Characteristics of Traditional VMs vs. Docker Containers
DockerCon14 Performance Characteristics of Traditional VMs vs. Docker Containers
 
KVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackKVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStack
 
Architecting Applications
Architecting ApplicationsArchitecting Applications
Architecting Applications
 
Mcollective introduction
Mcollective introductionMcollective introduction
Mcollective introduction
 
Performance characteristics of traditional v ms vs docker containers (dockerc...
Performance characteristics of traditional v ms vs docker containers (dockerc...Performance characteristics of traditional v ms vs docker containers (dockerc...
Performance characteristics of traditional v ms vs docker containers (dockerc...
 
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @OrbitzEnabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
 
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
 
Everyday tools and tricks for scaling Node.js
Everyday tools and tricks for scaling Node.jsEveryday tools and tricks for scaling Node.js
Everyday tools and tricks for scaling Node.js
 
DevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux ContainersDevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux Containers
 
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
Kubernetes vs dockers swarm supporting onap oom on multi-cloud multi-stack en...
 
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
 
infraxstructure: Stas Levitan, "Always On" business in cloud - 2016"
infraxstructure: Stas Levitan, "Always On" business in cloud - 2016"infraxstructure: Stas Levitan, "Always On" business in cloud - 2016"
infraxstructure: Stas Levitan, "Always On" business in cloud - 2016"
 
Optimising Productivity with AWS Developer Tools
Optimising Productivity with AWS Developer ToolsOptimising Productivity with AWS Developer Tools
Optimising Productivity with AWS Developer Tools
 
Instrumentación de entrega continua con Gitlab
Instrumentación de entrega continua con GitlabInstrumentación de entrega continua con Gitlab
Instrumentación de entrega continua con Gitlab
 
Windows Azure Zero Downtime Upgrade
Windows Azure Zero Downtime UpgradeWindows Azure Zero Downtime Upgrade
Windows Azure Zero Downtime Upgrade
 
Plugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 TaiwanPlugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 Taiwan
 
AWS Lambda from the trenches
AWS Lambda from the trenchesAWS Lambda from the trenches
AWS Lambda from the trenches
 
Galera Multi Master Synchronous My S Q L Replication Clusters
Galera  Multi Master  Synchronous  My S Q L  Replication  ClustersGalera  Multi Master  Synchronous  My S Q L  Replication  Clusters
Galera Multi Master Synchronous My S Q L Replication Clusters
 
Virtual Infrastructure
Virtual InfrastructureVirtual Infrastructure
Virtual Infrastructure
 
Building enterprise class disaster recovery as a service to aws - session spo...
Building enterprise class disaster recovery as a service to aws - session spo...Building enterprise class disaster recovery as a service to aws - session spo...
Building enterprise class disaster recovery as a service to aws - session spo...
 

More from foxgem

浅说Vertx
浅说Vertx浅说Vertx
浅说Vertxfoxgem
 
Groovy:Candy for Java Developers
Groovy:Candy for Java DevelopersGroovy:Candy for Java Developers
Groovy:Candy for Java Developersfoxgem
 
Our Choice:电子书的新交互方式探讨
Our Choice:电子书的新交互方式探讨Our Choice:电子书的新交互方式探讨
Our Choice:电子书的新交互方式探讨foxgem
 
移动开发的性能优化
移动开发的性能优化移动开发的性能优化
移动开发的性能优化foxgem
 
Grails:下一代Java Web开发框架
Grails:下一代Java Web开发框架Grails:下一代Java Web开发框架
Grails:下一代Java Web开发框架foxgem
 
Groovy for Java Programmer
Groovy for Java ProgrammerGroovy for Java Programmer
Groovy for Java Programmerfoxgem
 
OpenParty西安:DSL in Groovy
OpenParty西安:DSL in GroovyOpenParty西安:DSL in Groovy
OpenParty西安:DSL in Groovyfoxgem
 
OpenParty西安:What does DevOps mean?
OpenParty西安:What does DevOps mean?OpenParty西安:What does DevOps mean?
OpenParty西安:What does DevOps mean?foxgem
 
OpenParty西安:How to be a good copycat?
OpenParty西安:How to be a good copycat?OpenParty西安:How to be a good copycat?
OpenParty西安:How to be a good copycat?foxgem
 

More from foxgem (9)

浅说Vertx
浅说Vertx浅说Vertx
浅说Vertx
 
Groovy:Candy for Java Developers
Groovy:Candy for Java DevelopersGroovy:Candy for Java Developers
Groovy:Candy for Java Developers
 
Our Choice:电子书的新交互方式探讨
Our Choice:电子书的新交互方式探讨Our Choice:电子书的新交互方式探讨
Our Choice:电子书的新交互方式探讨
 
移动开发的性能优化
移动开发的性能优化移动开发的性能优化
移动开发的性能优化
 
Grails:下一代Java Web开发框架
Grails:下一代Java Web开发框架Grails:下一代Java Web开发框架
Grails:下一代Java Web开发框架
 
Groovy for Java Programmer
Groovy for Java ProgrammerGroovy for Java Programmer
Groovy for Java Programmer
 
OpenParty西安:DSL in Groovy
OpenParty西安:DSL in GroovyOpenParty西安:DSL in Groovy
OpenParty西安:DSL in Groovy
 
OpenParty西安:What does DevOps mean?
OpenParty西安:What does DevOps mean?OpenParty西安:What does DevOps mean?
OpenParty西安:What does DevOps mean?
 
OpenParty西安:How to be a good copycat?
OpenParty西安:How to be a good copycat?OpenParty西安:How to be a good copycat?
OpenParty西安:How to be a good copycat?
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

持续交付 - 使用云计算和虚拟化技术

  • 2. 个人简介 冯智超 chaojiwudi.com 程序员; 准Geek; 伪军迷;
  • 11. Chef
  • 12.
  • 13. chef server/client • chef solo • role • cookbook • recipe • resource/provider
  • 15. • ec2-run-instances ami-a54d67d1 -- instance-type t1.micro --region us- west-1 --key MY_AMZ_KEY • knife ec2 server create "role[rails_server]" --image ami- 31814f58 --flavor t1.micro -- availability-zone us-east-1a --ssh-key MY_AMZ_KEY
  • 17. Vagrant::Config.run do |config| config.vm.box = "centos6" config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "/PATH/TO/chef- repo/cookbooks" chef.roles_path = "/PATH/TO/chef-repo/roles" chef.add_role "db_master_server" end end
  • 18. yun node create NODE_NAME • yun node list • yun node destroy NODE_NAME • yunssh NODE_NAME • yun chef NODE_NAME ROLE +---------------------+------------+--------------+--------------+-------+---------+----------+ | created_at | id | image | ip | name | state | type | +---------------------+------------+--------------+--------------+-------+---------+----------+ | 2011-12-09 19:06:45 | i-b3442af4 | ami-2e10406b | | test2 | stopped | t1.micro | | 2011-12-09 20:03:34 | i-e95a34ae | ami-2e10406b | | test3 | stopped | t1.micro | | 2011-12-09 21:05:15 | i-3f513f78 | ami-2e10406b | 50.18.4.229 | ci | running | m1.small | | 2011-12-10 01:15:36 | i-8782ecc0 | ami-2e10406b | 50.18.36.117 | qa | running | t1.micro | +---------------------+------------+--------------+--------------+-------+---------+----------+ 4 rows in set
  • 20. local machine CI server Acceptance Git Acceptance Acceptance Package Package Publish Standalone Repo Standalone Staging the same as local CI EC2/VMW Repo are Dist Repo Prod A Prod B QA / Performance / BAT … Pre-Production Production EC2/VMW EC2/VMW EC2/VMW are are are
  • 21. OS: centos node server: apache app: tomcat + war config files web db environment back search end QA test uat staging perfomance showcase test

Editor's Notes

  1. 提问:多少人是dev?多少人是ops?没举手的就是PM上学时候,微软技术创新日,两个会场,Dev&ITPro实际案例,个人理解、体会。抛砖引玉,引起讨论。项目简介
  2. 有个腾讯陈小光讲师开过4年装甲车,所以我是伪军迷,伪_军迷,不是 伪军_迷程序员、准Geek、伪军迷
  3. 表明客户希望看到的是最终可用的软件能带来价值1,程序员仅仅是写产品代码吗?代码只是开发的一部分,还有需求、测试、部署。测试代码?需求代码?部署代码?2,仅仅是程序员写代码吗?团队中有PM、dev、QA、UI。以及Ops?一个典型的小团队,1PM,1BA,4-5Dev,1-2QA,UX、producer3,开发完成后才部署?反模式持续交付不是仅仅注重在“交付”,不是持续部署,而是能保证任何时刻都有可以产生价值的软件。某团队工作半年,领导视察,费半天的劲儿搞出一个版本,一点,500error我们都知道懒惰、缺乏耐性、傲慢。
  4. 慢、无版本控制、不可重复、容易出错、无法知识分享无法持续重复做的事情,即无法保证其是正确的(所以有自动化测试、持续集成等)部署的时间过长、过复杂,导致开发人员不愿意做部署,且反馈太慢(如果一个过程经常出错,很容易掩盖真正的错误。)真实案例:build经常红,随机失败或者配置问题,导致大家降低代码提交的要求,并掩盖了代码真实的bug,带入到了 pre-production 环境无版本控制、无可执行的代码,导致知识很难在团队间分享(代码才是程序员的共同语言)遇到问题时,开发人员很容易绕过(work around),导致经验不能累积传递、问题反复出现(特别是对于有些“经验”的程序员,实际案例:imageserver)
  5. 部署过程代码化、部署代码是项目(软件)的一部分,one button click 到任意环境测试包含了对软件的测试,以及对部署的测试,使用 虚拟机、云平台 更方便的实现自动化部署代码可执行、放在代码库中可版本控制、可重复、自动化运行检测了软件能否交付价值(在愈来愈真实的环境中)既然是代码,那么如何对其测试,部署就是测试如果一件事情很复杂困难,那么一定要频繁的做需要有自动化的基础设施管理能力,比如很方便的创建一个节点甚至一整套环境;部署过程代码化,能够自动化的安装、配置软件;在向各个环境部署时,使用相同的自动化代码;各个环境与生产环境都需要尽可能的相似,有同样的操作系统底层组件网络配置等。
  6. 所有东西(代码、测试、需求、配置、脚步)都在版本控制中(二进制结果不需要),主干开发、feature toggle保证可以从 git clone codebase 能build出产品buildr开始,还是从bash开始?rvm、ruby、gem、bundle、javaruby代码比java多,4个页面,150个左右的场景测试50+的cookbook
  7. 持续集成:关注开发测试,持续交付:关注全过程(包括部署)所有的开发、测试、部署构成了一条流水线,分别跑在云EC2上和虚拟机上。每个步骤都包含了对产品的 部署和测试。每次提交都会触发一次流水线、反馈关注部署不代表持续部署到生产环境,但是需要有持续部署到生产环境的能力。stage:1, package 编译打包、单元测试、静态检查、rpm&deb包; 2,standalone 环境测试 隔离外部组件、自动化验收测试3,EC2 环境测试 在虚拟、云上创建所有组件,自动化集成测试; 4,publish 发布package 和脚本、配置到团队的 package source快速反馈、增强信心
  8. 不代表需要持续部署到生产环境,但需要有持续保证部署到生产环境的能力,才能保证能持续产生价值如何保证有能力部署到生产环境?创建一个类似生产环境的环境,持续向其部署并持续测试需要很快的反馈(分布式)收到反馈团队需要有行动增强团队信息、减少错误、降低压力每次流水线都带来一个可release的版本快速反馈,快速修复,timebox fix 回滚每个stage代表着不同的角色signoff(devdone、qa、uat、ops)
  9. 部署到 QA 环境测试,部署到 UAT 环境验收,部署到 Pre-Production 环境,部署到 Production 环境ASAP尽早部署,尽量真实实例:cache和apache
  10. 新加入的 Dev 搭建开发环境,持续集成新加入构造节点,部署给 Dev 重现 bug,Dev 需要依赖组件的节点新人、新机器,多久能跑通 build?如何快速部署指定的版本?多个 team 共用一个 Amazon 的 VPC,测试、build、showcase 等环境,支持 centos、debian。可以通过命令自动化的创建、provision、维护实际案例:10team、250nodes分布式团队开发,使用云很方便。系统设施更接近于生产环境。可以自由使用多个节点搭建环境。持续集成服务器,QA, UAT, Showcase 等测试环境,Dev使用的节点pre-production 环境,production 环境,两者一致(互相切换),使用和部署 AmazonVPC 相同的 chef 自动化部署,rundeck等辅助管理,同样的 chef 保证了产品能够顺利上线。两者之间越接近真实越好。真实案例,loadbanlancer没有,导致一些apache 配置的问题。可以使用 rundeck 等工具辅助管理。快速响应环境的需求平台标准化,屏蔽底层的硬件物理实现实现对环境搭建的可重复性可以维护环境基线,根据镜像或副本复制环境可以对环境中的每个节点进行有效监控
  11. 之前都有自动化了,如何自动化部署。写一个 shell 脚步?其实之前的项目也搞过。复杂, 不易维护,不能针对不同的环境,需要 QA 来部署,需要 business 来部署,需要 Ops来部署。不同的环境:单机、云、虚拟机provisioning、configuration、integrationchef-solo,chef-server,node,chef community cookbook对 chef 的测试,https://github.com/exceedhl/toft项目中:50+cookbooks:jenkins, java, apache, tomcat, rails, mySql …50+ roles:持续集成服务器、应用服务器、数据库服务器、管理服务器…
  12. 虚拟私有云,VPN虚拟私有网络中nagious监控基础设施,CPU、Network等new relic 监控软件,Java、DB等通过 fog 来管理Elastic Compute Cloud,Elastic Block Store
  13. vagrant 基于 virtualbox,可以很方便的创建本地虚拟机。使用同一套 chef 向不同的环境部署,很多工具直接支持 chef 比如 vagrant,或者只要有sshd 就可以
  14. 编译(打包)一次,package 和 config 分离,各环境使用相同的脚步部署,快速反馈,逐步增强信息,逐步接近生产环境。pre commit:本地提交前,静态检查,单元测试,cucumber 验收测试stage 1: package,编译,静态检查,单元测试,打包(deb、rpm),创建临时 package repositorystage 2:standalonetests,从 stage1 获取 package,jetty 运行webapp,mock其他组件、第三方组件,运行 cucumber 验收测试stage 3:stagingtests,从 stage1 获取 package,使用 chef 在 Amazon VPC 上创建节点,集成所有组件(包括第三方)运行 cucumber 验收测试stage 4:publish,将本次 build 发布到 repository,package (deb、rpm),chef,version版本及依赖stage X:deploytoX,获取对应 version 的 package、chef,一键部署到相应的环境,QA,UAT,showcasepre-release&release,获取对应 version 的 package、chef,一键部署到相应的环境,pre-production,production
  15. 自动化build 要快、稳定环境要逐步接近生产环境云平台、虚拟化的方便坚持原则、做正确的事情(红了不能提交、回家,快速修复或回滚)一开始就要集成、就要部署
  16. https://github.com/flanker/infoq-demo