SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Andrey 
Mikhalchuk 
Chief Archi tect 
Aki ra 
Technologies 
FULL-STACK WEB 
DEVELOPMENT WITH 
MONGODB, 
NODE.JS AND AWS
ABOUT AKIRA 
Founded in 2003 
Technology and management consulting 
company 
80+ employees 
HUBZone, SBA 8(a), SDB 
HITSP and NIEM Contributing Member 
 ISO 9001, CMMI Level 3 
Top Secret Facility Clearance 
More on http://www.akira-tech.com
ABOUT THIS PRESENTATION 
Relational databases -> MongoDB 
Integrating with MongoDB 
Stress-testing 
Complications and solutions
ABOUT THE CLIENT 
“Leading source of quality data 
about the nation’s people and 
economy” 
US Census Bureau
PROBLEM TO SOLVE
WHERE DOES THE QUALITY DATA 
COME FROM? 
Surveys 
Decennial Survey 
American Community Survey 
 Sur vey of Income and Program Par t icipat ion 
 Cur rent Populat ion Sur vey 
 Consumer Expendi ture Sur vey 
 Nat ional Heal th Inter v iew Sur vey 
 Amer ican Hour sing Sur vey 
 Amer ican Time Use Sur vey 
 Beginning Teacher Longi tudinal Study 
 Consumer Expendi ture Sur vey 
 Cur rent Populat ion Sur vey 
 Housing Vacancy Sur vey 
 Ident i t y Thef t Supplement 
 Nat ional Ambulator y Medical Care Sur vey
PROBLEM 
Most of these surveys use unique 
software to collect and process 
the data
PROBLEM 
Different data storages: 
Text files or different format 
Binary data files 
Relational databases 
Incompatible data structures 
Dozens of programming languages 
Technologies incompatibles closed 
architectures
AKIRA GOAL 
Single solution for all surveys 
Scalable 
Inexpensive 
Reusable cross-survey data 
Works on all devices 
Flat learning curve for developers
SURVEY DSL 
How to 
define a 
new survey 
© 
Akira 
Techn 
ologie 
s, 
15
HOW TO DEFINE SURVEY 
Akira has developed a prototype of an 
engine that takes JSON specification and 
turns it into feature-rich survey 
JSON is a simple language that analysts 
can use to define questions 
Developers later can enrich user 
experience with custom bells and 
whistles 
Both analysts and developers can reuse 
existing functionality in future surveys 
© Akira Technologies, 2013 16
DEFINE SURVEY 
1. survey = { 
2. name: "decennial", 
3. type: 'survey', 
4. title: "Decennial Survey", 
5. stylesheet: "decennial.css", 
6. header: "MongoDB PoC Demo", 
7. footer: "Measuring America …", 
8. intro: "The Census must count every …", 
9. questions: [] 
10.} 
© Akira Technologies, 2013 17
QUESTIONS 
1. { 
2. name: "num_people_1", 
3. quest ion: "How many people were l iving or staying … " , 
4. detai ls: "<B>INCLUDE</B> in this number :<UL><LI >…" , 
5. type: " int", 
6. required: t rue, 
7. } , { 
8. name: "addi t ional_people_2", 
9. quest ion: "Were there any addi t ional people staying … " , 
10. detai ls: "Mark al l that apply", 
11. type: "checkbox", 
12. opt ions: [ 
13. "Chi ldren, such as newborn babies or foster chi ldren", 
14. "Relat ives, such as adul t chi ldren, c o u s i n s …" , 
15. "Nonrelat ives" , 
16. "People staying here temporar i ly", 
17. "No addi t ional p e o p l e ” 
18. } 
© Akira Technologies, 2013 18
BELLS AND WHISTLES 
1. val idator : funct ion(s) { 
2. n = parseInt ( s, 10 ) ; 
3. return n > 0 && n < 5 ? nul l : ” E n te r value in [1,4] r a n g e ” 
4. }, 
1. decorator : funct ion( q ) { 
2. for ( i = 1; i <= 4; i++ ) { 
3. if( i > parseInt ( $("input#num_people_1") .val ( ) , 10 ) ) { 
4. $("div#quest ion_person_"+i ) .hide( ) ; 
5. } else { 
6. $("div#quest ion_person_"+i ) .show( ) ; 
7. } 
8. } 
© Akira Technologies, 2013 19
ACTION! 
 Let’s see how this code works: 
http://census.akira-tech.com/survey/8 
Contains all Decennial questions 
Written in <1 hour 
Validates input in realtime 
Updates interface dynamically 
© Akira Technologies, 2013 20
© Akira Technologies, 2013 21
ACTION! 
Take a look at another example: 
http://census.akira-tech.com/survey/9 
Contains most ACS questions 
Written in <1 hour 
Supports geolocation 
© Akira Technologies, 2013 22
© Akira Technologies, 2013 23
MORE CUSTOMIZATIONS 
 We d i d n’ t h ave to c re a te a new d a t a bas e s c h ema 
 We d i d n’ t h ave to c re ate new we b i nte r f ac e 
 We can customize al l aspects of survey process 
 Here is another great example: 
http://census.akira-tech.com/test/10000001 
http://census.akira-tech.com/test_dashboard/sat_math 
© Akira Technologies, 2013 24
© Akira Technologies, 2013 25
MOBILE VERSION 
© 
Akira 
Techn 
ologie 
s, 
26
MOBILE VERSION 
 Speaking of geolocation … 
 Let’s take a look at iPad version. Android/Windows 
versions will look similar 
 It looks basically the same, not surprisingly 
 Surprisingly the iPad is not even connected to the 
internet! 
 Let’s complete the sur vey anyway and submit the 
results 
 Enjoy the result! 
© Akira Technologies, 2013 27
© Akira Technologies, 2013 28
OFFLINE MODE 
 Let’s shutdown the browser, it’s not in RAM 
anymore 
 Let’s connect the iPad to the internet 
 Get back to the page 
 Isn’t what you see is awesome?! 
 This is complete of fline mode out of the box 
 The inter face is the same -> 
 No re-learning 
 Single interface for CAPI, WAPI, CATI and more 
 Less code to maintain 
© Akira Technologies, 2013 29
© Akira Technologies, 2013 30
ANALYTICS 
Af ter some 
t ime this 
system could 
col lect bi l l ions 
of records. 
How do we 
process them? 
© 
Akira 
Techn 
ologie 
s, 
31
DATA PROCESSING 
Hadoop allows distributed data processing on 
thousands servers 
Cloudera manager and AWS CLI allow 
deploying hundres of servers in minutes 
We have deployed cluster of 3 nodes in AWS. 
Let’s see how it can be reconfigured 
© Akira Technologies, 2013 32
LET’S PROCESS SOME DATA 
 There are a lot of options for processing data in 
Hadoop: 
 Hive – DataWarehouse infrastructure for data query and 
analysis 
 MapReduce – programming model for large-scale data 
processing 
 Pig – high-level platform for creating MapReduce programs 
 In this demo we chose Pig as the simplest way to 
demonstrate the power of Hadoop 
 This script loads data from MongoDB into , calculates 
statistics and pushes it back to MongoDB 
© Akira Technologies, 2013 33
SOME PIG LATIN HERE 
1. REGISTER /home/ec2-user/Dist r/mongo-2.10.1. jar ; 
2. REGISTER /usr/l ib/hadoop-0.20/l ib/mongo-hadoop-core_0.20.205.0- 
1.1.0. jar ; 
3. REGISTER /usr/l ib/hadoop-0.20/l ib/mongo-hadoop-pig_0.20.205.0- 
1.1.0. jar ; 
4. raw = LOAD 'mongodb://master :27017/mongodb_poc. invi tes ' USING 
com.mongodb.hadoop.pig.MongoLoader ( 'u__id:charar ray, 
token:charar ray, emai l :charar ray, sur vey:charar ray, f i r st_name:charar ray, 
last_name:charar ray, address:charar ray, inter view_mode:charar ray, 
f r_id: int , processed:charar ray, state:charar ray ' ) 
5. AS ( id, token, emai l , sur vey, f i r st , last , address, mode, f r, 
processed, state) ; 
6. raw_l imi ted = LIMIT raw 3000; 
7. DUMP raw_l imi ted; 
8. raw_f i l tered = FILTER raw BY processed == ' t rue' ; 
9. total_processed = FOREACH raw_f i l tered GENERATE COUNT(processed) ; 
10. total_by_state = GROUP raw_f i l tered BY state; 
11. DUMP total_by_state; 
12. DUMP total_processed; 
13. STORE total_by_state INTO 
'mongodb://master :27017/mongodb_poc.stat ist ics ' 
14. USING com.mongodb.hadoop.pig.MongoStorage ( ) ; 
© Akira Technologies, 2013 34
STATISTICS 
 Both MongoDB and Hadoop provide aggregation 
framework. 
 Hadoop works best for slow crunching humongous quantities of 
data 
 MongoDB is good for quick calculations on reasonably large 
(tens of millions records) scopes 
 Processed data is pushed back to Mongo for storing 
and future visualization 
We used Highcharts (an open source library) for data 
visualization 
© Akira Technologies, 2013 35
© Akira Technologies, 2013 36
ARCHITECTURE 
© 
Akira 
Techn 
ologie 
s, 
37
HOW MULTIPLE SURVEYS ARE POSSIBLE? 
MONGODB! 
 We use MongoDB 
 Instead of creating complex database we store both 
surveys and responses as documents 
 Al l surveys are stored in the same col lection. 
 If survey questions change, you still can query all versions of 
the survey in single query. 
 You even can query totally different survey results on core 
parameters, like DOB 
 The mongo cluster is deployed in the cloud 
 We use Amazon Web Services (AWS) as the cloud 
platform, but can use any other solution as wel l or bui ld 
our own 
 L et ’ s t a ke a l o o k a t t h e d e p loyment 
© Akira Technologies, 2013 38
© Akira Technologies, 2013 39
THE POC HARDWARE 
 In the PoC we use very basic computers: 
 Realtime data collection: 
 0.613 Gb RAM 
 30 Gb HDD 
 1 Core 
 iPhone 5: 1Gb RAM, 32Gb SSD, Dual -core 
 Data processing: 
 1.7gb RAM 
 6 Gb storage 
 1 Core 
 Samsung Galaxy S4: 2Gb RAM, 16Gb Storage, Quad-core 
© Akira Technologies, 2013 40
WEBSERVER(S) 
We use Node.js as the web server 
 All code is written in Javascript 
 Node.js + MongoDB + Akira Survey DSL = everything 
is written in Javascript. Learning curve is almost flat 
 Validators in survey definition can be used both on 
client side and server side, no need to duplicate code 
 Node.js is extremely fast, but Nginx is faster for 
static content. We use it as surrogate Content 
Delivery Network (CDN) 
© Akira Technologies, 2013 41
ACTION! 
 L e t ’ s g o to t h e AWS c o n s o l e : 
https://console.aws.amazon.com/ec2/v2/home?region=us-west- 
2#Instances 
 Master, Node1, Node2 al l run the same configuration: Mongo 
Config, Mongo Router, Mongo DB + Node. js 
 No d e 3 i s i d e n t i cal to ot h e r n o d e s exc e pt i t t y p i c all y d o e s n ’ t 
run Mongo config server 
 Al l nodes are load-balanced with Elastic Load Balanser (ELB) 
 I f we turn on Node 3 it wi l l be automatically included into load 
balancing 
 Al l nodes share MongoDB content, this is cal led sharding 
© Akira Technologies, 2013 42
PRODUCTION CONFIGURATION 
 PoC is dif ferent from the production configuration: 
 Slow/cheap servers 
 Only few nodes in clusters 
 Runtime and data warehouse in the same cloud 
 Simplified security 
 No real CDN 
 No Mongo replicas 
 Let’s take a look at how this could work in 
production 
© Akira Technologies, 2013 43
© Akira Technologies, 2013 44
MONITORING 
How can we 
make sure the 
system works 
proper ly, 
predict 
fai lures and 
avoid them? 
© 
Akira 
Techn 
ologie 
s, 
45
AWS CONSOLE 
 Provides status of all your servers 
 Allows shutting them down when you don’t need 
them and bringing back in minutes 
 You can take sof tware running on a server and move 
it to a more power ful computer in minutes 
 Also provides vital statistics about all your servers 
© Akira Technologies, 2013 46
© Akira Technologies, 2013 47
© Akira Technologies, 2013 48
© Akira Technologies, 2013 49
MONGODB 
Many free opensource and commercial tools 
Here is just one example 
Provides comprehensive statistics on all 
aspects of a MongoDB cluster performance 
© Akira Technologies, 2013 50
© Akira Technologies, 2013 51
HADOOP 
Multiple commercial and opensource solutions 
for monitoring and managing Hadoop clusters 
Cloudera Manager – deploys nodes in EC2 in 
bulk 
Here is just the standard out-of the box 
Hadoop web interface for monitoring cluster 
health 
© Akira Technologies, 2013 52
© Akira Technologies, 2013 53
© Akira Technologies, 2013 54
© Akira Technologies, 2013 55
© Akira Technologies, 2013 56
PERFORMANCE 
How can we 
guarantee 
the system 
wi l l 
wi thstand 
real l i fe 
load? 
© 
Akira 
Techn 
ologie 
s, 
57
STRESS TESTING 
 We user Tsung to 
stress-test the system, 
creating load of up to 
40000 simultaneous 
users. 
 Even on a single laptop 
the system was serving 
250+ responses per 
second with avg 
response time < 1/3 
sec 
© Akira Technologies, 2013 58
SCALABILITY 
 What if you need even better per formance? 
 Scale ver tically. Every node can be shut down and 
restar ted on more power ful hardware up to 32 
cores, 117Gb RAM, 2Tb SSD 
 Scale horizontally. Hundreds of copies can be 
deployed in <1hr. Akira already bui lt the 
infrastructure that suppor ts plugging in hundreds of 
nodes 
 Al l scal ing operations are either automated or could 
be automated with AWS CLI scripts 
 Add rel iability by adding repl icas to MongoDB 
Nodes 
CPU Cores 
© Akira Technologies, 2013 59
© Akira Technologies, 2013 60
INTEGRATION 
Even the 
best system 
has l imi ted 
use i f we 
c a n ’ t 
integrate i t 
wi th other 
systems. 
© 
Akira 
Techn 
ologie 
s, 
61
INTEGRATION 
 Our PoC code provides complete REST API for manipulating 
surveys and responses 
 As we have demonstrated before we can easi ly integrate it 
with Oracle Service Bus and SOAP-based services 
 Data can be extracted into Oracle database both from 
MongoDB and Hadoop 
 SAS and R can be used to process data, both integrate with 
Hadoop and MongoDB 
 OPA 
 Hadoop can write data into .csv files for OPA batch processing 
 OPA batch processor can output to .csv for Hadoop MongoDB 
consumption 
 OPA Determinations engine can be queried from Hadoop MR tasks 
© Akira Technologies, 2013 62
COST 
How much 
does this 
solution 
cost? 
© 
Akira 
Techn 
ologie 
s, 
63
SOFTWARE 
Only open source software is used in this PoC 
Most software can be used absolutely for free 
Some has nominal fee, typically within $1000 
range 
All software has commercial licenses 
providing support. 
© Akira Technologies, 2013 64
CLOUD SERVICES 
 If you don’t use it, you don’t pay for it 
 Hundreds of nodes can be deployed from the images 
we have prepared 
 Hot-plug nodes can be preconfigured and shutdown 
for future use 
 This is how much we paid for our servers for 3 
weeks: 
https://por tal.aws.amazon.com/gp/aws/developer/account?ie= 
UTF8&action=activity -summary 
© Akira Technologies, 2013 65
© Akira Technologies, 2013 66
SUMMARY 
Effortlessly supports multiple surveys 
Extremely scalable, leverages cloud 
Low-cost open source 
Easily integrates with Oracle DB, 
Services, OPA 
Tested to handle stress loads 
Supports online and offline interview 
modes 
© Akira Technologies, 2013 67
CONTACT 
Akira Technologies, Inc 
1747 Penn ave NW #600 
Washington, DC 20006 
P: 202.517.7187 
F: 800.589.3129 
E: info@akira-tech.com 
W: www.akira-tech.com

Weitere ähnliche Inhalte

Andere mochten auch

Full Stack Web Application Performance Tuning
Full Stack Web Application Performance TuningFull Stack Web Application Performance Tuning
Full Stack Web Application Performance TuningFabian Lange
 
Best Practices for Running MongoDB on AWS - AWS May 2016 Webinar Series
Best Practices for Running MongoDB on AWS - AWS May 2016 Webinar SeriesBest Practices for Running MongoDB on AWS - AWS May 2016 Webinar Series
Best Practices for Running MongoDB on AWS - AWS May 2016 Webinar SeriesAmazon Web Services
 
Lộ trình phát triển của Full Stack Developer
Lộ trình phát triển của Full Stack DeveloperLộ trình phát triển của Full Stack Developer
Lộ trình phát triển của Full Stack DeveloperFUNIX
 
Bloc's Full Stack Web Development Info Session, April 2015
Bloc's Full Stack Web Development Info Session, April 2015Bloc's Full Stack Web Development Info Session, April 2015
Bloc's Full Stack Web Development Info Session, April 2015TryBloc
 
6acfbd164b5fb1607d886eaa50548962 fswd-big_picture
 6acfbd164b5fb1607d886eaa50548962 fswd-big_picture 6acfbd164b5fb1607d886eaa50548962 fswd-big_picture
6acfbd164b5fb1607d886eaa50548962 fswd-big_pictureEmad Elmogy
 
Full stack-web-design
Full stack-web-designFull stack-web-design
Full stack-web-designKevin Conboy
 
What is a Full stack developer? - Tech talk
What is a Full stack developer? - Tech talk What is a Full stack developer? - Tech talk
What is a Full stack developer? - Tech talk Bui Hai An
 
Mean full stack development
Mean full stack developmentMean full stack development
Mean full stack developmentScott Lee
 
Scaling MongoDB on Amazon Web Services (DAT209) | AWS re:Invent 2013
Scaling MongoDB on Amazon Web Services (DAT209) | AWS re:Invent 2013Scaling MongoDB on Amazon Web Services (DAT209) | AWS re:Invent 2013
Scaling MongoDB on Amazon Web Services (DAT209) | AWS re:Invent 2013Amazon Web Services
 
High Performance Web - Full Stack Toronto
High Performance Web - Full Stack TorontoHigh Performance Web - Full Stack Toronto
High Performance Web - Full Stack TorontoMaximiliano Firtman
 

Andere mochten auch (10)

Full Stack Web Application Performance Tuning
Full Stack Web Application Performance TuningFull Stack Web Application Performance Tuning
Full Stack Web Application Performance Tuning
 
Best Practices for Running MongoDB on AWS - AWS May 2016 Webinar Series
Best Practices for Running MongoDB on AWS - AWS May 2016 Webinar SeriesBest Practices for Running MongoDB on AWS - AWS May 2016 Webinar Series
Best Practices for Running MongoDB on AWS - AWS May 2016 Webinar Series
 
Lộ trình phát triển của Full Stack Developer
Lộ trình phát triển của Full Stack DeveloperLộ trình phát triển của Full Stack Developer
Lộ trình phát triển của Full Stack Developer
 
Bloc's Full Stack Web Development Info Session, April 2015
Bloc's Full Stack Web Development Info Session, April 2015Bloc's Full Stack Web Development Info Session, April 2015
Bloc's Full Stack Web Development Info Session, April 2015
 
6acfbd164b5fb1607d886eaa50548962 fswd-big_picture
 6acfbd164b5fb1607d886eaa50548962 fswd-big_picture 6acfbd164b5fb1607d886eaa50548962 fswd-big_picture
6acfbd164b5fb1607d886eaa50548962 fswd-big_picture
 
Full stack-web-design
Full stack-web-designFull stack-web-design
Full stack-web-design
 
What is a Full stack developer? - Tech talk
What is a Full stack developer? - Tech talk What is a Full stack developer? - Tech talk
What is a Full stack developer? - Tech talk
 
Mean full stack development
Mean full stack developmentMean full stack development
Mean full stack development
 
Scaling MongoDB on Amazon Web Services (DAT209) | AWS re:Invent 2013
Scaling MongoDB on Amazon Web Services (DAT209) | AWS re:Invent 2013Scaling MongoDB on Amazon Web Services (DAT209) | AWS re:Invent 2013
Scaling MongoDB on Amazon Web Services (DAT209) | AWS re:Invent 2013
 
High Performance Web - Full Stack Toronto
High Performance Web - Full Stack TorontoHigh Performance Web - Full Stack Toronto
High Performance Web - Full Stack Toronto
 

Ähnlich wie Full-stack Web Development with MongoDB, Node.js and AWS

The Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.jsThe Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.jsNicholas Jansma
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Marc Dutoo
 
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDBMongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDBMongoDB
 
Yelpcamp: A review based website for campgrounds
Yelpcamp: A review based website for campgroundsYelpcamp: A review based website for campgrounds
Yelpcamp: A review based website for campgroundsIRJET Journal
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with DockerDocker, Inc.
 
MongoDB in the Middle of a Hybrid Cloud and Polyglot Persistence Architecture
MongoDB in the Middle of a Hybrid Cloud and Polyglot Persistence ArchitectureMongoDB in the Middle of a Hybrid Cloud and Polyglot Persistence Architecture
MongoDB in the Middle of a Hybrid Cloud and Polyglot Persistence ArchitectureMongoDB
 
RightScale Roadtrip Boston: Accelerate to Cloud
RightScale Roadtrip Boston: Accelerate to CloudRightScale Roadtrip Boston: Accelerate to Cloud
RightScale Roadtrip Boston: Accelerate to CloudRightScale
 
Your Self-Driving Car - How Did it Get So Smart?
Your Self-Driving Car - How Did it Get So Smart?Your Self-Driving Car - How Did it Get So Smart?
Your Self-Driving Car - How Did it Get So Smart?Hortonworks
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OW2
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware
 
OCCIware@OW2con 2016
OCCIware@OW2con 2016OCCIware@OW2con 2016
OCCIware@OW2con 2016Marc Dutoo
 
SQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDBSQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDBMarco Segato
 
Why NBC Universal Migrated to MongoDB Atlas
Why NBC Universal Migrated to MongoDB AtlasWhy NBC Universal Migrated to MongoDB Atlas
Why NBC Universal Migrated to MongoDB AtlasDatavail
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Codemotion
 
Airflow techtonic template
Airflow   techtonic templateAirflow   techtonic template
Airflow techtonic templateSampath Kumar
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAmazon Web Services
 
NoSQL and MongoDB Introdction
NoSQL and MongoDB IntrodctionNoSQL and MongoDB Introdction
NoSQL and MongoDB IntrodctionBrian Enochson
 

Ähnlich wie Full-stack Web Development with MongoDB, Node.js and AWS (20)

The Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.jsThe Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.js
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
 
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDBMongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
 
Yelpcamp: A review based website for campgrounds
Yelpcamp: A review based website for campgroundsYelpcamp: A review based website for campgrounds
Yelpcamp: A review based website for campgrounds
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with Docker
 
MongoDB in the Middle of a Hybrid Cloud and Polyglot Persistence Architecture
MongoDB in the Middle of a Hybrid Cloud and Polyglot Persistence ArchitectureMongoDB in the Middle of a Hybrid Cloud and Polyglot Persistence Architecture
MongoDB in the Middle of a Hybrid Cloud and Polyglot Persistence Architecture
 
RightScale Roadtrip Boston: Accelerate to Cloud
RightScale Roadtrip Boston: Accelerate to CloudRightScale Roadtrip Boston: Accelerate to Cloud
RightScale Roadtrip Boston: Accelerate to Cloud
 
Your Self-Driving Car - How Did it Get So Smart?
Your Self-Driving Car - How Did it Get So Smart?Your Self-Driving Car - How Did it Get So Smart?
Your Self-Driving Car - How Did it Get So Smart?
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
 
OCCIware@OW2con 2016
OCCIware@OW2con 2016OCCIware@OW2con 2016
OCCIware@OW2con 2016
 
SQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDBSQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDB
 
Symphony Driver Essay
Symphony Driver EssaySymphony Driver Essay
Symphony Driver Essay
 
Why NBC Universal Migrated to MongoDB Atlas
Why NBC Universal Migrated to MongoDB AtlasWhy NBC Universal Migrated to MongoDB Atlas
Why NBC Universal Migrated to MongoDB Atlas
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
 
Airflow techtonic template
Airflow   techtonic templateAirflow   techtonic template
Airflow techtonic template
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
NoSQL and MongoDB Introdction
NoSQL and MongoDB IntrodctionNoSQL and MongoDB Introdction
NoSQL and MongoDB Introdction
 

Mehr von MongoDB

MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump StartMongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB
 
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDBMongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDBMongoDB
 

Mehr von MongoDB (20)

MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
 
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDBMongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
 

Kürzlich hochgeladen

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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 MenDelhi Call girls
 
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...Enterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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)wesley chun
 
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 WorkerThousandEyes
 
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 MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
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...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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)
 
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
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Full-stack Web Development with MongoDB, Node.js and AWS

  • 1. Andrey Mikhalchuk Chief Archi tect Aki ra Technologies FULL-STACK WEB DEVELOPMENT WITH MONGODB, NODE.JS AND AWS
  • 2. ABOUT AKIRA Founded in 2003 Technology and management consulting company 80+ employees HUBZone, SBA 8(a), SDB HITSP and NIEM Contributing Member  ISO 9001, CMMI Level 3 Top Secret Facility Clearance More on http://www.akira-tech.com
  • 3. ABOUT THIS PRESENTATION Relational databases -> MongoDB Integrating with MongoDB Stress-testing Complications and solutions
  • 4. ABOUT THE CLIENT “Leading source of quality data about the nation’s people and economy” US Census Bureau
  • 6. WHERE DOES THE QUALITY DATA COME FROM? Surveys Decennial Survey American Community Survey  Sur vey of Income and Program Par t icipat ion  Cur rent Populat ion Sur vey  Consumer Expendi ture Sur vey  Nat ional Heal th Inter v iew Sur vey  Amer ican Hour sing Sur vey  Amer ican Time Use Sur vey  Beginning Teacher Longi tudinal Study  Consumer Expendi ture Sur vey  Cur rent Populat ion Sur vey  Housing Vacancy Sur vey  Ident i t y Thef t Supplement  Nat ional Ambulator y Medical Care Sur vey
  • 7. PROBLEM Most of these surveys use unique software to collect and process the data
  • 8. PROBLEM Different data storages: Text files or different format Binary data files Relational databases Incompatible data structures Dozens of programming languages Technologies incompatibles closed architectures
  • 9. AKIRA GOAL Single solution for all surveys Scalable Inexpensive Reusable cross-survey data Works on all devices Flat learning curve for developers
  • 10. SURVEY DSL How to define a new survey © Akira Techn ologie s, 15
  • 11. HOW TO DEFINE SURVEY Akira has developed a prototype of an engine that takes JSON specification and turns it into feature-rich survey JSON is a simple language that analysts can use to define questions Developers later can enrich user experience with custom bells and whistles Both analysts and developers can reuse existing functionality in future surveys © Akira Technologies, 2013 16
  • 12. DEFINE SURVEY 1. survey = { 2. name: "decennial", 3. type: 'survey', 4. title: "Decennial Survey", 5. stylesheet: "decennial.css", 6. header: "MongoDB PoC Demo", 7. footer: "Measuring America …", 8. intro: "The Census must count every …", 9. questions: [] 10.} © Akira Technologies, 2013 17
  • 13. QUESTIONS 1. { 2. name: "num_people_1", 3. quest ion: "How many people were l iving or staying … " , 4. detai ls: "<B>INCLUDE</B> in this number :<UL><LI >…" , 5. type: " int", 6. required: t rue, 7. } , { 8. name: "addi t ional_people_2", 9. quest ion: "Were there any addi t ional people staying … " , 10. detai ls: "Mark al l that apply", 11. type: "checkbox", 12. opt ions: [ 13. "Chi ldren, such as newborn babies or foster chi ldren", 14. "Relat ives, such as adul t chi ldren, c o u s i n s …" , 15. "Nonrelat ives" , 16. "People staying here temporar i ly", 17. "No addi t ional p e o p l e ” 18. } © Akira Technologies, 2013 18
  • 14. BELLS AND WHISTLES 1. val idator : funct ion(s) { 2. n = parseInt ( s, 10 ) ; 3. return n > 0 && n < 5 ? nul l : ” E n te r value in [1,4] r a n g e ” 4. }, 1. decorator : funct ion( q ) { 2. for ( i = 1; i <= 4; i++ ) { 3. if( i > parseInt ( $("input#num_people_1") .val ( ) , 10 ) ) { 4. $("div#quest ion_person_"+i ) .hide( ) ; 5. } else { 6. $("div#quest ion_person_"+i ) .show( ) ; 7. } 8. } © Akira Technologies, 2013 19
  • 15. ACTION!  Let’s see how this code works: http://census.akira-tech.com/survey/8 Contains all Decennial questions Written in <1 hour Validates input in realtime Updates interface dynamically © Akira Technologies, 2013 20
  • 17. ACTION! Take a look at another example: http://census.akira-tech.com/survey/9 Contains most ACS questions Written in <1 hour Supports geolocation © Akira Technologies, 2013 22
  • 19. MORE CUSTOMIZATIONS  We d i d n’ t h ave to c re a te a new d a t a bas e s c h ema  We d i d n’ t h ave to c re ate new we b i nte r f ac e  We can customize al l aspects of survey process  Here is another great example: http://census.akira-tech.com/test/10000001 http://census.akira-tech.com/test_dashboard/sat_math © Akira Technologies, 2013 24
  • 21. MOBILE VERSION © Akira Techn ologie s, 26
  • 22. MOBILE VERSION  Speaking of geolocation …  Let’s take a look at iPad version. Android/Windows versions will look similar  It looks basically the same, not surprisingly  Surprisingly the iPad is not even connected to the internet!  Let’s complete the sur vey anyway and submit the results  Enjoy the result! © Akira Technologies, 2013 27
  • 24. OFFLINE MODE  Let’s shutdown the browser, it’s not in RAM anymore  Let’s connect the iPad to the internet  Get back to the page  Isn’t what you see is awesome?!  This is complete of fline mode out of the box  The inter face is the same ->  No re-learning  Single interface for CAPI, WAPI, CATI and more  Less code to maintain © Akira Technologies, 2013 29
  • 26. ANALYTICS Af ter some t ime this system could col lect bi l l ions of records. How do we process them? © Akira Techn ologie s, 31
  • 27. DATA PROCESSING Hadoop allows distributed data processing on thousands servers Cloudera manager and AWS CLI allow deploying hundres of servers in minutes We have deployed cluster of 3 nodes in AWS. Let’s see how it can be reconfigured © Akira Technologies, 2013 32
  • 28. LET’S PROCESS SOME DATA  There are a lot of options for processing data in Hadoop:  Hive – DataWarehouse infrastructure for data query and analysis  MapReduce – programming model for large-scale data processing  Pig – high-level platform for creating MapReduce programs  In this demo we chose Pig as the simplest way to demonstrate the power of Hadoop  This script loads data from MongoDB into , calculates statistics and pushes it back to MongoDB © Akira Technologies, 2013 33
  • 29. SOME PIG LATIN HERE 1. REGISTER /home/ec2-user/Dist r/mongo-2.10.1. jar ; 2. REGISTER /usr/l ib/hadoop-0.20/l ib/mongo-hadoop-core_0.20.205.0- 1.1.0. jar ; 3. REGISTER /usr/l ib/hadoop-0.20/l ib/mongo-hadoop-pig_0.20.205.0- 1.1.0. jar ; 4. raw = LOAD 'mongodb://master :27017/mongodb_poc. invi tes ' USING com.mongodb.hadoop.pig.MongoLoader ( 'u__id:charar ray, token:charar ray, emai l :charar ray, sur vey:charar ray, f i r st_name:charar ray, last_name:charar ray, address:charar ray, inter view_mode:charar ray, f r_id: int , processed:charar ray, state:charar ray ' ) 5. AS ( id, token, emai l , sur vey, f i r st , last , address, mode, f r, processed, state) ; 6. raw_l imi ted = LIMIT raw 3000; 7. DUMP raw_l imi ted; 8. raw_f i l tered = FILTER raw BY processed == ' t rue' ; 9. total_processed = FOREACH raw_f i l tered GENERATE COUNT(processed) ; 10. total_by_state = GROUP raw_f i l tered BY state; 11. DUMP total_by_state; 12. DUMP total_processed; 13. STORE total_by_state INTO 'mongodb://master :27017/mongodb_poc.stat ist ics ' 14. USING com.mongodb.hadoop.pig.MongoStorage ( ) ; © Akira Technologies, 2013 34
  • 30. STATISTICS  Both MongoDB and Hadoop provide aggregation framework.  Hadoop works best for slow crunching humongous quantities of data  MongoDB is good for quick calculations on reasonably large (tens of millions records) scopes  Processed data is pushed back to Mongo for storing and future visualization We used Highcharts (an open source library) for data visualization © Akira Technologies, 2013 35
  • 32. ARCHITECTURE © Akira Techn ologie s, 37
  • 33. HOW MULTIPLE SURVEYS ARE POSSIBLE? MONGODB!  We use MongoDB  Instead of creating complex database we store both surveys and responses as documents  Al l surveys are stored in the same col lection.  If survey questions change, you still can query all versions of the survey in single query.  You even can query totally different survey results on core parameters, like DOB  The mongo cluster is deployed in the cloud  We use Amazon Web Services (AWS) as the cloud platform, but can use any other solution as wel l or bui ld our own  L et ’ s t a ke a l o o k a t t h e d e p loyment © Akira Technologies, 2013 38
  • 35. THE POC HARDWARE  In the PoC we use very basic computers:  Realtime data collection:  0.613 Gb RAM  30 Gb HDD  1 Core  iPhone 5: 1Gb RAM, 32Gb SSD, Dual -core  Data processing:  1.7gb RAM  6 Gb storage  1 Core  Samsung Galaxy S4: 2Gb RAM, 16Gb Storage, Quad-core © Akira Technologies, 2013 40
  • 36. WEBSERVER(S) We use Node.js as the web server  All code is written in Javascript  Node.js + MongoDB + Akira Survey DSL = everything is written in Javascript. Learning curve is almost flat  Validators in survey definition can be used both on client side and server side, no need to duplicate code  Node.js is extremely fast, but Nginx is faster for static content. We use it as surrogate Content Delivery Network (CDN) © Akira Technologies, 2013 41
  • 37. ACTION!  L e t ’ s g o to t h e AWS c o n s o l e : https://console.aws.amazon.com/ec2/v2/home?region=us-west- 2#Instances  Master, Node1, Node2 al l run the same configuration: Mongo Config, Mongo Router, Mongo DB + Node. js  No d e 3 i s i d e n t i cal to ot h e r n o d e s exc e pt i t t y p i c all y d o e s n ’ t run Mongo config server  Al l nodes are load-balanced with Elastic Load Balanser (ELB)  I f we turn on Node 3 it wi l l be automatically included into load balancing  Al l nodes share MongoDB content, this is cal led sharding © Akira Technologies, 2013 42
  • 38. PRODUCTION CONFIGURATION  PoC is dif ferent from the production configuration:  Slow/cheap servers  Only few nodes in clusters  Runtime and data warehouse in the same cloud  Simplified security  No real CDN  No Mongo replicas  Let’s take a look at how this could work in production © Akira Technologies, 2013 43
  • 40. MONITORING How can we make sure the system works proper ly, predict fai lures and avoid them? © Akira Techn ologie s, 45
  • 41. AWS CONSOLE  Provides status of all your servers  Allows shutting them down when you don’t need them and bringing back in minutes  You can take sof tware running on a server and move it to a more power ful computer in minutes  Also provides vital statistics about all your servers © Akira Technologies, 2013 46
  • 45. MONGODB Many free opensource and commercial tools Here is just one example Provides comprehensive statistics on all aspects of a MongoDB cluster performance © Akira Technologies, 2013 50
  • 47. HADOOP Multiple commercial and opensource solutions for monitoring and managing Hadoop clusters Cloudera Manager – deploys nodes in EC2 in bulk Here is just the standard out-of the box Hadoop web interface for monitoring cluster health © Akira Technologies, 2013 52
  • 52. PERFORMANCE How can we guarantee the system wi l l wi thstand real l i fe load? © Akira Techn ologie s, 57
  • 53. STRESS TESTING  We user Tsung to stress-test the system, creating load of up to 40000 simultaneous users.  Even on a single laptop the system was serving 250+ responses per second with avg response time < 1/3 sec © Akira Technologies, 2013 58
  • 54. SCALABILITY  What if you need even better per formance?  Scale ver tically. Every node can be shut down and restar ted on more power ful hardware up to 32 cores, 117Gb RAM, 2Tb SSD  Scale horizontally. Hundreds of copies can be deployed in <1hr. Akira already bui lt the infrastructure that suppor ts plugging in hundreds of nodes  Al l scal ing operations are either automated or could be automated with AWS CLI scripts  Add rel iability by adding repl icas to MongoDB Nodes CPU Cores © Akira Technologies, 2013 59
  • 56. INTEGRATION Even the best system has l imi ted use i f we c a n ’ t integrate i t wi th other systems. © Akira Techn ologie s, 61
  • 57. INTEGRATION  Our PoC code provides complete REST API for manipulating surveys and responses  As we have demonstrated before we can easi ly integrate it with Oracle Service Bus and SOAP-based services  Data can be extracted into Oracle database both from MongoDB and Hadoop  SAS and R can be used to process data, both integrate with Hadoop and MongoDB  OPA  Hadoop can write data into .csv files for OPA batch processing  OPA batch processor can output to .csv for Hadoop MongoDB consumption  OPA Determinations engine can be queried from Hadoop MR tasks © Akira Technologies, 2013 62
  • 58. COST How much does this solution cost? © Akira Techn ologie s, 63
  • 59. SOFTWARE Only open source software is used in this PoC Most software can be used absolutely for free Some has nominal fee, typically within $1000 range All software has commercial licenses providing support. © Akira Technologies, 2013 64
  • 60. CLOUD SERVICES  If you don’t use it, you don’t pay for it  Hundreds of nodes can be deployed from the images we have prepared  Hot-plug nodes can be preconfigured and shutdown for future use  This is how much we paid for our servers for 3 weeks: https://por tal.aws.amazon.com/gp/aws/developer/account?ie= UTF8&action=activity -summary © Akira Technologies, 2013 65
  • 62. SUMMARY Effortlessly supports multiple surveys Extremely scalable, leverages cloud Low-cost open source Easily integrates with Oracle DB, Services, OPA Tested to handle stress loads Supports online and offline interview modes © Akira Technologies, 2013 67
  • 63. CONTACT Akira Technologies, Inc 1747 Penn ave NW #600 Washington, DC 20006 P: 202.517.7187 F: 800.589.3129 E: info@akira-tech.com W: www.akira-tech.com

Hinweis der Redaktion

  1. Small business < 100 employees We do consulting, mostly for government