SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Environment as a Code
   with Vagrant & Chef
       金明 @imingjin
Scenario 1



如何满足团队需要新机器的需求?
Scenario 1


IS同学给我们订购一台机器,但要等半个月

IS同学给我们创建一台虚拟机,但服务器资源
有限
Scenario 2



如何快速搭建一套完全可用的应用环境?
Scenario 2


团队ghost标准环境,ghost文件缺乏维护

大多数时候,团队仍然需要去做手工部署

每个人基本上都有自己的部署过程,千人千面
Scenario 3



如何保持团队机器上的工具与库等一致?
Scenario 3


各人的机器配置很快就变得面目全非

升级工具或者库,需要逐台机器进行
缺乏管理,环境的问题无休无止
发、测试、CI、Staging、Production⋯
环境   也要做 配置管理
Scenario 1


如何满足团队需要新机器的需求?




何不试试本地的虚拟机?
Vagrant Sample 1



创建一台CentOS服务器
与VirtualBox/VMWare有啥区   ?
没有区    ,只不过⋯
用Ruby脚本描述机器配置
自动化、可以集成到CI等流程
Base box的维护、管理社区化
集成对环境provision的支持
Let’s Look Closer...
Box operations

  add/remove/list

  package

vm instance operations

  up/resume/reload

  suspend/halt/destroy

  ssh/provision
Let’s Look Closer...

Networking

  NAT

  host-only

  bridged

Shared folder
Scenario 2


如何快速搭建一套完全可用的应用环境?




如何对应用环境进行配置管理?
Vagrant Sample2



Provision刚才创建的服务器
应用环境配置

            OS
      Runtime
     Container
           app

           app



     app         lib
应用环境配置
               OS
         Runtime
         Container
              app

              app



        app          lib

  Infrastracture as Code
Chef
Manage your servers by writing code, not by running
commands. (via Cookbooks)

Integrate tightly with your applications, databases, LDAP
directories, and more. (via Libraries)

Easily configure applications that require knowledge about
your entire infrastructure ("What systems are running my
application?" "What is the current master database
server?") (via Search)

Create perfect clones of QA environments, pre-production
environments, partner preview environments and more. (via
Environments)
Chef sample1



chef-solo配置一台服务器
与我自己写shell/powershell有啥区   ?
没有区      ,只不过⋯
Chef对shell的命令与系统提供了良好的抽象
对脚本的管理(knife)与版本管理(chef-repo.git)
cookbook/recipe社区
Ruby!!
client/server的架构支持“pub/sub”
Let’s Look Closer
Scenario 3


如何保持团队机器上的工具与库等一致?




如何自动监听应用环境的变更并更新?
Chef Sample 2



chef-client配置一台服务器
Let’s Look Closer
Scenario 4



How about windows?
Scenario 4


How about Windows?




Chef也行!
Chef Sample 3



chef + windows server 2008

winrm + knife-windows
多余的话


本地虚拟机

私有云

公有云
References
vagrant(http://vagrantup.com)

veewee(https://github.com/jedi4ever/veewee)

chef(http://wiki.opscode.com/display/chef/
Home)

knife-windows(https://github.com/opscode/
knife-windows)

puppet(http://docs.puppetlabs.com)
Q&A

Weitere ähnliche Inhalte

Was ist angesagt?

ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索Will Huang
 
企业应用架构:模块化、微服务与 Linux 容器技术
企业应用架构:模块化、微服务与 Linux 容器技术企业应用架构:模块化、微服务与 Linux 容器技术
企业应用架构:模块化、微服务与 Linux 容器技术Lifan Yang
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)Will Huang
 
Ch14 簡介Spring Boot
Ch14 簡介Spring Boot Ch14 簡介Spring Boot
Ch14 簡介Spring Boot Justin Lin
 
容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中Andrew Wu
 
Scylladb 3.0 new
Scylladb 3.0 newScylladb 3.0 new
Scylladb 3.0 newLewis Chan
 
使用 ASP.NET 5 實戰開發雲端應用程式
使用 ASP.NET 5 實戰開發雲端應用程式使用 ASP.NET 5 實戰開發雲端應用程式
使用 ASP.NET 5 實戰開發雲端應用程式Will Huang
 
Subversion快速入门教程
Subversion快速入门教程Subversion快速入门教程
Subversion快速入门教程wensheng wei
 
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Li Yi
 
AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)Will Huang
 
研发云:借助云计算实现持续交付(by冯智超)
研发云:借助云计算实现持续交付(by冯智超)研发云:借助云计算实现持续交付(by冯智超)
研发云:借助云计算实现持续交付(by冯智超)gigix1980
 
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术团队
 
Mobile Web Function Test
Mobile Web Function TestMobile Web Function Test
Mobile Web Function TestRyan Chung
 
ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索Will Huang
 
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWindows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWill Huang
 
twMVC#26 | Redis資料型別與場景的連結
twMVC#26 | Redis資料型別與場景的連結twMVC#26 | Redis資料型別與場景的連結
twMVC#26 | Redis資料型別與場景的連結twMVC
 

Was ist angesagt? (17)

ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索
 
企业应用架构:模块化、微服务与 Linux 容器技术
企业应用架构:模块化、微服务与 Linux 容器技术企业应用架构:模块化、微服务与 Linux 容器技术
企业应用架构:模块化、微服务与 Linux 容器技术
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
 
Ansible introduction
Ansible introductionAnsible introduction
Ansible introduction
 
Ch14 簡介Spring Boot
Ch14 簡介Spring Boot Ch14 簡介Spring Boot
Ch14 簡介Spring Boot
 
容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中
 
Scylladb 3.0 new
Scylladb 3.0 newScylladb 3.0 new
Scylladb 3.0 new
 
使用 ASP.NET 5 實戰開發雲端應用程式
使用 ASP.NET 5 實戰開發雲端應用程式使用 ASP.NET 5 實戰開發雲端應用程式
使用 ASP.NET 5 實戰開發雲端應用程式
 
Subversion快速入门教程
Subversion快速入门教程Subversion快速入门教程
Subversion快速入门教程
 
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践
 
AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)
 
研发云:借助云计算实现持续交付(by冯智超)
研发云:借助云计算实现持续交付(by冯智超)研发云:借助云计算实现持续交付(by冯智超)
研发云:借助云计算实现持续交付(by冯智超)
 
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用
 
Mobile Web Function Test
Mobile Web Function TestMobile Web Function Test
Mobile Web Function Test
 
ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索
 
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWindows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, Kubernetes
 
twMVC#26 | Redis資料型別與場景的連結
twMVC#26 | Redis資料型別與場景的連結twMVC#26 | Redis資料型別與場景的連結
twMVC#26 | Redis資料型別與場景的連結
 

Ähnlich wie Envrionment as a code with vagrant & chef

Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructurekyhpudding
 
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理frankwsj
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer TalkLarry Cai
 
基于 lucene 的站内搜索
基于 lucene 的站内搜索基于 lucene 的站内搜索
基于 lucene 的站内搜索fulin tang
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabricJohn Chang
 
200701011
200701011200701011
2007010115045033
 
為瞬間巨量做好準備 20180726
為瞬間巨量做好準備 20180726為瞬間巨量做好準備 20180726
為瞬間巨量做好準備 20180726Earou Huang
 
Foodie 餐廳推薦系統
Foodie 餐廳推薦系統Foodie 餐廳推薦系統
Foodie 餐廳推薦系統JamesMa54
 
Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作liangxiao0315
 
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)LetAgileFly
 
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)JoXuZi
 
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務Alan Tsai
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰Scourgen Hong
 
做一个“懒惰”的程序员-LCP框架系列交流
做一个“懒惰”的程序员-LCP框架系列交流做一个“懒惰”的程序员-LCP框架系列交流
做一个“懒惰”的程序员-LCP框架系列交流lichengdongdong
 
数据库持续集成
数据库持续集成数据库持续集成
数据库持续集成wait4friend
 
[嵌入式系統] 嵌入式系統進階
[嵌入式系統] 嵌入式系統進階[嵌入式系統] 嵌入式系統進階
[嵌入式系統] 嵌入式系統進階Simen Li
 
與大師對談: 轉移到微服務架構必經之路 ~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路 ~ 系統與資料庫重構Andrew Wu
 

Ähnlich wie Envrionment as a code with vagrant & chef (20)

Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructure
 
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer Talk
 
基于 lucene 的站内搜索
基于 lucene 的站内搜索基于 lucene 的站内搜索
基于 lucene 的站内搜索
 
Ansible 101
Ansible 101Ansible 101
Ansible 101
 
Xpp
XppXpp
Xpp
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric
 
200701011
200701011200701011
200701011
 
為瞬間巨量做好準備 20180726
為瞬間巨量做好準備 20180726為瞬間巨量做好準備 20180726
為瞬間巨量做好準備 20180726
 
Foodie 餐廳推薦系統
Foodie 餐廳推薦系統Foodie 餐廳推薦系統
Foodie 餐廳推薦系統
 
Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作
 
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 shanghai  精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
 
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
 
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
做一个“懒惰”的程序员-LCP框架系列交流
做一个“懒惰”的程序员-LCP框架系列交流做一个“懒惰”的程序员-LCP框架系列交流
做一个“懒惰”的程序员-LCP框架系列交流
 
数据库持续集成
数据库持续集成数据库持续集成
数据库持续集成
 
[嵌入式系統] 嵌入式系統進階
[嵌入式系統] 嵌入式系統進階[嵌入式系統] 嵌入式系統進階
[嵌入式系統] 嵌入式系統進階
 
Jobforcompal
JobforcompalJobforcompal
Jobforcompal
 
與大師對談: 轉移到微服務架構必經之路 ~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路 ~ 系統與資料庫重構
 

Envrionment as a code with vagrant & chef