Tools that Java programmers use in their daily work |
Posted: July 21, 2021 |
Tools that Java programmers use in their daily work
Not all the people choosing a programming language understand what they have to face and what to be prepared for. In this article I want to describe the tools I use in my daily work. Each company may have its own specifics. Nevertheless, the tools listed here are common for the lion's share of Java developers and some are common for most backend programmers.
IntelliJ IDEAIntelliJ IDEA is the primary IDE (Integrated Development Environment) used by Java programmers to write, run, and debug code. It provides excellent support for popular frameworks (Spring, Micronaut) and has a huge number of plugins to make development easier.
Data StoresRarely a backend application can do without a database. Each project can have its own database - SQL (PostgreSQL, Oracle), NoSQL (MongoDB, Apache Cassandra) - or a combination of several databases. This can also include message queues (Apache Kafka, RabbitMQ) and caches (Redis, Hazelcast, Apache Ignite).
Docker Docker is a software platform used by backend developers at all stages (development, testing, deployment) to quickly run any software in an isolated environment. Thus, during development and testing, the required environment (databases, authorization servers, etc.) can be launched with Docker, while during deployment, the application itself is launched with it.
KubectlDocker containers don't go up on their own. There are special orchestrators for that, monitoring their state, limiting the resources consumed, and restarting the containers if necessary. The main orchestrator in use right now is Kubernetes.
Kubectl is a console utility that allows you to connect to a Kubernetes cluster where Docker containers with all the services of the project are deployed. It is used for deploying applications and debugging in case of errors.
Jenkins / TeamcityJenkins and Teamcity are tools used to create a CI/CD pipeline for automated testing and deploying new versions of applications. As a rule, a company uses one of these two tools. Using these pipelines, you can, for example, run test runs immediately after a commit, deploy a new version of an application in the development environment. If all tests are successful, or send a Slack bot message to chat if some tests are down.
Grafana + PrometheusThese are the most popular monitoring tools: Prometheus is a key-value repository into which all application and database metrics are stored. Grafana is a metrics visualization tool that plots CPU usage, RAM consumption and much more, which helps to understand problems of applications with abnormal loads or, for example, unexpected restarts. ELK (Elasticsearch + Logstash + Kibana)Rarely do companies invent their own bikes to store and view logs. The de-facto standard now is the ELK stack:
ConclusionNot all of these tools need to be understood in depth. Typically, databases, Kubernetes, Jenkins/Teamcity, Grafana + Prometheus, and ELK are administered by DevOps professionals. However, any Senior Java Engineer needs to be proficient in them at least at the user level to quickly find a problem that happens in a production or staging environment.
Thanks for help: CLLAX - Business Software Reviews
|
||||||||||||||
|