infrastructure as code für anfänger - xp days...packer pipeline vcs provision temp instance os...
TRANSCRIPT
![Page 1: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/1.jpg)
"Infrastructure as Code" für Anfänger
XP Days Germany
David Völkel
27.11.2015
![Page 2: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/2.jpg)
@davidvoelkel
@softwerkskammer
@codecentric
TDD & Design
CD & DevOp
![Page 3: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/3.jpg)
Continuous Integration
Automatic Build
VCS Application
![Page 4: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/4.jpg)
Automation
Quality
Reproducible
Faster
Docs
Application VCS
![Page 5: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/5.jpg)
Tip of the Iceberg?
App VCS
![Page 6: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/6.jpg)
Tip of the Iceberg?
VM
App
OS & Packages
Config
OS & Packages
Network
VCS
![Page 7: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/7.jpg)
Continuous Delivery
Infrastructure?
VM
App
OS & Packages
Config
OS & Packages
Network
VCS
![Page 8: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/8.jpg)
Continuous Delivery
Infrastructure as Code
VM
Software
OS & Packages
Config
OS & Packages
Network
VCS
![Page 9: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/9.jpg)
Agenda
1. Deployment
2. Provisioning
3. Environments
4. VM Management
5. SDN
DEMO
VM
App
OS & Packages
Config
OS & Packages
Network
![Page 10: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/10.jpg)
1.DEPLOYMENT
Image: Rigo Peter
VM
App
OS & Packages
Config
OS & Packages
![Page 11: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/11.jpg)
Deployment
SSH/SCP
mvn Plugins
Server
App
![Page 12: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/12.jpg)
Auto Deployment
CI Build Pipeline
Server
Build & Unit Tests
App
VCS
Deployment
Integration Tests
![Page 13: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/13.jpg)
App Server Options
Distro Package Manager
Fat-JARs
Image: RRZEicons
![Page 14: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/14.jpg)
2. PROVISION
VM
App
OS & Packages
Config
OS & Packages
Box by Даниил Пронин from the Noun Project
![Page 15: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/15.jpg)
Snowflake Servers
![Page 16: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/16.jpg)
Snowflake Servers
Work of Art
![Page 17: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/17.jpg)
Image: KUKA Systems GmbH
Configuration Management
Server Provisioning
Installation
Config VCS
![Page 18: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/18.jpg)
Configuration Management
CFEngine Chef
Puppet
Salt
Ansible
90er 00er 10er
![Page 19: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/19.jpg)
Desired State Configuration
Declarative
Tests itself
Idempotent
![Page 20: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/20.jpg)
> mvn package (per jdeb)
> scp software_and_provi.deb server
# dpkg –i *.deb
# puppet apply
> smoketest server
Server
Software
OS & Packages
Config
OS & Packages
Our Provision 1.0
Build & Unit Tests VCS
Provision Deployment
![Page 21: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/21.jpg)
Refactoring to 2.0
no shell
no jdeb
faster
easier
Windows OK
![Page 22: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/22.jpg)
3.ENVIRONMENTS
Computer by Danny Sturgess from the Noun Project
VM
App
OS & Packages
Config
OS & Packages
DEV TEST PROD
![Page 23: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/23.jpg)
Configuration
Global vs. Environment
mail.send.retry=3
reminder.intervall=7
mysql.url = jdbc:mysql://test-mysql-db/users
mySql.driver = com.mysql.jdbc.Driver
mySql.user = username
mySql.password = secretPassword
oracle.url = jdbc:oracle://oracle-test/bills
oracle.driver = oracle.jdbc.driver.OracleDriver
oracle.user = username2
oracle.password = secretPassword2
![Page 24: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/24.jpg)
Configuration
Global vs. Environment
mail.send.retry=3
reminder.intervall=7
mysql.url = jdbc:mysql://test-mysql-db/users
mySql.driver = com.mysql.jdbc.Driver
mySql.user = username
mySql.password = secretPassword
oracle.url = jdbc:oracle://oracle-test/bills
oracle.driver = oracle.jdbc.driver.OracleDriver
oracle.user = username2
oracle.password = secretPassword2
![Page 25: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/25.jpg)
Configuration
Global vs. Environment
mail.send.retry=3
reminder.intervall=7
mySql.driver = com.mysql.jdbc.Driver
oracle.driver = oracle.jdbc.driver.OracleDriver
mysql.url = jdbc:mysql://test-mysql-db/users
mySql.user = username
mySql.password = secretPassword
oracle.url = jdbc:oracle://oracle-test/bills
oracle.user = username2
oracle.password = secretPassword2
![Page 26: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/26.jpg)
Configuration
Global vs. Environment
deploy(ENV)
mail.send.retry=3
reminder.intervall=7
mySql.driver = com.mysql.jdbc.Driver
oracle.driver = oracle.jdbc.driver.OracleDriver
mysql.url = jdbc:mysql://test-mysql-db/users
mySql.user = username
mySql.password = secretPassword
oracle.url = jdbc:oracle://oracle-test/bills
oracle.user = username2
oracle.password = secretPassword2
![Page 27: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/27.jpg)
Latest Config
No branching!
![Page 28: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/28.jpg)
4. VM MANAGEMENT
Data Center Server Virtualization by Rahul KULKARNI from the Noun Project
VM
App
OS & Packages
Config
OS & Packages
![Page 29: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/29.jpg)
Desired State Configuration
Drift! Drift
![Page 30: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/30.jpg)
Phoenix Server
“clean slate“
Clone Golden Master
vs. DSC?
Phoenix Image: RoFra
![Page 31: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/31.jpg)
Technology
Packer & AWS AMI
VMWare VSphere
Phoenix Image: RoFra
![Page 32: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/32.jpg)
Security Patches?
Rotate by Thomas Helbig from the Noun Project
![Page 33: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/33.jpg)
„Immutable Servers
Freeze State
Logs
Config
DB/Storage
Image: Deutsche Fotothek
![Page 34: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/34.jpg)
Golden Master
VM Image
Pipeline
VCS Provision
DEV VM
OS & Packages
Clone VM & Provision
![Page 35: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/35.jpg)
Golden Master
VM Image
Pipeline
VCS Provision
DEV VM
OS & Packages
VCS App Code
Build & UT
Clone VM & Provision
![Page 36: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/36.jpg)
Golden Master
VM Image
Pipeline
VCS Provision
DEV VM
App & DEV Config
OS & Packages
Deploy
VCS App Code
Build & UT
Config
Clone VM & Provision
![Page 37: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/37.jpg)
Golden Master
VM Image
Pipeline
VCS Provision
DEV VM
App & DEV Config
OS & Packages
Deploy
VCS App Code
Build & UT
Config
Clone VM & Provision
Int Test
![Page 38: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/38.jpg)
Pipeline
VCS Provision
Deploy
VCS App Code
Build & UT
Config
Int Test
Deploy Test
Test VM
App & TEST Config
OS & Packages
DEV VM
App & DEV Config
OS & Packages
Clone VM & Provision
![Page 39: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/39.jpg)
Pipeline
VCS Provision
Deploy
VCS App Code
Build & UT
Config
Int Test
Deploy Test
Test VM
App & TEST Config
OS & Packages
Clone VM & Provision
![Page 40: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/40.jpg)
Pipeline
VCS Provision
Deploy
VCS App Code
Build & UT
Config
Int Test
Deploy Test
Test VM
App & TEST Config
OS & Packages
Clone VM & Provision
Deploy Prod
…
![Page 41: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/41.jpg)
Golden Master AMI
Packer Pipeline
VCS Provision
Temp Instance
Packer
![Page 42: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/42.jpg)
Golden Master AMI
Packer Pipeline
VCS Provision
Temp Instance
OS & Packages
Packer
![Page 43: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/43.jpg)
Golden Master AMI
Packer Pipeline
VCS Provision
Temp Instance
OS & Packages
Packer
Provisioned AMI
![Page 44: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/44.jpg)
Demo VM
App
OS & Packages
Config
OS & Packages
Network
Ansible Jar Deploy
Ansible Provision
Vagrant, Packer, Ansible EC2 Module
Terraform
https://github.com/davidvoelkel/infrastructure-as-code-demo https://youtu.be/AiAOLpshguM
![Page 45: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/45.jpg)
Resumee
Version & automate infrastructure
Living Documentation
Quality, “works on my machine“
Layers top to bottom
![Page 46: Infrastructure as Code für Anfänger - XP Days...Packer Pipeline VCS Provision Temp Instance OS & Packages Packer Provisioned AMI Demo VM App OS & Packages Config OS & Packages Network](https://reader034.vdocuments.mx/reader034/viewer/2022043023/5f3ea37b6f98ca42ea3ac883/html5/thumbnails/46.jpg)
@davidvoelkel