Welcome to Part III of our “Ultimate DevOps Tools Ecosystem Tutorial.” In Part I, we introduced the DevOps work cycle. You can see the complete infographic here:
In Part II, we covered main tools from the “plan” stage. This time, we will go over tools from the “develop” stage.
Developing is the stage where the ideas from planning are executed into code, or in other words, the ideas come to life as a product. This stage requires software configuration management, repository management, and build tools, as well as automated Continuous Integration (CI) tools for incorporating this stage with the following ones.
Here are some of the top tools for the development stage.
Version Control System Management: BitBucket and GitHub
Version control systems let you host your code, share it with other developers, and collaborate on them. BitBucket and GitHub are two of the most popular version control system management services. Both were launched in 2008, while Bitbucket was acquired by Atlassian in 2010.
Which one should you choose? That depends on your needs. The main differences are that GitHub is open-source friendly, as it enables an unlimited number of collaborators for public repositories. However, if you need private repositories, BitBucket offers them for free for up to five collaborators. GitHub also supports only Git revision control, while BitBucket supports Git and Mercurial. Git, however, is usually enough for developers.
Bitbucket GUI (source).
Package Management: NPM
Package management enables developers to reuse and share code through repositories, which store “packages.” Packages are files or directories that are grouped together to provide a service or functionality. We recommend using NPM, which is a Node.JS package manager. Founded in 2014, NPM is an open-source product.
Pros: Most packages in one place; easy to use.
Cons: Requires all packages to be on the NPM website.
We also recommend using Yarn, which is faster.
Continuous Integration: Jenkins
Jenkins is an open-source Continuous Integration tool that enables developers to automate their tests every time they commit a new build.
Pros: Open-source; easy to get started with; runs tests in parallel; integrates with many tools, including JMeter and Taurus.
Cons: Plain UI.
In addition to these tools, we also recommend using webpack. Webpack is a build tool for managing your modules and deciding how all of your assets are processed in your final code bundle.
Pros: Supports modules from different syntaxes, which enables running server modules on the client; compresses the code after the build, which saves resources.
Cons: Not user-friendly.
Next time we will go over our favorite stage: testing. So stay tuned!