The Ultimate DevOps Tools Ecosystem Tutorial - Part 3: Developing
Welcome to part 3 of our “Ultimate DevOps Tools Ecosystem Tutorial.” In part 1, we introduced the DevOps work cycle. You can see the complete infographic here:
In part 2, we covered main tools from the “Plan” stage. This time, we will go over tools from the “Develop” stage. Part 4 is about the "Testing" stage, part 5 is about the "Release" stage and part 6 ia about the "Operate" 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. But 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.
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 tool, including JMeter and Taurus
Cons - Plain UI
CA BlazeMeter Team recommendations - webpack
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!