SlideShare a Scribd company logo
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())
Using Data Science & Serverless Python to find apartment in Toronto
Using Data Science & Serverless Python to find apartment in Toronto

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 logiciels
Patrick Chanezon
 
Accelerating the Next 10,000 Clouds
Accelerating the Next 10,000 CloudsAccelerating the Next 10,000 Clouds
Accelerating the Next 10,000 Clouds
Mirantis
 
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
Bret Piatt
 
10 tips for Cloud Native Security
10 tips for Cloud Native Security10 tips for Cloud Native Security
10 tips for Cloud Native Security
Karthik 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 Plugins
ehazlett
 
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
Sakari 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 Docker
Docker, 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 Computing
Mark 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 PaaS
Adrien Blind
 
App Modernization: From 0 to Hero
App Modernization: From 0 to HeroApp Modernization: From 0 to Hero
App Modernization: From 0 to Hero
Lorenzo Barbieri
 
citus™ iot ecosystem
citus™ iot ecosystemcitus™ iot ecosystem
citus™ iot ecosystem
DUONG Dinh Cuong
 
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
Patrick 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 Hevroni
Soluto
 
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
Daniel 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 Ansible
Joel W. King
 
Docker for Mac
Docker for MacDocker for Mac
Docker for Mac
Amazon Web Services
 
Making Friendly Microservices by Michele Titlol
Making Friendly Microservices by Michele TitlolMaking Friendly Microservices by Michele Titlol
Making Friendly Microservices by Michele Titlol
Docker, 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 Using Data Science & Serverless Python to find apartment in Toronto

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 Anandan
PivotalOpenSourceHub
 
Programming the world with Docker
Programming the world with DockerProgramming the world with Docker
Programming the world with Docker
Patrick 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 Ecosystem
Cisco DevNet
 
DockerDay2015: Keynote
DockerDay2015: KeynoteDockerDay2015: Keynote
DockerDay2015: Keynote
Docker-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 Service
VMware 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-RED
Pooja Mistry
 
Spring on PAS - Fabio Marinelli
Spring on PAS - Fabio MarinelliSpring on PAS - Fabio Marinelli
Spring on PAS - Fabio Marinelli
VMware 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/2018
Puppet
 
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
Param 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 DIY
Enterprise Management Associates
 
Juarez Barbosa Junior - Microsoft - OSL19
Juarez Barbosa Junior - Microsoft - OSL19Juarez Barbosa Junior - Microsoft - OSL19
Juarez Barbosa Junior - Microsoft - OSL19
marketingsyone
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016
Tom Boucher
 
Docker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopDocker and Containers overview - Docker Workshop
Docker and Containers overview - Docker Workshop
Jonas Rosland
 

Similar to Using Data Science & Serverless Python to find apartment in Toronto (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 & Builders
Daniel 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 edition
Daniel 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 Costa
Daniel 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 Dataflow
Daniel 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 applications
Daniel 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 Jarett
Daniel 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 Engineers
Daniel Zivkovic
 
Empowering Developers to be Healthcare Heroes
Empowering Developers to be Healthcare HeroesEmpowering Developers to be Healthcare Heroes
Empowering Developers to be Healthcare Heroes
Daniel 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 Cloud
Daniel 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 IoT
Daniel 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 Shock
Daniel 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 customers
Daniel 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 Toronto
Daniel 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 GCP
Daniel 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

Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 

Recently uploaded (20)

Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 

Using Data Science & Serverless Python to find apartment in Toronto