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

Getting started with containers on AWS (at Rackspace Van)

Abby Fuller
April 27, 2018
74

Getting started with containers on AWS (at Rackspace Van)

Abby Fuller

April 27, 2018
Tweet

Transcript

  1. 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
  2. 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)
  3. OK, so what are microservices? ”Service oriented architecture composed of

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

    OrderUI Shipping Service Order Service Inventory Service
  5. 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
  6. 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?
  7. So we built ECS Highly scalable, high performance container management

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

    production More customers running Kubernetes on AWS than anywhere else.
  9. “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”
  10. 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
  11. Containers are great, and orchestration tools help us out quite

    a bit… ...but containers are still a lot of heavy lifting
  12. 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
  13. 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.
  14. “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”
  15. So what does all of this mean for you if

    you’re working with AWS?
  16. 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)
  17. 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
  18. 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
  19. 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
  20. Fargate Launch quickly Scale easily No infrastructure Resource based pricing

    Containers on demand Manage everything at container level
  21. 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 [email protected] @nathankpeck @brentcontained @paulmaddox