Appearance
Basic Concepts
Yelken aims to become a general purpose cloud provider that is easy to use while providing extensive configuration options for opening doors to varying degree of solutions. To put it simply, Yelken provides compute, storage and networking resources for you by defining easy to use abstractions on top of them.
It allows developers to continuously build and deploy their projects, located inside their GitHub repositories, with a simple CI/CD pipeline. Additionally, with Preview Pull Request feature, developers can test changes in a Pull Request by continuously deploying to a service different than the main one.
Yelken also provides running container images from private or public registries. Running containers has benefits not only for developers but also for any kind of user who wants to self-host an application without maintaining a server. Lastly, Yelken allows non tech-savy users to easily create and manage websites powered by favorite web apps with a few simple steps.
To better understand the Yelken platform, following sections introduces some basic concepts.
Project, Environment and Service
Yelken introduces a few concepts and abstractions to represent and manage underlying resources on the platform. A couple of them you will encounter first are Project, Environment and Service. Firstly, Project allows you to separate different project of yours. It is a top level resource which consists of multiple environments and services. Inside of a project, Environment enables you to isolate resources from each other, such as having a Production environment and a Staging environment. On the other hand, Service represents running instances of your applications such as a database, a web application or a cache server. To help understanding relation between resources, here is a graph that shows the hierarchy:
Project -> Environment -> ServiceWith this approach, it is possible to have a service running in an environment and communicate with another service running in the same environment. By isolating the environments, it is assured that a service in development environment cannot touch another service in production.
Sync between environments
A feature that is under development will allow you to sync differences between environments to ensure that all changes are applied from one environment to another environment.
In terms of networking, Yelken allows you to configure how your services are reached over the network both internally and externally, meaning inside the platform and also from the internet. You can define ports of each service they listen on to let other services, running inside the same environment, connect them or route external connections to your service. You can also add your own domain to Yelken and add route definitions which enable you to direct HTTP requests to corresponding service with respect to path of request. For more information about networking, please check Networking Overview page.
Lastly, Volume provides persistent storage for your services. By default, services do not have a persistent storage, meaning they are stateless. With Volume, you can have persistent storage by mounting them into the service, hence container's filesystem.
Workflow and Pipeline
To automate some processes and define how they get triggered, Yelken has Workflow and Pipeline resources. Currently, they are useful for deploying new versions of your service that is created from a GitHub Repository.
Pipeline is a simple resource that defines a set of tasks that will be executed in an order. As an example, deploying a new version of a service includes building a container image and creating a deployment tasks. On top of the Pipeline, a Workflow defines how a pipeline should be created when an event occurs such as pushing new commits to repository or opening a pull request.
While service and environment define the running instances and their boundaries, workflow and pipeline define an automated process that is triggered by an event.
Next
Up to this point, overview of Yelken's concepts is given to make you familiar with the platform. To learn the details of these concepts and features, you can continue your reading with next page where each Platform concept will be introduced individually.