Serverless computing provides an easy way to build highly scalable applications and services, eliminating the pains of provisioning & maintaining.
Today it's mostly used one-off for e.g. image transformations and ETL, but given the potential and the rise of microservices, it's fully possible to build complex, complete applications on nothing but serverless functions and connected services. Leveraging knative and kubernetes, users will be able to define and manage functions in GitLab. This includes security, logging, scaling, and costs of their serverless implementation for a particular project/group.
Because it is just a single file, our initial implementation loads this repository to a memory, and generates
Dockerfile and saves it to disk. We never persist
Dockerfile.template or anything else from a runtime repository to a disk, therefore these files can not be included in a context (Kaniko / Docker Engine context) before a build starts.
This will allow us to include files in context and lower the barrier of creating new runtimes.
We apply our global product strategy to thinking about the serverless space. We treat the following principles as our north stars:
There are several stages involved in delivering a comprehensive, quality serverless experience at GitLab. These include, but are not necessarily limited to the following:
There are a few epics and important issues you can check out to see where we're headed.