If you work with a fast-growing project, then you know that it requires a managed IT infrastructure. All the time you have to raise test hosts, constantly deploying something, updating the source code, adding resources and distributing the load. All this is a routine task of a DevOps specialist, and if not lucky, then the developer himself.
In general, working with the IT infrastructure of an application takes a lot of time for specialists. This did not please us, and we invented our own platform, which reduces complex operations to a couple of mouse clicks.
The platform we made is called D2C. It helps automate the developer’s routine tasks of setting up and scaling the server architecture, as well as deploying applications.
The closest service to us is probably Heroku. However, it is difficult to call us analogues: although we solve the same tasks, but in a completely different way. In particular, we have a focus on working through the web interface, you can also use your own servers or servers of cloud providers.
To bind your host you will need to execute a command on the server. Also the server must meet the requirements
To bind a cloud provider, it is enough to specify an API token or Access ID with a Secret Key, if it is Amazon.
Little remark
In general, we did not strive to make a “slightly improved our” analogue of Heroku. They just did a project in which there was a bunch of routine for administering their own servers and hosts in the cloud, and the number of hands in a team and financial capabilities was strictly limited. For the reasons indicated, most of the solutions did not suit us at all, and we made our own, and then refined it before the PaaS service.
Basically, D2C helps to solve 7 main tasks related to the management of IT-infrastructure:
1. Raise the working environment for the application
For example, the application - the site. You need to raise a web server and database. In D2C, it’s enough to select the necessary services, specify hosts and specify dependencies. The example below uses hosts on Amazon, but you can use other cloud providers or your own servers.
In the illustration, the user adds NGINX as a frontend and “binds” it to NodeJS. MongoDB is used as the base.
2. Deploy and update the application from source
For example, you can deploy the application directly from source in the Git repository. It is enough to configure it once and it will remain only to update with changes.
In this case, the application is deployed from Hitlab via SSH, but you can specify an FTP / HTTP link to the sources or upload via Upload.
3. Configure the system
Our default settings will work in most cases, but they can be optimized for a specific architecture and load.
In the screenshot, the NGINX configuration for working with PHP in edit mode
4. Scale infrastructure
In D2C, you can scale the application both vertically and horizontally. In the first case, the platform is able to add resources from cloud providers. For horizontal scaling, just click “Scale” and the platform will lift the containers on the new hosts, after which you can add a load balancer. When updating, the application will be deployed on all participating hosts.
Demonstration of horizontal scaling with the addition of a load balancer
5. Migrate configuration
For example, it took to transfer the entire database with all the replicas and settings from Amazon hosts to Digital Ocean. In our platform, this is done quickly:
6. Monitor the entire system
All logs and graphics of the use of system resources in general, individual hosts and even containers are merged into one panel. Therefore, if a problem appears somewhere, it can be easily found.
7. Quickly deploy a typical environment using ready-made stacks.
To create an environment with a typical configuration, you can create a stack in yaml format. Thus for frequent tasks it is not necessary to set up services from scratch every time. It is enough to import the file and with a minimum of actions to raise the prepared environment for the application.
We also regularly replenish our Stackhub with ready-made solutions. They can also be used.
Example deployment of a typical environment
The first thing you can do to get started with D2C is to register with the service . It is free, you can test the service yourself.
We also conduct online product demonstrations. If you want a live person to show, tell and answer questions, you need to register for a demo . I recommend this to be done as quickly as possible, since so far we are still allowed by the resources to conduct presentations on an individual basis, but this will not always be the case.
Go to the documentation and find out in technical details what can and cannot be done in D2C.
Read our knowledge base with ready-made recipes for the construction of IT-infrastructure. There are not very many articles now, but they will be constantly added. We will publish something on Habré, but not everything.
D2C still can not do everything, but will soon learn. To make it easier to follow our plans, we made a roadmap. If you have any suggestions, describe them in our Trello . We may add this, but it is not accurate.
Source: https://habr.com/ru/post/342436/
All Articles