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

Preview:

Citation preview

MouMie@moumie.org

1

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

Azure NodeJs Socket.io Bootstrap MongoDb Mongoose ODM Others

3

Authentication Question generation Answering questions Evaluation Rewards Reports Administrative tasks

4

On demand self-service

Broad network access

Resource pooling

Rapid elasticity

Measured service

5

6

Platform as-a-service : WebApp

Infrastructure as-a-service: Virtual Machine Scale Set

7

8

9

10

11

12

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

14

15

16

17

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

19

20

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

21

22

23

24

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

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

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

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

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

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

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

32

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

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

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

36

Recommended