3. • We all use ARM templates, right?
• Good, we can go home then. Thanks!
• But seriously, ARM templates are important
and everyone should be using them but we
can do more
Making our lives easier
3
4. • Using 100% PaaS makes you the coolest
kid on the block
• Sometimes in an enterprise environment
we cannot go “all in” immediately
–Software support
–Cost associated to migration/orchestration
• So in reality we still use a lot of “legacy”
Make infrastructure great again
4
5. • Infrastructure automation tools to the
rescue!
• We want to:
–Automate configuration of VMs
–Automate infrastructure management
–Automate application deployment
What can we do and use
5
6. • Create and manage environments in a
consistent manner
• Automation is key to cost & time savings,
minimize human errors, standardize testing,
development, and production
So we need to find tools to
6
7. • Various traditional and common
configuration managers (i.e. install and
manage software) available:
–Chef
–Puppet
–Ansible
–Even PowerShell DSC or Azure Custom
Script Extension
VM configuration automation
7
8. • Pros and cons vary and you might be used
to something already
• Ansible is agentless
• Ansible is available in Azure Cloud Shell
Configuration managers - e.g. Ansible
8
10. • Using configuration managers to install new
versions of software is nice and easy
• Will eventually lead to configuration drift,
each server is a bit different to another
• Can cause weird and awesome bugs that
take time to solve
Configuration drift
10
11. • Management with orchestration tools help
create immutable infrastructure
• Changes are in fact new deployments
–For example a server image is updated with
new version of Nginx, new services are
deployed from that image and old versions
are removed
Orchestration tools to the rescue
11
12. • Opensource tool for creating identical machine
images for multiple platforms from a single source
configuration.
• Runs on every major operating system, and is
highly performant, creating machine images for
multiple platforms in parallel.
• Does not directly replace configuration
management like Chef, Puppet or Ansible. When
building images, it can use these to install software
onto the image.
Packer
12
13. • Uses Builders to create machine images. These
can be Azure, Amazon EC2, Hyper-V, Vmware,
etc.
• Uses Provisioners to install and configure the
machine image after booting. For example Ansible,
PowerShell, or local scripts
• Can use Post-Processors to optionally manage
image after creations
Packer cont.
13
16. • Opensource tool for building, changing, and
versioning infrastructure
• Configuration files can contain components
to run single application or even whole
datacenter
• Configuration changes can be easily planed
and previewed
Terraform
16
17. • Why would you use it if you have perfectly
good ARM templates
• It supports multiple environments like
Azure, AWS, GCP, vSphere
– ARM templates and CloudFormation for
example are cloud specific
• Provider can be for example Palo Alto
Terraform
17
21. • Finally we come to automating application
deployment and delivery
• You all know the game, you pick your
favorite flavor, i.e. VSTS, Jenkins, etc.
• Add a dash of Git to keep your scripts in
order and versioned
–And you already have your ARM templates
here obviously
Upping your game with CI/CD
21