Continuous delivery for regular releases with minimum time to market.
Computools provides you with complete and periodic product maintenance, testing and monitoring paired with ongoing enhancements.
Development of CI\CD plan starts at the architecture design phase.
A docker-based infrastructure is used to keep the identical work flow of the system in different environments.
Docker, docker-compose - for work within one server
Kubernetes - for multi-server environment deployment
Docker swarm and stack - alternative for multi-server environment deployment
Development of configuration and deployment of the next environment types:
Dev (development) environment - is used in the development process and for testing a feature\branch. Low price is an important requirement even to the detriment of a number of non-functional requirements including stability and uptime. So, production compliance can be incomplete. Single nodes can be raised instead of clusters. The vendor of server resources should not be the same as on production in common case.
QA environment - is used for regression testing of the build or release candidate. Production compliance must be higher. Clusters must be configured in the minimum configuration. By default, the server resource vendor must be the same as on production.
Staging/demo environment - it’s used for demonstrating the project to clients and their partners. Staging/demo environment is a copy of the production environment. At high prices of the production environment allows to use the equivalent which is close, but doesn't correspond to all production requirements. This question is negotiated with the client. It can be combined with a QA server in the early stages, but it is not recommended if the client also holds demonstrations. Clusters must be raised in the minimum configuration. By default, the server resource vendor must match production.
Production environment - it’s used by end-users and corresponds to non-functional project requirements and maintains stable work of the necessary software. By default, the capacities of reliable vendors such as Google cloud, AWS, Microsoft Azure are chosen.
Infrastructure - It’s a set of tools that are used for project development. Basically, the solutions we rent or deploy in the corporate network;
GitHub, GitLab, Bitbucket - version control systems (based on git) and UI for these systems
Jira - task/bug tracker
Confluence - specification management system and knowledge base
Jenkins - continuous integration (CI) system
SonarQube - code analyzer
building the builds, basically, based on docker
running of all test types
domain specific tools
SQL database - PostgreSQL, MySQL, Oracle, MSSQL, etc.
document-oriented database - MongoDB, CouchDB, Elasticsearch like search engine, etc.
column based - HBase, Cassandra, etc.
other storages, queue and cashes - RabbitMQ, Redis, Memcashed, graph database, etc.
platforms to work with content
development and configuration of additional systems necessary for horizontal scaling
domain specific tools
Vendor’s API from AWS or Google cloud that includes CDN. CDN is recommended to use for static files which is critical to loading speed.
Сonfiguration of vendor’s resources:
internal client's servers for remote access:
other types of remote connection
VPS for access to the control panel:
Deployment and configuration of internal infrastructure
Deployment of environments
configuration of physical or virtual machines
installation and/or configuration of operating systems
CI/CD system configuration
CI and version control system integration
CI and continuous testing configuration
configuration of required systems and dependencies
implementation of horizontal scaling schemes and integration with kubernetes
internal network and DNS configuration
load balancers configuration and testing
development and testing of solutions for horizontal scaling of subsystems.
software security configuration
work with ports
connection restrictions from outside the internal network
configuration of vendors' systems
configuration of log analysis systems, primary stack Elasticsearch, Logstash and Kibana.
Environment status monitoring
Deployment of new environments
Deployment of additional capacity for carrying out the types of automatic testing is not included in the mandatory testing when making a build
resolving issues with CI/CD
help with the setting up local environments
help with the setting up developer tools
help with the setting up of environment for debugging