User Tools

Site Tools


toolsandtechnologies:tools_and_technologies

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
toolsandtechnologies:tools_and_technologies [2020/03/08 14:55] – [Java 13+] akavanaghtoolsandtechnologies:tools_and_technologies [2021/06/25 10:09] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== New RDF Tools and Technologies ======
 +The new RDF has a lot of new tools and technologies that an operations engineering might not have seen, used or used in any great detail. This section of the new RDF wiki will give a quick overview of the technologies and tools which are needed to be utilised by operations engineers when developing in the new RDF platform.
 +
 +====== Java 13+ ======
 +Operations engineers will be familiar with developing functionality using Groovy. Groovy is primarily used as a scripting language in operations to implement Trap Rules, Remote Discovery scripts and Ticketer Groovlets. The syntax in Groovy can be very similar to Java but it is dynamic like in behaviour, it aims to reduce a lot of what is considered boilerplate code such as semi-colon terminators for statements and has custom initialisers for data structures etc. If you have been programming in Groovy for quite a while, you have likely become very familiar with these shortcuts and 'habits'. The new remote discovery framework is developed using pure Java, which is static and strongly typed. It offers better performance and a lot of issues will be caught at compile-time versus the issues which are discovered at run-time with Groovy. It is important to get familiar and up to speed with Java to start writing functionality in the new RDF. Since Java 8 with the introduction of Lambda expressions and streams a lot of functionality seen with Groovy closures can be replicated, but be aware such concepts in Java are not closures. Some courses are available on the company LinkedIn account to get you up to speed with Java, Lambda and streams if necessary.
 +
 +[[https://www.linkedin.com/learning/learning-java-8/welcome|Java 8]]
 +
 +[[https://www.linkedin.com/learning/learning-java-lambda-expressions/streams|Java Lambda And Streams]]
 +
 +====== Postman ======
 +Postman is an application used for API development. It is useful as a development tool in the new remote discovery platform because it allows you to test agent processors locally by simulating requests for discovery operations. Postman allows you to easily form REST calls from either your browser or directly from the postman application if you have installed it on your machine. In later sections, it will be explained how to form and post a REST request to a local instance of the RDF agent. Postman can be downloaded by following the link below.
 +
 +[[https://www.postman.com/|Postman]]
 +
 +====== IntelliJ ======
 +It is advised to use an IDE for development processors in the new remote discovery framework. Text or code editors although very useful for quick updates are not advised. There are a lot of packages, libs and jars in the new RDF and Intellij offers syntax highlighting and dependency resolution features which are very useful. Everyone should have a copy of the IntelliJ IDE installed, if there are any issues with your current installation or licencing issues for your IntelliJ please let someone know and we can get it resolved.
 +
 +
 +====== Other Tools and Techs ======
 +Aside from the above some other technologies which are used which you may have familiarity with are **GIT**, **Ansible** and **Elastic Search**. The new remote discovery framework is a "full code base" it is not scripted therefore it is managed as such. All updates have to be fully version controlled and tested, builds are controlled using Jenkins and deployments are typically done using Ansible. Later sections in this wiki will cover the required GIT commit and branching strategy which is important, how to build with Jenkins and deployed with Ansible will also be outlined. Data which is discovered with the new RDF is stored in Elastic Search so from an operations point of view it is important to be familiar with this. Any reports which need data which was discovered using the new RDF needs to query Elastic Search so this will be covered in subsequent sections also. **One tool which should be installed which is very important is called SDK Man**, it helps greatly with managing different SDK versions on your local machine, please follow the link below to install this if you have not already.
 +
 +[[https://sdkman.io/|SDK Man Website]]