Infraestructure as Code

CLOUD COMPUTING

CLOUD COMPUTING

IaaS

Virtualización y Cloud Computing (IaaS) han forzado la necesidad de automatizar

as a Service

Utilizar aquello que se necesita solamente mientras se necesita (instanciar recursos, usar, desafectar)

Infraesturcture
as
code

CLOUD COMPUTING

Automatización

  • Ansible
  • Puppet
  • Chef
  • Salt
  • CFEngine
  • Terraform

Como código

  • Versionado
  • Test driven dev TDD
  • Continous integration CI
  • Agile & XP

CLOUD COMPUTING

Code -> Test -> Deploy -> Repeat

CLOUD COMPUTING

Automatizar la infraestructura hace posible repetir las acciones en un gran número de nodos.

 

Infraestructura como código usa las técnicas, prácticas y herramientas del desarrollo de software para asegurar que esas acciones son testeadas antes de ser aplicadas en los sistemas.

CLOUD COMPUTING

aws ec2 run-instances \
    --image-id ami-xxxxxxxx \
    --count 1 \
    --instance-type t2.micro \
    --key-name MyKeyPair \
    --security-group-ids sg-903004f8 \
    --subnet-id subnet-6e7f829e
aws ec2 describe-instances \
    --filters "Name=instance-type,Values=t2.micro" \
    --query "Reservations[].Instances[].InstanceId"
aws ec2 terminate-instances \
    --instance-ids i-5203422c

aws cli - imperativo

Deploy

Delete

Test

CLOUD COMPUTING

resource "aws_instance" "example" {
    ami                     = "ami-xxxxxxxx"
    instance_type           = "t2.micro"
    key_name                = "MyKeyPair"
    security_groups         = [ "sg-903004f8" ] 
    subnet_id               = "subnet-6e7f829e"
    tags = {
        Name = "MyInstance"
    }
    user_data               = "${file("userdata")}"
}
terraform destroy

terraform - declarativo

Deploy

Delete

Test

terraform apply
terraform plan

Natural
Computing

CLOUD COMPUTING

Pets

CLOUD COMPUTING

Desarrollo
tradicional

Se fortalece y se estabiliza el "servidor" hasta lograr un grado alto de "confiabilidad" en la plataforma.

CLOUD COMPUTING

Resolución de los problemas en el desarrollo de la infraestructura mediante técnicas de desarrollo de la naturaleza

Cows

CLOUD COMPUTING

Desarrollo
Natural

Se crean constantemente nuevos nodos que mejoran los nodos existentes y se desechan los nodos obsoletos.

CLOUD COMPUTING

Ver la infraestructura como un organismo en desarrollo permite acercarse a los procesos de resiliencia

 

Ej. Netflix "Chaos Monkey"

Sobre esta presentación

CLOUD COMPUTING

Atribución 4.0 Internacional (CC BY 4.0)

https://creativecommons.org/licenses/by/4.0/deed.es