Web Application Hosting Models
Cloud or Webservers at an affordable price
Our preference is to only commit to cloud infrastructure once it is clear that scalability at the cost we can afford is there. We deploy our own applications on lightweight IIS servers at a low cost with a SQL Server backend more than capable of supporting fair TRAFFIC APIs.
We can work with different hosting models
We can think of hosting in three different ways;
- Shared Website hosting
- Dedicated Server hosting
- Cloud based hosting
Whilst these different hosting models ostensibly do the same thing, we as technology solutions providers think of them in two main ways;
We could try to map out a grid comparing costs, benefits, and features but it makes sense to explain.
When we think of cost, we know that cloud hosting has the potential to get expensive very quickly, but for many clients, the vast amount of features, control, and scalability outweigh the costs. Our own website is currently hosted in shared hosting. We built quite a lot of extra sophistication into our platform to add extra performance and lower hosting costs. Dedicated hosting, can be thought of as middle tier, it can also get expensive quickly, but working with the raw server is still preferable to many.
In many scenarios, using cloud based hosting can be a cheaper option than dedicated hosting. Those with less capabilities in deploying and managing infrastructure can use in built services too have a halfway-house between more sophisticated scenarios. Typically, larger enterprises are still going to benefit by having on premise infrastructure.
For this reason, we cannot give clear guidance on how to determine whether a client should have cloud/dedicated/shared hosting.
We recommend performing something like RAID analysis, cost benefit analysis, or creating a requirements document. Start ups and smaller businesses should start small but think in terms of being able to upscale as the business grows. Again, using cloud based solutions may be an option for smaller entities. However, even for these small sized companies, even a few thousand pounds may be too much to pay.
Philosophy is really about thinking how you want to develop your applications and services. Cloud hosting offers many methods to quickly deploy value to your customers. You could set up an endpoint that can pass data to a machine learning model and return a predicted result. One challenge with cloud hosting is each provider is very specific. The more of their features you use, the harder it could be to move to a different platform. Your software solution architecture is coupled closer to the cloud hosting provider. The property platform findigl runs quite a bit of its data processing from some desktop pcs - we can easily migrate this technology to bigger architectures.
Something else to ponder too. When developing software, we can dramatically reduce the lines of code as cloud providers can take care of application exception handling and logging.
In many ways philosophy is to do with the aspiration of the solutions team and product owner. How can the vision of the commercial solution The implemented with the different types of hosting models. We hear quite a lot about lean development. We tend to think of lean as keeping the employee footprint low, having intelligent software that is more dynamic. Other companies may feel that it is better to build software in a domain based approach - Meaning larger codebases and more maintenance, but closely coupled to specific business requirements.
One important consideration with philosophy,
Standard IIS Windows Server Web API hosting
IIS is the acronym for Internet Information Services. It is the set of feature extension modules that are created by Microsoft. IIS is an integral part of the Windows Server products. It supports the Hyper Text Transfer Protocol (HTTP), File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP) etc.
Benefits of IIS Hosting
- When we host the Web API in IIS, it is deployed and managed like other IIS applications.
- When we host the application on IIS, it can provide the process activation and recycling capabilities that increase the reliability of the hosted application.
- The Web API is hosted on IIS, that simplifies the development and deployment of hosted services.
Web API can be hosted under IIS, in the same way as a web application. A Web API can becreated with ASP.NET MVC project by default. So, when you host your e.g. MVC web application under IIS it will also host Web API that uses the same base address.
Microsoft Azure, often referred to as Azure is a cloud computing service operated by Microsoft for application management via Microsoft-managed data centers. It provides software as a service (SaaS), platform as a service (PaaS) and infrastructure as a service (IaaS) and supports many different programming languages, tools, and frameworks, including both Microsoft-specific and third-party software and systems.
Azure, announced at Microsoft's Professional Developers Conference in October 2008, went by the internal project codename "Project Red Dog", and formally released in 2010, as Windows Azure before being renamed to Microsoft Azure in 2014.
Azure uses large-scale virtualization at Microsoft data centers worldwide and it offers more than 600 services including in broad terms: Computer services, Mobile services, Storage services, Communication services, Data management, Messaging, Media services, Functions and Azure Blockchain Workbench.
Amazon Web Services
Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon that provides on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis. These cloud computing web services provide distributed computing processing capacity and software tools via AWS server farms. One of these services is Amazon Elastic Compute Cloud (EC2), which allows users to have at their disposal a virtual cluster of computers, available all the time, through the Internet.
AWS's virtual computers emulate most of the attributes of a real computer, including hardware central processing units (CPUs) and graphics processing units (GPUs) for processing; local/RAM memory; hard-disk/SSD storage; a choice of operating systems; networking; and pre-loaded application software such as web servers, databases, and customer relationship management (CRM).
AWS services are delivered to customers via a network of AWS server farms located throughout the world. Fees are based on a combination of usage (known as a "Pay-as-you-go" model), hardware, operating system, software, or networking features chosen by the subscriber required availability, redundancy, security, and service options. Subscribers can pay for a single virtual AWS computer, a dedicated physical computer, or clusters of either.
Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which may run either on the same computer or on another computer across a network (including the Internet).
Microsoft markets at least a dozen different editions of Microsoft SQL Server, aimed at different audiences and for workloads ranging from small single-machine applications to large Internet-facing applications with many concurrent users.
An enterprise service bus (ESB) implements a communication system between mutually interacting software applications in a service-oriented architecture (SOA). It represents a software architecture for distributed computing, and is a special variant of the more general client-server model, wherein any application may behave as server or client. ESB promotes agility and flexibility with regard to high-level protocol communication between applications. Its primary use is in enterprise application integration (EAI) of heterogeneous and complex service landscapes.