Cloud Hosting
Moving Off Premises
Section titled “Moving Off Premises”Building a web application does not end at writing application code: the application must be deployed on infrastructure. Web server software requires physical hardware. The underlying software that the application depends on, such as databases, must be configured and updated. Over the last two decades, cloud services have provided more and more of these underlying systems.
Simply put, a major draw of cloud services is that they give development teams less to worry about. For both hardware and software, outsourcing a system to an external service reduces a development team’s need for relevant expertise and maintenance labor hours. On the hardware front, an advantage of cloud infrastructure is dynamic capacity. Businesses hosting web applications on their own hardware must anticipate load and purchase in advance enough hardware to support peak use. Cloud infrastructure, on the other hand, can be scaled on demand, quickly providing whatever capacity is required. Regardless of whether this outsourcing ends up more cost efficient than in house solutions, it does provide simplicity.
Infrastructure as a Service (IaaS) is an umbrella term that encompasses the services listed above. Another model for cloud services is the Platform as a Service (PaaS). PaaS includes services such as Heroku and Fly.io, which manage even more layers of infrastructure, offering developers a higher level of abstraction. While IaaS provides developers with building blocks that require expertise to put together, PaaS aims for simplicity and ease of use. Later sections will explore these two models in more detail, as Vizier targets something in the middle.
Deployment
Section titled “Deployment”Deploying an application can require numerous steps. Source files go through a build process, producing appropriate static files and/or Docker images for deployment. Those static files or Docker images must be uploaded to the host server. Containers are started and network traffic is directed to them. Infrastructure as a Service typically requires doing this build process manually, while Platform as a Service products often abstract away much of it.