2020/2021
SERVERLESS COMPUTING FOR IOT
–
APPUNTI
CORSO LAUREA MAGISTRALE – CLOUD COMPUTING 1
Sommario
1. INTRODUZIONE ......................................................................................................................................... 3
2. CLOUD COMPUTING ................................................................................................................................. 4
3. AMAZON WEB SERVICES .......................................................................................................................... 7
3.1. Infrastruttura .................................................................................................................................... 7
3.1.1. Access to services ...................................................................................................................... 7
3.1.2. Computing ................................................................................................................................. 7
3.1.3. Storage/DB ................................................................................................................................ 7
3.1.4. Networking ................................................................................................................................ 8
3.1.5. Developer Tools ........................................................................................................................ 8
3.1.6. Migration ................................................................................................................................... 8
3.1.7. Management ............................................................................................................................. 8
3.1.8. Security ...................................................................................................................................... 8
3.1.9. Analitycs .................................................................................................................................... 8
3.1.10. AI ................................................................................................................................................ 8
3.1.11. Mobile ....................................................................................................................................... 8
3.1.12. IoT .............................................................................................................................................. 8
3.2. Microservizi ....................................................................................................................................... 9
4. INTERNET OF THINGS .............................................................................................................................. 10
4.1. Architecture .................................................................................................................................... 10
4.2. Resources and data ......................................................................................................................... 10
4.3. Fog Computing ................................................................................................................................ 11
4.4. MQTT ............................................................................................................................................... 11
5. VIRTUALIZZAZIONE ................................................................................................................................. 12
5.1. Virtualization ................................................................................................................................... 12
5.3. Container-based .............................................................................................................................. 12
5.4. Docker ............................................................................................................................................. 13
5.5. DevOps ............................................................................................................................................ 13
6. SERVERLESS COMPUTING ....................................................................................................................... 14
2
1. INTRODUZIONE
The evolution over the past 30 years is moving from HPC to HTC because the number of high demand
concurrent Internet users is growing rapidly.
High-performance computing (HPC): is a paradigm which aims to raw speed performance, also
measured by floating-point sped. They are mainly used for scientific, engineering and research
reasons, but are not suitable for today’s demand
High-throughput computing (HTC): is a paradigm which pays more attention to high-flux
computing, where the main applications are Internet searches and web services by millions of users
simultaneously. So, the performance goal is now high throughput (number of tasks completed per
unit of time)
In the years different computing paradigms have born:
Centralized computing: is a paradigm where all resources are centralized in one physical
system. So, all resources (processors, memory and storage) are tightly coupled and fully
shared in one integrated OS
Parallel computing: is a paradigm where all processors are either tightly coupled with a
centralized shared memory or instead loosely coupled with a distributed memory
Distributed computing: is a paradigm composed of multiple autonomous computers (each
with its own private memory) that communicate through a computer network
Cloud Computing: is an Internet cloud of resources which can be either a centralized or a
distributed system (datacenter), which can use a parallel, a distributed or both types of
computation
Degrees of parallelism:
Bit-level parallelism = is based on incrementing the processor word size, reducing the
number of instructions required to perform an operation on variables whose sizes are
greater than the word size (4, 8, 16, 32, 64 bit)
Instruction-level parallelism = the processor executes multiple instructions simultaneously
with technique such as pipelining or multithreading
Data-level parallelism = the same task is executed on distributed data across processors
Task-level parallelism = different tasks are executed on the same data
Job-level parallelism = different independent jobs are executed across process
Any new technology may go through a hype cycle called Gartner hype cycle composed by 5 phases
which describes its expectations:
1. Technology Trigger = a new potential technology arrives and some early proofs-of-concept
appear
2. Peak of inflated expectations = the early publicity produces a high number of expectations
3. Period of disillusionment = when implementations start to fail and the interest starts to get
lower and lower
4. Period of enlightenment = more examples on how the new technology can benefit
enterprises arrive and become more widely understood
5. Period of productivity = the mainstream adoption starts to take off, its market will grow up
3
System models for distributed computing:
Clusters = consists of interconnected stand-alone computers (loosely coupled, with their
own OS) which cooperate as a single integrated system thanks to a high-bandwidth
interconnection network
Grid Computing = is a bigger infrastructure that couples computers and softwares or
middlewares. It is composed by workstations, servers, clusters and supercomputers, but it
can be accessed with personal computers, laptops and PDAs (it has a static resources
allocation while cloud has dynamic elastic allocation)
P2P systems = it is a system where every node acts both as a client and as a server, providing
part of its resources to the system. So, there is no master nodes or any central coordination
and the nodes are free to leave or join when they want. We can define two networks in it:
the physical network (the actual physical interconnection of the devices) and the overlay
network (a virtual network based on how the nodes communicate with each other)
Programming models for distributed computing: MPI, mapreduce, hadoop
The quality of services in distributed systems are evaluated based on different metrics (also design
goals):
Performance metrics = we have to think in a broader sense (senso più ampio), so the system
throughput is measured in MIPS, Tflops or TPS. Others are job response time and network
latency
Scalability metrics = we want good scalable performance in different dimensions: size (more
resources), software (upgrading OS, compilers, adding libraries) and application (matching
the problem size with the resources size), Technology scalability is when the system can be
adapted to changes in construction technologies, while the time scalability refers to the
scalability of generation, for example when moving to next generation processors, we must
considerate the impact on the motherboard, the space scalability is related to packaging e
to energy concerns, heterogeneity refers to the use of hardware or software components
from different vendors. Scalability and OS images scalable performance they are often
estimated respect to the multiplicy of OS images in a distributed system.
System Availability = we want a system that has a long mean time to failure and a short
mean time to repair. Un consiglio è quello di progettare un sistema senza un singol point of
failure (qualsiasi guasto hardware o software che tirerà giù l'intero sistema), adding
hardware redundancy, increasing component re
-
Programmazione Distribuita - Serverless Computing
-
Appunti di Architectures And Technologies For IoT
-
Riassunto esame Parallel computing, Prof. Marco Bertini, libro consigliato Parallel Programming for Multicore and C…
-
Appunti completi del corso, Sistemi informativi e trend digitali, prof. Carignani Andrea e Gemmo Vanessa