Deploying and Hosting Applications on the Cloud

Cloud is the new generation platform that is evolving with a goal to solve traditional problems and to optimize resource utilization. Decades of learning is impeccably implemented in a cloud platform to continuously improve and to meet the demands of modern technology. Applications like Azure update their functions with improvements almost every week to stay relevant.

Cloud has multiple models of which IAAS, PAAS and SAAS are the most popular. Understanding the differences and similarities would help estimate the capabilities of each which would be beneficial for organizations.

SAAS model

Software as a Service (SAAS) is an on cloud service made available by a vendor. The following figure gives an insight on the position of SAAS model among different models like On-Premise, Infrastructure as a Service (IAAS), and Platform as a Service (PAAS):

As the figure indicates, all services are managed by a vendor in a SAAS model. One of the best examples of a SAAS model is Office 365 which can be adopted in its original form. Other examples are online PDF converters, SonarCloud code review tool etc. Web-based emails like Gmail, Outlook and Yahoo are also SAAS offerings.

Advantages of using SAAS from a business perspective

SAAS makes a lot of sense if you rent out complicated applications like a Customer Relationship Management (CRM) application. For example, Salesforce.

Most of the SAAS applications can be accessed from common browsers like Chrome or IE, which eliminates the need for a special client to access them.

Value for service is assured in SAAS. Most SAAS applications scale up or down based on the usage. Therefore, the extra infra resources will be consumed only when there is an extra load.

PAAS model

Platform as a Service (PAAS) is a readymade platform service made available by a vendor on the cloud. It can be consumed without having to worry about supporting tools and frameworks. But, unlike SAAS, the application has to be deployed and maintained. Web-App on Azure is an example of such service where the web application can be hosted on a web-app with minimum configurations.

The scenarios described for traditional systems facilitate understanding how cloud simplifies and accelerates deployment.

Moving files to the deployment server

a)Through the repository

Modern platforms like cloud are well integrated with CI-CD systems like Jenkins or VSTS. VSTS is a cloud version of TFS and can be configured to build and deploy flawlessly on the cloud without manual intervention. A negligible amount of time is required for setting this up.

When configuring CI/CD, web server details and location would have to be manually entered in the traditional system. In other words, there is more to be manually configured than cloud systems. Whereas, if you choose to deploy to a web-app on Azure, the available web-apps are pre-populated in drop-down boxes automatically on choosing the right Azure subscription, which is a onetime activity.

b)Directly publish through the IDE

The web-app provides a pre-generated publish profile which can be imported to deploy the app flawlessly. This eliminates manual errors of deploying to a different site or same site in a different server.

c)Manually copy to an FTP location

The web-app provides a pre-generated FTP location to which the files can be pushed. This automates the creation of an FTP site without the requirement for manual configuration.

Configuring the web servers

This part is completely eliminated for website deployment on cloud. The web-apps are intelligent enough to auto-configure web servers. In a traditional environment, these are some of the tasks that need to be performed :

The tools and frameworks required to run the application have to be installed.

The web server has to be properly configured to host the application

The application code has to be manually published.

There is a possibility that some configurations are not correct and would demand multiple trial and error iterations before the application is up and running.

Trivikrama Hari Krishnan

Trivikrama Harikrishnan is a TOGAF certified technical architect having vast industry experience in Azure and AWS cloud stacks.
He is Azure certified and has been a part of building many enterprise scale applications on the cloud. He has worked predominantly in healthcare and security domains. He is passionate about the latest technologies and has tried his hand in Big-Data, Block-Chain and Machine Learning to name a few.

Trivikrama Hari Krishnan

Trivikrama Harikrishnan is a TOGAF certified technical architect having vast industry experience in Azure and AWS cloud stacks.
He is Azure certified and has been a part of building many enterprise scale applications on the cloud. He has worked predominantly in healthcare and security domains. He is passionate about the latest technologies and has tried his hand in Big-Data, Block-Chain and Machine Learning to name a few.