SlideShare a Scribd company logo
1 of 148
Download to read offline
Thursday, Feb 27, 2020
1. Intro & Activity Update
2. Community Open Mic
3. Ian Whitestone: “Bootstrapping a
data-driven application with
Zappa (Serverless Python) to
find an apartment in Toronto”
4. Networking
1
ServerlessToronto.org Meetup Agenda
Serverless is not just about the Tech:
2
Serverless is New Agile & Mindset
Serverless Dev (gluing
other people’s APIs and
managed services)
We're obsessed by
creating business value
(meaningful MVPs,
products) and helping
Startups
We build bridges
between Serverless
Community (“Dev leg”),
and Front-end & Voice-
First folks (“UX leg”),
and empower UX
developers
Achieve agility NOT by
“sprinting” faster (like in
Scrum), but by working
smarter (by using
bigger building blocks
and less Ops)
#ServerlessTO
Sponsors
3
Venue Sponsor
4
As Certified B Corporation, Myplanet is purpose-driven and
creates benefit for all stakeholders, not just shareholders!
Knowledge Sponsor
5
Get your raffle tickets… and GOOD LUCK!
1. Go to www.manning.com
2. Select eBook or Video title you like
3. Add it to the shopping cart
4. Raffle winner will send me email address used
5. For Manning staff to move to your dashboard
Bonus Raffle from our friends
6
Get your raffle tickets… and GOOD LUCK!
2 tickets for “Full-Day on JAMstack Web Technology” paid event.
© 2020 Trend Micro Inc.1
Trend Micro Cloud One™
Cloud Security Simplified
Albert Kramer
Technical Director Trend Micro
© 2020 Trend Micro Inc.2
Cloud Na)ve Applica)ons
Strategic Priori,es for Cloud Builders
Cloud Migra)on
Cloud Opera)onal Excellence
Risk & Compliance
GovernanceAssurance
Containers Serverless
DevOps
Google
Kubernetes
Engine
Azure
Kubernetes
Service
AWS
Lambda
Azure
Func;ons
Google
Serverless
Amazon S3
Azure Blob
Google
Storage
GitHub Jenkins
How do you secure such a complex &
fast-paced environment?
TransiCon, not a cut-over
Hybrid cloud is the norm
• Deliver fast, iterate oFen
Infrastructure-as-codeCode
leverage: code re-use, open-
source and public code
repositories
Repeatable & consistent
Infrastructure and cost
opCmizaCon
MulC-cloud
Cloud Center of Excellence (CCoE)
Physical Virtual Cloud
Cloud
Storage
Cloud
Workloads
© 2020 Trend Micro Inc.3
Trend Micro Cloud One™
Security Services Pla/orm for Cloud Builders
Cloud Na)ve Applica)ons
Containers Serverless
DevOps
Cloud StorageCloud Workloads
Cloud Opera)onal Excellence
Risk & Compliance
GovernanceAssurance
Cloud Migra)on
Physical Virtual Cloud
© 2020 Trend Micro Inc.4
Trend Micro Cloud One™
Security Services Pla/orm for Cloud Builders
Workload & container host
security
Security for container
images
File scanning for cloud
storage services
Network layer IPS to
secure entire VPCs
Security for
serverless funcCons,
APIs, and applicaCons
Assurance cloud infrastructure is
configured securely
Cloud-na)ve, SaaS-based pla2orm with the most extensive set of cloud security services
Pla$orm:
• Single-sign-on
• Common user
and cloud
account
enrollment
• Common
procurement &
billing
• Common
support &
documenta6on
• Expandable
pla9orm
© 2020 Trend Micro Inc.5
Trend Micro Cloud One™
Security Services Pla/orm for Cloud Builders
FREE TRIAL
https://www.cloudconformity.com
DEMO
Serverless and API protection
https://www.trendmicro.com/en_us/business/products/hybrid-cloud/cloud-one-application-security.html
Automation center
https://automation.deepsecurity.trendmicro.com
Future Talks
2020
1
Upcoming 2020 #ServerlessTO Meetups
2
1. Intro to PySpark – Python Data Analysis at scale in the Cloud –
Jonathan Rioux, Lead Data Scientist at EPAM Systems & author of
PySpark in Action book ** MARCH 19 **
2. Introduction to Google BigQuery – Matt Welke, Software
Developer at GroupBy Inc
3. Solving your Business Problems with Serverless Architectures
– Panel discussion ** BACK BY POPULAR DEMAND **
4. Serverless with Pivotal Cloud Foundry – Adib Saikali, Principal
Platform Architect at VMware
5. Fivetran – Data Pipelines, Reinvented – Replicate your data into
the Cloud Warehouse of your choice
6. Your Own Presentation – PLEASE VOLUNTEER ☺
Community Open Mic
3
Your 10 sec. pitch ☺
- Looking for work?
- Offering work?
About You – because without you, there would be no meetups!
Feature Talk
Ian Whitestone, Data Scientist
at Shopify
4
Bootstrapping a data-driven application with ZappaBootstrapping a data-driven application with Zappa
ServerlessToronto-February2020
IanWhitestone
Today'sslides👉 ianwhitestone.work/talks
Some background..Some background..
>>> df[df.bedrooms == 1].price.median()>>> df[df.bedrooms == 1].price.median()
$2,200
>>> df[df.bedrooms == 0].price.median()>>> df[df.bedrooms == 0].price.median()
$1,800
>>> df[df.housing_type == 'basement'].price.median()>>> df[df.housing_type == 'basement'].price.median()
$1,500
Not only is it expensive..Not only is it expensive..
constantlylookingonmultiplesites
listingsgoreallyfast
competitiveapplications
biddingwars
...
Maybe there's a better way?Maybe there's a better way?
InspiredbyasimpleSanFrancisco madebyVik
Paruchuri...
apartmentpostingslackbot
hello, domihello, domi
0:00
Today's talkToday's talk
Introtoserverless&zappa
Overviewofhowdomiworks&highlightsomepackages
Deepdiveintothepricerankfeature
Applicationmonitoringwithgreatexpectations
Serverlessgotchas&workarounds
ServerlessServerless
NoserversNopermanentserversyouhavetomanage...
Instead,youjustwritecode,andinvokethatcodeondemandinmanydifferent
ways...
LikewhenanAPIendpointiscalled
Orwhenanewfilegetsuploadedtoyourcloudstorage
Oronapre-determinedschedule...andmore
Serverless OfferingsServerless Offerings
MicrosoftAzure-->
GoogleCloudPlatform(GCP)-->
IBMCloud-->
AmazonWebServices(AWS)-->
☝
AzureFunctions
GoogleCloudFunctions
IBMCloudFunctions
AWSLambda
Why?Why?
"Runcodewithoutthinkingaboutservers.Payonlyforthecomputetimeyou
consume."
-AWSlambdahomepage
aws.amazon.com/freeaws.amazon.com/free
1millionrequests&400,000GB-secondspermonth[🙅 💸 ]
Couldrunaλwith250MBofRAMfor18.5daysstraight..
My RequirementsMy Requirements
Noknowledgeormaintenanceofservers✅
Runperiodicbatchjobs✅
RespondtoAPIrequests✅
Cheap&easycompute✅
Supportrapiddevelopment,interation&deployments✅
coveredbyZappa...moreonthislater
Serverless Python from ScratchServerless Python from Scratch
UseCase:Periodicallydownloadsomedata,savetocloudstorage(S3)
# Create virtualenv and install packages
→ pipenv install requests
handler.py
import requests
import yaml
import main
def my_handler(event=None, context=None):
"""Kick off the desired function
Parameters
----------
event : dict, optional
AWS Lambda uses this parameter to pass in event data to the handler
context : LambdaContext, optional
AWS Lambda uses this parameter to provide runtime information
to your handler
"""
main.do_stuff() # and things
→ tree
├── Pipfile
├── Pipfile.lock
├── app
│ ├── main.py
│ └── handler.py
Step 1: Build Deployment PackageStep 1: Build Deployment Package
AWSlambdajustprovidesalinuxenvironmentwithpythoninstalled
Youneedtouploadanyadditionalpackagesyouneedforyourfunctions
→ pipenv run pip show requests
Name: requests
Version: 2.22.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: /Users/ianwhitestone/.../virtualenvs/.../lib/python3.7/site-packages 👈
Requires: idna, urllib3, certifi, chardet
Required-by: zappa
→ PACKAGES_DIR=/Users/ianwhitestone/.../virtualenvs/.../lib/python3.7/site-packages
→ PROJECT_DIR=$(pwd)
→ cd $PACKAGES_DIR
→ zip -r ${PROJECT_DIR}/deployment-package.zip .
...
→ cd ${PROJECT_DIR}/app
→ zip -r ${PROJECT_DIR}/deployment-package.zip .
Step 2: Create Identity & Access Management (IAM)Step 2: Create Identity & Access Management (IAM)
RoleRole
InAWSyouuseIAMrolestodictatewhatthingsaserviceoruserhasaccessto
Forourusecase,theIAMrolewilldescribealltheotherAmazonservicesour
lambdafunctioncaninteractwith
→ aws iam create-role 
--role-name lambda_basic_role 
--assume-role-policy-document file://lambda_trust_policy.json
{
"Role": {
"Path": "/",
"RoleName": "lambda_basic_role",
"RoleId": "AROA......",
"Arn": "arn:aws:iam::<account_num>:role/lambda_basic_role",
"CreateDate": "2019-09-22T16:48:43Z",
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
}
}
# Give it full access to S3
→ aws iam attach-role-policy 
--role-name lambda_basic_role 
--policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
# And cloudwatch (logs)
→ aws iam attach-role-policy 
--role-name lambda_basic_role 
--policy-arn arn:aws:iam::aws:policy/CloudWatchFullAccess
Step 3: Create Lambda FunctionStep 3: Create Lambda Function
→ aws lambda create-function 
--function-name download_stuff 
--runtime python3.7  😎
--role arn:aws:iam::<account_num>:role/lambda_basic_role 
--handler handler.my_handler 
--zip-file fileb://../deployment-package.zip 
--memory-size 128 
--timeout 900 # max timeout (15 minutes)
Step 4: Create Cloudwatch Events to Trigger LambdaStep 4: Create Cloudwatch Events to Trigger Lambda
Think"cronjob"
# Run it every hour
aws events put-rule 
--name "RunLambdaFunction" 
--schedule-expression "rate(1 hour)" 
--state "ENABLED"
# Add lambda function as target
aws events put-targets 
--rule "RunLambdaFunction" 
--targets "Id"="1","Arn"="arn:aws:lambda:us-east-1:<account_num>:function:download_stuff"
Testitout...
→ chmod -R 755 $PACKAGES_DIR
→ chmod -R 755 $PROJECT_DIR
...rebuildourdeploymentpackagement
→ aws lambda update-function-code 
--function-name download_stuff 
--zip-file fileb://../deployment-package.zip
Tryagain...
UseCase:Periodicallydownloadsomedata,savetocloudstorage(S3)database
# Create virtualenv and install packages
→ pipenv install requests
→ pipenv install psycopg2 # new dependency!
...rebuildourdeploymentpackagement
...updateourlambdafunction
Lambdafunctionsrunonpre-configured
Certainlibrariesneedtobepre-compiledonAmazonLinux
Luckily,popularlibrariesarealreadypre-compiled
Alsosomedockerbasedsolutionsavailable
AmazonLinuxmachines
https://github.com/Miserlou/lambda-packages
https://github.com/jkehler/awslambda-psycopg2
HowtoclawyourwayoutofAWSLambdafunctionhellusingthepowerof
Docker
Now let's talk about ZappaNow let's talk about Zappa
"Zappamakesitsupereasytobuildanddeployserver-less,event-drivenPython
applications(including,butnotlimitedto,WSGIwebapps)onAWSLambda+API
Gateway"
github.com/Miserlou/Zappa
UseCase:Periodicallydownloadsomedata,savetodatabase
# Create virtualenv and install packages
→ pipenv install requests
→ pipenv install psycopg2
→ pipenv install zappa # new dependency!
zappa_settings.json
(canbecreatedstepbystepwithzappa init)
{
"dev": {
"apigateway_enabled": false,
"aws_region": "us-east-1",
"profile_name": "default",
"project_name": "download_stuff",
"runtime": "python3.7",
"s3_bucket": "download_stuff",
"keep_warm": false,
"events": [{
"function": "main.do_stuff",
"expression": "rate(1 hour)"
}]
},
"prod": {
// config for production
}
}
→ zappa deploy dev
Calling deploy for stage dev..
Downloading and installing dependencies..
- psycopg2-binary==2.8.3: Using locally cached manylinux wheel
- sqlite==python3: Using precompiled lambda package
'python3.7'
Packaging project as zip.
Uploading zappa-cron-test-dev-1569183776.zip (9.5MiB)..
100%|█████████████████████████████████████████| 9.97M/9.97M [00:21<00:00, 528KB/s]
Scheduling..
Scheduled zappa-cron-test-dev-test.run with expression rate(1 minute)!
Deployment complete!
Deploymentpackagecreated✅
pre-compiledPythonpackages(i.e.psycopg2)swappedoutwhere
necessary
IAMrolecreated✅
Lambdafunctioncreated✅
Cloudwatcheventcreated✅
Forwebapps,alloftheabove,and:
CreateanewAPIGatewayresource✅
AutomaticallymapAPIGatewayrequesttoWSGI✅
Integratewithcustomdomain✅
Easilyviewlogs
# Show all logs
→ zappa tail dev
Calling tail for stage dev..
[1569183806942] Instancing..
[1569183806943] [DEBUG] 2019-09-22T20:23:26.942Z 97e8-d0b23aaf17a0 Zappa Event:
{'time': '2019-09-22T20:23:24Z', 'detail-type': 'Scheduled Event', 'source': 'aws.events',
'region': 'us-east-1', 'detail': {}, 'version': '0',
'resources': ['arn:aws:events:us-east-1:<>:rule/zappa-cron-test-dev-test.run'],
'id': '75265076-af20-30ca-fd1e-b3fcbe478843', 'kwargs': {}}
[1569183806988] hello world!!
[1569183865861] [DEBUG] 2019-09-22T20:24:25.861Z 8064-931e09d761e6 Zappa Event:
{'time': '2019-09-22T20:24:24Z', 'detail-type': 'Scheduled Event', 'source': 'aws.events',
'region': 'us-east-1', 'detail': {}, 'version': '0',
'resources': ['arn:aws:events:us-east-1:<>:rule/zappa-cron-test-dev-test.run'],
'id': '823d2b37-6a85-c162-5084-1906492f4b93', 'kwargs': {}}
[1569183865861] hello world!!
Easilyviewlogs
# Show logs from specific timeframe
→ zappa tail dev --since 1m
# Show logs from specific timeframe and filter
→ zappa tail batch_secondary_us_east_1 --since 1d --filter "ERROR"
Invokerawcommandsonlambdafortesting(avoidre-deploying)
→ zappa invoke dev "import psycopg2; print('hello')" --raw
Calling invoke for stage dev..
[START] RequestId: e35516da-b71d-4452-9896-e622fe263d1f Version: $LATEST
Instancing..
[DEBUG] 2019-09-22T20:20:09.25Z e622fe263d1f Zappa Event:
{'raw_command': "import psycopg2; print('hello')"}
hello
[END] RequestId: e35516da-b71d-4452-9896-e622fe263d1f
[REPORT] RequestId: e35516da-b71d-4452-9896-e622fe263d1f
Duration: 198.44 ms
Billed Duration: 200 ms
Memory Size: 512 MB
Max Memory Used: 84 MB
Init Duration: 525.29 ms
Keeplambda"warm"withscheduledinvocations
onsomerequestsAWSneedstore-provisionacontainerwithyourcode
beforeitcanprocesstherequest
thiscanchangeresponsetimefrom~300millisecondsto~3seconds( )
knownwayaroundthisistoimplementacloudwatcheventthatinvokesyour
functioneverycoupleminutes
zappaautomaticallytakescareofthis
default{"keep_warm": true}setting
source
Oversizedlambdadeploymentpackages
AWScurrentlylimitsLambdazipsizesto50megabytes
Ifyouhavepandas,numpyorscipy,youwillveryquicklygooverlimit
zappaautomaticallytakescareofthis
{"slim_handler": true}
largerpartsofdeploymentpackageuploadedtoS3
pullsdownpackageandcopiesto/tmpdirectoryatruntime
addsextrastartuptime,okayforawarmlambdafunction
notokaywhenrespondingtohightraffic&morelambdasgetspunup
Many more features..Many more features..
ExecuteinresponsetootherAWSevents
Easyrollbackswithzappa rollback prod -n 1
Easyinfrateardownwithzappa undeploy prod
Extensibilitythroughcustomcallbacks
Seeexample
andmore...
here
Other serverless frameworksOther serverless frameworks
⚠WritteninNode.js
CreatedbyAmazon
Serverless
Chalice
DownsidesDownsides
Notundergoingactivedevelopment??
Vendorlock-inwithAWS
NosupportforAWSlayers(yet)
Pre-compileddependenciessupportisn'tgreat(changingsoon)
Overview of domiOverview of domi
"app": {
"app_function": "domi.app.app",
"aws_region": "us-east-1",
"slim_handler": false,
"runtime": "python3.7",
"certificate_arn": "arn:aws:acm:us-east-1:XXXXXX:certificate/XXXXXX",
"domain": "domi.cloud",
"keep_warm": true,
"keep_warm_expression": "cron(0/3 12-4 ? * * *)",
"timeout_seconds": 3,
},
"batch_primary_us_east_1": {
"slim_handler": false,
"keep_warm": false,
"aws_region": "us-east-1",
"runtime": "python3.7",
"events": [
{
"function": "domi.apartments.handlers.get_all_listings",
"expression": "cron(0 */2 * * ? *)"
},
{
"function": "domi.apartments.handlers.process_new_listings",
"expression": "cron(15 */2 * * ? *)"
},
{
"function": "domi.apartments.handlers.check_listing_statuses",
"expression": "cron(15 */2 * * ? *)"
},
],
"timeout_seconds": 900,
}
isaspatialdatabaseextenderfor object-relational
database
Itaddssupportforgeographicobjectsallowinglocationqueriestoberunin
SQL
PostGIS PostgreSQL
Run fast, powerful spatial queriesRun fast, powerful spatial queries
SELECT listings.*
FROM listings, user_regions
WHERE
ST_Contains(user_regions.geom, listings.geom)
AND bedrooms >= 1
AND bathrooms >= 1
AND ...
from geoalchemy2 import Geometry
from sqlalchemy import Column, Integer
class Listing(BASE):
__tablename__ = "listings"
id = Column(Integer, primary_key=True)
geom = Column(Geometry(geometry_type="POINT", srid=4326))
bedrooms = Column(Integer)
class UserRegion(BASE):
__tablename__ = "user_regions"
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey("users.id"))
geom = Column(Geometry(geometry_type="POLYGON", srid=4326))
from models import Listing, UserRegion, SESSION
from sqlalchemy import func
listings = (
SESSION.query(
Listing.id,
Listing.source,
Listing.price,
...
)
.join(
UserRegion,
and_(
UserRegion.user_id == 123,
func.ST_Contains(UserRegion.geom, Listing.geom),
),
)
Price RankPrice Rank
MotivationMotivation
Isthisapartmentpricedhigh?normally?low?
Goal:Getanexpectedpricedistributionbasedonthetypeofapartment
Option 1: ClusteringOption 1: Clustering
Theory:Clustersimilarlistingsanduseactualpricedistributionofcluster
Source
Key problem with this approach:Key problem with this approach:
Eachvariableistreatedashavingthesameimpactonprice(afterscaling)
Option 2: Linear RegressionOption 2: Linear Regression
Theory:Linearregressiontopredictmean,calculatepredictionintervaltoget
rangeofexpectedvalues
However...However...
Calculatingthepredictionintervalreliesonthehomoscedasticityassumption,
whichstatesthatthevariancearoundtheregressionlineisthesameforall
valuesofthepredictorvariable.
Wecanquicklyseethisdoesnotholdtrue..
Option 3: Quantile RegressionOption 3: Quantile Regression
Theory:Quantileregressiontopredictp25&p75
Pricefallsbetweenp25andp75-->typical
Pricefallsbelowp25-->low
Pricefallsabovep75-->high
Feature EngineeringFeature Engineering
Westartwithsomestandardfeatures:
numberofbedrooms,bathrooms
size(sqft)
isitfurnished?
unittype(apartmentbuilding,house,condo,basement,etc..)
...
price ~ bedrooms + bathrooms + size + is_furnished + ...
But how do we account for location?But how do we account for location?
Area Encoding?Area Encoding?
Automaticallyclustereachpointintoan"area"
from sklearn.cluster import KMeans
X = df[['lat', 'long']].values
km = KMeans(20, init='k-means++')
km.fit(X)
clusters = km.predict(X) # classify points into 1 of 20 clusters
price ~ bedrooms + bathrooms + size + is_furnished + ...
+ cluster_0 + cluster_1 + ...
Arbitraryboundariesresultinsimilarpointsbeingtreateddifferently
Nearest NeighborsNearest Neighbors
👪 🏠 ...?... 🏠 👪👪 🏠 ...?... 🏠 👪
Source:ErikBernhardsson'sFantasticBlog
RetrieveXnearestapartmentswithsame#ofbedrooms
Calculatemean,median,etc.
Feedthatinasafeaturetoourmodel
(ApproximateNearestNeighborsOhYeah)
(canalsouse )
annoy
scikit-learn
>>> from annoy import AnnoyIndex
# build the tree
>>> featurees = ["lat_scaled", "long_scaled", "bedrooms_scaled"]
>>> tree = AnnoyIndex(len(features), "euclidean")
>>> for index, row in df[features].iterrows():
tree.add_item(index, row.values)
>>> tree.build(10)
...
# search da tree
>>> apartment_index = 1 # index of apartment to search
>>> tree.get_nns_by_item(apartment_index, 51) # get 50 closest points
[1, 23412, 424, 794, 12, 939, 58, 3, ...]
price ~ bedrooms + bathrooms + size + is_furnished + ...
+ nn_50_avg_price + ...
Better handling for remote apartments (outskirts)Better handling for remote apartments (outskirts)
Addexponentiallydecayedweightingtoeachpointbasedondistance
"price_rank_primary": {
"project_name": "domi",
"slim_handler": true,
"memory_size": 3000,
"apigateway_enabled": false,
"keep_warm": false,
"aws_region": "us-east-1",
"runtime": "python3.7",
"events": [
{
"function": "domi.apartments.price_rank.price_rank",
"expression": "cron(0 */2 * * ? *)"
}
],
"timeout_seconds": 900,
},
Displaying to usersDisplaying to users
User design considerationsUser design considerations
User'sdon'twantablackbox,otherwisetheywon'ttrustit.Givethemcontext!
"$3,250isnormal"
versus
"$3,250istypicalforthistypeoflisting.Listingswiththesamenumberofbedrooms,
bathroomsandsimilarsquarefootageandlocationtypicallyhavepricerangesbetween
$3,175and$4,200"
Notetherounding..."pricerangesbetween$3,183.23and$4,177.69"justseems
sketchy
Givingusersaneasywaytovisualizewherethepricefallsalsoprovides
additionalcontext
All ya need is a little...All ya need is a little...
Monitoring with Great ExpectationsMonitoring with Great Expectations
Iseverythingisgoingasexpected?
traditionalerrormonitoringisnotsufficient
domiisamessy,data-heavyapplication
multipledifferentprocessesrunning
Applicationperformancecanbediagnosedbycheckingdata
Arewegettingtheexpectedamountoflistingseachday?Fromeachsource?
Areweseeingtheexpectedamountofmissingvaluesineachcolumn?
parking,laundry,sqft,housingtype,etc..
suddenspikein%missingcouldindicatewebsitechange
Isthepricerankmodelperformingasexpected?
25%"low",50%"normal",25%"high"
Enter Great ExpectationsEnter Great Expectations
Frameworkforwritingtestsfordata
validatedatasetagainstour"expectations"
Runchecksondatasets:
atbeginning/endofpipelines
beforefeedingintomachinelearningmodel
periodically,on-schedule
github.com/great-expectations
Types of ExpectationsTypes of Expectations
expect_column_values_to_not_be_null
expect_column_values_to_match_regex
expect_column_values_to_be_unique
expect_column_values_to_match_strftime_format
expect_table_row_count_to_be_between
expect_column_median_to_be_between
...andmanymore
Example: Validating Row CountsExample: Validating Row Counts
Example: Validating Row CountsExample: Validating Row Counts
expectations.json
{
"data_asset_name": "yesterdays_craigslist_listings",
"expectation_suite_name": "default",
"expectations": [
{
"expectation_type": "expect_table_row_count_to_be_between",
"kwargs": {
"min_value": 300
}
}
],
}
run_data_checks.py
from domi.db import DB_ENGINE
from great_expectations.dataset import SqlAlchemyDataset
sql_query = """
SELECT id
FROM {tablename}
WHERE TRUE
AND DATE_TRUNC('day', created_at) = CURRENT_DATE - INTERVAL '1' DAY
"""
new_sql_dataset = SqlAlchemyDataset(custom_sql=sql_query, engine=db_engine)
validation_results = new_sql_dataset.validate(expectation_suite="expectations.json")
if validation_results["success"]:
...
Example: Model Monitoring with DistributionalExample: Model Monitoring with Distributional
ExpectationsExpectations
Serverless Gotchas and WorkaroundsServerless Gotchas and Workarounds
Gotcha 1: Shared SESSION objectGotcha 1: Shared SESSION object
Objectsinstantiatedonimportaresharedacrossfunctioninvocations
theyonlygetresetduringacoldstart
Ifonetransactionfails,allsubsequenttransactionsinotherinvocationswill
startfailling
from domi.handlers import process_new_listings
from domi.db import SESSION
# 👆 everything instantiated above here is shared across future function invocations
def lambda_handler(event, context):
process_new_listings()
WorkaroundWorkaround
# Automatically ensure all transactions are succesfully committed,
# or rolled back if not
def commit_session(_raise=True):
if not SESSION:
return
try:
SESSION.commit()
except Exception as e:
SESSION.rollback()
if _raise:
raise
def session_committer(func):
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
finally:
commit_session()
return wrapper
# Use decorator on any function doing database transactions
@session_committer
def process_new_listings():
...
Gotcha 2: Slim handler kills performance on coldGotcha 2: Slim handler kills performance on cold
startsstarts
{"slim_handler": true}savesdeploymentpackagetoS3
Ineedthisbecausesomeofmyprocessesrelyonpandas,numpy,scipy
pullsdownpackageandcopiesto/tmpdirectoryatruntime
Forawarmlambdafunction,thisonlyhappensonce,andweareokay
Whentrafficspikes,AWSautoscalesandstartsspinningupmorelambdas
allofthesegothroughcoldstart
mustpulldownandunzip>100MBfilefromS3
WorkaroundWorkaround
ZappaallowscustomPythonfunctionstobeinvokedatdifferentstagesofthe
deploymentprocess
Buildacustomzipcallbacktoremovelargepackagesfromdeployment
packages
"callbacks": { // Call custom functions during the local Zappa deployment/update process
"settings": "my_app.settings_callback", // After loading the settings
"zip": "my_app.zip_callback", // After creating the package
"post": "my_app.post_callback", // After command has executed
}
WorkaroundWorkaround
See formoredetails.
"app": {
"app_function": "domi.app.app",
"aws_region": "us-east-1",
"runtime": "python3.7",
"certificate_arn": "arn:aws:acm:us-east-1:XXXXXX:certificate/XXXXXX",
"domain": "domi.cloud",
"keep_warm": true,
"keep_warm_expression": "cron(0/3 12-4 ? * * *)",
"timeout_seconds": 3,
// updated settings
"slim_handler": false,
"regex_excludes": [
"pandas", "scipy", "numpy", "PIL", "statsmodels", "matplotlib"
],
"callbacks": {
"zip": "zappa_package_cleaner.main"
},
},
blogpost
Gotcha 3: Adding new, pre-compiled packagesGotcha 3: Adding new, pre-compiled packages
hasprecompiledC-extensions
Notallpackagesareavailablein
Nonewonesarebeingadded
annoy
Miserlou/lambda-packages
WorkaroundWorkaround
(⚠hackiness follows)(⚠hackiness follows)
SpinupEC2withAmazonLinuxAMI
Installannoyandbuildcompileddependencies
Savecompiledpackagetorepo
try:
# when running locally this will import succesfully
# when running on lambda, this will fail and fallback to pre-compiled version
from annoy import AnnoyIndex
except:
from lambda_annoy import AnnoyIndex
Workaround (long term)Workaround (long term)
Inthe(hopefullynottoodistant)future,zappawillsupportdeploymentpackage
creationwithdocker.
Workaroundsareavailable,seehere
Wrapping up...Wrapping up...
Zappa&serverlessletmefocusondifferentiatingfactors
Ididn'thavetoworryabout:
AWSconfigurationheadaches(noapigateway)
ConfiguringELBsandmoreservers
AppendixAppendix
Deploying with Github ActionsDeploying with Github Actions
ianwhitestone.work/AWS-Serverless-Deployments-With-Github-Actions
import statsmodels.formula.api as smf
mod = smf.quantreg('foodexp ~ income', data) # uses patsy model formulas
res = mod.fit(q=.5)
print(res.summary())
Find an apartment in Toronto with serverless Python
Find an apartment in Toronto with serverless Python

More Related Content

What's hot

Docker, cornerstone of an hybrid cloud?
Docker, cornerstone of an hybrid cloud?Docker, cornerstone of an hybrid cloud?
Docker, cornerstone of an hybrid cloud?Adrien Blind
 
IoT Apps with AWS IoT and Websockets
IoT Apps with AWS IoT and Websockets IoT Apps with AWS IoT and Websockets
IoT Apps with AWS IoT and Websockets Amazon Web Services
 
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsDocker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsPatrick Chanezon
 
Accelerating the Next 10,000 Clouds
Accelerating the Next 10,000 CloudsAccelerating the Next 10,000 Clouds
Accelerating the Next 10,000 CloudsMirantis
 
Future of Open Source in a Cloudy World
Future of Open Source in a Cloudy WorldFuture of Open Source in a Cloudy World
Future of Open Source in a Cloudy WorldBret Piatt
 
10 tips for Cloud Native Security
10 tips for Cloud Native Security10 tips for Cloud Native Security
10 tips for Cloud Native SecurityKarthik Gaekwad
 
Docker Indy: Dockercon 2019 Recap and Docker CLI Plugins
Docker Indy: Dockercon 2019 Recap and Docker CLI PluginsDocker Indy: Dockercon 2019 Recap and Docker CLI Plugins
Docker Indy: Dockercon 2019 Recap and Docker CLI Pluginsehazlett
 
Tampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday DockerTampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday DockerSakari Hoisko
 
DockerCon EU 2015: Sparebank; a journey towards Docker
DockerCon EU 2015: Sparebank; a journey towards DockerDockerCon EU 2015: Sparebank; a journey towards Docker
DockerCon EU 2015: Sparebank; a journey towards DockerDocker, Inc.
 
Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud ComputingCrash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud ComputingMark Hinkle
 
Docker: Redistributing DevOps cards, on the way to PaaS
Docker: Redistributing DevOps cards, on the way to PaaSDocker: Redistributing DevOps cards, on the way to PaaS
Docker: Redistributing DevOps cards, on the way to PaaSAdrien Blind
 
App Modernization: From 0 to Hero
App Modernization: From 0 to HeroApp Modernization: From 0 to Hero
App Modernization: From 0 to HeroLorenzo Barbieri
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapPatrick Chanezon
 
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...Patrick Chanezon
 
Things I wish someone had told me about Istio, Omer Levi Hevroni
Things I wish someone had told me about Istio, Omer Levi HevroniThings I wish someone had told me about Istio, Omer Levi Hevroni
Things I wish someone had told me about Istio, Omer Levi HevroniSoluto
 
Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer
Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayerTaking the Next Hot Mobile Game Live with Docker and IBM SoftLayer
Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayerDaniel Krook
 
Enabling policy migration in the Data Center with Ansible
Enabling policy migration in the Data Center with AnsibleEnabling policy migration in the Data Center with Ansible
Enabling policy migration in the Data Center with AnsibleJoel W. King
 
Making Friendly Microservices by Michele Titlol
Making Friendly Microservices by Michele TitlolMaking Friendly Microservices by Michele Titlol
Making Friendly Microservices by Michele TitlolDocker, Inc.
 

What's hot (20)

Docker, cornerstone of an hybrid cloud?
Docker, cornerstone of an hybrid cloud?Docker, cornerstone of an hybrid cloud?
Docker, cornerstone of an hybrid cloud?
 
IoT Apps with AWS IoT and Websockets
IoT Apps with AWS IoT and Websockets IoT Apps with AWS IoT and Websockets
IoT Apps with AWS IoT and Websockets
 
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsDocker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
 
Accelerating the Next 10,000 Clouds
Accelerating the Next 10,000 CloudsAccelerating the Next 10,000 Clouds
Accelerating the Next 10,000 Clouds
 
Future of Open Source in a Cloudy World
Future of Open Source in a Cloudy WorldFuture of Open Source in a Cloudy World
Future of Open Source in a Cloudy World
 
10 tips for Cloud Native Security
10 tips for Cloud Native Security10 tips for Cloud Native Security
10 tips for Cloud Native Security
 
Docker Indy: Dockercon 2019 Recap and Docker CLI Plugins
Docker Indy: Dockercon 2019 Recap and Docker CLI PluginsDocker Indy: Dockercon 2019 Recap and Docker CLI Plugins
Docker Indy: Dockercon 2019 Recap and Docker CLI Plugins
 
Tampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday DockerTampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday Docker
 
DockerCon EU 2015: Sparebank; a journey towards Docker
DockerCon EU 2015: Sparebank; a journey towards DockerDockerCon EU 2015: Sparebank; a journey towards Docker
DockerCon EU 2015: Sparebank; a journey towards Docker
 
Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud ComputingCrash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing
 
Docker: Redistributing DevOps cards, on the way to PaaS
Docker: Redistributing DevOps cards, on the way to PaaSDocker: Redistributing DevOps cards, on the way to PaaS
Docker: Redistributing DevOps cards, on the way to PaaS
 
App Modernization: From 0 to Hero
App Modernization: From 0 to HeroApp Modernization: From 0 to Hero
App Modernization: From 0 to Hero
 
citus™ iot ecosystem
citus™ iot ecosystemcitus™ iot ecosystem
citus™ iot ecosystem
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
 
Things I wish someone had told me about Istio, Omer Levi Hevroni
Things I wish someone had told me about Istio, Omer Levi HevroniThings I wish someone had told me about Istio, Omer Levi Hevroni
Things I wish someone had told me about Istio, Omer Levi Hevroni
 
Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer
Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayerTaking the Next Hot Mobile Game Live with Docker and IBM SoftLayer
Taking the Next Hot Mobile Game Live with Docker and IBM SoftLayer
 
Enabling policy migration in the Data Center with Ansible
Enabling policy migration in the Data Center with AnsibleEnabling policy migration in the Data Center with Ansible
Enabling policy migration in the Data Center with Ansible
 
Docker for Mac
Docker for MacDocker for Mac
Docker for Mac
 
Making Friendly Microservices by Michele Titlol
Making Friendly Microservices by Michele TitlolMaking Friendly Microservices by Michele Titlol
Making Friendly Microservices by Michele Titlol
 

Similar to Find an apartment in Toronto with serverless Python

Sukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak
 
Pivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby AnandanPivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby AnandanPivotalOpenSourceHub
 
Programming the world with Docker
Programming the world with DockerProgramming the world with Docker
Programming the world with DockerPatrick Chanezon
 
Serverless, oui mais pour quels usages ?
Serverless, oui mais pour quels usages ?Serverless, oui mais pour quels usages ?
Serverless, oui mais pour quels usages ?VMware Tanzu
 
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation EcosystemHow APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation EcosystemCisco DevNet
 
DockerDay2015: Keynote
DockerDay2015: KeynoteDockerDay2015: Keynote
DockerDay2015: KeynoteDocker-Hanoi
 
Spring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application ServiceSpring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application ServiceVMware Tanzu
 
"Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?""Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?"Volker Linz
 
Hands on-intro to Node-RED
Hands on-intro to Node-REDHands on-intro to Node-RED
Hands on-intro to Node-REDPooja Mistry
 
Spring on PAS - Fabio Marinelli
Spring on PAS - Fabio MarinelliSpring on PAS - Fabio Marinelli
Spring on PAS - Fabio MarinelliVMware Tanzu
 
The Trinity in Exponential Technologies: Open Source, Blockchain and Microsof...
The Trinity in Exponential Technologies: Open Source, Blockchain and Microsof...The Trinity in Exponential Technologies: Open Source, Blockchain and Microsof...
The Trinity in Exponential Technologies: Open Source, Blockchain and Microsof...Juarez Junior
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Jonas Rosland
 
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...PranavPatil822557
 
Introduction to Puppet Enterprise 10/03/2018
Introduction to Puppet Enterprise 10/03/2018Introduction to Puppet Enterprise 10/03/2018
Introduction to Puppet Enterprise 10/03/2018Puppet
 
IoTWorld 2016 OSS Keynote Param Singh, Ian Skerrett
IoTWorld 2016 OSS Keynote Param Singh, Ian SkerrettIoTWorld 2016 OSS Keynote Param Singh, Ian Skerrett
IoTWorld 2016 OSS Keynote Param Singh, Ian SkerrettParam Singh
 
Four Scenarios for Using an Integration Service Environment (ISE)
Four Scenarios for Using an Integration Service Environment (ISE)Four Scenarios for Using an Integration Service Environment (ISE)
Four Scenarios for Using an Integration Service Environment (ISE)Daniel Toomey
 
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIYWhy Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIYEnterprise Management Associates
 
Juarez Barbosa Junior - Microsoft - OSL19
Juarez Barbosa Junior - Microsoft - OSL19Juarez Barbosa Junior - Microsoft - OSL19
Juarez Barbosa Junior - Microsoft - OSL19marketingsyone
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016Tom Boucher
 
Docker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopDocker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopJonas Rosland
 

Similar to Find an apartment in Toronto with serverless Python (20)

Sukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud Management
 
Pivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby AnandanPivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
 
Programming the world with Docker
Programming the world with DockerProgramming the world with Docker
Programming the world with Docker
 
Serverless, oui mais pour quels usages ?
Serverless, oui mais pour quels usages ?Serverless, oui mais pour quels usages ?
Serverless, oui mais pour quels usages ?
 
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation EcosystemHow APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
 
DockerDay2015: Keynote
DockerDay2015: KeynoteDockerDay2015: Keynote
DockerDay2015: Keynote
 
Spring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application ServiceSpring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application Service
 
"Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?""Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?"
 
Hands on-intro to Node-RED
Hands on-intro to Node-REDHands on-intro to Node-RED
Hands on-intro to Node-RED
 
Spring on PAS - Fabio Marinelli
Spring on PAS - Fabio MarinelliSpring on PAS - Fabio Marinelli
Spring on PAS - Fabio Marinelli
 
The Trinity in Exponential Technologies: Open Source, Blockchain and Microsof...
The Trinity in Exponential Technologies: Open Source, Blockchain and Microsof...The Trinity in Exponential Technologies: Open Source, Blockchain and Microsof...
The Trinity in Exponential Technologies: Open Source, Blockchain and Microsof...
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015
 
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
 
Introduction to Puppet Enterprise 10/03/2018
Introduction to Puppet Enterprise 10/03/2018Introduction to Puppet Enterprise 10/03/2018
Introduction to Puppet Enterprise 10/03/2018
 
IoTWorld 2016 OSS Keynote Param Singh, Ian Skerrett
IoTWorld 2016 OSS Keynote Param Singh, Ian SkerrettIoTWorld 2016 OSS Keynote Param Singh, Ian Skerrett
IoTWorld 2016 OSS Keynote Param Singh, Ian Skerrett
 
Four Scenarios for Using an Integration Service Environment (ISE)
Four Scenarios for Using an Integration Service Environment (ISE)Four Scenarios for Using an Integration Service Environment (ISE)
Four Scenarios for Using an Integration Service Environment (ISE)
 
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIYWhy Pay for Open Source Linux? Avoid the Hidden Cost of DIY
Why Pay for Open Source Linux? Avoid the Hidden Cost of DIY
 
Juarez Barbosa Junior - Microsoft - OSL19
Juarez Barbosa Junior - Microsoft - OSL19Juarez Barbosa Junior - Microsoft - OSL19
Juarez Barbosa Junior - Microsoft - OSL19
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016
 
Docker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopDocker and Containers overview - Docker Workshop
Docker and Containers overview - Docker Workshop
 

More from Daniel Zivkovic

All in AI: LLM Landscape & RAG in 2024 with Mark Ryan (Google) & Jerry Liu (L...
All in AI: LLM Landscape & RAG in 2024 with Mark Ryan (Google) & Jerry Liu (L...All in AI: LLM Landscape & RAG in 2024 with Mark Ryan (Google) & Jerry Liu (L...
All in AI: LLM Landscape & RAG in 2024 with Mark Ryan (Google) & Jerry Liu (L...Daniel Zivkovic
 
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...Daniel Zivkovic
 
Opinionated re:Invent recap with AWS Heroes & Builders
Opinionated re:Invent recap with AWS Heroes & BuildersOpinionated re:Invent recap with AWS Heroes & Builders
Opinionated re:Invent recap with AWS Heroes & BuildersDaniel Zivkovic
 
Google Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data editionGoogle Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data editionDaniel Zivkovic
 
Conversational Document Processing AI with Rui Costa
Conversational Document Processing AI with Rui CostaConversational Document Processing AI with Rui Costa
Conversational Document Processing AI with Rui CostaDaniel Zivkovic
 
How to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow
How to build unified Batch & Streaming Pipelines with Apache Beam and DataflowHow to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow
How to build unified Batch & Streaming Pipelines with Apache Beam and DataflowDaniel Zivkovic
 
Gojko's 5 rules for super responsive Serverless applications
Gojko's 5 rules for super responsive Serverless applicationsGojko's 5 rules for super responsive Serverless applications
Gojko's 5 rules for super responsive Serverless applicationsDaniel Zivkovic
 
Retail Analytics and BI with Looker, BigQuery, GCP & Leigha Jarett
Retail Analytics and BI with Looker, BigQuery, GCP & Leigha JarettRetail Analytics and BI with Looker, BigQuery, GCP & Leigha Jarett
Retail Analytics and BI with Looker, BigQuery, GCP & Leigha JarettDaniel Zivkovic
 
What's new in Serverless at AWS?
What's new in Serverless at AWS?What's new in Serverless at AWS?
What's new in Serverless at AWS?Daniel Zivkovic
 
Intro to Vertex AI, unified MLOps platform for Data Scientists & ML Engineers
Intro to Vertex AI, unified MLOps platform for Data Scientists & ML EngineersIntro to Vertex AI, unified MLOps platform for Data Scientists & ML Engineers
Intro to Vertex AI, unified MLOps platform for Data Scientists & ML EngineersDaniel Zivkovic
 
Empowering Developers to be Healthcare Heroes
Empowering Developers to be Healthcare HeroesEmpowering Developers to be Healthcare Heroes
Empowering Developers to be Healthcare HeroesDaniel Zivkovic
 
Get started with Dialogflow & Contact Center AI on Google Cloud
Get started with Dialogflow & Contact Center AI on Google CloudGet started with Dialogflow & Contact Center AI on Google Cloud
Get started with Dialogflow & Contact Center AI on Google CloudDaniel Zivkovic
 
Building a Data Cloud to enable Analytics & AI-Driven Innovation - Lak Lakshm...
Building a Data Cloud to enable Analytics & AI-Driven Innovation - Lak Lakshm...Building a Data Cloud to enable Analytics & AI-Driven Innovation - Lak Lakshm...
Building a Data Cloud to enable Analytics & AI-Driven Innovation - Lak Lakshm...Daniel Zivkovic
 
Smart Cities of Italy: Integrating the Cyber World with the IoT
Smart Cities of Italy: Integrating the Cyber World with the IoTSmart Cities of Italy: Integrating the Cyber World with the IoT
Smart Cities of Italy: Integrating the Cyber World with the IoTDaniel Zivkovic
 
Running Business Analytics for a Serverless Insurance Company - Joe Emison & ...
Running Business Analytics for a Serverless Insurance Company - Joe Emison & ...Running Business Analytics for a Serverless Insurance Company - Joe Emison & ...
Running Business Analytics for a Serverless Insurance Company - Joe Emison & ...Daniel Zivkovic
 
This is my Architecture to prevent Cloud Bill Shock
This is my Architecture to prevent Cloud Bill ShockThis is my Architecture to prevent Cloud Bill Shock
This is my Architecture to prevent Cloud Bill ShockDaniel Zivkovic
 
Lunch & Learn BigQuery & Firebase from other Google Cloud customers
Lunch & Learn BigQuery & Firebase from other Google Cloud customersLunch & Learn BigQuery & Firebase from other Google Cloud customers
Lunch & Learn BigQuery & Firebase from other Google Cloud customersDaniel Zivkovic
 
Azure for AWS & GCP Pros: Which Azure services to use?
Azure for AWS & GCP Pros: Which Azure services to use?Azure for AWS & GCP Pros: Which Azure services to use?
Azure for AWS & GCP Pros: Which Azure services to use?Daniel Zivkovic
 
Serverless Evolution during 3 years of Serverless Toronto
Serverless Evolution during 3 years of Serverless TorontoServerless Evolution during 3 years of Serverless Toronto
Serverless Evolution during 3 years of Serverless TorontoDaniel Zivkovic
 
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCPSimpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCPDaniel Zivkovic
 

More from Daniel Zivkovic (20)

All in AI: LLM Landscape & RAG in 2024 with Mark Ryan (Google) & Jerry Liu (L...
All in AI: LLM Landscape & RAG in 2024 with Mark Ryan (Google) & Jerry Liu (L...All in AI: LLM Landscape & RAG in 2024 with Mark Ryan (Google) & Jerry Liu (L...
All in AI: LLM Landscape & RAG in 2024 with Mark Ryan (Google) & Jerry Liu (L...
 
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
 
Opinionated re:Invent recap with AWS Heroes & Builders
Opinionated re:Invent recap with AWS Heroes & BuildersOpinionated re:Invent recap with AWS Heroes & Builders
Opinionated re:Invent recap with AWS Heroes & Builders
 
Google Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data editionGoogle Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data edition
 
Conversational Document Processing AI with Rui Costa
Conversational Document Processing AI with Rui CostaConversational Document Processing AI with Rui Costa
Conversational Document Processing AI with Rui Costa
 
How to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow
How to build unified Batch & Streaming Pipelines with Apache Beam and DataflowHow to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow
How to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow
 
Gojko's 5 rules for super responsive Serverless applications
Gojko's 5 rules for super responsive Serverless applicationsGojko's 5 rules for super responsive Serverless applications
Gojko's 5 rules for super responsive Serverless applications
 
Retail Analytics and BI with Looker, BigQuery, GCP & Leigha Jarett
Retail Analytics and BI with Looker, BigQuery, GCP & Leigha JarettRetail Analytics and BI with Looker, BigQuery, GCP & Leigha Jarett
Retail Analytics and BI with Looker, BigQuery, GCP & Leigha Jarett
 
What's new in Serverless at AWS?
What's new in Serverless at AWS?What's new in Serverless at AWS?
What's new in Serverless at AWS?
 
Intro to Vertex AI, unified MLOps platform for Data Scientists & ML Engineers
Intro to Vertex AI, unified MLOps platform for Data Scientists & ML EngineersIntro to Vertex AI, unified MLOps platform for Data Scientists & ML Engineers
Intro to Vertex AI, unified MLOps platform for Data Scientists & ML Engineers
 
Empowering Developers to be Healthcare Heroes
Empowering Developers to be Healthcare HeroesEmpowering Developers to be Healthcare Heroes
Empowering Developers to be Healthcare Heroes
 
Get started with Dialogflow & Contact Center AI on Google Cloud
Get started with Dialogflow & Contact Center AI on Google CloudGet started with Dialogflow & Contact Center AI on Google Cloud
Get started with Dialogflow & Contact Center AI on Google Cloud
 
Building a Data Cloud to enable Analytics & AI-Driven Innovation - Lak Lakshm...
Building a Data Cloud to enable Analytics & AI-Driven Innovation - Lak Lakshm...Building a Data Cloud to enable Analytics & AI-Driven Innovation - Lak Lakshm...
Building a Data Cloud to enable Analytics & AI-Driven Innovation - Lak Lakshm...
 
Smart Cities of Italy: Integrating the Cyber World with the IoT
Smart Cities of Italy: Integrating the Cyber World with the IoTSmart Cities of Italy: Integrating the Cyber World with the IoT
Smart Cities of Italy: Integrating the Cyber World with the IoT
 
Running Business Analytics for a Serverless Insurance Company - Joe Emison & ...
Running Business Analytics for a Serverless Insurance Company - Joe Emison & ...Running Business Analytics for a Serverless Insurance Company - Joe Emison & ...
Running Business Analytics for a Serverless Insurance Company - Joe Emison & ...
 
This is my Architecture to prevent Cloud Bill Shock
This is my Architecture to prevent Cloud Bill ShockThis is my Architecture to prevent Cloud Bill Shock
This is my Architecture to prevent Cloud Bill Shock
 
Lunch & Learn BigQuery & Firebase from other Google Cloud customers
Lunch & Learn BigQuery & Firebase from other Google Cloud customersLunch & Learn BigQuery & Firebase from other Google Cloud customers
Lunch & Learn BigQuery & Firebase from other Google Cloud customers
 
Azure for AWS & GCP Pros: Which Azure services to use?
Azure for AWS & GCP Pros: Which Azure services to use?Azure for AWS & GCP Pros: Which Azure services to use?
Azure for AWS & GCP Pros: Which Azure services to use?
 
Serverless Evolution during 3 years of Serverless Toronto
Serverless Evolution during 3 years of Serverless TorontoServerless Evolution during 3 years of Serverless Toronto
Serverless Evolution during 3 years of Serverless Toronto
 
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCPSimpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
 

Recently uploaded

Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 

Recently uploaded (20)

Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 

Find an apartment in Toronto with serverless Python