Top Banner
Provisioning Environments A simplistic approach
32
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Provisioning  Environments, a simplistic approach

Provisioning EnvironmentsA simplistic approach

Page 2: Provisioning  Environments, a simplistic approach

Who?

Eder Roger

@EderRoger

https://github.com/EderRoger

Wender Freese

@WenderFreese

https://github.com/wenderjean

Page 3: Provisioning  Environments, a simplistic approach

Agenda

● Devops

● Vagrant

● Puppet

● A real example

● Questions?

Page 4: Provisioning  Environments, a simplistic approach

What this presentation is not about?

● Configuring nginx or other servers

● Loadbalancing

● Configuring MongoDB or other DB's

● MongoDB replicaset

Page 5: Provisioning  Environments, a simplistic approach

Devops

Anything that makes interactions between

development and operations, better."Thomas Limoncelli"

Page 6: Provisioning  Environments, a simplistic approach
Page 7: Provisioning  Environments, a simplistic approach

Devops = Agility + Cooperation

Page 8: Provisioning  Environments, a simplistic approach

Problem #1 (Deploy)

More Changes

More Commits

More Deploys

Less time

Page 9: Provisioning  Environments, a simplistic approach

Interactions between devs and ops, why?

Page 10: Provisioning  Environments, a simplistic approach

Interactions between devs and ops, why?

Page 11: Provisioning  Environments, a simplistic approach

Problem #2 (New dev comes)

Creating an environment

Install Java

Install Tomcat

Install DB

Start to code

Page 12: Provisioning  Environments, a simplistic approach
Page 13: Provisioning  Environments, a simplistic approach

What is Vagrant?

Simple way to create virtualized

environment…

Yes, it’s a tool.

It started in January 2010 by

Mitchell Hashimoto

https://www.vagrantup.com/

Page 14: Provisioning  Environments, a simplistic approach

What problems are solved?

● Reproducible

● Portable

● Agility

● Automation

● no more "works on my machine"

Page 15: Provisioning  Environments, a simplistic approach

Compatibility

Page 16: Provisioning  Environments, a simplistic approach

How does it works?

Page 17: Provisioning  Environments, a simplistic approach

All starts in a Vagrantfile

Page 18: Provisioning  Environments, a simplistic approach

All starts in a Vagrantfile

$ vagrant up

$ vagrant ssh database

Trust, that's all...

Page 19: Provisioning  Environments, a simplistic approach

Is it just this?

Page 20: Provisioning  Environments, a simplistic approach

No, we have more...

Just an environment won't help you...

Puppet

Page 21: Provisioning  Environments, a simplistic approach

What is Puppet?

Puppet is IT automation software that defines

and enforces the state of your infrastructure.

● Is a language

● Is an infrastructure manager

Page 22: Provisioning  Environments, a simplistic approach

Whaaaat!!!

Page 23: Provisioning  Environments, a simplistic approach

Remember Vagrant file?

Page 24: Provisioning  Environments, a simplistic approach

Puppet flexibility

If you have an available environment, you will

probably installs some apps/services on it.

Page 25: Provisioning  Environments, a simplistic approach

Shellcode X Puppet

Page 26: Provisioning  Environments, a simplistic approach

You need a manifest file

Puppet language files are called "manifests"

manifests/config.pp

Page 27: Provisioning  Environments, a simplistic approach

Modules and Puppet community

● You don't need to make all by yourself

● Use modules available by community

https://forge.puppetlabs.com/

Page 28: Provisioning  Environments, a simplistic approach

Using a module

Page 29: Provisioning  Environments, a simplistic approach

A real example

APP SERVER 1

APP SERVER 2

APP SERVER 3

NGINX

REPLICA SET

MONGO 3

MONGO 1

MONGO 2

DRIVER

DRIVER

DRIVER

LB

https://github.com/EderRoger/nginx_loadbalancer

Page 30: Provisioning  Environments, a simplistic approach
Page 31: Provisioning  Environments, a simplistic approach
Page 32: Provisioning  Environments, a simplistic approach