Serverless vs. FaaS: A Beginner’s Guide

Reading Time: 5 minutes

In this guide, we will compare Serverless Computing versus Function As A Service (FaaS). We will be discussing some of the similarities as well as some of the differences between the two options.

In the early 2000s, when building a web application or service, a full team was needed to develop, deploy, configure, and maintain the software. Many companies performed all of these tasks in house. The decisions they often faced included: 

  • Determining the development language to use
  • Deciding on the platform for the software
  • Identifying the timeline involved in the deployment
  • Configuring the scalability of the software
  • Determining the server type 
  • Selecting the server’s configurations
  • Deploying the server and correcting any conflicts

These were just a few of the factors that were involved in how the application was going to perform. As time went on, new companies grew to help alleviate many of these concerns. Still, other needs were not met and needed to be addressed to ensure a stable and robust application.

Service Platforms
Various Service Platforms

Over the last decade, Cloud Computing has emerged to help alleviate many of the previous issues seen in development, deployment, and maintaining applications. Because Cloud Servers are virtualized, they are created, managed, and disposed of in a more efficient manner. This also eliminated the need to wait for physical hardware to be deployed. Unfortunately, even if a traditional dedicated server is exchanged for a cloud server or a service like an AWS EC2 instance, the same tasks of server management and configuration still apply. 

This is where serverless computing comes in. Serverless is the next step in Cloud Computing. This means that servers are simply hidden from the picture. In serverless computing, this separation of server and application is managed by using a platform. The responsibility of the platform or serverless provider is to manage all the needs and configurations for your application. These platforms manage the configuration of your server behind the scenes. This is how in serverless computing, one is able to just focus on the application or code itself being built or deployed.

Consider Liquid Web’s Managed WordPress platform. When a WordPress application is deployed, instead of spinning up a server, downloading WordPress, or setting up a database, all you do is pick a name for your site, fill out a few other details such as the username and password for the application and hit the create button.  In the background, all of the services that are needed to run WordPress are installed automatically by the platform. Now that you have a working WordPress install that’s ready to go, there is no need to do anything else but start working within the application.

Serverless
Serverless:: https://lqwb.us/2muyY96

Microservices are a modern architecture for building and deploying a complex application using serverless computing. Most cloud platforms that practice serverless computing are focused more on the developer and development teams, but the focus with serverless architecture is on the application itself. 

Because we can run an entire web application on a serverless platform, we can have the core application, along with the database and any other needed services attached to our app, and all running on the same distributed environment. FaaS (functions as a service) take the abstraction of servers one step further. FaaS allows you the ability to deploy software much easier as it concentrates on the services themselves as opposed to the server platform. Unlike serverless computing, FaaS provides the ability to skip the worry of server setup and configuration. FaaS (Functions as a Service) also affords us the ability to forego the application installation and configuration as well!

If we start building an application, we still have to use some type of programming language as well as a suitable framework that goes with that language. For example, if we are building a front-end application using JavaScript and Angular JS or Vue JS as the framework to develop all of the components, with functions as a service, the concept here is to be able to write code without having to build out the foundation using a framework that would be part of an application. Since there is no cohesive application with a start or run point, any FaaS function must have a trigger. This trigger can be anything from saving a file to a job that runs every day.

faas1
FaaS

With FaaS, you concentrate on just a single function or piece of code that would run a larger application that would be triggered by an outside prompt. These functions need to be small and do one thing, like the microservices mentioned earlier. In a microservice methodology, every service is in charge or responsible for doing only one thing. The same is true for functions as a service; each function is in charge of a single task. 

A good example of a FaaS service is Amazon’s lambda. A simple use for a FaaS function may be resizing an image in your AWS S3 bucket. All that would be needed is set up a few permissions, identify a trigger, and write the code that resizes the image. If we didn’t use lambda’s FaaS functionality, a full application would be needed to complete this same task.

Now that we have discussed the technology a bit, let’s look at some advantages and disadvantages of each. Let’s start with serverless computing.

Advantages

  • There is no server configuration needed when deploying an application.
  • Most serverless computing services or systems are easy to scale. Thus they can offer more flexibility if an application needs to expand or contract.
  • Serverless is typically less costly than using a traditional server-based hosting method. This is due to the flexibility of the platform management behind the scenes.

Disadvantages

  • A disadvantage of using serverless computing is the loss of server control. When using this option, some providers will not allow access to the server or allow server specifications to be altered.
  • In some cases, serverless can be more expensive depending on the type and number of calls being made. The API pricing can be much higher if using the API gateway extensively.

Now let’s look at some advantages and disadvantages for FaaS (functions as a service).

Advantages

  • Efficiency: There is no need to write an entire application if you are looking to accomplish one small task.
  • Low Cost: In a FaaS system, the small piece of code only runs when it is triggered, so you only pay for what you use.
  • Speed: As demand increases, it is easier to build out and replicate a single function versus replicating an entire application. 
  • Scalability: Again as demand increases, it is easier to scale a single function as opposed to an entire app.

Disadvantages

  • The functions need to be small and only complete one task.
  • Managing a large number of functions can be tricky.

Synopsis

Let’s go over some scenarios when serverless computing would be a good choice to use instead of FaaS.

Say you need to deploy an extensive eCommerce application. It would be easier to build and deploy just one application that did all of the work of laying out products, managing the cart, and configuring the payment system. When you deploy a system as complex as this with so many moving parts, it becomes much more manageable to keep all the logic within a single deployable application.

In this case serverless would be the way to go. Even if your eCommerce store grows, the serverless computing service will scale your application to accommodate the need. Additionally, your application will always be running and ready to take on new orders. Other examples would be if you need to run a large blog or a mission-critical database. So any application that is complex in nature and large it’s best to choose this option.

https://lqwb.us/2lt3OhU

So when would it be a good choice to use a FaaS approach?

Functions as a service are good for data processing and real-time actions. Let’s say daily sales data is needed to help manage inventory. Every time a customer buys an item, it gets added to a database table. A FaaS function would be a good candidate to trigger a function within that database table, process the data of what was bought and either display it to a manager or even trigger another function to order more of that product. FaaS is a good choice for anything that requires real-time processing that can be packaged into a single code function.

Both serverless and FaaS are excellent cloud computing tools that can be used together or separately to fulfill the need for a given task or product.

More FaaS info coming soon and how it can benefit you!

Join Us!

Care to find out more about FaaS or Serverless computing?

Our Solutions and Support Teams are standing by with intimate knowledge of these and other web hosting technologies that can be utilized to improve your business processes especially those discussed in this article. If you would like to learn more about the information outlined above, give us a call today at 800.580.4985, or open a chat or ticket with us right now!

How Do I Install Vue.JS 2019

Reading Time: 5 minutes

In this article, we review the history, use, installation, and implementation of Vue.JS in a web development environment. Vue.js is an open-source, JavaScript progressive framework that is primarily used for building user interfaces and single webpage applications.

What Exactly Is Vue.JS?
A Short History

Unlike other monolithic frameworks, Vue.JS is designed from the ground up to be incrementally adoptable. Its core library is focused on the view layer only and is easy to pick up and integrate with other libraries. Vue is also perfectly capable of powering sophisticated Single-Page Web Applications. 

Vue.js was created by Evan You, a Google developer, who after working on multiple Angular.js projects, concluded that:

“I figured, what if I could just extract the part that I really liked about Angular and build something really lightweight.”

“Between the Wires | Evan You”. Between the Wires. November 3, 2016. Archived from the original on June 3, 2017

The first appearance of Vue source code commits date back to July 2013, and the official release was in February of  2014.

Why Use Vue.JS

  1. Because Vue uses an HTML based template pattern which allows for the rendering of webpage DOM elements to be attached to the underlying Vue instance’s data.
  2. All of the Vue templates use valid HTML that can be interpreted by a normal browsers.
  3. Lastly, because Vue is open-source, the support community is extensive. Because the user community is large, there exists a quick way to find solutions for bugs that may be encountered in your Vue application.

In the picture below, you can see how “Standard Web Sites” work.

standard

A request is made from a browser to a server, and the server sends back the data to the browser. But what happens if you click on another link on that site? 

The cycle is repeating, so each time you click on a link: a new request is sent to the server, which then sends the data back to the browser and shows the updated content. 

Can this be bypassed? 

Yes, it can !!

The way that data travels when using Vue is the same as on the image above but, with one significant improvement. Once the site is loaded in a browser, all of the other requests that are made on the page are done in DOM. This means each request using Vue, can reach all of the other elements easily.

Vue compiles the templates into a virtual Document Object Model or shortened “DOM”, which allows Vue to render page components in its memory before updating the browser. Combined with the ability to react to a platform (mobile, tablet or desktop), Vue is able to calculate the minimal number of components that need to be rendered and then applies the minimal amount of manipulation needed when the app changes it state. This way Vue makes sites feel smoother without additional complexity. 

Getting Started with Vue JS on Liquid Web Servers

Requirements or Dependencies?

You can utilize Vue.JS on any type of server but, this tutorial focuses mainly on using a Centos 7 server with cPanel. Officially there are no external dependencies needed for VueJS to work. 

How Do I Use Vue? 

Direct <script> Include
It’s simple as importing a bootstrap css into your HTML template. 

<html>
  <head>
    <title>Vue.js Basics</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
  </head>
  <body>

    <h1>Vue Basics</h1>
    <div id="app"> </div>

    <script src="app.js"></script>
  </body>
</html>

Cpanel installation via Softaculous

Login to your cPanel account via example.com/cpanel

Scroll down to the Softaculous Apps Installer and click on it.

softac
cPanel Main Screen

Once the Softaculous page loads, click on the search field in the upper left-hand corner and type “Vue”

softac2
Softaculous Main Screen

Next, click the “Install Now” button.

softac2
Click Install

After clicking the Install Now button, follow the steps on the next page by filling in the needed information. 

  • Choose the Protocol from the dropdown menu which you want to use.
  • Choose the domain from the dropdown menu on which you want to install – Choose the latest stable version of Vue.js (2.6.10)
  • Choose the directory in which you want to install Vue.js libraries 
  • Click Install

Finish – If all went well and there were no errors during the installation, you can visit example.com and image should show like the one below which means that the Vue.JS is installed correctly. 

Commandline Installation

Requirements For Centos 7.X

To be able to install Vue via the command line, there are some requirements. 

  1. Node.js (6.x – 8.x preferred)
  2. npm version 3.x+
  3. Git ( it should be installed by default on new Cpanel servers )
    1. If it’s not by any chance you can follow this tutorial  https://www.staging.liquidweb.com/kb/how-to-install-and-configure-git-on-centos-7/

If Node is not installed, let’s start by installing it.  First SSH to your server as the root user

Warning:
Always trust and verify the commands you are installing from an external bash source. Running a bash command from a malicious external source (especially as root) can cause undesirable effects up to and including data loss!

Next, type the command : 

[root@host ~]# curl  -sL https://rpm.nodesource.com/setup_12.x | bash -

The setup_12.x section in the above URL indicates the version of the Node JS package we will be installing. A complete list of the versions can be found at https://rpm.nodesource.com 

After we download the repository we can install the NodeJS with the following command:

[root@host ~]# yum install -y nodejs gcc-c++ make 

If there were no errors we can check the version of the NodeJS installed with the following command: 

[root@host ~]# node --version 

Also, we need to check NPM version 

[root@host ~]# npm --version 

If all of the prerequisites comply with the requirements, we can now move to the actual Vue CLI install.

To install the Vue 2 CLI the command is following. 

[root@host ~]# npm install -g vue-cli 

The output should be similar to this one :

cli1

Now that we have installed Vue globally, we can start creating our project. 

Creating a Vue 2 Project

After we have installed Vue.JS 2, we can now start building a project. 

Since we are already SSH’d into our server as the root user, we can start building our project by su’ing back to the local cpanel account/user we originally installed vue on. Let’s login to that user with the following command : 

[root@host ~]# su $user 

Next, we’ll navigate to our domain’s document root folder; home/$user/public_html

[root@host ~]#cd /home/nnewell/public_html 

Now that we are inside the document root, we can type the command:

[root@host ~]# vue init webpack lwvue-project

After we type the command we will be asked the following Questions:

Project name: lwvue-project
(press enter after all questions to move ahead)

Project description: A new Vue.js project

Author? add your name (if you so choose as the owner)

Vue build standalone? Runtime + Compiler: recommended for most users

Install vue-router? Yes

Use ESLint to lint your code? Yes

Set up unit tests? Yes

Pick a test runner? karma

Setup e2e tests with Nightwatch? Yes
S
hould we run npm install for you after the project has been created? (recommended) npm

Completed Setup

Now that we have started our project we will need to spin the server for development so we can test it out. 

[root@host ~]# npm run dev 

That will start the server on http://localhost:8081 by default 

For making a production build of our app we would need to run the following command from inside our project folder

[root@host ~]# npm run build 

If everything goes well the /dist folder should be created and you can basically move all the files from there to our /public_html folder since the Vue apps can be served via any HTTP server. 

And that’s it!

We know that there is already a Vue 3 version, but we will cover that version in an upcoming article for our knowledgebase. In that article, we will touch on the basics and a little bit more development with Vue.JS 3. 

Documentation and other useful Articles : 
https://vuejs.org/
https://vuejs.org/v2/guide/
http://demo.softaculous.com/enduser/index.php?act=js&soft=580
https://github.com/vuejs/vue-cli/tree/v2#vue-cli–
How to Install and Configure Git on CentOS 7

Aditional Video
https://youtu.be/5LYrN_cAJoA?list=PL4cUxeGkcC9gQcYgjhBoeQH7wiAyZNrYa

Need More Help?

Our Support and Solutions Teams are filled with talented systems administrators with an intimate knowledge of this and other web hosting technologies. If you are uncomfortable walking through the steps outlined here or are just looking for further feedback, we are just a phone call, chat or ticket away from providing you info you need.
Call us at 1.800.580.4985 

Getting Started With Flask

Reading Time: < 1 minute

What is Flask?

Flask is a micro web framework for Python that allows unlimited possibilities to the structure and format for building powerful web applications. This article demonstrates how to get started with Flask using Python 3.7 inside of a virtual environment.

Flask_logo
Continue reading “Getting Started With Flask”