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

Getting started with containers on AWS (at Rackspace Van)

E5b21a91ebcda83d51e9d59fdc0883cc?s=47 Abby Fuller
April 27, 2018
38

Getting started with containers on AWS (at Rackspace Van)

E5b21a91ebcda83d51e9d59fdc0883cc?s=128

Abby Fuller

April 27, 2018
Tweet

Transcript

  1. Getting started with containers on AWS Abby Fuller, Developer Relations,

    AWS @abbyfuller
  2. First things first… What are containers and why are people

    using them?
  3. What are containers? A container is an atomic, self-contained package

    of software that includes everything it needs to run (code, runtime, libraries, packages, etc.). A popular, widely-used container platform is Docker. More on that here: https://www.docker.com
  4. But Abby, I already have VMs.

  5. None
  6. Why are containers so popular? • Portable • Lightweight •

    Standardized • Easy to deploy • Along with containers, comes the “monolith to microservices” story: containers and microservices go hand in hand (more on that in a second)
  7. OK, so what are microservices? ”Service oriented architecture composed of

    loosely coupled elements that have bounded contexts.” - Adrian Cockroft
  8. webserver .package Order UI Order Service Inventory Service Shipping Service

    OrderUI Shipping Service Order Service Inventory Service
  9. Managing one container is easy Server Guest OS Bins/Libs Bins/Libs

    App2 App1
  10. Managing many containers is hard Server Guest OS Server Guest

    OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS Server Guest OS
  11. Enter container orchestration tools

  12. What are container orchestration tools? Framework for managing, scaling, deploying

    containers.
  13. For AWS, the story starts in 2014

  14. We’ve had customers running Docker on EC2 from the very

    beginning…
  15. But there were pain points. Things like scheduling, placing, managing

    and deploying containers were difficult. They wanted something to make those pain points better. Remember when I said orchestration tools were frameworks for helping with management and deployment?
  16. So we built ECS Highly scalable, high performance container management

    system A managed platform ECS Cluster management Container orchestration Deep AWS integration
  17. But ECS isn’t the only way to run containers in

    production More customers running Kubernetes on AWS than anywhere else.
  18. “Deploying Kubernetes in a highly available configuration on AWS is

    not for the faint of heart and requires you to get familiar with its internals, but we are very pleased with the results”
  19. None
  20. “Run Kubernetes for me”

  21. So we built EKS Platform for enterprises to run production-grade

    Kubernetes-grade installations EKS Managed and upstream experience Seamless, native integration with AWS services Contributes back to open source community
  22. There’s a theme here: “run my containers FOR me”

  23. Containers are great, and orchestration tools help us out quite

    a bit… ...but containers are still a lot of heavy lifting
  24. AWS Fargate No cluster or infrastructure to manage or scale

    Everything is handled at the container level Scale seamlessly on demand Underlying technology for container management
  25. What does Fargate mean? No worrying about scaling, service mesh,

    underlying infrastructure, cluster resources, capacity, setup. Just give it a task definition or pod (in 2018), set some resource limits, and away you go.
  26. “When someone asks you for a sandwich, they aren’t asking

    you to put them in charge of a global sandwich logistic chain. They just want a sandwich”
  27. With Fargate: focus on your workload (job, container, function, task)

    first. Full stop.
  28. How everyone thinks about compute is changing.

  29. Treat containers, and thus Tasks as a fundamental, compute primitive.

  30. IAM Roles for Tasks Task Auto Scaling Task Load Balancers

    Task Networking
  31. So what does all of this mean for you if

    you’re working with AWS?
  32. Bottom line: lots of options for running container workloads on

    AWS
  33. What does the landscape look like all together? Amazon ECS

    (available now) Amazon EKS (preview) Fargate mode for ECS (available now) Fargate mode for EKS (available 2018)
  34. ECS Easiest way to deploy and manage containers Integration with

    entire AWS platform ALB, Auto Scaling, Batch, Elastic Beanstalk, CloudFormation, CloudTrail, CloudWatch Events, CloudWatch Logs, CloudWatch Metrics, ECR, EC2 Spot, IAM, NLB, Parameter Store, and VPC Scales to support clusters of any size Service integrations (like ALB and NLB) are at container level 1 2 3
  35. What we did with ECS in 2017 Container access to

    environmental metadata Network Load Balancer support Console support for SpotFleet Override parameters for RunTask and StartTask APIs Task Elastic Network Interface Application Load Balancer Support HIPAA eligibility Console UX improvements CLI V1.0 Container instance draining Windows containers Cron and Cloudwatch Event Task scheduling Support for Docker Privileged Mode Lifecycle Policies for container images Beijing Region Support for Device and Init flags Add attributes during boot Seoul Region Linux capabilities
  36. EKS Managed Kubernetes on AWS Highly available Automated version upgrades

    Integration with other AWS services Etcd Master Managed Kubernetes control plane CloudTrail, CloudWatch, ELB, IAM, VPC, PrivateLink
  37. Fargate Launch quickly Scale easily No infrastructure Resource based pricing

    Containers on demand Manage everything at container level
  38. How can I get some help when I need it?

  39. Tons of resources • First off: Rackspace! We will hear

    from Jerry Hargrove on that in just a sec. • Meet 1:1 with an AWS SA (there are SAs here with us today!) • Try a Slack channel: awsdevelopers.slack.com amazon-ecs.slack.com • Or reach out to one of us directly: @abbyfuller or abbyfull@amazon.com @nathankpeck @brentcontained @paulmaddox
  40. The awesome-ecs project: https://github.com/nathanpeck/awesome-ecs

  41. Workshops! • From @brentcontained • https://t.co/ba0usbZqHN

  42. Go build (and tell us about it)!

  43. Questions? @abbyfuller