1/56
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Containers are a method of what…
What do containers enable?
Operating system virtualization
Enables you to run an application and its dependencies in resource-isolated processes
Easily package an application’s code, configurations, and dependencies into easy-to-use building blocks that deliver environment consistency etc.
Benefits of containers…
Repeatable.
Environmental consistency
Self-contained environments.
Software runs the same in different environments.
Developer's laptop, test, production.
Faster to launch and stop or terminate than virtual machines
When you use containers, what does it help with?
You can easily package an application's code, configurations, and dependencies into easy-to-use building blocks that deliver environmental consistency, operational efficiency, developer productivity, and version control
Are containers smaller or bigger than virtual machines?
Smaller
Do containers contain an entire OS?
They do NOT contain an OS
How do containers run?
Containers run as a resource-isolated process and share a virtualized operating system
What is a Docker?
Software platform that enables you to build, test, and deploy applications quickly
What do you run on Dockers and what can a Docker do to affect the ________?
Containers
The Docker uses simple commands that you can use to build, start, or stop containers
Packages software (such as applications) into containers
How are containers created?
Created from a template called an image
Container has everything a software application needs to run (what are they)
Libraries
System Tools
Code
Runtime
When should a Docker be used as a solution?
Deploy and scale applications into any environment
Standardize environments
Reduce conflicts between language stacks and versions
Use containers as a service
Run microservices using standardized code deployments
Require portability for data processing
Difference between containers and virtual machines
Virtual machines run directly on a hypervisor
Containers can run on any Linux OS if they have the appropriate kernel feature support and the Docker daemon is present
Amazon ECS
A highly scalable, fast, container management service
Benefits of ECS:
Orchestrates the running of Docker container
Maintains and scales the fleet of nodes that run your containers
Removes the complexity of standing up the infrastructure
Essential Amazon ECS featured include the ability to:
Launch up to tens of thousands of Docker containers in seconds
Monitor container deployment
Manage the state of the cluster that runs the containers
Schedule containers by using a built-in scheduler or a third-party scheduler
Task Definition
Text file that describes one or more containers, up to a maximum of ten, that form your application
Can be thought of as a blueprint for your application
Task
Instantiation of a task definition within a cluster
Can specify the number of tasks that will run on your cluster (can run anywhere from one to ten containers, depending on the task definition you defined)
Amazon ECS task scheduler
Responsible for placing tasks within your cluster
ECS Cluster
Consists of a group of EC2 instances, each of which is running an Amazon ECS Container agent
If you want to manage the Amazon ECS cluster that runs the containers…
Create an Amazon ECS cluster backed by Amazon EC2 (provides virtual machines, more granular control over infrastructure)
If you don’t want to manage the Amazon ECS cluster that runs the containers…
Create an Amazon ECS cluster backed by AWS Fargate (easy to maintain, large focus on applications)
When you create an Amazon ECS cluster, you have three options:
A Networking Only cluster (powered by AWS fargate)
An EC2 Linux + Networking cluster
An EC2 Windows + Networking cluster
Kubernetes is what…
Open source software for container orchestration
What is Kubernetes and what can Kubernets do?
Open source software for container orchestration
Deploy and manage containerized applications at scale
The same toolset can be used on premises and in the cloud
What else can Kubernetes do?
Complements Docker
Docker enables you to run multiple containers on a single OS host
Kubernetes orchestrates multiple Docker hosts
Automates —
Container provisioning
Networking
Load distribution
Scaling
Containerized applications
You can run any type of application by using the same toolset in both on-premises data centers and the cloud
Nodes
Cluster of compute instances
Pods
Containers are run in logical groupings
Run and scale one or many containers together
Given an IP address and a single Domain Name System name, which Kubernetes uses to connect your services with each other and external traffic
Amazon EKS
Enables you to run Kubernetes on AWS
Certified Kubernetes conformant
Supports Linux and Windows containers
Compatible with Kubernetes community tools and supports popular Kubernetes add-ons
What should you use Amazon EKS for?
Manage clusters of Amazon EC2 compute instances
Run containers that are orchestrated by Kubernetes on those instances
Amazon ECR
Fully managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images
Serverless computing
Enables you to build and run applications and services without provisioning or managing servers
Third approach to computing (this does NOT require you to provision or manage servers):
AWS Lambda (servless computing)
AWS Lambda is…
An event-driven, serverless compute service
Enables you to run code without provisioning or managing servers
Provides built-in fault tolerance and automatic scaling
Lambda function
AWS resource that contains the CODE that you upload
Set the Lambda function to be triggered, either on a scheduled basis or in response to an event
Principle of AWS Lambda:
You pay only for the compute time you consume
You are NOT charged when your code is not running
Benefits of Lambda
Supports multiple programming languages (Java, Go, PowerShell, Node.js, C#, Python, and Ruby)
Completely automated administration
Built-in fault tolerance
Supports the orchestration of multiple functions
Pay-per-use pricing
Event source
AWS service or a developer-created application that produces events that trigger an AWS Lambda function to run
What can you PULL records from and run a Lambda function for each fetched message?
Amazon Simple Queue Service (SQS)
Lambda can read events from…
Amazon DynamnoDB
What can invoke your Lambda function directly?
Elastic Load Balancing (Application Load Balancer)
Amazon API Gateway
Lambda Console
Lambda API
SKS, CLI, and toolkits
Automatically monitors Lambda functions using WHAT?
Amazon CloudWatch
What else does Lambda do about monitoring?
Automatically stores logs that are generated by your code through Amazon CloudWatch Logs
When you use the AWS Management Console to create a Lamda Function, you first give the function a name. Then, you specify:
The runtime environment (such as Python)
The execution role (to grant IAM permission to the function so that it can interact with other AWS services as necessary)
After you click Create Function, what is next?
Add a trigger (specifies one of the available event sources from the previous slide)
Add your function code (use the provided code editor or upload a file that contains your code)
Specify the memory in MB to allocate to your function
What is a Lambda deployment package?
ZIP archive that contains your function code and dependencies
Soft Limits per Region (AWS Lambda quotes):
Concurrent executions = 1,000
Function and layer storage = 75 GB
Hard limits for individual functions:
Maximum function memory allocation = 10,240 MB
Maximum run time = 15 minutes
Deployment package size = 250 MB unzipped, including layers
Container image code package size = 10 GB
Layer
ZIP archive that contains libraries, a custom runtime, or other dependencies
Use libraries in your function without needing to include them in your deployment package
Deployment package
Using layers can help you avoid reaching the size limit for deployment pakcages
Soft limits
An account can potentially be relaxed by submitting a suppor tticket and providing justification for the reqest
Hard limits
Cannot be increased
AWS Elastic Beanstalk
PaaS which provides an easy way to get web applications up and running
Enhances developer productivity
More about Elastic Beanstalk
A managed service that automatically handles —
Infrastructure provisioning and configuration
Deployment of your application
Load Balancing
Automatic Scaling
Health Monitoring
Analysis and debugging
Logging
No additional charge
Pay only for the resources that are USED
Elastic Beanstalk supports web applications written for common platforms such as…
Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker
AWS Elastic Beanstalk automatically…
Handles the deployment of your code (all you need to do is upload your code)
Benefits of Elastic Beanstalk
Fast and simple to start using
Developer productivity
Difficult to outgrow
Complete resource control