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 

How to Install and Configure Ansible

Reading Time: 5 minutes

Introduction

Ansible_logoAnsible is an IT automation tool intended to facilitate the management of remote servers. Ansible requires Python (version 2.7 or 3.5 and higher) to run. Ansible is run from a centralized control node and can manage any server accessible over SSH. Remote servers that are managed by Ansible are called managed nodes.

By default, Ansible communicates with managed nodes using OpenSSH. SSH is not the only communication mechanism Ansible supports. You can run tasks on the control server locally, in a docker container or even a Windows server. The control node will require Linux to run.

Continue reading “How to Install and Configure Ansible”

How to Edit Your Hosts File in Windows 10

Reading Time: < 1 minuteEditing your \etc\hosts file is a common task for troubleshooting issues or for developing a site that you aren’t quite ready to launch.  By editing this file, you’ll be able to bypass DNS to view a site at a declared IP address.

In Windows 10, your hosts’ file is located at: C:\Windows\System32\drivers\etc\hosts. You will need to edit the file with administrative privileges.

  1. Click the Windows button and type Notepad in the search bar.
  2. Right click on Notepad and then Run as Administrator.
  3. You’ll be asked, “Do you want to allow this app to make changes to your device?”.
    Choose Yes.
  4. In Notepad, choose File then Open
  5. Navigate to C:\Windows\System32\drivers\etc\hosts or click the address bar at the top and paste in the path and choose Enter.  If you don’t readily see the host file in the /etc directory then select All files from the File name: drop-down list, then click on the hosts file.
  6. Add the appropriate IP and hostname at the end of your hosts’ file, select save and close the file.
  7. Finally, you will want to flush your DNS cache for your computer to recognize changes to the file. Click the Windows button and search command prompt.
  8. Right-click on Notepad and then Run as Administrator.
  9. You’ll be asked, “Do you want to allow this app to make changes to your device?”.
    Choose Yes.
  10. Type the following command in the terminal and press Enter

ipconfig /flushdns

How to Install React JS in Windows

Reading Time: 4 minutesReact.js (React) is an open-source JavaScript library useful in building user interfaces. React is a library so our main focus for this article is installing a JavaScript environment and a Package Manager so that we can download and install libraries including React.

When we are done, you will have a React environment you can use to start development on your Liquid Web server.

 

Install Node.js

The first step is to download the Node.js installer for Windows. Let’s use the latest Long Term Support (LTS) version for Windows and choose the 64-bit version, using the Windows Installer icon.

nodejs1

Once downloaded, we run the Node.js installer (.msi fuke) and follow the steps to complete the installation.

nodejs installationNow that we have Node.js installed, we can move on to the next step.

 

The Command Prompt Environment

We’ll need to use the command prompt (command line) to interact with Node.js and the Node Package Manager (NPM) to install React. Let’s take a few minutes to cover the commands we’ll need to use to get around. Here are the basic commands we will need to get around and create folders/directories:

nodejs_commands

 

Open a Command Prompt in Windows

Click the Start Menu (1), start typing the word command (2), then choose either Command Prompt or the Node.js command prompt (3) — either choice will work.

nodejs_commandprompt

A command prompt window will open with the path showing as C:\Users\<username> where the <username> on your system will be the user you are logged in as.

nodejs_commandprompt2

To execute a command, we type the command and any required options, then press Enter to execute it and see the results. Let’s walk through each of the commands listed above to see what happens:

dir

nodejs_commandprompt3

Let’s look at the contents of the downloads folder with this command:

dir downloads

nodejs_commandprompt4

The path shows we are still in the directory C:\Users\ReactUser>, however, we are looking at the contents of C:\Users\ReactUser\downloads and we see that it has one file. Let’s move to the downloads directory with this command:

cd downloads

nodejs_commandprompt5

We’ve changed to the downloads folder as the command prompt shows C:\Users\ReactUser\Downloads>. You can use the dir command to see the contents of this directory/folder. Next, let’s go back to the previous directory with this command:

cd..

nodejs_commandprompt6

Now we are back to where we started. Let’s create a new directory for our first project and name it reactproject1. We’ll use the command:

mkdir reactproject1

nodejs_commandprompt7

Again, we use the dir command to list the files within our current folder.

dir

nodejs_commandprompt8

If you want to learn more about commands, please check out these links:

 

Install React on Windows

There are two ways to install React for your projects. Let’s look at each approach so that you can decide which one you prefer to use.

 Option 1 

  • Create a project folder
  • Change to the project folder
  • Create a package.json file
  • Install React and other modules you choose

This install option allows you to full control over everything that is installed and defined as dependencies.

Step 1: To get started, we need to open a command prompt.

Step 2: Create a project folder named reactproject1:

mkdir reactproject1

Press Enter to execute the command, and we get a new directory called reactproject1. If you did this as part of the Command Prompt examples, you could skip this step as it will tell you that it already exists.

Step 3: Move to the project folder, using cd reactproject1, so we can install React into it.

cd reactproject1

At this point, you will see your prompt indicate C:\Users\ReactUser\reactproject1.

Step 4: Create a package.json file, the following command will walk you through creating a package.json file.

npm init

nodejs_commandprompt9

Step 5: Install React and other modules using npm install — save react, thiswill install React into your project and update the package.json file with dependencies.

npm install --save react

We can install additional packages using npm install — save and the name of the package we want to install. Here we are installing react-dom: npm install — save react-dom

npm install --save react-dom

 

 Option 2 

  • Install Create-React-App package to simplify the process of creating and installing React into your projects

 

 

Step 1: To get started, we need to open a command prompt and type npm install -g create-react-app. This installs the Create-React-App module which makes it very easy to create and deploy React into projects with a single command.

Note
When using create-react-app ensure you are in the desired directory/folder location as this command will create the project folder in the current path.

npm install -g create-react-appCreate-React-App is installed in the following location: C:\Users\<username>\AppData\Roaming\npm\node_modules\create-react-app\

Once Create-React-App is installed, we can use it to create a project folder and install React and dependencies automatically.

To make sure you are in the desired directory when creating a new project, you can use dir to see where you are, and cd <directory_name> or cd.. to get to the desired location.

Step 2: To create a new project and deploy React into it, we run create-react-app <project_name>. Let’s do this to create reactproject2.

create-react-app reactproject2

The entire process is automated and begins with creating a new React app folder for the project, then installs packages and dependencies. The default packages include react, react-dom, and react-scripts. The installation will take a few minutes.

nodejs_commandprompt10

Run a React Project Application

To run our new project, we need to use the command prompt to change to the project folder, then start it. The cd reactproject2  command will take us to the reactproject2 folder.

cd reactproject2

And npm start will run the project application.

nodejs_commandprompt11

The default browser will open and load the project:

localhostTo learn more about React, you may find these links helpful:

You now have your environment set for building out projects!  If you are running our lightning fast servers, our support team is at your disposal for any questions you may have.

Setup a Development Environment for CentOS using cPanel

Reading Time: 4 minutesEditing a website’s code is often needed to update a site, but doing this to the live website could create downtime and other unwanted effects. Instead, its ideal to create an environment especially for developing new ideas.  In this tutorial, we will explore creating a development site specifically for CentOS servers. Continue reading “Setup a Development Environment for CentOS using cPanel”

Setup a Development Environment in Ubuntu

Reading Time: 4 minutesOften we want to edit our domain’s code, but on a production website, this can be dangerous. Making changes to the production site would not only allow all of the Internet to see unfinished changes but could also cause errors to display. As a workaround, we’ll create a testing domain or “dev” domain to work out any bugs and changes to the site.

As a warning, this is advanced technical work. It’s possible to make mistakes and cause downtime on your live domain. If you are not 100% confident, it may be a good idea to hire a system admin or developer to copy the domain for you.

Continue reading “Setup a Development Environment in Ubuntu”

An Overview of Managed WordPress

Reading Time: 3 minutesWordPress is open source software for building unique and powerful websites! It is quickly becoming the easiest and most popular way to create blogs, business sites, portfolios, forums, memberships, and e-commerce websites. Continue reading “An Overview of Managed WordPress”

Best Editor for Web Development 2017

Reading Time: 3 minutes

Best Web Development Tools of 2017: Editors/IDEs and Package Management

The worlds of web hosting and web development are in a constant state of evolution. Every year we see design trends change, coding standards adapt and new frameworks/CMS created. With such a quick pace of change it’s easy to get lost trying to keep up.

In this article we will discuss and highlight a handful of tools that help make web development easy. Whether you work on Frontend, Backend, PHP, Javascript, or even Perl this list will have something helpful.

As a web hosting company we don’t often talk about the tools used to create the web. We’re usually ultra focused on the components that enable us to server and support you; things like: server hardware, Linux, Apache and etc.

We may not support development tools, but we do want to help our customers to build amazing stuff.
Continue reading “Best Editor for Web Development 2017”