developing a real time application on the cloud using node js , socket.io and mongodb slides
TRANSCRIPT
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