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

Code.Talks 2016 - How To Hot-swap Your Containe...

Code.Talks 2016 - How To Hot-swap Your Container Platform

In the age of Continuous Delivery, Containerized applications, and Cloud-based infrastructure, having a platform that is never down is as important as ever. Just as important is that your platform is easy to maintain. Yet this is often not the case. So how can we create a container platform, in the cloud, that is never down, and offers ease of maintenance? The answer is to create a container platform where every component can be hot-swapped, and in this talk I will explain the general principles behind these hot-swappable container platforms, and show you how you can create a container platform that you can completely replace without your users noticing.

Avatar for Benny Cornelissen

Benny Cornelissen

September 30, 2016
Tweet

More Decks by Benny Cornelissen

Other Decks in Technology

Transcript

  1. I am a Infrastructure Architect at Xebia. I have been

    building infrastructure for over a decade, with focus on automation, resiliency and maintainability. I once built mobile datacenters that were built into shipping containers, and that were located in the desert. I also enjoy Belgian beer, coffee, travelling, and cycling.
  2. Container-based Infrastructure App IaaS App App Container Platform Scheduling Service

    Discovery Routing & Proxy App App App App Storage Logging Metrics Linux-based OS
  3. We had a minor failure last night at 01:25. Etcd

    broke on one of the nodes, so I replaced it at 01:26. Everything was back to normal at 01:30. Love, Platform
  4. A platform that is hard to maintain will become a

    very expensive piece of tech debt
  5. Reference Stack App AWS App App Container Platform Fleet Consul

    Nginx App App App App S3 / RDS ELK Sysdig CoreOS
  6. Infrastructure as Code Static Host OS High Availability By Default

    Use Autoscaling Externalize Data Automated Repeatable Bootstrapping
  7. Terraform resource "aws_instance" "myinstance" { instance_type = "t2.small" ami =

    "ami-cda312be" root_block_device { delete_on_termination = true volume_size = 20 } key_name = "${aws_key_pair.data-team.key_name}" security_groups = ["${aws_security_group.data- team.name}"] } myinstance.tf
  8. CoreOS CoreOS CoreOS CoreOS Auto Scaling Group App App App

    Proxy Proxy Proxy Proxy Back end Back end Back end Elastic Load Balancer
  9. CoreOS CoreOS CoreOS Auto Scaling Group App App Proxy Proxy

    Proxy Back end Back end Elastic Load Balancer
  10. CoreOS CoreOS CoreOS Auto Scaling Group App App Proxy Proxy

    Proxy Back end Back end Elastic Load Balancer App Back end
  11. CoreOS CoreOS CoreOS Auto Scaling Group App App Proxy Proxy

    Proxy Back end Back end Elastic Load Balancer App Back end CoreOS Proxy
  12. Use Public Discovery Service Use Private Discovery Service Use DNS-based

    Discovery Use Manual Bootstrapping Bootstrap Etcd?
  13. Bootstrapping Etcd • Determine if a cluster exists • If

    not, start a cluster • Otherwise, join cluster CoreOS CoreOS CoreOS Autoscaling Group Etcd Etcd Etcd
  14. Infrastructure as Code Static Host OS High Availability By Default

    Use Autoscaling Externalize Data Automated Repeatable Bootstrapping
  15. A platform that is hard to maintain will become a

    very expensive piece of tech debt
  16. Infrastructure as Code Static Host OS High Availability By Default

    Use Autoscaling Externalize Data Automated Repeatable Bootstrapping