SlideShare a Scribd company logo
1 of 49
Download to read offline
TheConsortium
Demonware data centre management and
configuration tool
woosley.xu@demonware.net
About DemonWare
Full subsidiary of Activision Blizzard
Creates and provides the online services behind some of
the world’s most popular video game franchises.
In China, we do … …
Demonware Tech
The unpleasant
background
• Working with traditional datacenter
• Dealing with a lot of different backends
• Everybody has their own way to do automation
• Nobody knows what are the correct choices
so we want to pave a vm
• Input hosts information manually into CMDB
• use virt-manage to create virtual machines
• use cobbler and input the system information
• Then use virt-manager to boot it up
Those(and more) were killing
everyone in liveops team
Everybody has their own script to
automate
Provision should be simple as one
command
The Goal of Consortium
Provide a easy to use central
API for liveops operations
Core concept
Everything is a kind of node
Core concept
Every node has a set of
attributes
For example
• A server in IDC is a kind of host, a ip in loadbalancer is a kind
of vip
• A kind of host can have a lot attributes, like name, interfaces,
datacentre, hwspec, puppet_role.
• Those attributes are distributed from different systems, like
provision system, configuration system, inventory system.
• Every node has a unique name to identify itself.
Core concept
Modify attributes can trigger a
set of operations
API design
• Access node object through its name
l GET /api/inventory/host/${name}
l PATCH /api/inventory/host/{$name}
l Etc …
• Pre compiled schema based API which can be
easily used for client
{"/api/inventory/datacentre/?$": {
"post": {
"inputs": { "query": { "optional": false, "type": "string" } },
"doc": "Show datacentres matching the given search query.",
"outputs": {
"result": { "type": [ { "name": { "type": "string" },
"full_name": { "type": "string" }, "cached_at": { "type":
"int" } } ] } } },
"get": {
"inputs": {},
"doc": "Show information about all datacentres.nn",
"outputs": { "result": { "type": [ { "name": { "type": "string" },
"full_name": { "type": "string" },
"cached_at": { "type": "int" } } ] } } } },
Consortium V1
Tornado + Redis
• Redis is used to cache node information from all
backends by a cronjob for fast query
• Tornado is used to nonblockingly talk with
different backends
Consort
Everyone’s beloved shell to talk with
Consortium
Problems
• Predefined workflow
• Talking to different backends synchronous, no
way to track jobs
• Code for different backends are integrated into
the base repo directly
• Plugin is too hard to write, you have to know
how to write nonblocking code using tornado
Consortium V2
• Separated consortium Core and plugin system
• Consortium core as a finite state machine,
propose changes to different plugins
• Replace Redis with etcd and arangodb
• Modifications are now async.
The new plugin system
• Each plugin can provide different
NodeProviders, like CobblerHostNodeProvider
• NodeProvider is essentially provide attributes for
a node kind
• Different NodeProvider can claim attributes of
the same node kind
• NodeProvider also claim the authority to some
node attributes.
• Consortium core is responsible merging those
nodes
The great new
transitionplanner
It is not that scary
• User sends a set of ProposedUpdates
• NodeProvider define a function accept all
updates, do some operations and return what
ProposedUpdates are accepted.
• NodeProvider can also tell transitionPlanner to
propose some new updates, which will be
merged to ProposedUpdates
• TransitionPlanner merge the accepted
ProposedUpdates to current node, compare with
desired state.
• If not satisfied, continue the loop until
1)succeeded 2)failed by exceptions 3)ttl expired.
Show me the code!!
This is great, now show me a
working example
Workers in Consortium
• Supervisor worker
• Master worker
• Web worker: main http interface
• Queue worker: workers who run tasks
Etcd and Arangodb
• Etcd: LockManager, Queue
• Arangodb: A great graph store just works, for
jobs and inventory cache
Other cool things
The Search Engine
How consortium handle list
attributes
Explain mode
The future
We are planning to opensource consortium and
consort with a example plugin
Watch us at https://github.com/Demonware
Questions?

More Related Content

What's hot

FreeNAS 10: Challenges of Building a Modern Storage Appliance based on FreeBS...
FreeNAS 10: Challenges of Building a Modern Storage Appliance based on FreeBS...FreeNAS 10: Challenges of Building a Modern Storage Appliance based on FreeBS...
FreeNAS 10: Challenges of Building a Modern Storage Appliance based on FreeBS...iXsystems
 
Docker Container Orchestration
Docker Container OrchestrationDocker Container Orchestration
Docker Container OrchestrationFernand Galiana
 
OSv: probably the best OS for cloud workloads you've never hear of
OSv: probably the best OS for cloud workloads you've never hear ofOSv: probably the best OS for cloud workloads you've never hear of
OSv: probably the best OS for cloud workloads you've never hear ofrhatr
 
Cinder Status Openstack Shanghai
Cinder Status Openstack ShanghaiCinder Status Openstack Shanghai
Cinder Status Openstack ShanghaiOpenCity Community
 
Dockersh and a brief intro to the docker internals
Dockersh and a brief intro to the docker internalsDockersh and a brief intro to the docker internals
Dockersh and a brief intro to the docker internalsTomas Doran
 
Mocloudos - Feather-weight Cloud OS developed within
14 man-days
Mocloudos - Feather-weight Cloud OS developed within
14 man-daysMocloudos - Feather-weight Cloud OS developed within
14 man-days
Mocloudos - Feather-weight Cloud OS developed within
14 man-daysMasaki Muranaka
 
Docker Meetup: Docker Networking 1.11, by Madhu Venugopal
Docker Meetup: Docker Networking 1.11, by Madhu VenugopalDocker Meetup: Docker Networking 1.11, by Madhu Venugopal
Docker Meetup: Docker Networking 1.11, by Madhu VenugopalMichelle Antebi
 
The True Story of FreeNAS
The True Story of FreeNASThe True Story of FreeNAS
The True Story of FreeNASiXsystems
 
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupSecuring Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupKumar Ashwin
 
Real dev ops with containers
Real dev ops with containersReal dev ops with containers
Real dev ops with containersJulien Corioland
 
BayLISA - FreeNAS 10 by Jordan Hubbard
BayLISA - FreeNAS 10 by Jordan HubbardBayLISA - FreeNAS 10 by Jordan Hubbard
BayLISA - FreeNAS 10 by Jordan HubbardiXsystems
 
Docker Machine & Docker Swarm
Docker Machine & Docker SwarmDocker Machine & Docker Swarm
Docker Machine & Docker SwarmGuillermo Lucero
 
XenServer Virtualization In Cloud Environments
XenServer Virtualization In Cloud EnvironmentsXenServer Virtualization In Cloud Environments
XenServer Virtualization In Cloud EnvironmentsTim Mackey
 
Containers in the Microsoft ecosystem
Containers in the Microsoft ecosystemContainers in the Microsoft ecosystem
Containers in the Microsoft ecosystemJulien Corioland
 
This one goes to 11!
This one goes to 11!This one goes to 11!
This one goes to 11!APNIC
 
Virtualization, the cloud enabler
Virtualization, the cloud enablerVirtualization, the cloud enabler
Virtualization, the cloud enablerPraveen Hanchinal
 

What's hot (20)

FreeNAS 10: Challenges of Building a Modern Storage Appliance based on FreeBS...
FreeNAS 10: Challenges of Building a Modern Storage Appliance based on FreeBS...FreeNAS 10: Challenges of Building a Modern Storage Appliance based on FreeBS...
FreeNAS 10: Challenges of Building a Modern Storage Appliance based on FreeBS...
 
Docker Container Orchestration
Docker Container OrchestrationDocker Container Orchestration
Docker Container Orchestration
 
OSv: probably the best OS for cloud workloads you've never hear of
OSv: probably the best OS for cloud workloads you've never hear ofOSv: probably the best OS for cloud workloads you've never hear of
OSv: probably the best OS for cloud workloads you've never hear of
 
Cinder Status Openstack Shanghai
Cinder Status Openstack ShanghaiCinder Status Openstack Shanghai
Cinder Status Openstack Shanghai
 
Dockersh and a brief intro to the docker internals
Dockersh and a brief intro to the docker internalsDockersh and a brief intro to the docker internals
Dockersh and a brief intro to the docker internals
 
Mocloudos - Feather-weight Cloud OS developed within
14 man-days
Mocloudos - Feather-weight Cloud OS developed within
14 man-daysMocloudos - Feather-weight Cloud OS developed within
14 man-days
Mocloudos - Feather-weight Cloud OS developed within
14 man-days
 
Docker Meetup: Docker Networking 1.11, by Madhu Venugopal
Docker Meetup: Docker Networking 1.11, by Madhu VenugopalDocker Meetup: Docker Networking 1.11, by Madhu Venugopal
Docker Meetup: Docker Networking 1.11, by Madhu Venugopal
 
Docker and stuff
Docker and stuffDocker and stuff
Docker and stuff
 
XS Boston 2008 Quantitative
XS Boston 2008 QuantitativeXS Boston 2008 Quantitative
XS Boston 2008 Quantitative
 
The True Story of FreeNAS
The True Story of FreeNASThe True Story of FreeNAS
The True Story of FreeNAS
 
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupSecuring Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad Meetup
 
Real dev ops with containers
Real dev ops with containersReal dev ops with containers
Real dev ops with containers
 
BayLISA - FreeNAS 10 by Jordan Hubbard
BayLISA - FreeNAS 10 by Jordan HubbardBayLISA - FreeNAS 10 by Jordan Hubbard
BayLISA - FreeNAS 10 by Jordan Hubbard
 
Core OS
Core OSCore OS
Core OS
 
Docker Machine & Docker Swarm
Docker Machine & Docker SwarmDocker Machine & Docker Swarm
Docker Machine & Docker Swarm
 
XenServer Virtualization In Cloud Environments
XenServer Virtualization In Cloud EnvironmentsXenServer Virtualization In Cloud Environments
XenServer Virtualization In Cloud Environments
 
Containers in the Microsoft ecosystem
Containers in the Microsoft ecosystemContainers in the Microsoft ecosystem
Containers in the Microsoft ecosystem
 
This one goes to 11!
This one goes to 11!This one goes to 11!
This one goes to 11!
 
Docker Started
Docker StartedDocker Started
Docker Started
 
Virtualization, the cloud enabler
Virtualization, the cloud enablerVirtualization, the cloud enabler
Virtualization, the cloud enabler
 

Viewers also liked

It基础架构的自动化编排
It基础架构的自动化编排It基础架构的自动化编排
It基础架构的自动化编排Bill Wang
 
从0到1:平安云的构建和运维实践
从0到1:平安云的构建和运维实践从0到1:平安云的构建和运维实践
从0到1:平安云的构建和运维实践Hardway Hou
 
持续交付 - 使用云计算和虚拟化技术
持续交付 - 使用云计算和虚拟化技术持续交付 - 使用云计算和虚拟化技术
持续交付 - 使用云计算和虚拟化技术foxgem
 
统一的云平台实现IT大集中和核心网云化
统一的云平台实现IT大集中和核心网云化统一的云平台实现IT大集中和核心网云化
统一的云平台实现IT大集中和核心网云化Kun Liu
 
4 个步骤 对抗管道完整性威胁
4 个步骤  对抗管道完整性威胁4 个步骤  对抗管道完整性威胁
4 个步骤 对抗管道完整性威胁T.D. Williamson
 
迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉
迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉
迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉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
 
云运维的理念和思维
云运维的理念和思维云运维的理念和思维
云运维的理念和思维昕 姚
 
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)

It基础架构的自动化编排
It基础架构的自动化编排It基础架构的自动化编排
It基础架构的自动化编排
 
从0到1:平安云的构建和运维实践
从0到1:平安云的构建和运维实践从0到1:平安云的构建和运维实践
从0到1:平安云的构建和运维实践
 
持续交付 - 使用云计算和虚拟化技术
持续交付 - 使用云计算和虚拟化技术持续交付 - 使用云计算和虚拟化技术
持续交付 - 使用云计算和虚拟化技术
 
统一的云平台实现IT大集中和核心网云化
统一的云平台实现IT大集中和核心网云化统一的云平台实现IT大集中和核心网云化
统一的云平台实现IT大集中和核心网云化
 
4 个步骤 对抗管道完整性威胁
4 个步骤  对抗管道完整性威胁4 个步骤  对抗管道完整性威胁
4 个步骤 对抗管道完整性威胁
 
迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉
迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉
迎接云计算大时代 - EasyStack 联合创始人兼CTO 刘国辉
 
虚拟桌面云 终端用户运算未来展望
虚拟桌面云  终端用户运算未来展望虚拟桌面云  终端用户运算未来展望
虚拟桌面云 终端用户运算未来展望
 
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
 
云运维的理念和思维
云运维的理念和思维云运维的理念和思维
云运维的理念和思维
 
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 The consortium 基于状态的数据中心自动化管理工具

Radu vunvulea building and testing windows 8 metro style applications using ...
Radu vunvulea  building and testing windows 8 metro style applications using ...Radu vunvulea  building and testing windows 8 metro style applications using ...
Radu vunvulea building and testing windows 8 metro style applications using ...Radu Vunvulea
 
CNIT 126: 10: Kernel Debugging with WinDbg
CNIT 126: 10: Kernel Debugging with WinDbgCNIT 126: 10: Kernel Debugging with WinDbg
CNIT 126: 10: Kernel Debugging with WinDbgSam Bowne
 
Typhoon Managed Execution Toolkit
Typhoon Managed Execution ToolkitTyphoon Managed Execution Toolkit
Typhoon Managed Execution ToolkitDimitry Snezhkov
 
Practical Malware Analysis: Ch 10: Kernel Debugging with WinDbg
Practical Malware Analysis: Ch 10: Kernel Debugging with WinDbgPractical Malware Analysis: Ch 10: Kernel Debugging with WinDbg
Practical Malware Analysis: Ch 10: Kernel Debugging with WinDbgSam Bowne
 
IoT Node-Red Presentation
IoT  Node-Red PresentationIoT  Node-Red Presentation
IoT Node-Red PresentationThe IOT Academy
 
CNIT 126: 10: Kernel Debugging with WinDbg
CNIT 126: 10: Kernel Debugging with WinDbgCNIT 126: 10: Kernel Debugging with WinDbg
CNIT 126: 10: Kernel Debugging with WinDbgSam Bowne
 
Dot net Online Training | .Net Training and Placement online
Dot net Online Training | .Net Training and Placement onlineDot net Online Training | .Net Training and Placement online
Dot net Online Training | .Net Training and Placement onlineGaruda Trainings
 
Ch 6: The Wild World of Windows
Ch 6: The Wild World of WindowsCh 6: The Wild World of Windows
Ch 6: The Wild World of WindowsSam Bowne
 
CNIT 127 Ch 6: The Wild World of Windows
CNIT 127 Ch 6: The Wild World of WindowsCNIT 127 Ch 6: The Wild World of Windows
CNIT 127 Ch 6: The Wild World of WindowsSam Bowne
 
.NET Core: a new .NET Platform
.NET Core: a new .NET Platform.NET Core: a new .NET Platform
.NET Core: a new .NET PlatformAlex Thissen
 
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...NETWAYS
 
Packaging tool options
Packaging tool optionsPackaging tool options
Packaging tool optionsLen Bass
 
Introduction to node.js aka NodeJS
Introduction to node.js aka NodeJSIntroduction to node.js aka NodeJS
Introduction to node.js aka NodeJSJITENDRA KUMAR PATEL
 
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de ZaragozaDocker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de ZaragozaAngel Borroy López
 
Windows internals
Windows internalsWindows internals
Windows internalsPiyush Jain
 

Similar to The consortium 基于状态的数据中心自动化管理工具 (20)

Radu vunvulea building and testing windows 8 metro style applications using ...
Radu vunvulea  building and testing windows 8 metro style applications using ...Radu vunvulea  building and testing windows 8 metro style applications using ...
Radu vunvulea building and testing windows 8 metro style applications using ...
 
CNIT 126: 10: Kernel Debugging with WinDbg
CNIT 126: 10: Kernel Debugging with WinDbgCNIT 126: 10: Kernel Debugging with WinDbg
CNIT 126: 10: Kernel Debugging with WinDbg
 
Typhoon Managed Execution Toolkit
Typhoon Managed Execution ToolkitTyphoon Managed Execution Toolkit
Typhoon Managed Execution Toolkit
 
Practical Malware Analysis: Ch 10: Kernel Debugging with WinDbg
Practical Malware Analysis: Ch 10: Kernel Debugging with WinDbgPractical Malware Analysis: Ch 10: Kernel Debugging with WinDbg
Practical Malware Analysis: Ch 10: Kernel Debugging with WinDbg
 
IoT Node-Red Presentation
IoT  Node-Red PresentationIoT  Node-Red Presentation
IoT Node-Red Presentation
 
CNIT 126: 10: Kernel Debugging with WinDbg
CNIT 126: 10: Kernel Debugging with WinDbgCNIT 126: 10: Kernel Debugging with WinDbg
CNIT 126: 10: Kernel Debugging with WinDbg
 
Dot net Online Training | .Net Training and Placement online
Dot net Online Training | .Net Training and Placement onlineDot net Online Training | .Net Training and Placement online
Dot net Online Training | .Net Training and Placement online
 
Ch 6: The Wild World of Windows
Ch 6: The Wild World of WindowsCh 6: The Wild World of Windows
Ch 6: The Wild World of Windows
 
Deno Crate Organization
Deno Crate OrganizationDeno Crate Organization
Deno Crate Organization
 
PROCESS WARP
PROCESS WARPPROCESS WARP
PROCESS WARP
 
CNIT 127 Ch 6: The Wild World of Windows
CNIT 127 Ch 6: The Wild World of WindowsCNIT 127 Ch 6: The Wild World of Windows
CNIT 127 Ch 6: The Wild World of Windows
 
Demystfying container-networking
Demystfying container-networkingDemystfying container-networking
Demystfying container-networking
 
.NET Core: a new .NET Platform
.NET Core: a new .NET Platform.NET Core: a new .NET Platform
.NET Core: a new .NET Platform
 
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
 
Packaging tool options
Packaging tool optionsPackaging tool options
Packaging tool options
 
Introduction to node.js aka NodeJS
Introduction to node.js aka NodeJSIntroduction to node.js aka NodeJS
Introduction to node.js aka NodeJS
 
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de ZaragozaDocker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
 
Windows internals
Windows internalsWindows internals
Windows internals
 
Server 2016 sneak peek
Server 2016 sneak peekServer 2016 sneak peek
Server 2016 sneak peek
 
David buksbaum a-briefintroductiontocsharp
David buksbaum a-briefintroductiontocsharpDavid buksbaum a-briefintroductiontocsharp
David buksbaum a-briefintroductiontocsharp
 

More from Leo Zhou

第三名 3rd zhyict
第三名 3rd zhyict第三名 3rd zhyict
第三名 3rd zhyictLeo Zhou
 
异常检测在苏宁的实践
异常检测在苏宁的实践异常检测在苏宁的实践
异常检测在苏宁的实践Leo Zhou
 
第二名 2nd 火眼金睛
第二名 2nd 火眼金睛第二名 2nd 火眼金睛
第二名 2nd 火眼金睛Leo Zhou
 
第四名 4th H3C AI Institute
第四名 4th H3C AI Institute第四名 4th H3C AI Institute
第四名 4th H3C AI InstituteLeo Zhou
 
第一名 1st Bocoiops
第一名 1st Bocoiops第一名 1st Bocoiops
第一名 1st BocoiopsLeo Zhou
 
第六名 6th Aurora
第六名 6th Aurora第六名 6th Aurora
第六名 6th AuroraLeo Zhou
 
AI使能网络自动驾驶 AI Building Autonomous Driving Network
AI使能网络自动驾驶 AI Building Autonomous Driving NetworkAI使能网络自动驾驶 AI Building Autonomous Driving Network
AI使能网络自动驾驶 AI Building Autonomous Driving NetworkLeo Zhou
 
2.2 go在阿里云cdn系统的应用
2.2 go在阿里云cdn系统的应用2.2 go在阿里云cdn系统的应用
2.2 go在阿里云cdn系统的应用Leo Zhou
 
1.6 米嘉 gobuildweb
1.6 米嘉 gobuildweb1.6 米嘉 gobuildweb
1.6 米嘉 gobuildwebLeo Zhou
 
1.4 go在数据存储上面的应用—毛剑
1.4 go在数据存储上面的应用—毛剑1.4 go在数据存储上面的应用—毛剑
1.4 go在数据存储上面的应用—毛剑Leo Zhou
 
1.2 刘奇 go在分布式数据库中的应用
1.2 刘奇 go在分布式数据库中的应用1.2 刘奇 go在分布式数据库中的应用
1.2 刘奇 go在分布式数据库中的应用Leo Zhou
 
Protocol libraries the right way
Protocol libraries the right wayProtocol libraries the right way
Protocol libraries the right wayLeo Zhou
 
美团数据库运维平台介绍
美团数据库运维平台介绍美团数据库运维平台介绍
美团数据库运维平台介绍Leo Zhou
 
特卖场景下的大数据平台和机器学习实践
特卖场景下的大数据平台和机器学习实践特卖场景下的大数据平台和机器学习实践
特卖场景下的大数据平台和机器学习实践Leo Zhou
 
我的互联网运维理论与实践
我的互联网运维理论与实践我的互联网运维理论与实践
我的互联网运维理论与实践Leo Zhou
 
如何选择 Docker 监控方案
如何选择 Docker 监控方案如何选择 Docker 监控方案
如何选择 Docker 监控方案Leo Zhou
 
美团数据库运维平台介绍
美团数据库运维平台介绍美团数据库运维平台介绍
美团数据库运维平台介绍Leo Zhou
 
The net is dark and full of terrors - James Bennett
The net is dark and full of terrors - James BennettThe net is dark and full of terrors - James Bennett
The net is dark and full of terrors - James BennettLeo Zhou
 
Hypothesis randomised testing for django
Hypothesis randomised testing for djangoHypothesis randomised testing for django
Hypothesis randomised testing for djangoLeo Zhou
 
NoSQL@VIP — 唯品会NoSQL平台⾃动化发展及运维经验分享
NoSQL@VIP — 唯品会NoSQL平台⾃动化发展及运维经验分享NoSQL@VIP — 唯品会NoSQL平台⾃动化发展及运维经验分享
NoSQL@VIP — 唯品会NoSQL平台⾃动化发展及运维经验分享Leo Zhou
 

More from Leo Zhou (20)

第三名 3rd zhyict
第三名 3rd zhyict第三名 3rd zhyict
第三名 3rd zhyict
 
异常检测在苏宁的实践
异常检测在苏宁的实践异常检测在苏宁的实践
异常检测在苏宁的实践
 
第二名 2nd 火眼金睛
第二名 2nd 火眼金睛第二名 2nd 火眼金睛
第二名 2nd 火眼金睛
 
第四名 4th H3C AI Institute
第四名 4th H3C AI Institute第四名 4th H3C AI Institute
第四名 4th H3C AI Institute
 
第一名 1st Bocoiops
第一名 1st Bocoiops第一名 1st Bocoiops
第一名 1st Bocoiops
 
第六名 6th Aurora
第六名 6th Aurora第六名 6th Aurora
第六名 6th Aurora
 
AI使能网络自动驾驶 AI Building Autonomous Driving Network
AI使能网络自动驾驶 AI Building Autonomous Driving NetworkAI使能网络自动驾驶 AI Building Autonomous Driving Network
AI使能网络自动驾驶 AI Building Autonomous Driving Network
 
2.2 go在阿里云cdn系统的应用
2.2 go在阿里云cdn系统的应用2.2 go在阿里云cdn系统的应用
2.2 go在阿里云cdn系统的应用
 
1.6 米嘉 gobuildweb
1.6 米嘉 gobuildweb1.6 米嘉 gobuildweb
1.6 米嘉 gobuildweb
 
1.4 go在数据存储上面的应用—毛剑
1.4 go在数据存储上面的应用—毛剑1.4 go在数据存储上面的应用—毛剑
1.4 go在数据存储上面的应用—毛剑
 
1.2 刘奇 go在分布式数据库中的应用
1.2 刘奇 go在分布式数据库中的应用1.2 刘奇 go在分布式数据库中的应用
1.2 刘奇 go在分布式数据库中的应用
 
Protocol libraries the right way
Protocol libraries the right wayProtocol libraries the right way
Protocol libraries the right way
 
美团数据库运维平台介绍
美团数据库运维平台介绍美团数据库运维平台介绍
美团数据库运维平台介绍
 
特卖场景下的大数据平台和机器学习实践
特卖场景下的大数据平台和机器学习实践特卖场景下的大数据平台和机器学习实践
特卖场景下的大数据平台和机器学习实践
 
我的互联网运维理论与实践
我的互联网运维理论与实践我的互联网运维理论与实践
我的互联网运维理论与实践
 
如何选择 Docker 监控方案
如何选择 Docker 监控方案如何选择 Docker 监控方案
如何选择 Docker 监控方案
 
美团数据库运维平台介绍
美团数据库运维平台介绍美团数据库运维平台介绍
美团数据库运维平台介绍
 
The net is dark and full of terrors - James Bennett
The net is dark and full of terrors - James BennettThe net is dark and full of terrors - James Bennett
The net is dark and full of terrors - James Bennett
 
Hypothesis randomised testing for django
Hypothesis randomised testing for djangoHypothesis randomised testing for django
Hypothesis randomised testing for django
 
NoSQL@VIP — 唯品会NoSQL平台⾃动化发展及运维经验分享
NoSQL@VIP — 唯品会NoSQL平台⾃动化发展及运维经验分享NoSQL@VIP — 唯品会NoSQL平台⾃动化发展及运维经验分享
NoSQL@VIP — 唯品会NoSQL平台⾃动化发展及运维经验分享
 

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
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

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
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

The consortium 基于状态的数据中心自动化管理工具

  • 1. TheConsortium Demonware data centre management and configuration tool woosley.xu@demonware.net
  • 2. About DemonWare Full subsidiary of Activision Blizzard Creates and provides the online services behind some of the world’s most popular video game franchises.
  • 3.
  • 4.
  • 5. In China, we do … …
  • 6.
  • 8. The unpleasant background • Working with traditional datacenter • Dealing with a lot of different backends • Everybody has their own way to do automation • Nobody knows what are the correct choices
  • 9. so we want to pave a vm • Input hosts information manually into CMDB • use virt-manage to create virtual machines • use cobbler and input the system information • Then use virt-manager to boot it up
  • 10. Those(and more) were killing everyone in liveops team Everybody has their own script to automate Provision should be simple as one command
  • 11. The Goal of Consortium Provide a easy to use central API for liveops operations
  • 12.
  • 13.
  • 14. Core concept Everything is a kind of node
  • 15. Core concept Every node has a set of attributes
  • 16. For example • A server in IDC is a kind of host, a ip in loadbalancer is a kind of vip • A kind of host can have a lot attributes, like name, interfaces, datacentre, hwspec, puppet_role. • Those attributes are distributed from different systems, like provision system, configuration system, inventory system. • Every node has a unique name to identify itself.
  • 17.
  • 18. Core concept Modify attributes can trigger a set of operations
  • 19. API design • Access node object through its name l GET /api/inventory/host/${name} l PATCH /api/inventory/host/{$name} l Etc … • Pre compiled schema based API which can be easily used for client
  • 20. {"/api/inventory/datacentre/?$": { "post": { "inputs": { "query": { "optional": false, "type": "string" } }, "doc": "Show datacentres matching the given search query.", "outputs": { "result": { "type": [ { "name": { "type": "string" }, "full_name": { "type": "string" }, "cached_at": { "type": "int" } } ] } } }, "get": { "inputs": {}, "doc": "Show information about all datacentres.nn", "outputs": { "result": { "type": [ { "name": { "type": "string" }, "full_name": { "type": "string" }, "cached_at": { "type": "int" } } ] } } } },
  • 21. Consortium V1 Tornado + Redis • Redis is used to cache node information from all backends by a cronjob for fast query • Tornado is used to nonblockingly talk with different backends
  • 22. Consort Everyone’s beloved shell to talk with Consortium
  • 23.
  • 24. Problems • Predefined workflow • Talking to different backends synchronous, no way to track jobs • Code for different backends are integrated into the base repo directly • Plugin is too hard to write, you have to know how to write nonblocking code using tornado
  • 25. Consortium V2 • Separated consortium Core and plugin system • Consortium core as a finite state machine, propose changes to different plugins • Replace Redis with etcd and arangodb • Modifications are now async.
  • 26. The new plugin system • Each plugin can provide different NodeProviders, like CobblerHostNodeProvider • NodeProvider is essentially provide attributes for a node kind • Different NodeProvider can claim attributes of the same node kind • NodeProvider also claim the authority to some node attributes. • Consortium core is responsible merging those nodes
  • 28.
  • 29. It is not that scary • User sends a set of ProposedUpdates • NodeProvider define a function accept all updates, do some operations and return what ProposedUpdates are accepted. • NodeProvider can also tell transitionPlanner to propose some new updates, which will be merged to ProposedUpdates
  • 30. • TransitionPlanner merge the accepted ProposedUpdates to current node, compare with desired state. • If not satisfied, continue the loop until 1)succeeded 2)failed by exceptions 3)ttl expired.
  • 31. Show me the code!!
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. This is great, now show me a working example
  • 37.
  • 38.
  • 39. Workers in Consortium • Supervisor worker • Master worker • Web worker: main http interface • Queue worker: workers who run tasks
  • 40. Etcd and Arangodb • Etcd: LockManager, Queue • Arangodb: A great graph store just works, for jobs and inventory cache
  • 43.
  • 44. How consortium handle list attributes
  • 45.
  • 47.
  • 48. The future We are planning to opensource consortium and consort with a example plugin Watch us at https://github.com/Demonware