Upgrade to Pro — share decks privately, control downloads, hide ads and more …

murakumo cloud controller

Avatar for shin5ok shin5ok
August 01, 2012

murakumo cloud controller

My original prototype for cloud virtual machines orchestrator.
https://github.com/shin5ok/murakumo
https://github.com/shin5ok/murakumo_node

The orchestrator based on this has been still running as common IaaS platform in a cloud provider.
It has been stable working for around five years.

Avatar for shin5ok

shin5ok

August 01, 2012
Tweet

More Decks by shin5ok

Other Decks in Technology

Transcript

  1. .ZSFRVJSFNFOUT "TB4ZTUFN0QFSBUPS ɾ8FDBOEPBMMPQFSBUJPOXJUI$-* $PNNBOE-JOF  ɾ0QFSBUJPOT $POpHVSBUJPOTTIPVMECFBVUPNBUJPOBTNVDI BTQPTTJCMF 5IFSFJTOPUXSPOHTUBUVTCFUXFFOBDUVBMTZTUFNBOENBOBHFNFOUEBUBCBTFT "VUPDPOpHVSBUJPO

    "VUPSPMMCBDLJGJUIBTFSSPS ɾ5IF%FTJHOTIPVMECF4JNQMF  TP0QFSBUJPONFNCFSTDBOVOEFSTUBOETZTUFNTUSVDUVSF 0UIFSGFBUVSF MJLF)" JTBTFYUSBGVODUJPO ZPVDBODSFBUFUIFN XJUIBQJUIBUQSPWJEFEGSPNNVSBLVNP
  2. 5FDIOJDBM4QFDJpDBUJPO $POUSPMMFS NVSBLVNP /PEF NVSBLVNP@OPEF -BOH 1FSM -BOH.PEVMFT $BUBMZTUɺ%#*Y$MBTTɺ -PH-PH1FSMɺ%BUB66*%FUD

    $BUBMZTUɺ4ZT7JSUɺ 1BSBMMFM1SFGPSLFUD 8FC4FSWFS /HJOYɺ4UBSNBO )5514FSWFS14(* +PC2VFVF  5IF4DIXBSU[ %BUBCBTF .Z42-ʙ 42-JUF GPS+PCʣ 3FRVJSFQBDLBHF ʢGPS3FE)BUʣ QZUIPOWJSUJOTU -JCWJSUɺMJCHVFTUGTɺ 1PTUpY GPSBQJSFUSZRVFVFʣ 7FSJpFE04 3FE)BU-JOVY $FOU04ɺ4DJFOUJpD-JOVY
  3. 'FBUVSFPGTZTUFNTUSVDUVSF ɾ5IJO$POUSPMMFS 3JDI"HFOU "VUPOPNPVTMZXPSLJOHOPEFBHFOU+PC2VFVFQSPDFTTJOHIFBWZXPSLTBTZODISPOPVTMZ "VUPEFUFDUBOEDPOpHVSFUIFSFRVJSFTUPSBHF OFUXPSL 7-"/#SJEHF DPOpHVSBUJPOT )BSEUPCFNJTNBUDI7JSUVBM.BDIJOF`TTUBUVTBOENBOBHFNFOUEBUBJOEBUBCBTF ɾ-PPTFDPVQMFDPNQPOFOU

    *GTPNFDPNQPOFOUJTTUPQQJOH JUEPFTOPUB⒎FDU7JSUVBM.BDIJOFT $POUSPMMFSBOEOPEFDPNNVOJDBUFFBDIPUIFSXJUIXFCBQJPO)551  TPUIFZBSFTUBUFMFTT TPUIFZBSFTUSPOHUPGBJMVSF %POPUVTF-JCWJSUBTNVDIBTQPTTJCMF CFDBVTFJU`TOPUTJNQMFUPVTFDPNQMFUFMZ ɾ4JNQMFTFUVQ NVSBLVNPTFUVQUBLFTKVTUBCPVUNJOVUFT ɾ&BTZ.BJOUFOBODF ɾ"WBJMBCMFZPVSLOPXIPXUPTDBMFVQTDBMFPVU :PVDBOVTFZPVS8&# %#LOPXIPXUPFYUFOEZPVSDMPVETZTUFN
  4. NVSBLVNP$PNQPOFOU3FMBUJPOTIJQ api client (cli / web browser) node node job

    api storage agent MTA node api NPEFM $POUSPMMFS /PEF 4UPSBHF DB IUUQIUUQT IUUQIUUQT IUUQIUUQT IUUQIUUQT libvirtd
  5. ɾ7JSUVBM.BDIJOF0QFSBUJPOXJUI8FC"1* ɾ$SFBUF7JSUVBM.BDIJOF ɾ.PEJGZTUSVDUVSF7JSUVBM.BDIJOF  $16NFNPSZBTTJHO .VMUJEJTL PO.VMUJTUPSBHF ɺ.VMUJOFUXPSL 7-"/ 

    $IBOHJOHJTPPOMJOF .VMUJ*1BTTJHO 4VQQPSUQBSBWJSUVBM WJSUJP NPEF  4VQQPSU#SJEHFUZQF7JSUVBM.BDIJOF $IBOHJOHEJTLDBDIFNPEFBUCPPUJOH ɾ$MPOF7JSUVBM.BDIJOF "VUP$POpHVSBUJPOGPSOFUXPSLBOEIPTUOBNFPO-JOVY XJUIMJCHVFTUGT  ɾ#PPU4UPQ'PSDFTUPQ7JSUVBM.BDIJOF ɾ-JWF.JHSBUJPO ɾ)" FYQFSJNFOUBM  ɾ3FTPVSDF.BOBHFNFOUQFS1SPKFDU BOE"MMCZ4VQFS6TFS ɾ 7JSUVBM.BDIJOFTIBSF5FNQMBUF ɾ:PVDBOTFUVQTPNF7JSUVBM.BDIJOFGPSUFNQMBUF BOETIBSFUIFN NVSBLVNPGVODUJPO
  6. ɾ.BOBHFNFOU/PEFT 1IZTJDBM)PTUT TUBUVT SFTPVSDF "VUPTFMFDUOPEFTUIBUCPPU7JSUVBM.BDIJOF UIFZBSFTFMFDUFEXJUI FWFSZSFTPVSDFQBSBNFUFST ɾ.VMUJOFUXPSL 7-"/ .BOBHFNFOU*1BEESFTT

    BTTJHONFOU ɾ$PNCJOF.VMUJTUPSBHF 'PSFYBNQMF pSTUEJTLJONBJOTUPSBHF TFDPOEBSZEJTLJOCBDLVQTUPSBHF ɾ4UPSBHF"HFOUGPSqFYJCMFNBOBHFNFOU "VUPTFMFDUTUPSBHFBTTJHONFOUXJUITUPSBHFMPBE JPXBJU BWBJMBCMFDBQBDJUZ ɾ'BTU$MPOJOH ɾ$POpHGPSCJEEFO"1* NVSBLVNPGVODUJPO
  7. ɾNVSBLVNP$-* TVCDPNNBOE BQPJOUPG ɾ4VCDPNNBOEFYBNQMF ɾ(FUMJTUPGEFpOFE7JSUVBM.BDIJOFT NVSBLVNPWQTEFpOFMJTU ɾ$MPOFB7JSUVBM.BDIJOF "VUPDPOpHVSFOFUXPSL  NVSBLVNPWQTUFNQMBUFDMPOF=

    VVJEECBFGEECECDDBCF= OBNFNBJMTFSWFSWMBOJETFUOFUXPSLFUIBTTJHOJQ ɾ.PEJGZ7JSUVBM.BDIJOFTUSVDUVSF DQVOVNCFSUP NFNPSZBTTJHOUP(#  NVSBLVNPWQTEFpOFNPEJGZ= VVJEEBFCGCBC= DQVOVNCFSNFNPSZ ɾ-JWF.JHSBUJPOB7JSUVBM.BDIJOF NVSBLVNPWQTNJHSBUJPOVVJEEBFCGCBC= ETUOPEFOPEF ɾ(FUMJTUPGJOTUBODFTPOBMMQSPKFDUTʢ3FRVJSF4VQFS6TFS  NVSBLVNPWQTMJTUBMM NVSBLVNPGVODUJPO
  8. "1*FYBNQMF-JTUPGEFpOFE7JSUVBM.BDIJOFT 3FRVFTU(&5 IUUQT"1*@)0451035130+&$5@*%WQTEFpOFMJTU LFZ"1*@,&: \ BVUIFE  JT@BENJO  EBUB<

    \ VQEBUF@UJNF  NFNPSZ  SFHJTU@UJNF  DQV@OVNCFS  OBNFDFOUPTNJOJNVN  UBH  VVJEGBBEECFBBB ^    লུ   \ VQEBUF@UJNF  NFNPSZ  SFHJTU@UJNF  DQV@OVNCFS  OBNFOBU  UBH  VVJEFBBEFGFCBFFB ^ >  UBH  QSPKFDU@JE$0..0/  NFTTBHF  SFTVMU ^ 3FTQPOTFCPEZ
  9. 3FRVFTU1045 IUUQT"1*@)0451035130+&$5@*%WQTEFpOFDMPOF5&.1-"5&@66*% LFZ"1*@,&: 3FRVFTUCPEZ \ TFU@OFUXPSLFUI  OBNFDMPOFWQT  BTTJHO@JQ

     WMBO@JE ^ 3FTQPOTFCPEZ \ KPC@VVJEFECFEFBFCDFB  VVJEGBBEECFBBB  OPEFNVSBLVNPOPEF  NFTTBHF  BVUIFE  JT@BENJO  QSPKFDU@JE$0..0/  SFTVMU ^ 1SPDFTTJOHBTBTZODKPC ZPVDBOBTL"1*UIFSFTVMUXJUIKPC@VVJE https:/ /github.com/shin5ok/murakumo/wiki/api%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88 "1*%PDTʢVOEFSUIFDPOTUSVDUJPOʣ "1*FYBNQMF$MPOFB7JSUVBM.BDIJOF
  10. NVSBLVNPTZTUFNSFRVJSFNFOUT ɾ$POUSPMMFS "1* TFSWFSUPJOTUBMMNVSBLVNP )BWJOHPOFPSNPSF/*$ "TDPOUSPMMFSWJSUVBM4FSWFSJTBMTPPL CVUOPUVOEFSNVSBLVNPNBOBHFNFOU ɾ/PEFUPJOTUBMMNVSBLVNP@OPEF 1IZTJDBMTFSWFSXJUIWJSUVBMJ[BUJPOTVQQPSUDQV )BWJOHUXPPSNPSF/*$

     3FDPNNFOE NPSFUIBO(CQTTVQQPSUGPSTUPSBHFOFUXPSL ɾ4UPSBHF /'4TVQQPSUTUPSBHFʢ.VMUJ4UPSBHFBWBJMBCMFBUUIFTBNFUJNFʣ *GZPVXBOUUPVTF4UPSBHF"HFOU :PVIBWFUPCVJMETUPSBHFXJUI-JOVY PSPUIFS6OJY  ɾ/FUXPSL4XJUDIɿGPS(MPCBM1SJWBUFOFUXPSL 7-"/TVQQPSUFE ɾ/FUXPSL4XJUDIGPSNBOBHFNFOU DPNNPO-TXJUDI
  11. 4FSWJDF/FUXPSL4XJUDI 7-"/TVQQPSU NVSBLVNP $POUSPMMFS NVSBLVNP@OPEF NVSBLVNP@OPEF /'4 4UPSBHF 4UPSBHF4XJUDI .BOBHFNFOU/FUXPSL4XJUDI

    WQT WQT WQT WQT WQT WQT WQT WQT (MPCBM (MPCBM NVSBLVNPHFOFSBMDPOpHVSBUJPO 4UPSBHF .BOBHFNFOU 4UPSBHF4XJUDI
  12. 4FSWJDF/FUXPSL4XJUDI 1SJWBUF/FUXPSL4XJUDI .BOBHFNFOU/FUXPSL4XJUDI NVSBLVNPFYUFOEFEDPOpHVSBUJPO 4FSWJDF/FUXPSL4XJUDI %# %# $POUSPMMF S 4UPSBH

    F
 .BOBH FNFOU 4UPSBH F
 .BOBH FNFOU 4UPSBHF 4UPSBHF ospf WSSQ $POUSPMMF S /PEF4FSWFS(SPVQT 4UPSBHF/FUXPSL4XJUDI 3FQMJDBUJPO WJQ 3FEVOEBOUXJUI