Cocaine (PaaS)
   HOME

TheInfoList



OR:

Cocaine (Configurable Omnipotent Custom Applications Integrated Network Engine) was an open-source
PaaS Platform as a service (PaaS) or application platform as a service (aPaaS) or platform-based service is a category of cloud computing services that allows customers to provision, instantiate, run, and manage a modular bundle comprising a computing ...
system for creating custom
cloud In meteorology, a cloud is an aerosol consisting of a visible mass of miniature liquid droplets, frozen crystals, or other particles suspended in the atmosphere of a planetary body or similar space. Water or various other chemicals may ...
hosting apps that are similar to Bluemix,
Google App Engine Google App Engine (often referred to as GAE or simply App Engine) is a cloud computing platform as a service for developing and hosting web applications in Google-managed data centers. Applications are sandboxed and run across multiple server ...
, or
Heroku Heroku is a cloud platform as a service (PaaS) supporting several programming languages. One of the first cloud platforms, Heroku has been in development since June 2007, when it supported only the Ruby programming language, but now supports Jav ...
. Several services have already been implemented this way, including a service for detecting a user's region or language, a service for accessing
MongoDB MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. MongoDB is developed by MongoDB Inc. and licensed under the Ser ...
storage, and a URL fetcher.


History

Andrey Sibiryov, the original developer of Cocaine, got the idea from
Heroku Heroku is a cloud platform as a service (PaaS) supporting several programming languages. One of the first cloud platforms, Heroku has been in development since June 2007, when it supported only the Ruby programming language, but now supports Jav ...
, another cloud PaaS. At that time, Heroku only supported applications developed in
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called ...
. 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 Yandex LLC (russian: link=no, Яндекс, p=ˈjandəks) is a Russian multinational technology company providing Internet-related products and services, including an Internet search engine, information services, e-commerce, transportation, map ...
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.


Architecture

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 In computing, load balancing is the process of distributing a set of tasks over a set of resources (computing units), with the aim of making their overall processing more efficient. Load balancing can optimize the response time and avoid unevenl ...
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 The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide We ...
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 A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
( C,
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
, Go,
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, of ...
,
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
,
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called ...
, 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.


References


External links

* * * *{{Citation, url=https://www.theregister.co.uk/2013/10/17/free_cocaine_giveaway_from_russian_search_engine_yandex/, title=Free Cocaine giveaway from Russian Search Engine Yandex, newspaper=The Register, date=2013-10-17 Cloud platforms Yandex software