Whether your application is deployed in VMs or in containers, we have the tools to assist you in developing in these environments. JetBrains IDEs will help you get the code to your development environment, and debug your code running in place.
Every JetBrains IDE can deploy code and artifacts using SCP, and open an SSH terminal. Complex SSH configurations with bastion hosts are supported and can be configured using the SSH config file (even on Windows).
You may be using Vagrant to help automate your VM processes. Vagrant is supported in all JetBrains IDEs, and you can connect to Vagrant-configured VMs from the IDE without further configuration.
All JetBrains IDEs enable you to build and run both Docker Containers and Docker Compose projects. Our Docker support makes editing Dockerfiles and Compose YAML files a breeze.
Using Kubernetes? Although Kubernetes makes deployment much easier, it requires complex YAML files for configuration. The JetBrains Kubernetes plugin helps you with this: it generates snippets, enables you to navigate within your configuration, and offers inspections to help you write valid configurations.
If you’re developing code in Python, Node.js, PHP, or Ruby, you can use the JetBrains IDE’s remote interpreter feature. Whether you’re connecting to a VM or a Docker container, you can configure a remote interpreter to use your remote machine as the execution environment for your project. After you have configured this, all run configurations will be executed on the remote machine, while still giving you the experience you’re used to from local development.
When you configure a remote interpreter, your IDE will scan the environment of the remote machine, making sure that you get accurate code completion. To further streamline the development experience, unit tests will be run remotely.
The Python console, IRB, and the Rails console will run on the remote machine when a remote interpreter is configured: you can prototype your code in the same environment where it will run.
With most run configurations, debugging is supported without additional configuration. For more complex configurations, you might not be able to start your code from the IDE. For example, if you’re testing a toolchain that generates VM images. In these cases, you can use the remote debugging capability of JetBrains IDEs to connect to code which is already running.
Configure Java to start with debugging enabled, either with a command-line option or an environment variable. Then, attach IntelliJ IDEA’s debugger.
Start your Node.js app with the `--inspect` flag, and then attach WebStorm’s debugger.
Start your application with delve, and then connect using GoLand.
It’s hard to make an application without a database, which is why JetBrains offers DataGrip, our SQL IDE. In addition to being a standalone product, its database features are also integrated into most of our IDEs*.
*All paid IDEs except WebStorm
To make development for remote environments easier, DataGrip comes with support for SSH tunnels out of the box. To connect to your staging environment’s database, just have DataGrip connect through your bastion host.
SQL is a powerful language, so why not use a powerful tool? JetBrains DataGrip brings powerful code insight and completion to SQL. DataGrip makes connecting to your database and exploring your data easier than ever.
Rather than being made for a single RDBMS, DataGrip can connect to all major database servers: PostgreSQL, Microsoft SQL Server, Oracle Database, MySQL, and more. Additionally, DataGrip has built-in support for connecting to Amazon Redshift and Microsoft Azure databases.
See your data while you develop: by having DataGrip integrated in your JetBrains IDE you gain not just insight in your data, but also industry-leading SQL completion that actually knows your data. All JetBrains IDEs with database integration offer you schema aware SQL completion whenever you’re writing a query within your code.
You can now configure your infrastructure with code, so why not use a world-class IDE for coding your infrastructure? With the HashiCorp Configuration Language (HCL) plugin you can use JetBrains IDE features like Ctrl-Click to go to definition in your infrastructure code.
In addition to basic support for the syntax, the plugin has deeper integration with HashiCorp TerraForm. Completion is offered for TerraForm methods, and various inspections help to make sure that your infrastructure configuration is valid.
Whether you’re using Chef, Puppet, or Ansible, there’s a plugin available for you. The JetBrains Puppet plugin provides you with high-quality code completion, refactoring, and inspections for your IDE. Plugins are also available for code completion in Chef cookbooks and Ansible playbooks.
Most teams use some type of continuous integration and/or continuous deployment (CI/CD). JetBrains TeamCity is a CI/CD server that was made for today’s complex environment.
Of course, TeamCity can build and push your Docker images based on the Dockerfile in your repo. Additionally, TeamCity can wrap build steps in a Docker container. For example, rather than running a Gradle build step directly on your build agent, you can configure TeamCity to create ephemeral Docker containers within which Gradle will be executed.
JetBrains TeamCity makes it easy to build your code in the cloud. Whether you’re fully in the cloud or have a hybrid between on-premises and cloud-deployed machines, TeamCity can handle the complexity for you.
Does your build queue sometimes grow longer than you’d like? TeamCity cloud agents can dynamically add and remove build agents based on your current needs. You can mix and match your computing providers: TeamCity can dynamically add build agents on-premises with vSphere, in addition to AWS, Google Cloud Platform, and Azure. Using a third-party plugin, agents can also be dynamically created in an OpenStack private cloud.
The complexity found in today’s cloud environments sometimes makes it hard to reproduce certain issues locally. That’s why we’ve added the ability to analyze stack traces that you get from your logs*. Simply copy-paste the stack trace into the IDE, and you can use the power of a JetBrains IDE to quickly navigate to the relevant parts of your application.
If you’re developing a multi-threaded Java application, be sure to check out the thread dump analysis tool in IntelliJ IDEA
*Only in Java, Python, PHP, .NET, Ruby, and Node.js