menuCohesive docs

What does Cohesive do?

Cohesive is a platform that allows you to effortlessly create on-demand staging environments in your own cloud!

Have you heard of situations where many developers are vying for the same development environments to deploy AND test their code? All the way from their own local machine environment, to staging to QA to finally production! :)

And of course, the oft repeated sentence which is now a meme - It works on my machine! -- when the said developer's code works on their machine but doesn't work on other environments.

works on my maching img

This leads to problems such as:

  • Maintenance of environments - just to ensure their configurations are upto date.
  • Bottlenecks in developers' bandwidth as they struggle to use the same set of environments simultaneously.
  • Increase in infrastructure costs.
  • A lot of loss in developer productivity.

Having faced the same problems as developers, we felt that this would be worth solving for and hence we built Cohesive! Cohesive gives developers an easy way to launch these environments in a single click and in a matter of minutes!

Advantages of using Cohesive

Launch and Manage complex environments

Traditionally, to launch a new environment, the following steps need to be taken:

  1. Provision services, such as MySQL, SQS, S3, etc., required by all the microservices
  2. Figure out which services need to be shared among different microservices. Also, figure out which microservices need to communicate with others. Modify the configurations for microservices accordingly.
  3. Provision servers and deploy all the microservices
  4. Configure load balancers and set up DNS records for the new environment
  5. Set up deployment pipeline so that developers can deploy new code

Cohesive enables to standardize and templatize all of these using a no-code approach. Once the setup is done, it requires just a click of a button to launch and manage new environments, hence making what was earlier a laborious set of tasks, simple and easy.

Launching a microservices environment using Cohesive

Ease collaboration and debugging

Debugging requires developers to have (almost) complete access to the environment, whereas traditionally, access is usually limited. Also, all of this data is usually scattered around different places.

Cohesive solves this problem by letting developers:

  • Access deployment logs
  • Access live logs for application and services
  • Get shell into the container running an application or service
  • Intercept requests going to a deployed microservice and send them to a developer's laptop instead (coming soon)

Multiple developers can use these features to effectively collaborate in hunting down a bug and fixing it.

Debugging using Cohesive

Automate workflows

When working with complex environments, it is important to automate a lot of the critical workflows such that the developers do not need to take manual actions to follow development processes, deploy code, and prevent environments from breaking.
Cohesive enables these by providing automations such as

  • Deploy code on Git push
  • Launch a new environment on opening Pull Request
  • Deploy environments which depend on another environment which has some configuration changes

Automate workflows

Enforce policies

Organizations need to enforce certain policies to prevent accidental misuse of infrastructure. This might involve the following:

  • Imposing limits on the number of environments a developer can launch
  • Ensuring that environments are shut down during non-office hours
  • Terminating environments when they are not in use

Cohesive lets organizations create these policies and automatically enforces them.

Enforce policies