This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article contains content that is written like an advertisement. Please help improve it by removing promotional content and inappropriate external links, and by adding encyclopedic content written from a neutral point of view. (November 2017) (Learn how and when to remove this message) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: "Cocaine" PaaS – news · newspapers · books · scholar · JSTOR (January 2018) (Learn how and when to remove this message) (Learn how and when to remove this message)
Developer(s)Andrey Sibiryov and Yandex team
Initial releaseMarch 20, 2011; 13 years ago (2011-03-20)
Stable release / November 29, 2017; 6 years ago (2017-11-29)
Written inC++
TypeWeb development

Cocaine (Configurable Omnipotent Custom Applications Integrated Network Engine) was an open-source PaaS system for creating custom cloud hosting apps that are similar to Bluemix, Google App Engine, or Heroku. Several services have already been implemented this way, including a service for detecting a user's region or language, a service for accessing MongoDB storage, and a URL fetcher.[1]


Andrey Sibiryov, the original developer of Cocaine, got the idea from Heroku, another cloud PaaS. At that time, Heroku only supported applications developed in Ruby.[2] Using Heroku, the developer could create a Ruby app and push it to the cloud, while Heroku handled infrastructure and load balancing issues. Sibiryov was not satisfied with the documentation for Heroku and decided to create his own PaaS system.

Initially, Cocaine was a personal project for Sibiryov. This changed, however, when Yandex discovered an internal need for a scalable platform that could cope with millions of requests-per-second (RPS). Cocaine was, for a period of time, used in the Yandex infrastructure.[3]


The cloud is made up of one or more independent machines that have the Cocaine server (Cocained) installed. Users know nothing about the location of the services they are accessing—only the address of the load balancer and the app name are available to them. User requests are sent to the load balancer, which passes them to the cloud. In the cloud, the optimal machine is selected for each request, and then the request is executed. The infrastructure details and the app's environment settings are hidden from the developer, as well. The developer only needs to send the code to the cloud and write a special manifest for executing the code. It is not necessary to set up anything else, such as databases, key-value stores, or HTTP clients. There are services that do this, which from the programmer's point of view are native modules for the programming language the code is written in. For example, the Storage service lets users access Elliptics storage, and the Uatraits service uses data about a client's user agent and its HTTP headers to determine the characteristics of the device that sent the request.

Applying the technology

In the cloud, apps can be written in various programming languages (C, C++, Go, JavaScript, Python, Ruby, and others) and frameworks (Node.js). Cocaine bound to a web server provides an automatically scalable deployment environment for web apps. The cloud manages large data volumes through a streamlined interface. Cocaine ensures reliable, high-performance message transmission with fault tolerance. Its load balancer enables responsive user-centric systems. Cloud apps run independently, supporting multiple versions and smooth user transitions to updated versions. Additionally, apps are tested in isolated cloud environments, preventing errors from affecting the physical system or other applications.


  1. ^ "cocaine-docs". Retrieved 8 May 2017.
  2. ^ "The Big Kickoff". Retrieved 8 May 2017.
  3. ^ "Yandex's official documentation". Archived from the original on 2014-02-19. Retrieved 2014-02-25.