2022-02-20 Chapter 16 - Serverless Architecture
February 20, 2022•618 words
service-lambda-001; It almost always better to select an answer on the test that uses {{c1::Lambda}} or {{c1::containers}} rather than a traditional operating system.
service-lambda-002; {{c1::AWS Lambda}} is a serverless compute service that lets you run code without provisioning or managing the underlying servers.
service-lambda-003; Lambda requires that you pick an available {{c1::runtime}} or bring your own. Available {{c1::runtimes}} include Python, Java, NodeJS etc.
service-lambda-004; If Lambda functions need to make AWS API calls, it's necessary to attach an {{c1::IAM role}} to the function.
service-lambda-005; Lambda functions can optionally run inside of {{c1::VPCs}}. It's not necessary to run Lambda functions inside {{c1::VPCs}} if functions don't require accessing private resources.
service-lambda-006; Lambda allows you to define the amount of memory that a function uses, between {{c1::128 MB}} and {{c1::10240 MB}}. CPU scales according to RAM.
service-lambda-007; Lambda allows a maximum function execution time of {{c1::15 minutes}}.
service-lambda-008; Lambda functions are event driven i.e. they require a trigger in order to start execution. Lambda supports {{c1::a very wide variety of}} triggers.
service-lambda-009; Lambda functions provide out-of-the-box {{c1::CloudWatch}} monitoring and logs.
service-lambda-010; Lambda excels in running small, lightweight functions such as {{c1::microservices}}.
service-ecs-001; A {{c1::container}} is a standard unit of software that packages up code and all its dependencies, so the application runs quickly and reliably from one computing environment to another.
service-ecs-002; Containers differ from VMs in that they don't include an {{c1::OS}}, while a VM typically does.
service-ecs-003; In container terminology, a {{c1::Dockerfile}} is a text document that contains all the commands or instructions that will be used to build an image.
service-ecs-004; In container terminology, an {{c1::image}} is an immutable file that contains the code, libraries and dependencies and config files needed to run an application.
service-ecs-005; In container terminology, a {{c1::registry}} stores Docker images for distribution. {{c1::Registries}} can be either private or public.
service-ecs-006; In container terminology, a container is a {{c1::running copy}} of an image.
service-ecs-007; {{c1::Amazon Elastic Container Service (ECS)}} supports management, placement and running of containers at scale. It will appropriately place containers and keep them online. It integrates with ELB and IAM roles.
service-ecs-008; A {{c1::task definition}} is a set of configuration options within AWS ECR.
service-ecs-009; Containers are great for {{c1::one-off}} or {{c1::long-running}} applications.
service-eks-001; {{c1::Kubernetes}} is an open source container management system and a non-proprietary alternative to ECS. AWS offers a managed version of {{c1::Kubernetes}} called EKS. ECS is suitable if you're all-in on AWS, while EKS might be more appropriate if you have some on-prem resources.
service-fargate-001; AWS {{c1::Fargate}} is a serverless compute engine for containers that works with either Amazon ECS or EKS. AWS owns and manages infrastructure. {{c1::Fargate}} supports Linux only (not Windows).
service-fargate-002; Dollar-for-dollar, EC2 is {{c1::cheaper}} than Fargate, especially for long-running containers. Fargate removes access to the operating system and excels at {{c1::short-running}} tasks.
service-fargate-003; Fargate is comparable to Lambda in that they are both {{c1::pay-as-you-go}}. Containers in Fargate are appropriate when you have consistent workloads across an organization. Fargate does not impose the run duration limits that Lambda does. Lambda is more appropriate for unpredictable or inconsistent workloads. It's perfect for applications that can be expressed as a single lightweight function.
service-eventbridge-001; {{c1::Amazon EventBridge}} (the new name for CloudWatch Events) is a serverless event bus. It allows you to pass events from a source to an endpoint. Essentially, it's the glue that holds serverless applications together. Any {{c1::API call}} that happens in AWS can alert a Lambda function, or a variety of different endpoints, that something has happened.
service-eventbridge-002; Amazon EventBridge comprises {{c1::rules}}. Rules comprise {{c1::patterns}} which specify whether an event is triggered on a schedule, or in response to another event. Rules also comprise {{c1::targets}} which specify the action taken when an event kicks off.