infrastructure as code so far
play

Infrastructure as Code So far.. .. Server-based systems (IaaS) - PowerPoint PPT Presentation

Infrastructure as Code So far.. .. Server-based systems (IaaS) Low-level infrastructure exposed Manage dozens of custom containers and VMs needed to run your site Flexible, but high management costs Manual creation and


  1. Infrastructure as Code

  2. So far.. ..  Server-based systems (IaaS)  Low-level infrastructure exposed  Manage dozens of custom containers and VMs needed to run your site  Flexible, but high management costs  Manual creation and deployment of nodes time-consuming  Networking setup and load balancing complex/error-prone  Serverless systems (storage, databases, platforms, containers, functions)  Write a program, deploy it on auto-scaling platform  Infrastructure completely abstracted out  No management costs, but not flexible  Coarse control over how and when to scale infrastructure  Restrictions on platform environment Portland State University CS 430P/530 Internet, Web & Cloud Systems

  3. Infrastructure frastructure as s Code  Obtain benefits of serverless  Automation and low management costs  While also retain the benefits of low-level server access  Performance optimization, resource allocation flexibility, and resource cost  How?  Use code to create, configure, deploy, and manage VMs and containers  "Create-your-own" PaaS!  Recall SDNs  Programmatic configuration of routes, virtual networks, traffic engineering policies  IAC is the SDN analogy for virtual machines and containers Portland State University CS 430P/530 Internet, Web & Cloud Systems

  4. Infrastructure frastructure as s Code  Two pieces  Configuration management (setting up images)  Deployment management (run-time orchestration/monitoring of instances) Portland State University CS 430P/530 Internet, Web & Cloud Systems

  5. IAC C for Virtual tual ma machines hines  Configuration management  Initially Vagrant  Manual individual control  Imperative scripting approaches (run commands on VMs all at once)  Ansible (playbooks)  Chef (recipes)  Scripts attached to VM image templates  Declarative approaches (Puppet)  Both (SaltStack)  Deployment management (orchestration)  Create, deploy, and monitor VMs over multiple cloud providers (Terraform)  Or single provider  AWS Cloud Formation  Google Cloud Deployment Manager (Used in CDN lab and Thunder CTF) Portland State University CS 430P/530 Internet, Web & Cloud Systems

  6. IAC C for Container tainers  Configuration management  Setup and configure collections of containers (Docker)  Deployment management (orchestration)  Automatically configure, deploy, and monitor clusters of containers, as well as keep them running  This class… Portland State University CS 430P/530 Internet, Web & Cloud Systems

  7. Container tainer orchestration estration  Two pieces  A declarative, programmatic way of specifying containers and their run- time configuration  A daemon (orchestration controller) that monitors and maintains specification at run-time Portland State University CS 430P/530 Internet, Web & Cloud Systems

  8. Ex Example ple  Specification  Scaling and replication (run N copies or autoscale based on metric)  “Run 10 versions of a container at all times”  "Keep adding containers until load < 0.5"  Configuring network connectivity and load balancing (rather than having to specify IP addresses)  Daemon  Launches replicas  Performs run-time health monitoring and handles machine failures Portland State University CS 430P/530 Internet, Web & Cloud Systems

  9. Ex Example: ple: Go Google gle Bo Borg g (2003) 3)  Ops tool to automate cluster management  https://research.google.com/pubs/pub43438.html  Declarative language specifies what to run and how to run it  Borg controller monitors and maintains specification when nodes go down  Allows developer to focus on application logic, not machine management  Obviates the need to ssh into ANY machines  Re-implemented and spun out as an open- source project called… Portland State University CS 430P/530 Internet, Web & Cloud Systems

  10. Kubernetes Google Kubernetes Engine AWS Elastic Container Service for Kubernetes Azure Kubernetes Service

  11. Kub ubern ernetes es (2014) 4)  Container orchestration system  Reimplementation of Google’s “Borg” in Go  "Cloud Deployment Manager" or "Cloud Formation" but for containers not VMs.  Open-source, managed by Cloud Native Computing Foundation  White-board level specification of computing infrastructure  Custom PaaS via specification  Traditional PaaS opinionated (must fit your application into their model)  Logical system view decoupled from cloud provider Portland State University CS 430P/530 Internet, Web & Cloud Systems

  12. Kub ubern ernetes es (2014) 4)  Automated and reproducible deployment  Self-healing  Auto-scaling  Portable  Can use for on premises, cloud, or multi-cloud deployments (configurations run the same) Portland State University CS 430P/530 Internet, Web & Cloud Systems

  13.  Manages all Google services (Mail, Search, Maps etc)  Used by Uber, Bloomberg, Lyft, New York Times, eBay Portland State University CS 430P/530 Internet, Web & Cloud Systems

  14. Portland State University CS 430P/530 Internet, Web & Cloud Systems

  15. Portland State University CS 430P/530 Internet, Web & Cloud Systems

  16. Rais ises es th the e level el of abst stract raction ion  Infrastructure abstracted away as with serverless "The cloud now is way too focused about the infrastructure, the machines, the disks, and that is not the path to productivity…It would be nice if we could pretend they don't exist at all and Kubernetes is absolutely a step in that direction" "The new cloud is about services and APIs and has nothing to do with infrastructure. (The infrastructure) is there, (Google) will manage it, we will make it secure, but as a developer, you shouldn't need to know." Eric Brewer (4/24/2018) Portland State University CS 430P/530 Internet, Web & Cloud Systems

  17. Ex Example ple  Run 10,000 copies of a site inside a data center…  Painful! Portland State University CS 430P/530 Internet, Web & Cloud Systems

  18. Aut utoma mation tion via a sp spec ecif ification ication Portland State University CS 430P/530 Internet, Web & Cloud Systems

  19. Portland State University CS 430P/530 Internet, Web & Cloud Systems

  20. Kub ubern ernetes es concepts ncepts  Nodes = machine running container  e.g. a Compute Engine instance  Pods  One or more related containers sharing storage, configuration on a node  Web front end and its logging facility run on separate containers, but in a single pod  Services  Defines a way to access pods externally via an IP address and port  Controller  Service that monitors pods to ensure the desired number of replicas are always running Portland State University CS 430P/530 Internet, Web & Cloud Systems

  21. Portland State University CS 430P/530 Internet, Web & Cloud Systems

  22. Kub ubern ernetes es  The Illustrated Children’s guide (8:20) https://www.youtube.com/watch?v=4ht22ReBjno  Cartoon introduction https://cloud.google.com/kubernetes- engine/kubernetes-comic/  Kubecraft (1:50) https://www.youtube.com/watch?v=A4qwsSEldHE Portland State University CS 430P/530 Internet, Web & Cloud Systems

  23. De Deplo ploying ying Kub uberne ernetes es  kubectl command to interact with master controller  Specification in YAML Portland State University CS 430P/530 Internet, Web & Cloud Systems

  24. Case se st stud udy Portland State University CS 430P/530 Internet, Web & Cloud Systems

  25. Case se st stud udy: y: Pokem emon on Go Go  Published by Niantic (augmented reality startup company)  Created as a spin-off of Google Earth's toy app Ingress  Single, shared, virtual world overlaid upon real world  World state consistent across all users  But, has an n 2 scaling problem!  Built on Google Cloud Platform  Initially on App Engine  Provisioned for launch numbers based on prior launches of other top- tier mobile games multiplied by 5  Released July 5, 2016 Portland State University CS 430P/530 Internet, Web & Cloud Systems

  26.  But then,  Provisioned number for global use met in just two countries  Within 1 week, 50x more users than expected  8.7 billion km walked in first 6 months (past Pluto or 200k times around Earth)  Scaled seamlessly* with no change to software  Built on Java (server)  C#, C++, Objective C, Unity (client)  Cloud Datastore (Distributed NoSQL)  Shifted to Kubernetes for better control over scaling components Portland State University CS 430P/530 Internet, Web & Cloud Systems

  27. Case se st stud udy: y: Home me De Depot pot  Single monolithic site with single monolithic database  Site split into microservices and migrated to containers for developer efficiency  Store finder service  Promotions service  Product information service  Removes centralized bottleneck in managing site  Individual DevOps teams develop individual microservice/containers  Containers and microservices orchestrated using Kubernetes Portland State University CS 430P/530 Internet, Web & Cloud Systems

  28. Other migrations… Portland State University CS 430P/530 Internet, Web & Cloud Systems

Recommend


More recommend