developing a real time application on the cloud using node js , socket.io and mongodb slides

36
MouMie @moumie.org 1

Upload: moumie-soulemane

Post on 25-Jan-2017

20 views

Category:

Technology


0 download

TRANSCRIPT

Page 2: Developing a real time application on the cloud using node js , socket.io and mongodb slides

Explore a cloud platform : AZURE

Develop a realtime multiplayer game using nodeJs, Socket.io, Mongodb

Develop a responsive and mobile first application.

Deliver a realtime application that suitably fit the requirements of a typical cloud computing model as recommended by the NIST

Evaluation of the application scalability , security and privacy on different service models

Report and analyze challenges

Proposes improvement directives and alternatives as future work

2

Page 3: Developing a real time application on the cloud using node js , socket.io and mongodb slides

Azure NodeJs Socket.io Bootstrap MongoDb Mongoose ODM Others

3

Page 4: Developing a real time application on the cloud using node js , socket.io and mongodb slides

Authentication Question generation Answering questions Evaluation Rewards Reports Administrative tasks

4

Page 5: Developing a real time application on the cloud using node js , socket.io and mongodb slides

On demand self-service

Broad network access

Resource pooling

Rapid elasticity

Measured service

5

Page 6: Developing a real time application on the cloud using node js , socket.io and mongodb slides

6

Page 7: Developing a real time application on the cloud using node js , socket.io and mongodb slides

Platform as-a-service : WebApp

Infrastructure as-a-service: Virtual Machine Scale Set

7

Page 8: Developing a real time application on the cloud using node js , socket.io and mongodb slides

8

Page 9: Developing a real time application on the cloud using node js , socket.io and mongodb slides

9

Page 10: Developing a real time application on the cloud using node js , socket.io and mongodb slides

10

Page 11: Developing a real time application on the cloud using node js , socket.io and mongodb slides

11

Page 12: Developing a real time application on the cloud using node js , socket.io and mongodb slides

12

Page 13: Developing a real time application on the cloud using node js , socket.io and mongodb slides

Setting the development environment Locally test the Web App Create an empty Deploy the app to Azure Use GIT for the local to remote transfer

13

Page 14: Developing a real time application on the cloud using node js , socket.io and mongodb slides

14

Page 15: Developing a real time application on the cloud using node js , socket.io and mongodb slides

15

Page 16: Developing a real time application on the cloud using node js , socket.io and mongodb slides

16

Page 17: Developing a real time application on the cloud using node js , socket.io and mongodb slides

17

Page 18: Developing a real time application on the cloud using node js , socket.io and mongodb slides

Database isolation DBaaS : MLAB Single connection instance in the script with customized option Upgrade to a premium account high scalability features: a zero-downtime vertical scaling via rolling

upgrades and a zero-downtime horizontal scaling via sharding

18

Page 19: Developing a real time application on the cloud using node js , socket.io and mongodb slides

19

Page 20: Developing a real time application on the cloud using node js , socket.io and mongodb slides

20

Page 21: Developing a real time application on the cloud using node js , socket.io and mongodb slides

Create a normal virtual machine Perform the setup Customize the firewall Test the application

21

Page 22: Developing a real time application on the cloud using node js , socket.io and mongodb slides

22

Page 23: Developing a real time application on the cloud using node js , socket.io and mongodb slides

23

Page 24: Developing a real time application on the cloud using node js , socket.io and mongodb slides

24

Page 25: Developing a real time application on the cloud using node js , socket.io and mongodb slides

The dedicated cluster account offered by MLAB provides a High-availability of the database through a multi-zone automatic failover Perform the setup

This failover scheme comprises a multiple redundant nodes each in isolatedfault zones (on cloud providers that support this) and an automatic failover to a secondary node should the primary become unreachable.

Dedicated virtual machines must have greater than 3 GB of RAM to qualify for the Availability service level agreement (SLA).

25

Page 26: Developing a real time application on the cloud using node js , socket.io and mongodb slides

Standard & premium mode Affected by the planned maintenance and the unplanned

maintenance Scale sets automatically incorporate availability sets for

more than two (02) instances. Azure provide VM with a SLA uptime of more than 99.95%

26

Page 27: Developing a real time application on the cloud using node js , socket.io and mongodb slides

MongoDB with authentication enabled a two-factor authentication (2FA) the ability to firewall database port(s) the ability to enable SSL MongoDB connections however an additional

subscription fee applies for SSL domains.

27

Page 28: Developing a real time application on the cloud using node js , socket.io and mongodb slides

At the infrastructure level security is provided by Azure through its security center as per SLA.

These security features are more effective only if the data collection for the subscription is turned on.

Threats alerts and notifications. At the application level is postponed to future work.

28

Page 29: Developing a real time application on the cloud using node js , socket.io and mongodb slides

We acknowledge that users care about their privacy and how their personalinformation is used and shared.

MLAB has a firm commitment to the privacy and protection of its users. Azure has a firm commitment to the privacy and protection of its users. This realtime game application SLA is to be finalized at the end of the

development.

29

Page 30: Developing a real time application on the cloud using node js , socket.io and mongodb slides

Accelerated development and innovation. Managing scalablity, availability, security, backup, recovery and more are easily

done with just few clicks. Design and development shift required The freedom was more restricted as the ‚Web App‘is a kind of sandbox. Online debugging is painful and time consuming. Logs accessible throug FTP. Difficulties observed with Mongoose. Less portability of the WebApp.

30

Page 31: Developing a real time application on the cloud using node js , socket.io and mongodb slides

Smooth transition and the portabilty between the local system and the cloud. Working with the virtual machine in the scale set is similar to the normal local machine

environment. Complete control and freedom over the infrastructure Possible to customize the entire environment to fit the business need. Slow development and reduced innovation. Scaling is very difficult and complex Scale set feature still immature. Administration through the powershell. Paintfull platform maitenance with all the associated security risks require a dedicated

and professional IT Scale set single storage !!

31

Page 32: Developing a real time application on the cloud using node js , socket.io and mongodb slides

32

Page 33: Developing a real time application on the cloud using node js , socket.io and mongodb slides

For this application, PaaS is cheaper than IaaS. Microsoft Azure ressource charge scheme is not flexible . This application is forced to pay for storage it does not need Fined-grained controls over the cloud infrastructure could allow the reduction

of the running cost and making the application more profitable. However in general the choice between IaaS and PaaS will depend on the type

of application and its long term goals.

33

Page 34: Developing a real time application on the cloud using node js , socket.io and mongodb slides

Developed an entertaining and educative realtime application allowingmany players to challenge themselves on a broad and diverse range of questions.

Successfully bind together MongoDB, Socket.io, NodeJs and Bootstrapon different services of Microsoft Azure cloud platform.

The lack of flexibility observed in the Microsoft Azure charge scheme makes this application less suitable for it while AWS with its more customizable offers is more appealing regarding the lowering of the running cost.

PaaS is recommended for this application

34

Page 35: Developing a real time application on the cloud using node js , socket.io and mongodb slides

Completing all the remaining features of the application as per initial requirement

Explore other database alternatives. Carry out a similar study on other cloud platforms (AWS, Google cloud). Perfomr a study aiming at exploring different ways lowering the running cost

and making the application more profitable.

35

Page 36: Developing a real time application on the cloud using node js , socket.io and mongodb slides

36