History of Cloud
As we know that computer hardware is very heavy, and from decades, number of layers of abstraction have been built in code.
Data Centre: Let's first talk about computer hardware in the Data centre. In this case, someone is needed to check whether it is turned on or not and connected to the network. Provisioning of resources is not very easy as we need to talk to people, we have to call to data centre providers to allow access to the machine. It takes a minimum of 10 days to provide the resources. Suppose you want to place an order for a Database server or web server, this service will be provided after 10 days.
IAAS (Infrastructure As A Service): In 2006, Amazon launched an EC2 instance. You can provision the machine with API calls using a command line or web browser. IAAS service was born, and developers around the world were happy as they do not have to provides the physical services anymore. You can provide the virtual machine anywhere in the world and do whatever you want. IAAS is running in a virtual machine as well as in a physical machine. You have to manage Windows, Linux, or maybe some corruption occurs in a disk due to which your operating system is lost then you need to reinstall the operating system.
PAAS (Platform As A Service): Amazon came out with a new service known as PAAS. You need to upload your code and Amazon will provide the underline resources. You still managing Window, Linux. Amazon would not do for you.
Containers: Containers are isolated and lightweight still they need to be deployed in a server, and you have to keep your container running. All these things that you need to manage.
Lambda: Amazon released Lambda in 2015. You do not have to take care of managing Data centre, managing infrastructure as a service, managing platform as a service or container. You need to upload the code and Amazon will do everything for you.
AWS Lambda is a compute service that lets you run code without provisioning or managing servers. AWS Lambda executes your code only when needed and scales automatically, from a few requests per day to thousands per second.
You pay only for the compute time you consume - there is no charge when your code is not running.
With AWS Lambda, you can run code for virtually any type of application or backend service - all with zero administration.
AWS Lambda runs your code on a high-availability compute infrastructure and performs all of the administration of the compute resources, including server and operating system maintenance, capacity provisioning and automatic scaling, code monitoring and logging.
You can use AWS Lambda to run your code in response to events, such as changes to data in an Amazon S3 bucket or an Amazon DynamoDB table; to run your code in response to HTTP requests using Amazon API Gateway; or invoke your code using API calls made using AWS SDKs.
With these capabilities, you can use Lambda to easily build data processing triggers for AWS services like Amazon S3 and Amazon DynamoDB, process streaming data stored in Kinesis, or create your own back end that operates at AWS scale, performance, and security.
When Should I Use AWS Lambda?
AWS Lambda is an ideal compute platform for many application scenarios, provided that you can write your application code in languages supported by AWS Lambda, and run within the AWS Lambda standard runtime environment and resources provided by Lambda.
When using AWS Lambda, you are responsible only for your code.
AWS Lambda manages the compute fleet that offers a balance of memory, CPU, network, and other resources. This is in exchange for flexibility, which means you cannot log in to compute instances, or customize the operating system or language runtime.
These constraints enable AWS Lambda to perform operational and administrative activities on your behalf, including provisioning capacity, monitoring fleet health, applying security patches, deploying your code, and monitoring and logging your Lambda functions.
If you need to manage your own compute resources, Amazon Web Services also offers other compute services to meet your needs.
- Amazon Elastic Compute Cloud (Amazon EC2) service offers flexibility and a wide range of EC2 instance types to choose from. It gives you the option to customize operating systems, network and security settings, and the entire software stack, but you are responsible for provisioning capacity, monitoring fleet health and performance, and using Availability Zones for fault tolerance.
- Elastic Beanstalk offers an easy-to-use service for deploying and scaling applications onto Amazon EC2 in which you retain ownership and full control over the underlying EC2 instances.
Lambda is a highly available service. For more information, see the AWS Lambda Service Level Agreement.
Are You a First-time User of AWS Lambda?
If you are a first-time user of AWS Lambda, we recommend that you read the following sections in order:
- Read the product overview and watch the introductory video to understand sample use cases. These resources are available on the AWS Lambda webpage.
- Review the Lambda Functions section of this guide. To understand the programming model and deployment options for a Lambda function there are core concepts you should be familiar with. This section explains these concepts and provides details of how they work in different languages that you can use to author your Lambda function code.
- Try the console-based Getting Started exercise. The exercise provides instructions for you to create and test your first Lambda function using the console. You also learn about the console provided blueprints to quickly create your Lambda functions. For more information, see Getting Started with AWS Lambda.
- Read the Deploying Applications with AWS Lambda section of this guide. This section introduces various AWS Lambda components you work with to create an end-to-end experience.
AWS Lambda Features
Extend other AWS services with custom logic
AWS Lambda allows you to add custom logic to AWS resources such as
Amazon S3 buckets and Amazon DynamoDB tables, making it easy to apply compute
to data as it is enters or moves through the cloud.
It is easy to get started with AWS Lambda. First you create your
function by uploading your code (or building it right in the Lambda console)
and choosing the memory, timeout period, and AWS Identity and Access Management (IAM) role. Then, you
specify the AWS resource to trigger the function, either a particular Amazon S3
bucket, Amazon DynamoDB table, or Amazon Kinesis stream. When the resource
changes, Lambda will run your function and launch and manage the compute
resources as needed in order to keep up with incoming requests.
Build custom back-end services
You can use AWS Lambda to create new back-end services for your
applications that are triggered on-demand using the Lambda API or custom API
endpoints built using Amazon API Gateway. By using Lambda to process custom
events instead of servicing these on the client, you can avoid client platform
variations, reduce battery drain, and enable easier updates.
Bring your own code
With AWS Lambda, there are no new languages, tools, or frameworks to
learn. You can use any third party library, even native ones. You can also
package any code (frameworks, SDKs, libraries, and more) as a Lambda Layer and
manage and share them easily across multiple functions. Lambda natively
supports Java, Go, PowerShell, Node.js, C#, Python, and Ruby code, and provides
a Runtime API which allows you to use any additional programming languages to
author your functions.
Completely automated administration
AWS Lambda manages all the infrastructure to run your code on highly
available, fault-tolerant infrastructure, freeing you to focus on building
differentiated back-end services. With Lambda, you never have to update the
underlying OS when a patch is released, or worry about resizing or adding new
servers as your usage grows. AWS Lambda seamlessly deploys your code, does all
the administration, maintenance, and security patches, and provides built-in
logging and monitoring through Amazon CloudWatch.
Built-in fault tolerance
Lambda has built-in fault tolerance. AWS Lambda maintains compute
capacity across multiple Availability Zones in each region to help protect your
code against individual machine or data center facility failures. Both AWS
Lambda and the functions running on the service provide predictable and
reliable operational performance. AWS Lambda is designed to provide high
availability for both the service itself and for the functions it operates.
There are no maintenance windows or scheduled downtimes.
Automatic scaling
AWS Lambda invokes your code only when needed and automatically scales
to support the rate of incoming requests without requiring you to configure
anything. There is no limit to the number of requests your code can handle. AWS
Lambda typically starts running your code within milliseconds of an event, and
since Lambda scales automatically, the performance remains consistently high as
the frequency of events increases. Since your code is stateless, Lambda can
start as many instances of it as needed without lengthy deployment and
configuration delays.
Run code in response to Amazon CloudFront
requests
With Lambda@Edge, AWS Lambda
can run your code across AWS locations globally in response to Amazon CloudFront events, such as requests for content to
or from origin servers and viewers. This makes it easier to deliver richer,
more personalized content to your end users with lower latency.
Orchestrate multiple functions
You can coordinate multiple AWS Lambda functions for complex or
long-running tasks by building workflows with AWS Step Functions. Step Functions lets you define workflows
that trigger a collection of Lambda functions using sequential, parallel,
branching, and error-handling steps. With Step Functions and Lambda, you can
build stateful, long-running processes for applications and backends.
Integrated security model
AWS Lambda allows your code to securely access other AWS services
through its built-in AWS SDK and integration with AWS Identity and Access Management (IAM). AWS Lambda runs your
code within a VPC by default. You can optionally also configure AWS Lambda to
access resources behind your own VPC, allowing you to leverage custom security
groups and network access control lists to provide your Lambda functions access
to your resources within a VPC.
AWS Lambda is SOC, HIPAA, PCI, ISO compliant. For
the latest in Lambda certification and compliance readiness, please see the
full services in scope.
Pay per use
With AWS Lambda you pay only for the requests served and the compute
time required to run your code. Billing is metered in increments of 100
milliseconds, making it cost-effective and easy to scale automatically from a
few requests per day to thousands per second.
Flexible resource model
You
choose the amount of memory you want to allocate to your functions and AWS
Lambda allocates proportional CPU power, network bandwidth, and disk I/O.
No comments:
Post a Comment