The team at Last.Backend was researching virtualization technology for a game development project when they came upon containers and Docker.
Believing that containers would “capture the world,” they jumped on the new technology and started building an automated container management system for developers. Their aim was to enable developers to focus on writing cloud-based applications, without having to worry about managing the underlying infrastructure.
“The first and basic idea was to automate the work with the infrastructure,” said Last.Backend CEO Alexander Kaloshin. “For us, the main activity was design and development, and we knew firsthand what it is: the process of testing and deploying software. We have written our own automation systems more than once for our previous projects. And when the technology of containerization appeared, we could make a rather universal solution for the whole community of developers.”
He said that, as of his company’s founding in 2015, only Last.Backend and Tutum were focused on this goal. Tutum, of course, has since been acquired by Docker, which has used the technology to launch its own cloud hosting service.
In December, Last.Backend made its platform-as-a-service, which is built on top of Kubernetes, open source.
Mix of technologies
The product mixes several technologies, including container orchestration, application containerization, metrics and analytics from containers, virtual overlay networks for containers, and log storage.
The team developed a system for deploying and scaling Docker containers on a cluster with a large number of machines, as well as a system of hooks and a command line interface, with the aim of making management easy. The system builds container images from source code in repositories such as GitHub or BitBucket, then uses those images for orchestration. It’s deployed on three servers: one for the REST API, another for the proxy server and DNS server, and one for three components: the builds manager, the orchestrator, and the scheduler.
Kaloshin explained his team’s tasks this way:
The configuration manager tracks configuration for connected machines and, if the configuration is mismatched, sends the job to the scheduler for an update.
The scheduler generates machine specifications and various tasks for the main system, such as building source code tasks, hooks management, and nodes management. It receives signals from the controller and generates specifications for a specific machine. The agent takes these specifications and leads the state of the managed node to the proper one. This approach provides easier system scaling in large clusters and provides reliability.
The builds manager — one of the simplest components — starts the process of building images and then monitors their execution. A separate cluster of machines hosting Docker may be invoked as a pool of servers for building images. The company plans to build this into a full continuous integration system.
Anyone can start using the system even with only one server, and you can start just as easily with a cluster and thousands of servers, Kaloshin said.
All the components in the original architecture should be able to run separately for high fault tolerance. For local testing, you also can run everything except the agent in one package.
“We still have a lot of work. We need to strengthen our network interaction model, and we spend a lot of time on persistent volumes designing. We are looking forward to getting some help from the open source community. There are very many tasks in which the competence of more experienced specialists would be useful for all of us,” he said.
“I cannot say that we are straightforwardly inventing something new because all this is partially realized in many third-party services, but a single open-source system with CI /CD, web-UI that you can easily put on a server or a group of servers, we have not met yet.”
Just a Few Clicks
Based in St. Petersburg, Russia, Last.Backend has received funding from the Russian government-backed accelerator, Internet Initiatives Development Fund (IIDF). It entered the Chinese market last year, and as for the United States market, Kaloshin says politics is not a hindrance so long as they maintain focus on creating an excellent product.
Last.Backend also received backing from Microsoft, as a member of its Azure partner program. Its visual also works with AWS and DigitalOcean and is integrated with chat rooms Slack and HipChat.
“We want to save IT professionals time and avoid working with infrastructure,” said Kaloshin. “Let them focus on creating great apps. If they need a database — make a few clicks and get it. Yes, you can open some guides on DigitalOcean and do everything yourself, but why waste your time? Your code was updated? — let Last.backend build it, test it and run it on the servers.”
While Docker’s and Kubernetes’ ecosystems are more focused on the enterprise, he said, he wants his company to help smaller teams and indie developers as well. He added that, while Kubernetes is wonderful, not every startup can deploy it in a production state — which is why that orchestrator is more often used for testing. His company is focused on making a solution for stage and production, too.
Last.Backend competes with PaaS platforms such as Heroku, Deis, and OpenShift, said the CEO, and to some extent, also competes with containerization components such as Docker and Kubernetes. The platform offers a higher level of control over the physical resources being used than do competitors, Kaloshin told us — control at the level of the operating system, at the level of processes.
Services like Heroku are ideal for small projects, but it becomes much more difficult for companies with large infrastructure, and applications using a dozen repositories on a microservices architecture, he said.
As an incentive for developers, the company has developed a reward program: free limited resources in exchange for contributions to the open source project. All rewards will be determined individually.
DigitalOcean is a sponsor of The New Stack.