Probably, it was necessary to start the knowledge base from this article, which would tell about D2C and about the tasks that the platform helps to solve. But this thought came to my mind just a couple of days ago. And I wrote the article.
Why do you need D2C
A fast-growing and constantly evolving project requires a managed IT architecture. All the time you have to create test hosts, deploy apps, update the sources, add resources and balance the load.
IT-infrastructure management takes a lot of specialists' time. This is why we have created a PaaS which automatize this kind of work and complicated operations reduce to a couple of mouse clicks in the web interface.
What is D2C
D2C is a PaaS for automation of the developer's routine tasks such as configuring the IT-infrastructure, scaling and deployment.
For information: What is PaaS?
PaaS (Platform as a service) is a category of cloud computing services that provides a ready-made environment for deployment, development and testing applications. Such services help to manage complicated IT-infrastructure without having to be involved in the details of its functioning.
Possibly, Heroku it is the closest service by similarity to us. However, it is difficult to consider us as analogs. We solve the similar tasks, but in a quite different ways.
In particular, we focus on work using the web interface. Also with D2C, you can use your own servers or cloud providers. Heroku, for example, a hosted solution. It means that your data can only be hosted on their servers. In that sense, we are more flexible.
To link a cloud provider you just need to specify the API token if you use DigitalIcean
or Access ID with the Secret Key if you use Amazon EC2.
In general, we did not want to make a "slightly improved" analog of Heroku. We were making a project on which we had a bunch of routine tasks including administration of IT-infrastructure, and the number of hands in the team and financial capacity was strictly limited. For these reasons, we made own solution and then modified it to PaaS.
What problems does D2С solve and what does it able to do
Basically, D2C helps to solve 6 major problems associated with managing the IT infrastructure:
In the illustration, the user adds NGINX as a front-end web server
and specifies dependencies between it and the NodeJS server. As a database he uses MongoDB.
3. Configuring the architecture
Our defaults would be working in most cases but they can be optimized for a particular architecture and load.
On the screenshot, you see the configuration of NGINX for working with PHP in FastCGI mode.
4. Scaling apps
In D2C it is possible to scale the application both vertically and horizontally. In the first case, the platform is able to add resources in the cloud. For horizontal scaling, just click on "Scale" and the platform will add containers on the new hosts. After that, you may add the load balancer. On updates, the app will be deployed on all affected hosts.
A demonstration of scaling with the addition of the load balancer.
5. Migration configuration
For example, it is necessary to move the database with all replicas from Digital Ocean to Amazon entirely. In our platform, it is done quickly:
All logs and graphs of system usage as a whole, individual hosts, and even containers are merged into one panel. So if the problem occurs, it is easy to find it.
The example of logs
7. Fast deploy a standard environment with ready-made stacks.
For the deploing a standard enviroment you may create your own stackfile in yam. So for frequent tasks you won't need to configure services from the scratch. Just import a ready-made file and deploy a needed enviroment with a minimum of actions.
Also we regularly add new stacks in our Stackhub. They may use them too.
An example of the deployment