Add speaker notes
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
3da7585df5
commit
d19fd2401c
Binary file not shown.
After Width: | Height: | Size: 160 KiB |
Binary file not shown.
After Width: | Height: | Size: 756 KiB |
1
conf.py
1
conf.py
|
@ -35,7 +35,6 @@ revealjs_script_conf = '''
|
||||||
history: true,
|
history: true,
|
||||||
center: true,
|
center: true,
|
||||||
transition: "slide",
|
transition: "slide",
|
||||||
showNotes: true,
|
|
||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
revealjs_script_plugins = [
|
revealjs_script_plugins = [
|
||||||
|
|
102
index.rst
102
index.rst
|
@ -12,30 +12,39 @@ What does serverless mean?
|
||||||
|
|
||||||
.. image:: _static/empty_racks.jpg
|
.. image:: _static/empty_racks.jpg
|
||||||
|
|
||||||
|
.. Advantages of serverless:
|
||||||
|
- No management
|
||||||
|
- Faster startup times
|
||||||
|
- "Infinite scale"
|
||||||
|
- Business logic only
|
||||||
|
|
||||||
|
|
||||||
AWS Compute startup times
|
AWS Compute startup times
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
.. revealjs_fragments::
|
.. revealjs_fragments::
|
||||||
|
|
||||||
* EC2 - minutes
|
* EC2 - minutes
|
||||||
* Fargate - seconds
|
* Fargate - seconds
|
||||||
* Lambda - milliseconds (when warm and cozy)
|
* Lambda - milliseconds (when warm and cozy)
|
||||||
* https://firecracker-microvm.github.io/
|
* https://firecracker-microvm.github.io/
|
||||||
|
|
||||||
The Lambda lifecycle
|
The Lambda lifecycle
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
print('initialized')
|
print('initialized')
|
||||||
|
|
||||||
|
|
||||||
def handler(event, context):
|
def handler(event, context):
|
||||||
print('executed')
|
print('executed')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'message': 'done'
|
'message': 'done'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.. What is a cold start and the advantages of a warm lambda
|
||||||
|
|
||||||
Edifice Corb
|
Edifice Corb
|
||||||
============
|
============
|
||||||
|
@ -51,31 +60,38 @@ Rapid iteration
|
||||||
|
|
||||||
.. image:: _static/say_agile.jpg
|
.. image:: _static/say_agile.jpg
|
||||||
|
|
||||||
|
.. Constantly reworking the infrastructure and sometimes even the business logic
|
||||||
|
|
||||||
Person detection
|
Person detection
|
||||||
================
|
================
|
||||||
|
|
||||||
* Tensorflow model
|
|
||||||
* Inference on video frames is compute intensive
|
* Inference on video frames is compute intensive
|
||||||
* EC2 GPU instances are neither serverless nor cheap
|
* GPU instances are neither serverless nor cheap
|
||||||
|
|
||||||
|
.. image:: _static/god_damn_aws_charges.jpg
|
||||||
|
:width: 60%
|
||||||
|
|
||||||
|
.. Don't use GPU for inference unless absolutely necessary
|
||||||
|
|
||||||
AWS to the rescue
|
AWS to the rescue
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
.. image:: _static/behold_elastic_inference.jpg
|
.. image:: _static/behold_elastic_inference.jpg
|
||||||
:width: 40%
|
:width: 40%
|
||||||
|
|
||||||
Still not serverless
|
Still not serverless
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
.. image:: _static/elastic_inference.png
|
.. image:: _static/elastic_inference.png
|
||||||
:width: 40%
|
:width: 40%
|
||||||
|
|
||||||
The AWS SageMaker of six paths
|
The AWS SageMaker of six paths
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
* Managed end-to-end ML service
|
Managed end-to-end ML service
|
||||||
* Model training, deployment, and monitoring
|
|
||||||
* SageMaker studio, an "IDE for ML"
|
.. image:: _static/sagemaker_studio.jpg
|
||||||
|
:width: 80%
|
||||||
|
|
||||||
Processing pipeline
|
Processing pipeline
|
||||||
===================
|
===================
|
||||||
|
@ -91,24 +107,26 @@ Serverless framework
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
.. image:: _static/serverless.jpg
|
.. image:: _static/serverless.jpg
|
||||||
:width: 30%
|
:width: 30%
|
||||||
|
|
||||||
True yaml engineering
|
True yaml engineering
|
||||||
|
|
||||||
|
.. No manual zip files, less architecture management, but less flexible
|
||||||
|
|
||||||
Triggering events
|
Triggering events
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
functions:
|
functions:
|
||||||
VideoIngress:
|
VideoIngress:
|
||||||
handler: aws_lambda.run_detector.handler
|
handler: aws_lambda.run_detector.handler
|
||||||
events:
|
events:
|
||||||
- s3:
|
- s3:
|
||||||
bucket: video-bucket
|
bucket: video-bucket
|
||||||
event: s3:ObjectCreated:*
|
event: s3:ObjectCreated:*
|
||||||
rules:
|
rules:
|
||||||
- suffix: .mkv
|
- suffix: .mkv
|
||||||
|
|
||||||
Other serverless goodies
|
Other serverless goodies
|
||||||
------------------------
|
------------------------
|
||||||
|
@ -117,6 +135,8 @@ Other serverless goodies
|
||||||
* Easy additional permissions
|
* Easy additional permissions
|
||||||
* Lots of functionality for little code
|
* Lots of functionality for little code
|
||||||
|
|
||||||
|
.. show serverless.yaml
|
||||||
|
|
||||||
Other serverless badies
|
Other serverless badies
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
@ -124,17 +144,23 @@ Other serverless badies
|
||||||
* Multiple environments are harder to implement
|
* Multiple environments are harder to implement
|
||||||
* Hardcoding and code duplication
|
* Hardcoding and code duplication
|
||||||
|
|
||||||
|
.. show serverless.yaml
|
||||||
|
|
||||||
Messaging pipeline
|
Messaging pipeline
|
||||||
==================
|
==================
|
||||||
|
|
||||||
.. image:: _static/messaging_pipeline.png
|
.. image:: _static/messaging_pipeline.png
|
||||||
:width: 40%
|
:width: 40%
|
||||||
|
|
||||||
|
.. Current architecture. Will be more complex when we add alarms. Talk about sync/async lambda calls
|
||||||
|
|
||||||
Y tho?
|
Y tho?
|
||||||
------
|
------
|
||||||
|
|
||||||
.. image:: _static/why_few_lambda.jpg
|
.. image:: _static/why_few_lambda.jpg
|
||||||
|
|
||||||
|
.. Why microservices. Easier parallel development. Easier testing
|
||||||
|
|
||||||
|
|
||||||
More triggers and destinations
|
More triggers and destinations
|
||||||
------------------------------
|
------------------------------
|
||||||
|
@ -142,16 +168,16 @@ More triggers and destinations
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
CleaningReportGenerator:
|
CleaningReportGenerator:
|
||||||
handler: aws_lambda.request_cleaning.handler
|
handler: aws_lambda.request_cleaning.handler
|
||||||
events:
|
events:
|
||||||
- eventBridge:
|
- eventBridge:
|
||||||
pattern:
|
pattern:
|
||||||
detail:
|
detail:
|
||||||
responsePayload:
|
responsePayload:
|
||||||
command_type:
|
command_type:
|
||||||
- request_cleaning
|
- request_cleaning
|
||||||
destinations:
|
destinations:
|
||||||
onSuccess: arn:aws:events:::event-bus/default
|
onSuccess: arn:aws:events:::event-bus/default
|
||||||
|
|
||||||
EventBridge - Central point of success
|
EventBridge - Central point of success
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue