cluj.devops meetup - code your infrastructure

64

Upload: liviu-damian

Post on 11-Apr-2017

132 views

Category:

Technology


0 download

TRANSCRIPT

Welcome

Who am I?

Liviu DamianFreelancer

Cluj.DevOps

Why?

How?

When?

We want you here :-)

Partners

Co-organizer and Technology Partner

Venue

Recruitment Partner

Code your Infrastructurewith Packer, Ansible and Terraform

Today’s Landscape

Complex apps === Complex infrastructure

Hundreds of repetitive tasks === less time for innovation

Infrastructure roll-back is difficult

● Complex apps === Complex infrastructure

● Hundreds of repetitive tasks === less time for innovation

● Infrastructure roll-back is difficult

Possible Solutions?

Configuration Management(Ansible, Chef, cfengine, Puppet, SaltStack)

Continuous Deployment(Spinnaker, GoCD)

Infrastructure Orchestration(Packer, Terraform, CloudFormation, Heat)

● Configuration Management○ Ansible

● Infrastructure Orchestration○ Packer, Terraform

Benefits

Less risk for human error

Faster provisioning

Reduced downtime

Easier scalability

Consistency

Roll-back and Versioning

● Less risk for human error● Faster provisioning● Reduced downtime● Easier scalability● Consistency● Roll-back and Versioning

Packer

Modern tool for creating (not only) Cloud machine images

Packer Components

Multiple Providers(AWS, Azure, DO, GCE, OpenStack, VirtualBox, etc.)

Great provisioner support(Shell scripts, Ansible, Chef, Puppet, Salt, Powershell)

Post-processors(save artifacts as Docker Image, Vagrant Machine,

etc.)

Extendable through plugins

JSON Configuration File

● Multiple Providers○ AWS, Azure, DO, GCE, OpenStack, VirtualBox,

etc.● Great provisioner support

○ Shell scripts, Ansible, Chef, Puppet, Salt, Powershell

● Post-processors○ Save artifacts as Docker Image, Vagrant

Machine, etc.● Extendable through plugins● JSON Configuration File

Ansible

Idempotent Configuration Management

Agentless architecture

Orchestration over SSH (might feel slower compared to other solutions)

Actions are defined in “Playbooks”

Playbooks are essentially YAML files

Reusable components (roles) in Ansible Galaxy - https://galaxy.ansible.com/

● Idempotent Configuration Management● Agentless architecture● Orchestration over SSH (slower, but more secure

than other solutions)● Actions are defined in “Playbooks”● Playbooks are essentially YAML files● Reusable components (roles) in Ansible Galaxy -

https://galaxy.ansible.com/

Terraform

Building, Changing and Versioning Infrastructure made easy

Platform Agnostic

Simultaneously orchestrate across multiple platforms

Not a Configuration Management tool

High Level Syntax for describing resources(similar to JSON)

IaaS Support(AWS, Azure, CloudStack, DO, GCE, OpenStack, etc.)

PaaS Support(Heroku)

SaaS Support(CloudFlare, DNSimple, Mailgun, etc.)

Service Support(Cobbler, Consul, MySQL, PostgreSQL, PowerDNS )

● Building, Changing and Versioning Infrastructure made easy

● Platform Agnostic● Simultaneously orchestrate across multiple

platforms● Not a Configuration Management tool● High Level Syntax for describing resources● IaaS Support● SaaS Support● Service Support

DEMO

github.com/liviudm/cdo_cyi

Q&A

Happy break :-)