Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloud & DevOps: Let's talk about Infrastructure as Code?

Cloud & DevOps: Let's talk about Infrastructure as Code?

Cloud Computing is a reality. Big IaaS players (AWS, Google Compute, Digital Ocean) and private cloud solutions (CloudStack, OpenStack) have evolved in a considerable way to the point that provision network interfaces, disk units and servers from API calls.

As Cloud here to stay, the same is with DevOps (Development & Operations) movement. Collaboration between these teams is fundamental to deliver software with more agility and quality. Development generates code. And, with the evolution of Cloud Computing, naturally arose the need to manage common infrastructure resources and machine configuration using source code too.

Marcelo Pinheiro

September 26, 2015
Tweet

More Decks by Marcelo Pinheiro

Other Decks in Technology

Transcript

  1. Cloud & DevOps - Let’s talk about Infrastructure as Code?

    Marcelo Pinheiro http://salizzar.net - @salizzar
  2. $ whoami • Fireman / Problem Solver / Programmer since

    2000 • Ruby, Python, Golang, Java, C#, Classic ASP, PHP, Coldfusion, Erlang and others • Fought, made coffee, negotiated deadlines • DevOps Engineer
  3. Infrastructure as Code: The Challenge • Let’s suppose a Load

    Balancer in front of three servers • Each server is a Docker machine running a Nginx container serving HTML • Each server runs in a different zone (High Availability for the win)
  4. Old-fashioned servers • It’s like a pet. You need to

    take care. • You need to think about physical things like disks, network card, RAM, CPU, cooling, energy failover and so on • $$$ • Too sensible to upgrade things like kernel, system libraries and security patches • Manual deployment • FTP, Ctrl+C Ctrl+V, with luck using OS packages • OH MAN I CAN’T ROLLBACK THIS CHANGE! IS TOO DANGEROUS!
  5. Cloud Computing: today • It’s like a cattle. You must

    take care, but not so much. • You need more memory? Upgrade to a new one • You need more disk? Attach a new one or create a new server with more space • You need more CPU? Upgrade to a new one • You need more one network device? Attach a new one • No worry about datacenter costs like cooling, energy and so on
  6. Cloud Computing: today • Server resources like CPU, RAM, network

    devices, disks are provisioned using REST API’s • IaaS players: • AWS • Google Compute • DigitalOcean • Private Cloud solutions: • CloudStack • OpenStack
  7. DevOps: their importance • Collaborative way between development and operation

    teams to deliver software fast with quality • This speed have a strategic role on business decisions: • A/B Testing (to prototype and test new features) • Metrics (to get customer feedback) • Feature flag (to enable features when ready) • More than tools, is a culture to be created in your company • WE ALL ARE A TEAM INSIDE THE SAME BOAT
  8. Naturally, Ops people start to need server administration in code

    too due for these evolution and practicality. Dynamic Languages today abstract it.
  9. Configuration Management • How software is updated today? • Using

    a Configuration Management tool • Think in something like a recipe to manage a existent server • Most famous: • 1st generation: CFEngine • 2nd generation: Chef, Puppet • 3rd generation: Ansible, SaltStack
  10. Infrastructure as Code: the next step • With the evolution

    of IaaS players / Private Cloud solutions, a smart guy - aka Mitchell Hashimoto - was thinking the same with infrastructure • Terraform • Human-readable recipes to create servers on cloud • Instances, disks, network interfaces or a ENTIRE private virtual cloud can be created with it • Packer • Automate creation of snapshots from instances or containers to be ready in a scalable environment