SlideShare a Scribd company logo
1 of 54
Download to read offline
@garysieling
CLOUD-NATIVE JAVASCRIPTCLOUD-NATIVE JAVASCRIPT
APPSAPPS
@garysieling
@garysieling
PROJECTSPROJECTS
Cumulus
Pangeo
@garysieling
@garysieling
@garysieling
@garysieling
COSTCOST
DevOps specialists and site reliability
engineers are among the highest paid,
most experienced developers most
satisfied with their jobs, and are
looking for new jobs at the lowest
levels.
@garysieling
ROBUST SERVERLESS SOFTWAREROBUST SERVERLESS SOFTWARE
Stable
Secure
Affordable
@garysieling
CASE STUDY:CASE STUDY:
SATELLITE IMAGERYSATELLITE IMAGERY
DATA PIPELINEDATA PIPELINE
@garysieling
@garysieling
DIGITALGLOBEDIGITALGLOBE
80 TB/day
100 PB Stored
@garysieling
@garysieling
@garysieling
LEAFLET.JSLEAFLET.JS
const position = [39.9526, -75.1652 ];
const Map = () =>
<LeafletMap center={position} zoom={11}>
<TileLayer
attribution='© contributors'
url='https://{s}.tile.osm.org/{z}/{x}/{y}.png'
/>
<Marker position={position}>
<Popup>
A <b>popup</b>.
</Popup>
</Marker>
</LeafletMap>
OpenStreetMap
HISTORIC AERIAL FOOTAGEHISTORIC AERIAL FOOTAGE
@garysieling
@garysieling
CLOUD NATIVECLOUD NATIVE
@garysieling
DEVELOPMENT PARADIGMSDEVELOPMENT PARADIGMS
Desktop
Mobile
IOT
@garysieling
@garysieling
@garysieling
BRING YOUR OWN VS. MANAGEDBRING YOUR OWN VS. MANAGED
SaaS
Functions
Scaling
Runtime
OS
Virtualization
Hardware
@garysieling
STABILITYSTABILITY
@garysieling
APP ARCHITECTUREAPP ARCHITECTURE
S3 hosted front-end
JavaScript Microservices (API Gateway + Lambda)
RDS database, with automatic backups
A private link to a customer account
@garysieling
GATSBYGATSBY
Wraps webpack
Builds static sites / single page apps
JAMStack - REST apis or Graphql
@garysieling
MICROSERVICES - STABILITYMICROSERVICES - STABILITY
Multiple copies of the app
Servers / containers dedicated to modules
Switch out APIs without code changes
MAP TILESMAP TILES
@garysieling
@garysieling
GEOTIFF.JS - TILEGEOTIFF.JS - TILE
@garysieling
WEB UI BACKEND - TILESWEB UI BACKEND - TILES
Hosted - Mapbox, OpenStreetMap
Folder structure: zoom + location
S3 - byte ranging
@garysieling
DEVOPSDEVOPS
export class MyEcsConstructStack extends core.Stack {
constructor(scope: core.App, id: string, props?: core.StackProps) {
super(scope, id, props);
let vpc = new ec2.Vpc(this, "MyVpc", {});
let cluster = new ecs.Cluster(this, "MyCluster", {vpc});
new ecs_patterns.ApplicationLoadBalancedFargateService(this, {
cluster: cluster,
desiredCount: 6,
taskImageOptions: {
image: ecs.ContainerImage.fromRegistry("amazon/sample")
},
memoryLimitMiB: 2048
});
}
}
@garysieling
SECURITYSECURITY
@garysieling
SECURITY - TACTICSSECURITY - TACTICS
Limit blast radius
Least privilege
Outsource the hard parts
@garysieling
FUNCTION CONTEXTFUNCTION CONTEXT
(x) => x * x
@garysieling
FUNCTION CONTEXTFUNCTION CONTEXT
(x) => <h1>{x}</h1>
@garysieling
FUNCTION CONTEXTFUNCTION CONTEXT
(x, y) =>
db.query(
`update data set x = $1 where y = $2`,
[x, y])
@garysieling
EXECUTION CONTEXTEXECUTION CONTEXT
Logging (Cloudwatch)
Container
Defined memory/CPU/disk
Security groups
ENI
@garysieling
AFFORDABILITYAFFORDABILITY
@garysieling
FOREST FIREFOREST FIRE
@garysieling
DRONE PATHDRONE PATH
@garysieling
PROCESSING PIPELINEPROCESSING PIPELINE
Science code (Docker, Python, ...)
JavaScript - Glue code
Web UIs for monitoring
@garysieling
SCIENCE CODESCIENCE CODE
@garysieling
PROJECTIONPROJECTION
@garysieling
GROUND CONTROL POINTGROUND CONTROL POINT
@garysieling
const sqs = new AWS.SQS({apiVersion: '2012-11-05'});
const queueURL = "SQS_QUEUE_URL";
const params = { QueueUrl: queueURL };
sqs.receiveMessage(params, (err, data) => {
...CALL YOUR LAMBDA HERE...
const deleteParams = {
QueueUrl: queueURL,
ReceiptHandle: data.Messages[0].ReceiptHandle
};
sqs.deleteMessage(deleteParams, ...);
}})
@garysieling
CLOUD - RESOURCESCLOUD - RESOURCES
CPU
Memory
Disk
Network
@garysieling
A SOFTWARE ARCHITECT CAN PLANA SOFTWARE ARCHITECT CAN PLAN
USING FUTURE COSTSUSING FUTURE COSTS
Now: Story points (time + risk)
Future: Operational cost (NPV / cost shape)
@garysieling
COLLECTIONSCOLLECTIONS
@garysieling
METRICS FOR RELIABILITYMETRICS FOR RELIABILITY
How long will our so ware continue to build?
How long will our so ware continue to deploy?
How long will our so ware continue to work?
@garysieling
REFERENCESREFERENCES
https://start.jcolemorrison.com/aws-vpc-core-
concepts-analogy-guide/
https://www.jpl.nasa.gov/spaceimages/details.php?
id=PIA14897
http://learningzone.rspsoc.org.uk/index.php/Learning
Materials/Python-Scripting/9.4-Calculate-NDVI-using-
GDAL

More Related Content

What's hot

A Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINA Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAIN
EDB
 

What's hot (20)

Carrier Paas - CloudStack Collaboration Event 2012
Carrier Paas - CloudStack Collaboration Event 2012Carrier Paas - CloudStack Collaboration Event 2012
Carrier Paas - CloudStack Collaboration Event 2012
 
ClickHouse on Kubernetes! By Robert Hodges, Altinity CEO
ClickHouse on Kubernetes! By Robert Hodges, Altinity CEOClickHouse on Kubernetes! By Robert Hodges, Altinity CEO
ClickHouse on Kubernetes! By Robert Hodges, Altinity CEO
 
Angular JS deep dive
Angular JS deep diveAngular JS deep dive
Angular JS deep dive
 
Distributed computing with Hazelcast - JavaOne 2014
Distributed computing with Hazelcast - JavaOne 2014Distributed computing with Hazelcast - JavaOne 2014
Distributed computing with Hazelcast - JavaOne 2014
 
Quick reference for curl
Quick reference for curlQuick reference for curl
Quick reference for curl
 
A Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINA Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAIN
 
High Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseHigh Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouse
 
Hazelcast - In-Memory DataGrid
Hazelcast - In-Memory DataGridHazelcast - In-Memory DataGrid
Hazelcast - In-Memory DataGrid
 
Altinity Quickstart for ClickHouse
Altinity Quickstart for ClickHouseAltinity Quickstart for ClickHouse
Altinity Quickstart for ClickHouse
 
Lambda Architecture with Cassandra (Vaibhav Puranik, GumGum) | C* Summit 2016
Lambda Architecture with Cassandra (Vaibhav Puranik, GumGum) | C* Summit 2016Lambda Architecture with Cassandra (Vaibhav Puranik, GumGum) | C* Summit 2016
Lambda Architecture with Cassandra (Vaibhav Puranik, GumGum) | C* Summit 2016
 
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlareClickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
 
Java8
Java8Java8
Java8
 
Hazelcast
HazelcastHazelcast
Hazelcast
 
ClickHouse tips and tricks. Webinar slides. By Robert Hodges, Altinity CEO
ClickHouse tips and tricks. Webinar slides. By Robert Hodges, Altinity CEOClickHouse tips and tricks. Webinar slides. By Robert Hodges, Altinity CEO
ClickHouse tips and tricks. Webinar slides. By Robert Hodges, Altinity CEO
 
ClickHouse Introduction by Alexander Zaitsev, Altinity CTO
ClickHouse Introduction by Alexander Zaitsev, Altinity CTOClickHouse Introduction by Alexander Zaitsev, Altinity CTO
ClickHouse Introduction by Alexander Zaitsev, Altinity CTO
 
Google Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlowGoogle Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlow
 
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEODangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
 
Elasticsearch War Stories
Elasticsearch War StoriesElasticsearch War Stories
Elasticsearch War Stories
 
Ali Asad Lotia (DevOps at Beamly) - Riemann Stream Processing at #DOXLON
Ali Asad Lotia (DevOps at Beamly) - Riemann Stream Processing at #DOXLONAli Asad Lotia (DevOps at Beamly) - Riemann Stream Processing at #DOXLON
Ali Asad Lotia (DevOps at Beamly) - Riemann Stream Processing at #DOXLON
 
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTOClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
 

Similar to Cloud native java script apps

Elastic search integration with hadoop leveragebigdata
Elastic search integration with hadoop   leveragebigdataElastic search integration with hadoop   leveragebigdata
Elastic search integration with hadoop leveragebigdata
Pooja Gupta
 
Droidcon2013 android experience lahoda
Droidcon2013 android experience lahodaDroidcon2013 android experience lahoda
Droidcon2013 android experience lahoda
Droidcon Berlin
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
Igor Bronovskyy
 

Similar to Cloud native java script apps (20)

Amazon elastic map reduce
Amazon elastic map reduceAmazon elastic map reduce
Amazon elastic map reduce
 
Is writing performant code too expensive?
Is writing performant code too expensive? Is writing performant code too expensive?
Is writing performant code too expensive?
 
Greach 2019 - Creating Micronaut Configurations
Greach 2019 - Creating Micronaut ConfigurationsGreach 2019 - Creating Micronaut Configurations
Greach 2019 - Creating Micronaut Configurations
 
Apache kylin 2.0: from classic olap to real-time data warehouse
Apache kylin 2.0: from classic olap to real-time data warehouseApache kylin 2.0: from classic olap to real-time data warehouse
Apache kylin 2.0: from classic olap to real-time data warehouse
 
Philipp Krenn "Elasticsearch (R)Evolution — You Know, for Search…"
Philipp Krenn "Elasticsearch (R)Evolution — You Know, for Search…"Philipp Krenn "Elasticsearch (R)Evolution — You Know, for Search…"
Philipp Krenn "Elasticsearch (R)Evolution — You Know, for Search…"
 
Elastic search integration with hadoop leveragebigdata
Elastic search integration with hadoop   leveragebigdataElastic search integration with hadoop   leveragebigdata
Elastic search integration with hadoop leveragebigdata
 
Hazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSHazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMS
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC
 
Elasticsearch (R)Evolution — You Know, for Search… by Philipp Krenn at Big Da...
Elasticsearch (R)Evolution — You Know, for Search… by Philipp Krenn at Big Da...Elasticsearch (R)Evolution — You Know, for Search… by Philipp Krenn at Big Da...
Elasticsearch (R)Evolution — You Know, for Search… by Philipp Krenn at Big Da...
 
Testing Distributed Micro Services. Agile Testing Days 2017
Testing Distributed Micro Services. Agile Testing Days 2017Testing Distributed Micro Services. Agile Testing Days 2017
Testing Distributed Micro Services. Agile Testing Days 2017
 
Improving android experience for both users and developers
Improving android experience for both users and developersImproving android experience for both users and developers
Improving android experience for both users and developers
 
Droidcon2013 android experience lahoda
Droidcon2013 android experience lahodaDroidcon2013 android experience lahoda
Droidcon2013 android experience lahoda
 
How to lock a Python in a cage? Managing Python environment inside an R project
How to lock a Python in a cage?  Managing Python environment inside an R projectHow to lock a Python in a cage?  Managing Python environment inside an R project
How to lock a Python in a cage? Managing Python environment inside an R project
 
Innovative Specifications for Better Performance Logging and Monitoring
Innovative Specifications for Better Performance Logging and MonitoringInnovative Specifications for Better Performance Logging and Monitoring
Innovative Specifications for Better Performance Logging and Monitoring
 
A Groovy Kind of Java (San Francisco Java User Group)
A Groovy Kind of Java (San Francisco Java User Group)A Groovy Kind of Java (San Francisco Java User Group)
A Groovy Kind of Java (San Francisco Java User Group)
 
Serverless archtiectures
Serverless archtiecturesServerless archtiectures
Serverless archtiectures
 
Arquitecturas de microservicios - Medianet Software
Arquitecturas de microservicios   -  Medianet SoftwareArquitecturas de microservicios   -  Medianet Software
Arquitecturas de microservicios - Medianet Software
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
 
Jeroen Vloothuis Bend Kss To Your Will
Jeroen Vloothuis   Bend Kss To Your WillJeroen Vloothuis   Bend Kss To Your Will
Jeroen Vloothuis Bend Kss To Your Will
 
CloudStack Meetup Santa Clara
CloudStack Meetup Santa Clara CloudStack Meetup Santa Clara
CloudStack Meetup Santa Clara
 

More from Gary Sieling

More from Gary Sieling (7)

Functional programming-in-the-cloud
Functional programming-in-the-cloudFunctional programming-in-the-cloud
Functional programming-in-the-cloud
 
Gatsby / JAMStack Philly Meetup - : Cloud Native Mapping Apps: How Satellite ...
Gatsby / JAMStack Philly Meetup - : Cloud Native Mapping Apps: How Satellite ...Gatsby / JAMStack Philly Meetup - : Cloud Native Mapping Apps: How Satellite ...
Gatsby / JAMStack Philly Meetup - : Cloud Native Mapping Apps: How Satellite ...
 
Machine learning in Apache Zeppelin
Machine learning in Apache ZeppelinMachine learning in Apache Zeppelin
Machine learning in Apache Zeppelin
 
Word2vec in Postgres
Word2vec in PostgresWord2vec in Postgres
Word2vec in Postgres
 
Gpu programming with java
Gpu programming with javaGpu programming with java
Gpu programming with java
 
Exploring Word2Vec in Scala
Exploring Word2Vec in ScalaExploring Word2Vec in Scala
Exploring Word2Vec in Scala
 
Lucene/Solr Revolution 2017: Indexing Videos in Solr
Lucene/Solr Revolution 2017: Indexing Videos in SolrLucene/Solr Revolution 2017: Indexing Videos in Solr
Lucene/Solr Revolution 2017: Indexing Videos in Solr
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

Cloud native java script apps