Slide 1

Slide 1 text

Copyright © 2017 eureka, Inc. All rights reserved. Infrastructure as Code in Pairs 17.07.13 eureka Meetup #05 -SRE Night- Jun Sakata @sakajunquality

Slide 2

Slide 2 text

Copyright © 2017 eureka, Inc. All rights reserved. 2 who am i 43&%JW4FOJPS&OHJOFFS OFUXPSL NJEEMFXBSF "84 BQQ TPNFUJNFT 'BWPSJUFUDQEVNQUFMOFU @sakajunquality

Slide 3

Slide 3 text

Copyright © 2017 eureka, Inc. All rights reserved. 3 who am i -JLF)BSEXBSFTXJUDI $JTDP-- +VOJQFS'JSFXBMM 5PPOPJTZUPTMFFQ

Slide 4

Slide 4 text

Copyright © 2017 eureka, Inc. All rights reserved. Infrastructure as Code

Slide 5

Slide 5 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup

Slide 6

Slide 6 text

Copyright © 2017 eureka, Inc. All rights reserved. Infrastructure as Code

Slide 7

Slide 7 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 7 $IFG "OTJCMF 1VQFU $MPVE'PSNBUJPO 5FSSBGPSN 1BDLFS Tools for Infrastructure as Code

Slide 8

Slide 8 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 8 Idea of Infrastructure as Code “5IFFOBCMJOHJEFBPGJOGSBTUSVDUVSFBTDPEFJTUIBUUIF TZTUFNTBOEEFWJDFTXIJDIBSFVTFEUPSVOTPGUXBSFDBOCF USFBUFEBTJGUIFZ UIFNTFMWFT BSFTPGUXBSF” – Morris, Infrastructure as Code

Slide 9

Slide 9 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 9 Idea of Infrastructure as Code more practically “UIFQSBDUJDFJOXIJDIUIFUFDIOJRVFT QSPDFTTFT BOEUPPMTFUT VTFEJOTPGUXBSFEFWFMPQNFOUBSFMFWFSBHFEUPNBOBHFUIF EFQMPZNFOUBOEDPOpHVSBUJPOPGTZTUFNT BQQMJDBUJPOT BOE NJEEMFXBSF” – http://www.itproguy.com/2015/06/26/devops-practices/

Slide 10

Slide 10 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 10 Idea of Infrastructure as Code more practically Codenizing is not good enough – according to me

Slide 11

Slide 11 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 11 4PGUXBSF%FWFMPQNFOU 5IF6/*91IJMPTPQIZ Key Concepts

Slide 12

Slide 12 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 12 7FSTJPODPOUSPM NPTUMZHJU $PEF3FWJFX 5FTUJOH $*$% FUD Key Concepts: Software Development

Slide 13

Slide 13 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 13 3VMFPG.PEVMBSJUZ 3VMFPG4JNQMJDJUZ 4NBMMJTCFBVUJGVM FUD Key Concepts: The UNIX Philosophy

Slide 14

Slide 14 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 14 $IFG "OTJCMF 1VQFU $MPVE'PSNBUJPO 5FSSBGPSN 1BDLFS Tools for Infrastructure as Code

Slide 15

Slide 15 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 15 $POpHVSBUJPO.BOBHFNFOU5PPMT 4FSWFS5FNQMBUJOH5PPMT Tools for Infrastructure as Code – Brikman, Terraform Up & Running

Slide 16

Slide 16 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 16 #VUQSBDUJDBMMZUIPTFUPPMTIBWFGVODUJPOTGPSNBOBHJOHUIFTBNFBSFB FH:PVDPVMEMBVODI&$JOTUBODFXJUI"OTJCMF Tools for Infrastructure as Code

Slide 17

Slide 17 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 17 "QQSPQSJBUFUPPMTGPSl*OGSBTUSVDUVSFBTDPEFzNVTUCFEFpOFECZ JOGSBTUSVDUVSFBOEQVSQPTF *UTIPVMEOPUCFBUPPMESJWFO Infrastructure as Code in Practice

Slide 18

Slide 18 text

Copyright © 2017 eureka, Inc. All rights reserved. Pairs

Slide 19

Slide 19 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 19 .VMUJ3FHJPO KQUX 4FWFSBM.JDSPTFSWJDFT 4PNF$PSQPSBUF4FSWJDFT .VMUJ&OWJSPONFOU 1SPE4UBHF Pairs: Infrastructure

Slide 20

Slide 20 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 20 /PBEIPDTDSJQU PQFSBUJPO &BTJFSJOGSBTUSVDUVSFTFUVQ 3FQFBUBCMFJOGSBTUSVDUVSFXJUIJEFNQPUFODZ .BOBHFBTNVDIBTQPTTJCMFJODPEF Pairs: Purpose and Scope for IAC

Slide 21

Slide 21 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 21 Pairs: Overview of Infrastructure as Code 1BDLFS &$4QPU ".* &$*OTUBODF 5FSSBGPSN 0UIFS"84 3FTPVSDFT "OTJCMF 1MBZCPPL $PNNPO 3PMFT .PEVMFT

Slide 22

Slide 22 text

Copyright © 2017 eureka, Inc. All rights reserved. Packer • Ansible

Slide 23

Slide 23 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 23 Packer and Ansible: Why? 1BDLFS ".*1BDLBHJOH /PPUIFSDIPJDF "OTJCMF 1SPWJTJPOJOHJOTJEF1BDLFS ,OPXMFEHFJOUIFUFBN

Slide 24

Slide 24 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 24 Packer and Ansible 6TJOHDPNNPO"OTJCMFSPMFGPS1BDLFS 1BDLFS &$4QPU ".* "OTJCMF 1MBZCPPL $PNNPO 3PMFT

Slide 25

Slide 25 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 25 Packer and Ansible 4FQBSBUFE1MBZCPPLTBOE3PMFTQSPEVDFTPNVDIEVQMJDBUJPO 1BDLFS 1BJST+1 ".* "OTJCMF 1MBZCPPL 1BDLFS 1BJST58 ".* "OTJCMF 1MBZCPPL 1BDLFS .JDSPTFSWJDF ".* "OTJCMF 1MBZCPPL 3PMFT 3PMFT 3PMFT

Slide 26

Slide 26 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 26 Packer and Ansible 6TFDPNNPOSPMFTBOETFQBSBUFQMBZCPPL 1BDLFS 1BJST+1 ".* "OTJCMF 1MBZCPPL 1BDLFS 1BJST58 ".* "OTJCMF 1MBZCPPL 1BDLFS .JDSPTFSWJDF ".* "OTJCMF 1MBZCPPL $PNNPO 3PMFT

Slide 27

Slide 27 text

Copyright © 2017 eureka, Inc. All rights reserved. No problem?

Slide 28

Slide 28 text

Copyright © 2017 eureka, Inc. All rights reserved. Still

Slide 29

Slide 29 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 29 Packer and Ansible: Common role 3PMFTBSFVTFEBOENPEJpFEJOTFWFSBMQMBZCPPLT 1SPWJTJPOJOHSFTVMUJTOPUHVBSBOUFFE "OTJCMF 1MBZCPPL" "OTJCMF 1MBZCPPL# $PNNPO 3PMFT "OTJCMF 1MBZCPPL$ Modification Modification Modification Modification Modification

Slide 30

Slide 30 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 30 Packer and Ansible: Common role $BSFGVMNPEJpDBUJPO0GDPVSTFCVUOPUHPPEFOPVHI $BSFGVMDPEFSFWJFX0GDPVSTFCVUTUJMMOPUHPPEFOPVHI 8FOFFE5&45 $PNNPO 3PMFT 4FSWFS .PDL 1MBZCPPL 5FTU CI

Slide 31

Slide 31 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 31 Packer 1BDLFSBOE"OTJCMFEJSFDUPSZ 1BDLFS ᵓᴷᴷBOTJCMFSPMFTDPNNPOSPMFT ᴹᵓᴷᴷDPNNPO ᴹᵓᴷᴷOHJOY ᴹᵋᴷᴷFUDʜ ᵓᴷᴷNJDSPTFSWJDFT ᴹᵋᴷᴷNPEFSBUJPO ᴹᵓᴷᴷQSPE ᴹᴹᵓQSPWJTJPOFSTBOTJCMFQMBZCPPL ᴹᴹᵋCVJMEFSTQBDLFSSFDJQF ᴹᵋᴷᴷTUBH ᵋᴷᴷQBJST ᵓᴷᴷKQ ᵋᴷᴷUX

Slide 32

Slide 32 text

Copyright © 2017 eureka, Inc. All rights reserved. Terraform

Slide 33

Slide 33 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 33 Terraform: Why? 5FSSBGPSN .BOBHJOH"84BOE($1SFTPVSDFTJODPEF (PPEEPDVNFOUBUJPO 3FMBUJWFMZSBQJETVQQPSUGPS"84TFSWJDF

Slide 34

Slide 34 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 34 Terraform TFSWJDF FOW BOEUFSSBGPSNEJSFDUPSZ "DUJWFMZVTFNPEVMF .PEVMFT 1SPE &OW

Slide 35

Slide 35 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 35 Terraform 5SZOPUUPNBLFNPEVMFTIVHF "MMPXEVQMJDBUJPOUPTPNFFYUFOU .PEVMFT 1BJST +1 1SPE4UBHF 58 1SPE4UBHF .PEVMFT .JDSPTFSWJDF .PEFSBUJPO 1SPE4UBHF )PHF 1SPE4UBHF

Slide 36

Slide 36 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 36 Terraform 5FSSBGPSNEJSFDUPSZ UFSSBGPSN ᵓᴷᴷDPSQPSBUF ᴹᵓᴷᴷQSPE ᴹᵋᴷᴷTUBH ᵓᴷᴷNJDSPTFSWJDFT ᴹᵓᴷᴷNPEVMFT ᴹᵓᴷᴷQBZNFOU ᴹᴹᵓᴷᴷQSPE ᴹᴹᵋᴷᴷTUBH ᴹᵋᴷᴷNPEFSBUJPO ᴹᵓᴷᴷQSPE ᴹᵋᴷᴷTUBH ᵋᴷᴷQBJST ᵓᴷᴷNPEVMFT ᵓᴷᴷQSPE ᴹᵓᴷᴷKQ ᴹᵋᴷᴷUX ᵋᴷᴷTUBHF ᵓᴷᴷKQ ᵋᴷᴷUX

Slide 37

Slide 37 text

Copyright © 2017 eureka, Inc. All rights reserved. Best Practice?

Slide 38

Slide 38 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 38 Best Practice? 1 https://github.com/hashicorp/best-practices

Slide 39

Slide 39 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 39 Best Practice? 2 http://dev.classmethod.jp/devops/directory-layout-bestpractice-in-terraform/

Slide 40

Slide 40 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 40 Best Practice? 3 https://www.amazon.co.jp/dp/1491977086/

Slide 41

Slide 41 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 41 Best Practice? %PFTJUTVJUZPVSSFRVJSFNFOUT *TO`UJUUPPDPNQMFY

Slide 42

Slide 42 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 42 Best Practice? #FTUQSBDUJDFJTOPUBMXBZTCFTU

Slide 43

Slide 43 text

Copyright © 2017 eureka, Inc. All rights reserved. Community Module?

Slide 44

Slide 44 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 44 Community module? https://galaxy.ansible.com/list#/roles?page=1&page_size=10

Slide 45

Slide 45 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 45 Community module? https://github.com/terraform-community-modules

Slide 46

Slide 46 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 46 Community module?

Slide 47

Slide 47 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 47 Community Modules? *TJUNBJOUBJOFE 8IBUJGJUJTOPMPOHFSNBJOUBJOFE

Slide 48

Slide 48 text

Copyright © 2017 eureka, Inc. All rights reserved. Automation

Slide 49

Slide 49 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 49 "VUPNBUFEAUFSSBGPSNQMBOA 3FTVMUUP(JUIVCDPNNFOUXJUI$* /PABQQMZAZFU Automation: Terraform Plan

Slide 50

Slide 50 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 50 "84.BOBHFE#VJME%FQMPZ 7JB4MBDLBQQ Automation: Build & Deployment

Slide 51

Slide 51 text

Copyright © 2017 eureka, Inc. All rights reserved. Conclusion

Slide 52

Slide 52 text

Copyright © 2017 eureka, Inc. All rights reserved. #eureka_meetup 52 6TFTPGUXBSFEFWFMPQNFOUUFDIOJRVFT "QQSPQSJBUFUPPMTGPSUIFQVSQPTF ,FFQJNQSPWJOH LFFQHPJOH Conclusion