Cloud microservices continues to change our environment with FaaS

by Brad Beiermann
October 24, 2016
The promise of the growing trend towards serverless technologies and microservices architectures continues to capture attention. Within this trend is the notion of microservices. The use of microservices architectures gives more flexibility, agility, and scalability over the popular monolithic systems. For those of us who have endured multi-tier monolithic infrastructures over the years, the maintenance and pricey setup can turn something simple into a time consuming journey that takes us away from productivity. Thankfully, some of this is changing with newer serverless infrastructure services such as AWS EC2 and AWS Lambda. With microservices, although these services are not a perfect in every instance, they have found their way into be a central piece of many cloud based implementations. There is some school of thought that suggests that some institutions should not start with a microservices architecture. Instead begin with a monolithic one, keep it modular, and split it into microservices once the monolith becomes a problem. It also presents a way of easing your way into microservices without taking the full plunge from the start. So, where do we go to get serverless technologies? Although Amazon has been getting considerable notoriety, there are plenty of other cloud kids on the block with similar services such as IBM’s Open Wisk, Microsoft’s Azure, and Google’s Cloud Functions to name just a few. All of them are addressing the issue of how expensive it is to run on-site infrastructure. Particularly in a monolithic state. It is inefficient with sometimes a lot of computing resources being wasted. With serverless microservices we are now starting to see how our computing could look like on a more granular state. In addition, we never end-up paying for idling servers or capacity that is not being used.
 
Serverless, Microservices, & FaaS
So far, I have been loosely using the term “serverless” in reference to the cloud microservices realm. However, in truth the term serverless is in reference to the infrastructure servers being supplied remotely by a vendor such as IBM, Amazon, Microsoft,...etc. Simply stated, serverless is having your infrastructure be in the cloud. In regards to microservices, we are talking about containerized software functionality on the could. In drilling down further into the microservices definition, we are talking about a more granular service. A service of containers providing functions. Sometime a container can have a singular function, or a multiple function. The longer term goal with microservices is to be a function based services. In other words you could have the cloud providing singular concepts of standalone software artifacts: Functions, Classes, Extensions, Modules,...you get the picture. This brings us to something referenced as function as a service (FaaS). This is merely a byproduct of microservices being used as a serverless environment. This is quite a departure for developers doing their work on a localized infrastructure with a monolithic architecture. It is important to recognize the differnce between FaaS are not just being a platform as a service (PaaS). PaaS is much broader in scope and includes many other things such as data as a service (DaaS) for example. FaaS is within the PaaS umbrella. When thinking about a service such as AWS Lambda the immediate thing to identify is it is built on containers. In other words, this is a cloud service architected right from the get go to be a platform microservices/FaaS. A serverless FaaS paradigm of computing. The Lambda service is really focused on solving a packing problem.
 
Reducing Complexity
Going serverless with a microservices model means streamlining many of the complexities we often see with traditional server systems and infrastructure. By reducing the complexities, we give our developers the opportunity to focus more on the things they should be doing: Working on new code features. The microservices model also helps us start to leverage many more third-party APIs and recognize new patterns in serverless architecture. When we are talking serverless we are also talking about something that is more stateless. Pretty much none of the in-process states we create are available  to any other function that has been invoked. This is important when it comes to how quickly we can scale the number of incoming events or requests from a user or another system. Interestingly, we can find a service like AWS Lambda does give the right to reproduce containers at anytime. So, you cannot completely rely on a prior instantiation to be in flight. That in itself does give separation. Something that is a departure from the monolithic architecture so many of us that are use to seeing. 
 
How do you use it?
In general, most cloud functions give a great integration with third-party services and APIs. Serverless patterns and designs enable developers to move quicker. In fact, serverless architecture s can be self-contained and pretty much autonomous which means you can get pinpoint business functionality right out of the microservice. It has become more common to generate nanoservices for business functions that require only small functions to carry out basic operations. With FaaS, developers can create tiny functions to execute an operation or task. At this point you might be thinking, “Does this mean would could start seeing smaller code bases?” The short answer is yes. With this approach we are taking established containerized functions and merely gluing them together with code segments. Kind of how many popular frameworks work today. In terms of writing we are putting together singular purpose functions that are stateless. This makes for functions that are easier to put our minds around and give granularity to keep coding simpler and more productive.
 
Finally...
As the area of FaaS continues it’s growth curve, we will be seeing more serverless computing functions for all kinds of workloads ranging from format conversion, image processing, format conversions and of course aggregation of data as business technology continues to be data driven.
 

---------------------------------------------------------------

About The Author:

Brad Beiermann is a nationally recognized technology executive, author, and speaker with specialization in e-commerce, Agile, mobile, and start-ups such as Cimstrat.comProfessorString.com, HienoteDirectory.com, and others. He has considerable experience as a digital technology management consultant with Fortune 500 companies and the entrepreneurial community. He can be reached at bradb at cimstrat dot com.

 

Chicago startup guides

LOCAL GUIDE
Best Companies to Work for in Chicago
LOCAL GUIDE
Coolest Offices in Chicago Tech
LOCAL GUIDE
Best Perks at Chicago Tech Companies
LOCAL GUIDE
Women in Chicago Tech