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

Considerations in Cloud DevOps

Ben Whaley
October 23, 2014

Considerations in Cloud DevOps

Presented at BNY Mellon Silicon Valley Innovation Center, 10/22/2014

Video: https://www.youtube.com/watch?v=q-c20Z1ZN-I&list=UUODym48KciXOkpU_U62Ut6g

Ben Whaley

October 23, 2014
Tweet

More Decks by Ben Whaley

Other Decks in Technology

Transcript

  1. 0 900000000 1800000000 2700000000 3600000000 PCs Mobile Phones Connected Clients

    3.5 billion 1.8 billion Source: Andreessen Horowitz
  2. Growth in Connected Client Devices Units (millions) 0 400 800

    1,200 1,600 Jun 07 Jun 08 Jun 09 Jun 10 Jun 11 Jun 12 Jun 13 Tablets iPhone & Android PCs Source: Andreessen Horowitz
  3. IoT

  4. Mature Mobile • Use the cloud to enable rich native

    apps • Blur the line between apps and the web • Hyperlocal via iBeacons & NFC • Mobile != Smartphone
  5. Business Benefits • APIs engage customers, partners • Data pipelines

    for business analytics • Improved availability • Elasticity for • Cost savings • Capacity on demand • Focus on core competencies
  6. Systems • n+2 redundancy • Compute is ephemeral • Infrastructure

    is code resource "digitalocean_droplet" "www-1" {! image = "ubuntu-14-04-x64"! name = "www-1"! region = "nyc2"! size = "512mb"! private_networking = true! ssh_keys = [! "${var.ssh_fingerprint}"! ]! }!
  7. Systems • n+2 redundancy • Compute is ephemeral • Infrastructure

    is code • Less is more • Ubiquitous monitoring
  8. Systems • n+2 redundancy • Compute is ephemeral • Infrastructure

    is code • Less is more • Ubiquitous monitoring • Service discovery
  9. Applications • Loosely coupled • Deeply instrumented • Lean •

    Built to be disabled • Stateless • Robustly implemented “Be conservative in what you send, be liberal in what you accept”
  10. Applications • Loosely coupled • Deeply instrumented • Lean •

    Built to be disabled • Stateless • Robustly implemented • Continuously integrated
  11. Distributing Credentials 1. Seed credentials in the OS image Pros

    Cons Simpler bootstrap process Must load credential to image initially May be more difficult to modify Credentials in plain text in stored image
  12. Distributing Credentials 1. Seed credentials in the OS image! 2.

    Commit encrypted config data to DVCS repository Pros Cons Data stored alongside code in version control Distributing decryption key to nodes varies by tool Easily updated Key distribution
  13. Distributing Credentials 1. Seed credentials in the OS image! 2.

    Commit encrypted config data to DVCS repository! 3. Asymmetric encryption Pros Cons Public/Private key pair may already exist Requires mature, possibly automated cert infrastructure Easy rotation and revocation Limited implementations No shared secret
  14. Database Migrations 1. NoSQL vs Relational! 2. Multi-stage! a. Make

    backward compatible DB changes ! b. Run new code that is both backward and forward compatible! c. Migrate old data to new schema! d. Remove code that understands old schema! e. Clean up old schema
  15. Delivery Challenges 1. Zero downtime! 2. Distributing credentials! 3. Database

    migrations! 4. Distributing the code! 5. Updating the config! 6. Rollbacks