AWS Lambda Tutorial For Beginners | What is AWS Lambda? | AWS Tutorial For Be...Simplilearn
This AWS Lambda Tutorial will help you understand what is AWS Lambda, why do we use AWS Lambda, how does AWS Lambda work, AWS Lambda concepts such as requests, containers and backups along with a demo on Backing up data on AWS S3 using AWS Lambda. AWS Lambda is an event-driven, serverless computing platform provided by Amazon as a part of the Amazon Web Services. It is a computing service that runs code in response to events and automatically manages the computing resources required by that code. Now, let us deep dive into this presentation and understand what AWS Lambda actually is.
Below topics are explained in this AWS Lambda Tutorial:
1. Features of AWS Lambda
2. What is AWS Lambda?
3. Where is AWS Lambda used?
4. Use Case - Backing up data in S3 using AWS Lambda
This AWS certification training is designed to help you gain the in-depth understanding of Amazon Web Services (AWS) architectural principles and services. You will learn how cloud computing is redefining the rules of IT architecture and how to design, plan, and scale AWS Cloud implementations with best practices recommended by Amazon. The AWS Cloud platform powers hundreds of thousands of businesses in 190 countries, and AWS certified solution architects take home about $126,000 per year.
This AWS certification course will help you learn the key concepts, latest trends, and best practices for working with the AWS architecture – and become industry-ready AWS certified solutions architect to help you qualify for a position as a high-quality AWS professional.
The course begins with an overview of the AWS platform before diving into its individual elements: IAM, VPC, EC2, EBS, ELB, CDN, S3, EIP, KMS, Route 53, RDS, Glacier, Snowball, Cloudfront, Dynamo DB, Redshift, Auto Scaling, Cloudwatch, Elastic Cache, CloudTrail, and Security. Those who complete the course will be able to:
1. Formulate solution plans and provide guidance on AWS architectural best practices
2. Design and deploy scalable, highly available, and fault tolerant systems on AWS
3. Identify the lift and shift of an existing on-premises application to AWS
4. Decipher the ingress and egress of data to and from AWS
5. Select the appropriate AWS service based on data, compute, database, or security requirements
6. Estimate AWS costs and identify cost control mechanisms
This AWS course is recommended for professionals who want to pursue a career in Cloud computing or develop Cloud applications with AWS. You’ll become an asset to any organization, helping leverage best practices around advanced cloud-based solutions and migrate existing workloads to the cloud.
Learn more at: https://www.simplilearn.com/
AWS October Webinar Series - AWS Lambda Best Practices: Python, Scheduled Job...Amazon Web Services
AWS Lambda lets you run code without provisioning or managing servers. We have introduced a few new features this year at re:Invent and would like to share with you some of the best practices.
This webinar will introduce you to scheduled AWS Lambda functions and how to use long running functions to handle large volume data ingestion and processing jobs. We will demonstrate how to use versioning to control which Lambda function version is being executed in your development, testing, and production environments. We will also show you how to run your Python code in AWS Lambda.
In this session we’ll take a high-level overview of AWS Lambda, a serverless compute platform that has changed the way that developers around the world build applications. We’ll explore how Lambda works under the hood, the capabilities it has, and how it is used. By the end of this talk you’ll know how to create Lambda based applications and deploy and manage them easily.
Speaker: Chris Munns - Principal Developer Advocate, AWS Serverless Applications, AWS
Aws lambda and accesing AWS RDS - ClouddictiveClouddictive
Implement a Lambda function which integrates with RDS. How to implement this new function in Java using Spring Framework.
1) Setup RDS instance
2) Implement RequestHandler in java
4) Create lambda function
AWS Lambda is considered to be a proficient serverless computing service that allows you to run your code for managing servers and containers. The scaling under AWS Lambda is done automatically by measuring the work intensity integrated onto it. There are several use cases to AWS Lambda that define its prime efficacy of executing code within the AWS cloud. Even though AWS Lambda is meant to be used within the cloud, local development attributes can also use it for diverse development needs. For further reading please visit https://www.whizlabs.com/blog/use-of-aws-lambda/
With AWS Lambda, you can easily build scalable microservices for mobile, web, and IoT applications or respond to events from other AWS services without managing infrastructure. In this session, you’ll see how to use Lambda to build web, mobile, or IoT backends and voice-enabled apps, and we'll show you how to extend both AWS and third party services by triggering Lambda functions. We’ll also provide productivity and performance tips for getting the most out of your Lambda functions and show how cloud native architectures use Lambda to eliminate “cold servers” and excess capacity without sacrificing scalability or responsiveness.
AWS Lambda Tutorial For Beginners | What is AWS Lambda? | AWS Tutorial For Be...Simplilearn
This AWS Lambda Tutorial will help you understand what is AWS Lambda, why do we use AWS Lambda, how does AWS Lambda work, AWS Lambda concepts such as requests, containers and backups along with a demo on Backing up data on AWS S3 using AWS Lambda. AWS Lambda is an event-driven, serverless computing platform provided by Amazon as a part of the Amazon Web Services. It is a computing service that runs code in response to events and automatically manages the computing resources required by that code. Now, let us deep dive into this presentation and understand what AWS Lambda actually is.
Below topics are explained in this AWS Lambda Tutorial:
1. Features of AWS Lambda
2. What is AWS Lambda?
3. Where is AWS Lambda used?
4. Use Case - Backing up data in S3 using AWS Lambda
This AWS certification training is designed to help you gain the in-depth understanding of Amazon Web Services (AWS) architectural principles and services. You will learn how cloud computing is redefining the rules of IT architecture and how to design, plan, and scale AWS Cloud implementations with best practices recommended by Amazon. The AWS Cloud platform powers hundreds of thousands of businesses in 190 countries, and AWS certified solution architects take home about $126,000 per year.
This AWS certification course will help you learn the key concepts, latest trends, and best practices for working with the AWS architecture – and become industry-ready AWS certified solutions architect to help you qualify for a position as a high-quality AWS professional.
The course begins with an overview of the AWS platform before diving into its individual elements: IAM, VPC, EC2, EBS, ELB, CDN, S3, EIP, KMS, Route 53, RDS, Glacier, Snowball, Cloudfront, Dynamo DB, Redshift, Auto Scaling, Cloudwatch, Elastic Cache, CloudTrail, and Security. Those who complete the course will be able to:
1. Formulate solution plans and provide guidance on AWS architectural best practices
2. Design and deploy scalable, highly available, and fault tolerant systems on AWS
3. Identify the lift and shift of an existing on-premises application to AWS
4. Decipher the ingress and egress of data to and from AWS
5. Select the appropriate AWS service based on data, compute, database, or security requirements
6. Estimate AWS costs and identify cost control mechanisms
This AWS course is recommended for professionals who want to pursue a career in Cloud computing or develop Cloud applications with AWS. You’ll become an asset to any organization, helping leverage best practices around advanced cloud-based solutions and migrate existing workloads to the cloud.
Learn more at: https://www.simplilearn.com/
AWS October Webinar Series - AWS Lambda Best Practices: Python, Scheduled Job...Amazon Web Services
AWS Lambda lets you run code without provisioning or managing servers. We have introduced a few new features this year at re:Invent and would like to share with you some of the best practices.
This webinar will introduce you to scheduled AWS Lambda functions and how to use long running functions to handle large volume data ingestion and processing jobs. We will demonstrate how to use versioning to control which Lambda function version is being executed in your development, testing, and production environments. We will also show you how to run your Python code in AWS Lambda.
In this session we’ll take a high-level overview of AWS Lambda, a serverless compute platform that has changed the way that developers around the world build applications. We’ll explore how Lambda works under the hood, the capabilities it has, and how it is used. By the end of this talk you’ll know how to create Lambda based applications and deploy and manage them easily.
Speaker: Chris Munns - Principal Developer Advocate, AWS Serverless Applications, AWS
Aws lambda and accesing AWS RDS - ClouddictiveClouddictive
Implement a Lambda function which integrates with RDS. How to implement this new function in Java using Spring Framework.
1) Setup RDS instance
2) Implement RequestHandler in java
4) Create lambda function
AWS Lambda is considered to be a proficient serverless computing service that allows you to run your code for managing servers and containers. The scaling under AWS Lambda is done automatically by measuring the work intensity integrated onto it. There are several use cases to AWS Lambda that define its prime efficacy of executing code within the AWS cloud. Even though AWS Lambda is meant to be used within the cloud, local development attributes can also use it for diverse development needs. For further reading please visit https://www.whizlabs.com/blog/use-of-aws-lambda/
With AWS Lambda, you can easily build scalable microservices for mobile, web, and IoT applications or respond to events from other AWS services without managing infrastructure. In this session, you’ll see how to use Lambda to build web, mobile, or IoT backends and voice-enabled apps, and we'll show you how to extend both AWS and third party services by triggering Lambda functions. We’ll also provide productivity and performance tips for getting the most out of your Lambda functions and show how cloud native architectures use Lambda to eliminate “cold servers” and excess capacity without sacrificing scalability or responsiveness.
Amazon has proved its might in the field of offering diverse cloud services and has excelled in almost all scenarios to date. Amazon EC2 came into play in 2006 and has gained immense popularity since then. But, along with that, AWS Lambda is also a popular service that came out in 2014 and is now walking side-to-side with EC2 in terms of popularity and adaptation.
To know the major differences between AWS Lambda and CE2 please visit https://www.whizlabs.com/blog/aws-lambda-vs-ec2/
Do you want to run your code without the cost and effort of provisioning and managing servers? Find out how in this deep dive session on AWS Lambda, which allows you to run code for virtually any type of application or back end service – all with zero administration. During the session, we’ll look at a number of key AWS Lambda features and benefits, including automated application scaling with high availability; pay-as-you-consume billing; and the ability to automatically trigger your code from other AWS services or from any web or mobile app.
AWS Lambda Documentation over the official website of AWS is highlighting the detailed explanations on the definitions, developer guide, API reference, and operations of Lambda.
To know more please visit https://www.whizlabs.com/blog/aws-lambda-documentation/
Introduce AWS Lambda for newbie and Non-IT
อธิบาย ความเป็นมาของ Serverless และ AWS Lambda คืออะไร ดีอย่างไร เพื่อให้คนไม่รู้จักและคนที่ไม่ใช่ IT ได้เข้าใจง่ายๆ
Index
- What's Serverless
- What's AWS Lambda
- Working with AWS Lambda
- AWS Lambda Life-Cycle
- AWS Lambda Anatomy
- Beware Cold Start
- How to debug
- Do and Don't to implement
- Pricing structure and example
- Advantage/Disadvantage
Presentation is English Version
Blog is Thai Version : https://myifew.com/5166/understand-serverless-with-aws-lambda-for-newbie/
Slides for a short presentation I gave on AWS Lambda, which "lets you run code without provisioning or managing servers". Lambda is to running code as Amazon S3 is to storing objects.
AWS Lambda is a new compute service that runs your code in response to events and automatically manages compute resources for you. In this session you’ll learn what you need to quickly begin building applications that use AWS Lambda as a serverless back-end. We’ll cover key Lambda features, its programming model, key scenarios, and tips on getting the most out of Lambda functions.
AWS SAM is a fast and easy way of deploying your serverless applications, allowing you to write simple templates to describe your functions and their event sources (Amazon API Gateway, Amazon S3, Kinesis, and so on). Based on AWS SAM, SAM CLI is a tool that provides an environment for you to develop, test, and analyze your serverless applications locally before uploading them to the Lambda runtime. Whether you're developing on Linux, Mac, or Microsoft Windows, you can use SAM CLI to create a local testing environment that simulates the AWS runtime environment. The SAM CLI also allows faster, iterative development of your Lambda function code. For more information, see Building a Simple Application Using SAM CLI. In this session, we look at the latest version of SAM CLI and its new features to deploy a full CI/CD deployment stack for a .Net Lambda function.
AWS Core services:
* The AWS web console: the entry point for configuring your infrastructure in the AWS cloud
* The Free Tier and how to setup billing alerts
* Elastic Compute Cloud (EC2) instances, and the ease with which you can pick a particular Amazon Machine Image (AMI) for your workload, and spin it up as an instance right away
* How to create and deploy a high-availability web application in AWS, with an Elastic Load Balancer (ELB) and a multi-availability-zone Relational-Database-Service (RDS) instance
* How CloudFormation can automate all of the above.
Serverless Functions:
Serverless architecture allows developers to focus on code and their business problem rather than spending time looking after backend infrastructure. Serverless architecture can help developers build scalable, high-performing, and cost-effective applications quickly
We will talk about how serverless architecture and AWS Lambda can make things easier, cheaper, and help to accelerate development of projects.
AWS' philosophy and recommended best practices for building microservices applications, how AWS services like Lambda and API gateway benefit developers building microservices apps, and how customers are using these two and other AWS services to deliver their microservices apps
In this session, you'll learn what’s new and hot with AWS Lambda. Come on a tour with Dr. Tim Wagner, General Manager of AWS Lambda, to learn what we’ve been working on and what we are planning for the future. You'll get a hands-on demonstration of some our newest features which will provide you with a launching pad for some of the later sessions in the day.
Amazon has proved its might in the field of offering diverse cloud services and has excelled in almost all scenarios to date. Amazon EC2 came into play in 2006 and has gained immense popularity since then. But, along with that, AWS Lambda is also a popular service that came out in 2014 and is now walking side-to-side with EC2 in terms of popularity and adaptation.
To know the major differences between AWS Lambda and CE2 please visit https://www.whizlabs.com/blog/aws-lambda-vs-ec2/
Do you want to run your code without the cost and effort of provisioning and managing servers? Find out how in this deep dive session on AWS Lambda, which allows you to run code for virtually any type of application or back end service – all with zero administration. During the session, we’ll look at a number of key AWS Lambda features and benefits, including automated application scaling with high availability; pay-as-you-consume billing; and the ability to automatically trigger your code from other AWS services or from any web or mobile app.
AWS Lambda Documentation over the official website of AWS is highlighting the detailed explanations on the definitions, developer guide, API reference, and operations of Lambda.
To know more please visit https://www.whizlabs.com/blog/aws-lambda-documentation/
Introduce AWS Lambda for newbie and Non-IT
อธิบาย ความเป็นมาของ Serverless และ AWS Lambda คืออะไร ดีอย่างไร เพื่อให้คนไม่รู้จักและคนที่ไม่ใช่ IT ได้เข้าใจง่ายๆ
Index
- What's Serverless
- What's AWS Lambda
- Working with AWS Lambda
- AWS Lambda Life-Cycle
- AWS Lambda Anatomy
- Beware Cold Start
- How to debug
- Do and Don't to implement
- Pricing structure and example
- Advantage/Disadvantage
Presentation is English Version
Blog is Thai Version : https://myifew.com/5166/understand-serverless-with-aws-lambda-for-newbie/
Slides for a short presentation I gave on AWS Lambda, which "lets you run code without provisioning or managing servers". Lambda is to running code as Amazon S3 is to storing objects.
AWS Lambda is a new compute service that runs your code in response to events and automatically manages compute resources for you. In this session you’ll learn what you need to quickly begin building applications that use AWS Lambda as a serverless back-end. We’ll cover key Lambda features, its programming model, key scenarios, and tips on getting the most out of Lambda functions.
AWS SAM is a fast and easy way of deploying your serverless applications, allowing you to write simple templates to describe your functions and their event sources (Amazon API Gateway, Amazon S3, Kinesis, and so on). Based on AWS SAM, SAM CLI is a tool that provides an environment for you to develop, test, and analyze your serverless applications locally before uploading them to the Lambda runtime. Whether you're developing on Linux, Mac, or Microsoft Windows, you can use SAM CLI to create a local testing environment that simulates the AWS runtime environment. The SAM CLI also allows faster, iterative development of your Lambda function code. For more information, see Building a Simple Application Using SAM CLI. In this session, we look at the latest version of SAM CLI and its new features to deploy a full CI/CD deployment stack for a .Net Lambda function.
AWS Core services:
* The AWS web console: the entry point for configuring your infrastructure in the AWS cloud
* The Free Tier and how to setup billing alerts
* Elastic Compute Cloud (EC2) instances, and the ease with which you can pick a particular Amazon Machine Image (AMI) for your workload, and spin it up as an instance right away
* How to create and deploy a high-availability web application in AWS, with an Elastic Load Balancer (ELB) and a multi-availability-zone Relational-Database-Service (RDS) instance
* How CloudFormation can automate all of the above.
Serverless Functions:
Serverless architecture allows developers to focus on code and their business problem rather than spending time looking after backend infrastructure. Serverless architecture can help developers build scalable, high-performing, and cost-effective applications quickly
We will talk about how serverless architecture and AWS Lambda can make things easier, cheaper, and help to accelerate development of projects.
AWS' philosophy and recommended best practices for building microservices applications, how AWS services like Lambda and API gateway benefit developers building microservices apps, and how customers are using these two and other AWS services to deliver their microservices apps
In this session, you'll learn what’s new and hot with AWS Lambda. Come on a tour with Dr. Tim Wagner, General Manager of AWS Lambda, to learn what we’ve been working on and what we are planning for the future. You'll get a hands-on demonstration of some our newest features which will provide you with a launching pad for some of the later sessions in the day.
AWS Lambda and Amazon API Gateway have changed how developers build and run their applications or services. But what are the best practices for tasks such as deployment, monitoring, and debugging in a serverless world? In this session, we’ll dive into best practices that serverless developers can use for application lifecycle management, CI/CD, monitoring, and diagnostics. We’ll talk about how you can build CI/CD pipelines that automatically build, test, and deploy your serverless applications using AWS CodePipeline, AWS CodeBuild, and AWS CloudFormation. We’ll also cover the built-in capabilities of Lambda and API Gateway for creating multiple versions, stages, and environments of your functions and APIs. Finally, we’ll cover monitoring and diagnostics of your Lambda functions with Amazon CloudWatch and AWS X-Ray.
SRV203 Getting Started with AWS Lambda and the Serverless CloudAmazon Web Services
Serverless computing allows you to build and run applications without the need for provisioning or managing servers. With serverless computing, you can build web, mobile, and IoT backends; run stream processing or big data workloads; run chatbots, and more. In this session, you'll learn how to get started with serverless computing with AWS Lambda, which lets you run code without provisioning or managing servers. We'll introduce you to the basics of building with Lambda and how you can benefit from features such as continuous scaling, built-in high availability, integrations with AWS and third-party apps, and subsecond metering pricing. We'll also introduce you to the broader portfolio of AWS services that help you build serverless applications with Lambda, including Amazon API Gateway, Amazon DynamoDB, AWS Step Functions, and more.
How to build and deploy serverless apps - AWS Summit Cape Town 2018Amazon Web Services
Speaker: Alex Casalboni, AWS
Customer Speaker: Impression Signatures
Serverless computing allows you to build and run applications without the need for provisioning or managing servers. It means that you can build web, mobile, and IoT backends, run stream processing or big data workloads, build chatbots, run code at the edge, and more. In this session, learn how to get started with serverless computing with AWS Lambda and managed services such as Amazon API Gateway, Amazon Kinesis, and Amazon DynamoDB. We introduce you to the basics of building with AWS Lambda, as well as how to properly perform CI/CD for your serverless application. We will discuss a method for automating the deployment of serverless applications using services such as AWS CodePipeline and AWS CodeBuild, and techniques such as canary deployments and automatic rollbacks.
February 2016 Webinar Series - Introducing VPC Support for AWS LambdaAmazon Web Services
You can now access resources within a Virtual Private Cloud (VPC) using AWS Lambda.
In this webinar, we will show how you can enable your AWS Lambda functions to access resources in a VPC. We will walk through the configuration details on how to set up this functionality, and we will demonstrate two sample scenarios. We will also discuss best practices of how to use AWS Lambda in a VPC and sample application designs.
Learning Objectives:
Learn how to access resources in a VPC with AWS Lambda
Who Should Attend:
Developers
AWS Lambda and Amazon API Gateway have changed how developers build and run their applications or services. But what are the best practices for tasks such as deployment, monitoring, and debugging in a serverless world? In this session, we’ll dive into best practices that serverless developers can use for application lifecycle management, CI/CD, monitoring, and diagnostics. We’ll talk about how you can build CI/CD pipelines that automatically build, test, and deploy your serverless applications using AWS CodePipeline, AWS CodeBuild, and AWS CloudFormation. We’ll also cover the built-in capabilities of Lambda and API Gateway for creating multiple versions, stages, and environments of your functions and APIs. Finally, we’ll cover monitoring and diagnostics of your Lambda functions with Amazon CloudWatch and AWS X-Ray.
Building AWS Lambda Applications with the AWS Serverless Application Model (A...Amazon Web Services
Learning Objectives:
- Learn how to build serverless applications in a simple and repeatable manner
- Understand the fundamentals of the AWS Serverless Application Model
- Gain best practices for serverless application development
When building applications with AWS Lambda, you need a way to easily model and deploy the resources in your serverless application such as Lambda functions, APIs, Amazon DynamoDB tables, and more. The AWS Serverless Application Model (AWS SAM) is an open source specification which defines simplified syntax for expressing serverless resources. In this session, we will teach you the essentials of using AWS SAM to model and deploy serverless applications in a simple and repeatable manner. You will learn best practices for using AWS SAM and how to deploy it using services like AWS CloudFormation and AWS CodePipeline.
A quick presentation on AWS, AWS use-cases, resources and moreTech Sub
This is a quick guide to AWS created by FoxCraft. Use this slides to gain knowledge about AWS, AWS resources, use cases and more.
Join FoxCraft discord server for deployment help and more: https://discord.gg/kbaJFz8n.
Follow FoxCraft on twitter for more tips: https://twitter.com/foxcraft_tech
(Diapositivas de presentación son en inglés.)
Las arquitecturas serverless permiten construir y ejecutar aplicaciones y servicios sin necesidad de manejar una infraestructura. En esta sesión veremos la filosofía de AWS y las mejores prácticas para construir aplicaciones basadas en microservicios, cómo servicios de AWS como Lambda y API Gateway benefician a los desarrolladores y cómo nuestros clientes están usando estos servicios y el resto de servicios de AWS para construir sus aplicaciones.
With AWS Lambda, you can easily build scalable microservices for mobile, web, and IoT applications or respond to events from other AWS services without managing infrastructure. In this session, you’ll see demonstrations and hear more about newly launched features. We’ll show you how to use Lambda to build web, mobile, or IoT backends and voice-enabled apps, and we'll show you how to extend both AWS and third party services by triggering Lambda functions. We’ll also provide productivity and performance tips for getting the most out of your Lambda functions and show how cloud native architectures use Lambda to eliminate “cold servers” and excess capacity without sacrificing scalability or responsiveness.
Serverless is a misnomer because there are servers. We will discuss what Serverless is, how it is part of an evolving abstraction, and what's on the horizon - InterCloud.
Programming (and Learning) Self-Adaptive & Self-Organising Behaviour with Sca...Roberto Casadei
Large-scale and fully distributed cyber-physical sys-
tems (CPS), such as swarm robotics or IoT systems, pose
significant challenges for programming and design. These chal-
lenges include promoting the desired (emergent) collective and
self-organising behaviour, dealing with failures, enacting decen-
tralised coordination, and deploying efficient executions. Aggre-
gate computing is a promising approach that aims to simplify
the design of such systems by providing a high-level abstraction
for describing collective and self-organising behaviours. In this
tutorial, we introduce a toolchain that supports the development
of aggregate computing applications, based on ScaFi (a Scala-
based language and toolkit for aggregate computing) and Al-
chemist (a simulator for CPS scenarios). We will showcase the
toolchain by means of a series of examples, ranging from simple
collective behaviours to more complex self-adaptive and self-
organising ones. Finally, we provide several pointers to research
opportunities (e.g., related to learning collective behaviours
and adaptive large-scale deployments) and applications (e.g., in
swarm robotics, edge-cloud ecosystems, and more).
Self-Organisation Programming: a Functional Reactive Macro Approach (FRASP) [...Roberto Casadei
Engineering self-organising systems – e.g., robot
swarms, collectives of wearables, or distributed infrastructures
– has been investigated and addressed through various kinds
of approaches: devising algorithms by taking inspiration from
nature, relying on design patterns, using learning to synthesise
behaviour from expectations of emergent behaviour, and exposing
key mechanisms and abstractions at the level of a programming
language. Focussing on the latter approach, most of the state-
of-the-art languages for self-organisation leverage a round-based
execution model, where devices repeatedly evaluate their context
and control program fully: this model is simple to reason about
but limited in terms of flexibility and fine-grained management
of sub-activities. By inspiration from the so-called functional
reactive paradigm, in this paper we propose a reactive self-
organisation programming approach that enables to fully decouple
the program logic from the scheduling of its sub-activities.
Specifically, we implement the idea through a functional reactive
implementation of aggregate programming in Scala, based on
the functional reactive library Sodium. The result is a functional
reactive self-organisation programming model, called FRASP,
that maintains the same expressiveness and benefits of aggregate
programming, while enabling significant improvements in terms
of scheduling controllability, flexibility in the sensing/actuation
model, and execution efficiency.
Programming Distributed Collective Processes for Dynamic Ensembles and Collec...Roberto Casadei
Recent trends like the Internet of Things (IoT) suggest a vi-
sion of dense and multi-scale deployments of computing devices in nearly
all kinds of environments. A prominent engineering challenge revolves
around programming the collective adaptive behaviour of such compu-
tational ecosystems. This requires abstractions able to capture concepts
like ensembles (dynamic groups of cooperating devices) and collective
tasks (joint activities carried out by ensembles). In this work, we con-
sider collections of devices interacting with neighbours and that execute
in nearly-synchronised sense–compute–interact rounds, where the com-
putation is given by a single control program. To support programming
whole computational collectives, we propose the abstraction of a dis-
tributed collective process (DCP), which can be used to define at once
the ensemble formation logic and its collective task. We implement the
abstraction in the eXchange Calculus (XC), a core language based on
neighbouring values (maps from neighbours to values) where state man-
agement and interaction is handled through a single primitive, exchange.
Then, we discuss the features of the abstraction, its suitability for differ-
ent kinds of distributed computing applications, and provide a proof-of-
concept implementation of a wave-like process propagation.
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...Roberto Casadei
The opportunities and challenges of recent and
forthcoming distributed computing scenarios have been promot-
ing research on languages and paradigms aimed at modelling the
macro/collective behaviour of systems as well as mechanisms to
endow them with self-* capabilities. One example is the aggregate
computing paradigm, which supports the development of self-
organising systems (e.g., robot swarms, computational ecosys-
tems, and crowd-based services) through various formalisms and
tools developed over a decade. However, very limited work has
been done by a methodological and automation perspective. In
this paper, we explore the issue of organising the development
process of aggregate computing systems. Accordingly, we outline
novel research directions that arise from careful analysis of
the peculiar issues in collective and self-organising systems, the
cornerstones of effective software engineering practices, and
recent scientific trends and insights.
Aggregate computing is a research topic that is addressed by multiple perspectives: computational models, programming languages, distributed adaptive algorithms, middleware architectures, formal analysis, tools.
Introduction to the 1st DISCOLI workshop on distributed collective intelligenceRoberto Casadei
The 1st DISCOLI workshop on DIStributed COLlective Intelligence is co-located with the 42nd IEEE International Conference on Distributed Computing Systems (ICDCS 2022) that will take place in Bologna, Italy, 10-13 July 2022.
Recent technological and scientific trends are promoting a vision where intelligence is more and more distributed and collective. Indeed, as computing and communication technologies are becoming increasingly pervasive, and complexity of systems is growing in terms of scale, heterogeneity, and interaction, hence the focus tends to shift from the intelligence of individual devices or agents to the collective intelligence (CI) emerging from a dynamic collection of diverse devices. Such intelligence would allow systems to address complex problems through proper coordination (e.g., cooperation or competition), to self-organise to promote functionality under changing environments, and to improve decision-making capabilities.
The workshop aims to provide a forum where researchers and practitioners can share and discuss fundamental concepts, models, and techniques for studying and implementing collectively intelligent distributed systems. Accordingly, it welcomes original research work providing ideas and technical contributions for promoting scientific discussion and practical adoption of CI mechanisms in engineered systems. As such, the workshop also welcomes cross-disciplinary contributions (e.g., extracting computational mechanisms from natural systems exhibiting forms of CI) and contributions from related research areas like coordination (the study of interaction), multi-agent systems (MAS), socio-technical systems, organisational paradigms, Wireless Sensor and Actuator Networks (WSANs), the Internet of Things (IoT), crowd computing, and swarm robotics.
The topics of interest include (but are not limited to) the following:
Algorithms for self-adaptive/self-organizing system behaviour
Algorithms of artificial collective intelligence (e.g., multi-agent reinforcement learning)
Techniques for task-specific collective intelligence
Extraction of collective knowledge in Internet of Things systems
Collaborations of humans and artificial agents in socio-technical systems
Formal models for computational collective intelligence
Design and verification of emergent properties in distributed systems
Coordination models and languages
Programming languages for distributed CI systems
Languages for multi-tier programming or macro-programming
CI for distributed wearable computing systems
Techniques for crowd computing systems and applications
Applications of distributed CI for smart environments (e.g., smart cities, smart buildings)
Tools for programming and simulation of multi-agent systems
Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-P...Roberto Casadei
The engineering of large-scale cyber-physical systems (CPS) increasingly relies on principles from self-organisation and collective computing, enabling these systems to cooperate and adapt in dynamic environments. CPS engineering also often leverages digital twins that provide synchronised logical counterparts of physical entities. In contrast, sensor networks rely on the different but related concept of virtual device that provides an abstraction of a group of sensors. In this work, we study how such concepts can contribute to the engineering of self-organising CPSs. To that end, we analyse the concepts and devise modelling constructs, distinguishing between identity correspondence and execution relationships. Based on this analysis, we then contribute to the novel concept of “collective digital twin” (CDT) that captures the logical counterpart of a collection of physical devices. A CDT can also be “augmented” with purely virtual devices, which may be exploited to steer the self-organisation process of the CDT and its physical counterpart. We underpin the novel concept with experiments in the context of the pulverisation framework of aggregate computing, showing how augmented CDTs provide a holistic, modular, and cyber-physically integrated system view that can foster the engineering of self-organising CPSs.
FScaFi: A Core Calculus for Collective Adaptive Systems ProgrammingRoberto Casadei
A recently proposed approach to the rigorous engineering of collective adaptive systems is the aggregate computing paradigm, which operationalises the idea of expressing collective adaptive behaviour by a global perspective as a functional composition of dynamic computational fields (i.e., structures mapping a collection of individual devices of a collective to computational values over time). In this paper, we present FScaFi, a core language that captures the essence of exploiting field computations in mainstream functional languages, and which is based on a semantic model for field computations leveraging the novel notion of “computation against a neighbour”. Such a construct models expressions whose evaluation depends on the same evaluation that occurred on a neighbour, thus abstracting communication actions and, crucially, enabling deep and straightforward integration in the Scala programming language, by the ScaFi incarnation. We cover syntax and informal semantics of FScaFi, provide examples of collective adaptive behaviour development in ScaFi, and delineate future work.
6th eCAS workshop on Engineering Collective Adaptive SystemsRoberto Casadei
This is the presentation introducing the 6th eCAS workshop on Engineering Collective Adaptive Systems. It recaps its scope, provides data regarding this edition, provides an overview of the program and related initiatives.
Augmented Collective Digital Twins for Self-Organising Cyber-Physical SystemsRoberto Casadei
Context. Self-organising and collective computing
approaches are increasingly applied to large-scale cyber-physical
systems (CPS), enabling them to adapt and cooperate in dynamic
environments. Also, in CPS engineering, digital twins are often
leveraged to provide synchronised logical counterparts of physical
entities, whereas in sensor networks the different-but-related
concept of virtual device is used e.g. to abstract groups of sensors.
Vision. We envision the design concept of “augmented collective
digital twin” that captures digital twins at a collective level
extended with purely virtual devices. We argue that this concept
can foster the engineering of self-organising CPS by providing a
holistic, declarative, and integrated system view.
Method. From a review and proposed taxonomy of logical
devices comprehending both digital twins and virtual devices,
we reinterpret a meta-model for self-organising CPSs and discuss
how it can support augmented collective digital twins. We illus-
trate the approach in a crowd-aware navigation scenario, where
virtual devices are opportunistically integrated into the system
to enhance spatial coverage, improving navigation capabilities.
Conclusion. By integrating physical and virtual devices, the
novel notion of augmented collective digital twin paves the way
to self-improving system functionality and intelligent use of
resources in self-organising CPSs.
Tuple-Based Coordination in Large-Scale Situated SystemsRoberto Casadei
Space and time are key elements for many computer-based systems and often elevated to first-class abstractions. In tuple-based coordination, Linda primitives have been independently extended with space (with tuples and queries spanning spatial regions) or time information (mostly for tuple scoping). However, recent works in collective adaptive systems and aggregate computing show that space and time can naturally be considered as two intertwined facets of a common coordination abstraction for situated distributed systems. Accordingly, we introduce the Spatiotemporal Tuples model, a natural adaptation of Linda model for physically deployed large-scale networks. Unlike prior research, spatiotemporal properties – expressing where and when a tuple should range and has to be deposited/retrieved – naturally turn into specifications of collective adaptive processes, to be carried on in cooperation by the devices filling the computational environment, and sustaining tuple operations in a resilient way, possibly even in mobile and faulty environments. Additionally, the model promotes decentralised implementations where tuples actually reside where they are issued, which is good for supporting peer-to-peer and mobile ad-hoc networks as well as privacy. In this paper, we (i) present and formalise the Spatiotemporal Tuples model, based on the unifying notion of computational space-time structure, (ii) provide an implementation in the ScaFi aggregate computing framework, turning tuple operations into aggregate processes, and finally (iii) provide evaluation through simulation and a rescue case study.
Collective Adaptive Systems as Coordination Media: The Case of Tuples in Spac...Roberto Casadei
Coordination is a fundamental problem in the
engineering of collective adaptive systems (CAS). Prominent
approaches in this context promote adaptivity and collective
behaviour by founding coordination on local, decentralised in-
teraction. This is usually enabled through abstractions such as
collective interfaces, neighbour-based interaction, and attribute-
based communication. Application designers, then, use such
coordination mechanisms to enact collective adaptive behaviour
in order to solve specific problems or provide specific services
while coping with dynamic environments. In this paper, we
consider the other way round: we argue that a CAS model can
be used to provide support for high-level coordination models,
simplifying their implementation and transferring to them the
self-* properties it emergently fosters. As a motivating example,
we consider the idea of supporting tuple-based coordination by
Linda primitives such that tuples and operations have a position
and extension in space and time. Then, we adopt an aggregate
perspective, by which space-time is logically represented by a
mobile ad-hoc network of devices, and show that coordination
primitives can be implemented as true collective adaptive pro-
cesses. We describe this model and a prototype implementation
in the ScaFi aggregate programming framework, which is rooted
in the so-called computational field paradigm.
Testing: an Introduction and Panorama
- what testing is
- perspectives on testing
- xUnit, TDD, acceptance testing
- pointers to more stuff about testing
On Context-Orientation in Aggregate ProgrammingRoberto Casadei
Context-awareness plays a central role in self-
adaptive software. By a programming perspective, context is
often used implicitly, and context-aware code is fragmented
in the codebase. In Context-Oriented Programming, instead,
context is considered a first-class citizen and is explicitly used
to modularise context-sensitive functionality and behavioural
variability. In this paper, we reflect on the role of context in
collective adaptive systems, by a discussion from the special
perspective of a macro paradigm, Aggregate Programming,
which supports the specification of collective behaviour by a
global perspective through functional compositions of field com-
putations. In particular, we consider the abstractions exposed in
Context-Oriented and Aggregate Programming, suggest potential
synergies in both directions, and accordingly take the first steps
towards a combined design.
Novel scenarios like IoT and smart cities promote
a vision of computational ecosystems whereby heterogeneous
collectives of humans, devices and computing infrastructure
interact to provide various services. There, autonomous agents
with different capabilities are expected to cooperate towards
global goals in dependable ways. This is challenging, as deployments are within unknown, changing and loosely connected environments characterized by lack of centralized control, where
components may come and go, or disruption may be caused by
failures. Key issues include (i) how to leverage, functionally and
non-functionally, forms of opportunistic computing and locality
that often underlie IoT scenarios; (ii) how to design and operate
large-scale, resilient ecosystems through suitable assumptions,
decentralized control, and adaptive mechanisms; and (iii) how
to capture and enact “global” behaviors and properties, when
the system consists of heterogeneous, autonomous entities. In
this paper, we propose a model for resilient, collaborative edge-
enabled IoT that leverages spatial locality, opportunistic agents,
and coordinator nodes at the edge. The engineering approach
is declarative and configurable, and works by dynamically
dividing the environment into collaboration areas coordinated
by edge devices. We provide an implementation as a collective, self-organizing workflow based on Aggregate Computing,
provide evaluation by means of simulation, and finally discuss
properties and general applicability of the approach.
Engineering distributed applications and services in emerg-
ing and open computing scenarios like the Internet of Things, cyber-physical systems and pervasive computing, calls for identifying proper abstractions to smoothly capture collective behaviour, adaptivity, and dynamic injection and execution of concurrent distributed activities. Accordingly, we introduce a notion of “aggregate process” as a concurrent
field computation whose execution and interactions are sustained by a dynamic team of devices, and whose spatial region can opportunistically vary over time. We formalise this notion by extending the Field Calculus with a new primitive construct, spawn, used to instantiate a set of field
computations and regulate key aspects of their life-cycle. By virtue of an open-source implementation in the ScaFi framework, we show basic programming examples and benefits via two case studies of mobile ad-hoc networks and drone swarm scenarios, evaluated by simulation.
Coordinating Computation at the Edge: a Decentralized, Self-organizing, Spati...Roberto Casadei
Presentation of a paper accepted at the 4th Internetional Conference on Fog and Mobile Edge Computing (FMEC).
It discusses a decentralised, self-organising, spatial, collective approach to the development of edge-clouds/edge computing ecosystems.
Brief overview of the Rust system programming language. Provides a concise introduction of its basic features, with an emphasis on its memory safety features (ownership, moves, borrowing) and programming style with generic functions, structures, and traits.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
AWS and Serverless Computing
1. Amazon Web Services and Serverless Apps
Roberto Casadei
Concurrent and Distributed Programming course
Department of Computer Science and Engineering (DISI)
Alma Mater Studiorum – Università of Bologna
June 4, 2019
R. Casadei AWS Serverless Apps on AWS 1/27
2. Outline
1 Amazon Web Services (AWS): Overview
2 Serverless Apps on AWS
R. Casadei AWS Serverless Apps on AWS 2/27
3. Intro
Amazon Web Services (AWS) is a cloud computing platform, i.e., a platform of
web services offering solutions for computing, storing, and networking, at
different layers of abstraction
Services are charged for on a pay-per-use pricing model
As an AWS customer, you can choose among different data centers (regions)
As of 2019/05, AWS spans 66 Availability Zones within 21 geographic Regions around the world
Services are exposed through APIs: (1) HTTP, (2) web-based, (3) CLI, (4) SDK client
R. Casadei AWS Serverless Apps on AWS 3/27
4. AWS Services (1/4)
https://docs.aws.amazon.com/—More than 90 services, e.g.:
Compute
Amazon EC2 (Elastic Compute Cloud): provides VMs
AWS Lambda: for serverless apps
Storage
Amazon S3 (Simple Storage Service): object storage
AWS Backup: to automate backup tasks across AWS services and on-premises
Database
Amazon DynamoDB: K/V, document store
Amazon RDS (Relational Database Service): managed RDBMS
Security, Identity, & Compliance
AWS IAM (Identity & Access Management)
R. Casadei AWS Serverless Apps on AWS 4/27
5. AWS Services (2/4)
Machine Learning
Amazon Comprehend: uses NLP to extract insights from text
Amazon ML: provides GUI tools/wizards to ease creation of ML models
Amazon Translate
Management & Governance
AWS CloudFormation: helps create/provision of AWS infrastructure
declaratively/predictably/repeatedly
AWS Health: provides ongoing visibility of your AWS resources, services, and accounts
Networking & Content Delivery
Amazon API Gateway: for creating, publishing, maintaining, monitoring, and securing
REST and WebSocket APIs at any scale
R. Casadei AWS Serverless Apps on AWS 5/27
6. AWS Services (3/4)
Analytics
Amazon Kinesis: to collect, process, and analyze video and data streams in real time
Amazon CloudSearch: for setting up search solutions for your website/app
AWS Glue: fully-managed ETL service
Amazon Redshift: data warehouse service
Application Integration
Amazon MQ: a managed message broker service for Apache ActiveMQ
Amazon SNS (Simple Notification Service): cloud-mediated notification service
Amazon SQS (Simple Queue Service): fully managed message queuing service
Internet of Things
AWS IoT Core: enables secure, bi-directional communication between Internet-connected
things and the AWS Cloud over MQTT and HTTP
AWS IoT Device Management: supports e.g. onboarding config, monitoring devices,
remote management etc.
AWS IoT Events: enables monitoring and triggers upon events
R. Casadei AWS Serverless Apps on AWS 6/27
7. AWS Services (4/4)
Additionally:
AR & VR: Amazon Sumerian (for 3D scenes on the web), ...
Blockchain: Amazon Managed Blockchain
Business apps: Amazon Chime (for online meetings), ...
Customer Engagement: Amazon Connect (Contact-Center-as-a-Service)
Cryptography & PKI: AWS KMS (Key Management Service) (encryption keys), ...
Developer tools: AWS Cloud9 (cloud-based IDE), AWS CodeDeploy (deployment of
apps), ...
End User Computing: Amazon WorkSpaces (virtual desktops), ...
Game development: Amazon GameLift, Amazon Lumberyard
Media services: Amazon Elastic Transcoder (convert media files in S3 into formats
required by playback devices), ...
Migration & Transfer: services e.g. to migrate DB data from/to cloud
Mobile: AWS Device Farm (app testing service), ...
Robotics: AWS RoboMaker
Satellite: AWS Ground Station
R. Casadei AWS Serverless Apps on AWS 7/27
8. How much does it cost?
Services are billed based on usage (invoiced on a monthly basis). For example:
Based on hours of usage – if you use a server for 61mins, usually it’s counted as 2hs.
Based on traffic – Measure in GBs or num of requests.
Based on storage usage – Provisioned capacity or real usage.
AWS Simple Monthly Calculator: http://aws.amazon.com/calculator
AWS Budgets: you can create custom cost/usage budget alerts
Billing console: https://console.aws.amazon.com/billing/home
Billing example (x5 requests)
R. Casadei AWS Serverless Apps on AWS 8/27
9. Free tier (as of May 2019)
https://aws.amazon.com/free/
Always free
AWS Lambda: 106
requests/month
Amazon DynamoDB: 25 GB storage
Amazon Glacier: 10 GB of long-term storage
…
12-month free (since subscription to AWS)
Amazon EC2: 750 hours/month
Amazon API Gateway: 106
ingress requests/month
Amazon RDS: 750 hours/month
AWS IoT: 250k messages/month
…
R. Casadei AWS Serverless Apps on AWS 9/27
11. Interacting with AWS
Web-based Management Console: https://console.aws.amazon.com
HTTP API
Example: EC2 Query API
https://ec2.amazonaws.com/?Action=RunInstances
&ImageId=ami-2bb65342
&MaxCount=3&MinCount=1
&Placement.AvailabilityZone=us-east-1a
&Monitoring.Enabled=true
&AUTHPARAMS
Command-line interface (CLI): aws ec2 run-instances ...
SDKs for multiple languages: Android, JS, Node.js, PHP, Ruby, Python, Java, .NET, Go.
$ npm install -D aws-sdk
AWS SDK for Node
const AWS = require('aws-sdk');
const ec2 = new AWS.EC2({region: 'us-east-1'});
Higher-level tools/services: e.g., AWS CloudFormation is an Infrastructure-as-Code
tool converts JSON/YAML blueprints (templates) into running infrastructure
{ infrastructure: { loadbalancer: {...}, cdn: {...}, database: {...}, dns : {...} }
R. Casadei AWS Serverless Apps on AWS 11/27
12. Use AWS
Create an AWS Account and user
Create an AWS account: https://aws.amazon.com
Go to the AWS Management Console: https://console.aws.amazon.com
Enable billing alarms from Billing Dashboard and then create a billing alarm
Do NOT use the AWS root account: go to Services → IAM → Users → Add user and
create a user with “Programmatic access”, with AdministratorAccess policy.
Then, to make API calls (or use CLI) you need your user’s access keys.
CLI installation and initial setup
$ sudo pip install awscli
$ aws configure # configure credentials
# AWS Access Key ID [None]: XXXXXXXXXXXXXXXX
# AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
# Default region name [None]: eu-central-1 (Alternatives: us-east-1..)
# Default output format [None]: json
$ aws help # Get available services
$ aws ec2 help # Get help for specific service
$ aws ec2 describe-regions help # Get help for specific action
When you aws configure, a file ~/.aws/credentials is created; then, when you run
a cmd, you may omit --profile and use the settings stored in the default profile.
Command Format: aws <service> <action> [opts]
R. Casadei AWS Serverless Apps on AWS 12/27
13. Outline
1 Amazon Web Services (AWS): Overview
2 Serverless Apps on AWS
R. Casadei AWS Serverless Apps on AWS 13/27
14. Serverless » What
Serverless: a method of deploying and running apps on cloud infrastructure
Cloud execution model where pay-per-use + servers abstracted away
Serverless apps are event-driven, distributed, autoscalable
Providers: AWS Lambda, Google Cloud Functions, Azure Functions
Provider responsibilities: capacity planning, scaling, balancing, monitoring
Shouldn’t use when: always-up, websocket apps; latency is critical; ..
AWS Lambda
It runs code in response to events and automatically manages compute resources
Allows you to run functions written in Node.js, Python, C#, and JVM languages
Limits: 15 minutes max exec time (default 3secs); max 3GB memory (default 128MB)
Pricing: 0.2$ per million function execs + $0.000016 per GB of memory/month (for
storage of functions); see also free tier ○
AWS Lambda application development
Difficult parts: deployment and function configuration
Claudia is a Node.js library for deployment to AWS Lambda and API Gateway
Serverless Application Model (SAM), tool by AWS which uses AWS CloudFormation
Serverless Framework: similar to SAM, but supports other platforms (e.g., Azure)
R. Casadei AWS Serverless Apps on AWS 14/27
15. Serverless » How it works
A serverless function runs only when triggered by an event
You pay only for its execution time; after exec, the function shuts down, while keeping its
trigger active.
Serverless app design: instead of having a server with API endpoints and business
logic, each part of your app is isolated to independent and autoscalable containers.
AWS services for serverless apps:
Lambda: compute service
API Gateway: accepts HTTP requests and routes them to other services
DynamoDB: autoscalable NoSQL DB
Example function
function lambdaFunction(event, context, callback) {
callback(null, 'Hello from AWS Lambda')
}
exports.handler = lambdaFunction;
AWS Lambda requires the module export to be an object of name handler
event keeps data passed by the service who triggered the function
Triggers examples: HTTP requests via API Gateway; changes in DynamoDB stores..
context contains data about your Lambda function: exec time, its trigger, etc.
callback is a way to reply (or error) to the trigger with arguments
R. Casadei AWS Serverless Apps on AWS 15/27
16. What should I do, manually?
1) Control access to an API with IAM permissions:
https://docs.aws.amazon.com/apigateway/latest/developerguide/
setting-up.html
https://docs.aws.amazon.com/apigateway/latest/developerguide/
permissions.html
2) Create a REST API with Lambda Integrations in Amazon API Gateway
https://docs.aws.amazon.com/apigateway/latest/developerguide/
apigateway-getting-started-with-rest-apis.html
Lambda proxy integration (recommended): the entire client request is sent to the backend
Lambda function as is, mapped to the input event parameter of the function; the Lambda
function’s output is returned to the client as is.
Lambda non-proxy integration (custom): you configure the way parameters, headers, and
body of the client requests and responses are translated to/from Lambda functions
R. Casadei AWS Serverless Apps on AWS 16/27
17. Amazon API Gateway
Amazon API Gateway is an AWS service for creating, publishing, maintaining,
monitoring, and securing REST and WebSocket APIs at any scale
API Gateway handles all the tasks involved in accepting and processing up to millions of
concurrent API calls, including traffic management, authZ and access control, monitoring,
API version management, and routing to backend services (e.g., EC2, Lambda, ..)
Pricing (as of June 2019)
https://aws.amazon.com/api-gateway/pricing/
Free tier (first 12-month)—per month: 1M REST API calls; 1M msgs & 750k connection
mins for Websocket APIs
REST APIs (US east): 3.5–1.5$ per million calls; 0.0020$/hour per 0.5GB cache
Data transfer (US-east Ohio): you’ll be charged at the EC2 data transfer rate
Data transfer IN to EC2 from Internet: 0$
Data transfer OUT from EC2 to Internet: 0$/GB up to 1GB/month; 0.09$/GB for next
999GB/month; ...
Data transfer OUT from EC2 to AWS: 0.01$/GB to US east Virginia; 0.02$/GB to EU (Frankfurt);
...
R. Casadei AWS Serverless Apps on AWS 17/27
18. Claudia
Claudia is a Node.js library, built on top of AWS SDK, that eases the deployment of
Node.js projects to AWS Lambda and API Gateway. Components:
1) Claudia (Cmd-line tool): allowing creation and update of functions from terminal
2) Claudia API Builder: for creation of APIs for API Gateway
It automates all the error-prone deployment and configuration tasks.
Creating and updating the function with a single command
Reducing boilerplate, allowing you to focus on your work
Managing multiple versions easily
R. Casadei AWS Serverless Apps on AWS 18/27
19. Installing Claudia
$ npm install [--save-dev|-g] claudia claudia-api-builder
# If installed locally, run claudia via: node_modules/.bin/claudia
Claudia uses the AWS SDK for Node.js to function, and so requires AWS profile keys
Create a new AWS profile
Create a profile: AWS Console => Users tab => IAM section => Add user
− Attach existing policies: IAMFullAccess (to enable Claudia to create execution roles for
your lambdas; otherwise you need to use --role with claudia create);
AWSLambdaFullAccess (for Claudia deployments); AmazonAPIGatewayAdministrator (for
Claudia API); AmazonDynamoDBFullAccess; AmazonAPIGatewayPushToCloudWatchLogs
AWS roles/policies are important for production
− Once you confirm, you get an access key ID and a secret access key for your new user.
Finally, configure your profile with the AWS CLI
$ aws configure
R. Casadei AWS Serverless Apps on AWS 19/27
20. Hello World Claudia1
$ npm install -g claudia
$ mkdir hello-world && cd hello-world
$ npm init
exports.handler = function (event, ctx, callback) {
console.log("Function: ", ctx.functionName, ctx.functionVersion);
console.log("Event data: ", JSON.stringify(event));
console.log("Request: ", ctx.awsRequestId);
console.log("Remaining time: ", ctx.getRemainingTimeInMillis());
callback(null, 'hello world');
};
$ claudia create --region us-east-1 --handler lambda.handler
$ claudia test-lambda
# change lambda code
$ claudia update
If name in package.json is XXX, Claudia creates an AWS role XXX-executor (with a
policy log-writer) and a function with name XXX
1https://claudiajs.com/tutorials/hello-world-lambda.html
R. Casadei AWS Serverless Apps on AWS 20/27
21. Building APIs with Claudia
Claudia API Builder uses API Gateway proxy pass-through to capture all the HTTP
request details and structure them in a JS developer-friendly way.
$ npm install --save claudia-api-builder
api.js
const Api = require('claudia-api-builder');
const api = new Api();
api.get('/', () => 'Welcome to my API');
api.get('/hello/{x}', (req) => { return "hello " + req.pathParams.x; });
api.post('/act', (req) => { createSomething(req.body); }, {
success: 201, // "201 Created" status code on success
error: 400 // "400 Bad request" status code on error
});
module.exports = api; // export your Claudia API Builder instance
$ claudia create # Create a new lambda function
--region eu-central-1 # AWS region for deployment
--api-module api # api.js is the API entry point
# { "lambda": { ... }, // Lambda function info
# "api": { ..., "url": "<API-BASE-URL>" } }
R. Casadei AWS Serverless Apps on AWS 21/27
22. How Claudia deploys your API (on claudia create)
R. Casadei AWS Serverless Apps on AWS 22/27
23. DynamoDB
DynamoDB is a fully managed, autoscaled, propetary NoSQL DB provided by AWS
Data model: data tables (schemaless); attributes (one is primary key); items
Creating tables: you need to define the region for your table and the provisioned
throughput (i.e., the RD and WR capacity that should be reserved for you app)
For autoscaling, you need to define min and max capacity
aws dynamodb create-table
--table-name orders
--attribute-definitions AttributeName=orderId,AttributeType=S
--key-schema AttributeName=orderId,KeyType=HASH
--provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1
--region eu-central-1
--query TableDescription.TableArn
--output text
Output is the Amazon Resource Name (ARN) of the newly created table.
SDK API: in Node AWS SDK, use AWS.DynamoDB.DocumentClient to work asyncly
with DynamoDB
$ npm install --save aws-sdk
R. Casadei AWS Serverless Apps on AWS 23/27
24. Working with DynamoDB (1/3)
Add IAM policy to allow Lambdas to communicate with DynamoDB
aws iam put-role-policy --policy-document file://./dynamodb.json
--role-name <lambda-executor> --policy-name OrdersApiDynamoDB
You can find the value for -role-name in claudia.json
dynamodb.json: a JSON file that describes policies
{ "Version": "2012-10-17",
"Statement": [{
"Action": ["dynamodb:Scan", "dynamodb:DeleteItem",
"dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem"
,
"dynamodb:GetRecords", "dynamodb:GetShardIterator",
"dynamodb:DescribeStream", "dynamodb:ListStreams"],
"Effect": "Allow",
"Resource": "*"
}]
}
R. Casadei AWS Serverless Apps on AWS 24/27
25. Working with DynamoDB (2/3)
Programmatically add items
const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient();
const uuid = require('uuid');
function createOrder(req) {
if (!req || !req.product) throw new Error('...');
return docClient.put({ TableName: 'orders',
Item: { orderId: uuid(), product: req.product, orderStatus: 'pending' }
})
.promise()
.then((res) => { console.log('Order saved:',res); return res; })
.catch((err) => { console.log('Err:',err); throw err; } );
};
module.exports = createOrder;
All AWS SDK classes have a promise() method that can, instead of default
callback behavior, return a promise.
Claudia API Builder expects a Promise for async operations
R. Casadei AWS Serverless Apps on AWS 25/27
26. Working with DynamoDB (3/1)
List all items from CLI
$ aws dynamodb scan --table-name orders
--region eu-central-1 --output json
CRUDs
function getOrders(orderId) {
if (typeof orderId === 'undefined')
return docClient.scan({TableName: 'pizza-orders'})
.promise().then(r => r.Items);
return docClient.get({TableName: 'pizza-orders', Key: {orderId: orderId}})
.promise().then(res => res.Item);
}
function updateOrder(orderId, opts) {
// ...
return docClient.update({TableName:'pizza-orders', Key:{orderId:orderId},
UpdateExpression: 'set pizza = :p, address=:a',
ExpressionAttributeValues: { ':p': opts.pizza, ':a': opts.address },
ReturnValues: 'ALL_NEW'
}).promise().then((res) => return res.Attributes);
R. Casadei AWS Serverless Apps on AWS 26/27
27. Wrap-up
Key points
Cloud apps leverage services on the “cloud” through APIs
Understand the layers of abstractions (I/P/S-aaS)
When using a service, understand what is provided
Understand the pricing
Exercises
1. Take a look at the examples in the following repository:
https://bitbucket.org/unibo_disi/pcd-lab-aws-claudiajs
2. Read the docs to understand the pricing for DynamoDB:
https://aws.amazon.","lambda:
GetAccountSettings"com/dynamodb/pricing/on-demand/
R. Casadei AWS Serverless Apps on AWS 27/27
28. References (1/1)
[1] AWS Documentation. https://docs.aws.amazon.com/. [Online; accessed 2019-06].
[2] S. Stojanovic and A. Simovic. Serverless Applications with Node.Js: Using AWS Lambda and
Claudia.Js. Manning Publications Company, 2019. ISBN: 9781617294723. URL:
https://books.google.it/books?id=e7rAswEACAAJ.
[3] M. Wittig, A. Wittig, and B. Whaley. Amazon Web Services in Action. Manning, 2018. ISBN:
9781617295119. URL: https://books.google.it/books?id=-LRotAEACAAJ.
R. Casadei Appendix References 28/27