martes, 18 de septiembre de 2018

VMware so FaaS with Serverless Dispatch Framework

In my years as a VMware consultant face many times with new things in technology in general to address some problems, others just because I like it, so the combination of both bring me to the Serverless world make myself an extra effort to understand almost everything on it.

Let's get started with and brief introduction, Serverless is a "way" an "style" in consumption in cloud computing, but does not mean no server anymore, on the contrary there is a bunch of servers still virtual and physical but they are abstracted to end consumer, short long story Serverless is an abstraction from the maintenance and all the operations regarding servers.

So FaaS (Functions as a Service) in the other hand is the division or may say the atomic unit of the application in terms of code obviously that can compose a solution, so let me try to explain simple, you VMware Admin are on charge of maintenance of VMware Infrastructure for X company, so they decide to enter in this new wave of Cloud Native Applications because they need to deliver more applications more services to end customers, so that implies that you get enough mature to use the same vSphere substrate to support them so for example using PKS (Pivotal Container Services) which obviously is a layer of abstraction from OSes(Docker) and how they managed/Orchestrated (K8's) ok everything fine to here and with the nature of Claud Native in one word that makes sense the application of FaaS, the ephemeral of existence, so you VMware Admin will have your own GCP on premises something similar like the VCD days but for Cloud Native Apps on PKS, then there is an internal initiative to get all the information from customers almost in real time regarding a satisfaction survey because this is the core of the business, so due to ubiquity of the information the new application to collect the survey will use events as an input  (all answers from end users) and will process them to do something like generate reports or catalog where the end user is geo located, okey there will be a output so here the trick, with the function as a service model, you will no have a VM with a POD (K8's) with a container or a couple of them running all time waiting this input, you will have a bunch of containers running something that creates the sufficient back end infrastructure to process it, so for example you just need in average 1 minute to run the web page with the questions and been answered by the end customer nothing else, then the process will be deleted, or if that is the case you get a big demand will be elastic enough to scale up.

So with this idea in mind, VMware puts on your hands VMware Admin a way to support this new technology in a production grade, a serverless Framework called Dispatch, a note here it is a framework since is a framework around Open FaaS  or can be riff as well, but let's take a look in the architecture to make easy to understand the importance of the Admin role and where to trend in presence of this new solution.

Where to start

 Just follow this path of abstraction from Container as a Service or CaaS, FaaS is an extreme case of CaaS because there is a light line and is all about the application and in this case the code, first in PaaS or platform as a Service the developer does not care about the programing framework, but in back end there is a platform running specific artifacts to make this magic to happen so in plain words the just upload the code some where and they will have running something that executes that code all time they want, in FaaS happens that they just put some piece of that code and the run time is much less, just be aware that you as a VMware admin will have to take in account not the time but the consumption of resources so in order to this function what is called this piece of code to run faster it will demand more vRAM nothing is free.

First since this is a framework on top of K8's it can be place in anywhere that K8's is running and that is a big difference from other solutions, this means that you can have PKS o VKE o GKE acting as IaaS.

Okey here the Dispatch Architecture:

* The IAM which allow you to connect with you Identity Provider something similar to vCenter and leverage of AD as Identity Source, in this case to consume the functions in a mutitenancy manner.
* An Enterprise grade API gateway (KONG) : the front end for API calls  or in this case functions just similar to a Load Distribution but in terms of API calls to different applications in this case functions with ability to authenticate them and secure them.
* A Control plane just like in NSX were basically runs the brains of all the Dispatch controls with micro services like Image Manager, Function Manager, Image Manager, Event Manager, Identity Manager.
* The service Catalog with bridge  between external services and functions
* The event bus or a event/messaging queue
* the FaaS Implementation (Open FaaS or Riff)
* the Open Source Broker API to allow binding functions to services
* the K8's Platform use as IaaS in this case PKS.

And Image Registry for containers in this case VMware Harbor or anything Docker compatible registry
An entity store (Postgres) and K8´s secrets

what is next ?

the next step is to put in action all together in step by step manner, so for that I decide to use PKS as a K8-s Platform and deploy on top of that Dispatch to show a mini how to guide, so first we assume some knowledge of PKS for this, let-s get started.

Part 2 Install PKS
Part 3 Install Dispatch on top of PKS

Stay tune.


No hay comentarios: