As a developer most of the people dont worry much about the hosting of their application. Since there will be a seperate devops team to do it, But this is the stage which a web-developer should atleast familiar with.
Usually while developing modern day applications the framework provide a HTTP server with hot reload facility for development purpose but these development servers should not be used to serve for public use or as production servers.
why we should not use development server for hosting?
1.The development servers will be running with very limited resources which will affect the performance of the application.
2. Security will be a major issue with the development server and can be easily brought down by DDOS attacks or can be crashed due runtime errors.
3. The most of development servers comes with debug tools which displays errors pages with confidential information which leads to data leak.
So whats the approach?
Serve your applications with production servers like Apache,jboss,ngnix.
Whats required for hosting in cloud?
2. Cloud Hosting Platform (VPS)
3. Server Application
So let’s go through one by one and understand them.
Domain Name :-
The domain name is nothing but the target url you type in your browser eg: google.com, devpoint.in etc
These domain names can be brought from domain name providers like godaddy, Namecheap, google domains etc.
Once the domain is purchased the domain provider registers your domain name with DNS for mapping the domain name to server IP which is provided by you in their DNS records console.
So everytime you type your domain name in a browser it will be Redirect to the IP address. The target IP address and mail exchange records can be set and can changed on DNS records table on the domain dashboard of your provider which will take affect within 5-10 minutes.
Cloud Hosting Platform :-
The hosting platform is the physical or virtual machine which will have enough resources to run your application and have a public IP address.
The hosting platform can be purchased online via providers like Namecheap, AWS, Google Cloud etc, These can be a shared hosting or a separate virtual private server (VPS).
The operating system of Hosting machine can be choosed based on the requirements but for safer, easy and free of use lot of applications are deployed on Linux platform like Redhat, Ubuntu etc and access to these systems can be obtained through SSH or RDP and FTP.
Server Application :-
There are lot of server applications which are opensource based the language the application is built, The application performance is mainly dependent on server configurations.
Some of the well know server applications are
- Tomcat, Jboss and others
The webserver allows you to configure some of the major concepts like
- Timeout settings
- Alive configurations
- Static files paths
- Virtual hosts
- Log file paths
- SSL configurations for HTTPS
- Access permission settings
- WSGI configurations
The web severs will be serving the application with port 80 for HTTP and 443 for HTTPS (http protocol over TLS/SSL)
The database is the major part of any application. The database can be Relational Database (SQL) or Non- Relational Database (No-SQL).
Usually Databses Management softwares like MySQL,PostgreSQL,Mongo Db can be installed and accessed from the same VPS instance or can be installed in seperate VPS Instance for large applications.
The Cloud Hosting providers now provide Ready Database instances which can be enabled and accessed through URL’s.
There are lot of Upcoming databases which are loaded with lot of features like Realtime, Time series database which directly provide JSON as responce through URL which can be used as REST API. The databases like Influx DB now starting support for GraphQL with Flux.
There will be more posts on Hosting your application with step by step tutorial.
252 total views, 1 views today