Selenium: The Basics

Selenium Tutorial: An Introduction to the Basic Features and Functions of Selenium

Angela Stringfellow Developer Tips, Tricks & Resources, Live Queue Leave a Comment

Selenium is a suite of browser automation tools for automating web browsers across a variety of platforms. It’s primarily used for automating web applications for testing purposes, although it’s capable of much more. It’s supported by most of the big-name browser vendors, most of which either have or are taking steps to make Selenium a native component of their browsers. Additionally, it’s the core technology used in a variety of other browser automation tools, APIs, and frameworks.

Selenium runs on many browsers and operating systems and can be controlled by a variety of programming languages and testing frameworks. It’s also often used to automate tedious web-based administration tasks.

The Two Primary Selenium Offerings

Selenium comes in two primary forms: the Selenium WebDriver, which enables developers to scale and distribute scripts across many different environments and create browser-based regression automation suites and tests, and the Selenium IDE, an integrated developer environment useful for creating quick bug reproduction scripts and for exploratory testing aided by automation. Selenium WebDriver is the successor to the now-deprecated Selenium Remote Control, and coupled with Selenium 1.0, comprises the current version, Selenium 2.0.

Most developers get started with Selenium IDE, which is helpful for gaining familiarity with Selenium commands. Using this IDE, developers can create simple tests rapidly – sometimes within mere seconds. However, Selenium’s developers don’t recommend using Selenium IDE for all testing automation purposes. They suggest building your scripts using Selenium 1.0 or Selenium 2.0 along with one of the supported programming languages. Since Selenium 2.0 is the version that will continue to be supported going forward, if you’re new to Selenium or building a test suite from scratch, you’ll want to opt for Selenium 2.0.

Setting Up Projects in Selenium 2.0 (a.k.a. Selenium WebDriver)

Selenium WebDriver aims to overcome the limitations of the previous Selenium Remote Control, offering better support for dynamic web pages where the elements on a page are subject to changing without the page itself being reloaded. Because it’s supported by a variety of browsers, Selenium WebDriver uses each browser’s native support for automation. Thus, the features supported and the way direct calls are made depends on the browser that you’re using.

Additionally, the way that you’ll set up a Selenium WebDriver Project depends on both your programming language and your development environment. It’s possible to set up projects using several programming languages:

  • Java: These projects are most easily setup using Maven, which will download Java bindings and all dependencies and create the project for you.
  • C#: C# bindings are distributed as part of a set of signed dlls and dependency dlls. You can download the latest selenium-dotnet zip file here. Then, you’ll need to add a reference to each unzipped dll to your project in whatever IDE you’re using.
  • Python: Run pip install selenium from a command line to add Selenium to a Python environment.
  • Ruby: Run gem install selenium-webdriver from a command line to add Selenium to your Ruby environment.
  • Perl: Bindings for Perl are provided through a third party, such as this example which offers documentation on getting started.
  • PHP: PHP bindings are also available through third parties, including  By Chibimagic, By Lukasz Kolczynski, and By the Facebook.
  • JavaScript: The Selenium Project provides JavaScript bindings on npm. Install them by running npm install selenium-webdriver.

Once you’ve set up your project, Selenium WebDriver functions just like a normal library. It’s self-contained and typically doesn’t require you to start additional processes or run any installers before using it. There are a few exceptions, however, with additional setup steps required for:

Creating and Editing Test Cases Using Selenium IDE

The Selenium IDE is the tool that you’ll use to develop your test cases. It’s a Firefox plugin that’s intuitive to use, containing a time-saving context menu and Selenium command options that make the process of learning Selenium script syntax simple.

Once you’ve installed Selenium IDE in Firefox, it’s available in the Firefox Tools menu. Selecting it will open a new, empty script-editing window as well as a menu for loading or creating test cases. From there, you can use one of three methods to build test cases (often, you’ll need to use all three):

  1. Recording test cases: This records a test case based on interactions with a website. The record button is on by default when Selenium IDE is opened, but you can turn this off in the Options menu. During recording, Selenium automatically inserts commands based on your actions, such as clicking a link (the click or clickAndWait command), entering values (the type command), selecting options from a drop-down menu (the select command), or clicking check boxes or radio buttons (the click command).
  2. Adding verifications and asserts: This process enables your test to check the properties of a web page using the assert and verify To use it, right-click anywhere on the page in the browser displaying your test application and choose from the assert and verify options in the context menu. More commands are added to this menu as you continue to use Selenium IDE, which attempts to predict what command and parameters you’ll need for an UI element on a web page. Pure simplicity!
  3. Editing: You’ll also likely encounter the need to edit test cases and manually insert or edit commands and comments. In table view, simply select the point in your test case where you want to insert a command, right-click, and select insert command. Selenium IDE adds a blank line ahead of your selected line where you can use the command editing text fields to enter a new command and its accompanying parameters. In source view, the process is similar: select the point where you want to enter the new command, left-click between the commands in the test pane where you want to enter it, and enter HTML code to create a three-column row with the command, the first parameter (if required), second parameter (if required to locate an element), and third parameter (if required to have a value). You’re also able to enter comments throughout your test cases which are ignored when the test case is run.

Running Test Cases in Selenium IDE

Running test cases in Selenium IDE is just as simple as setting them up. There are many options for running a test case including:

  • Running a test case: Simply click the “Run” button to begin running the currently displayed test case.
  • Running a test suite: Click the “Run All” button to run all test cases in the test suite currently loaded.
  • Stop and start: Use the “Pause” button to stop a test case currently running.
  • Stop in the middle: This option enables you to set a specific breakpoint that stops a running test at a particular command. Setting a breakpoint is easy; just select a command, right-click, and then choose “Toggle Breakpoint” from the context menu.
  • Start from the middle: Similar to stopping a test at a certain command, you can also set a test to begin running from a specific command. The process for setting this point is the same, but instead of choosing “Toggle Breakpoint,” you’ll select “Set/Clear Start Point” from the context menu.
  • Running a single command: Double-click on any command to run it by itself, a useful tool for testing a command while you’re constructing it.

With Selenium IDE, you can also use a base URL to run test cases in different domains by specifying a relative URL instead of an absolute URL as the argument to open a test case.

To define a test suite, a collection of test cases that you want to run as a continuous batch job, you can use a simple HTML file to define your list of tests. Each row in your HTML file should define the file system path to the tests you want to include in the suite.

Once you’ve mastered the basics of Selenium, there are tons of ways you can put these tools to use to improve your development and testing processes. With many advanced features and functionality, yet being quite simple for beginners to begin using and master, Selenium is a valuable suite of tools for novices and experienced developers alike. The Selenium Wiki on GitHub is a useful source for learning about many advanced capabilities this tool offers.

How to Use Azure DevTest Labs for Test Environments and Dev Machines

Barry Luijbregts Developer Tips, Tricks & Resources, Insights for Dev Managers, Live Queue Leave a Comment

DevTest Labs is one the best and probably least used features on Azure. It is similar to creating virtual machines on Azure but provides some specific features and advantages we will review.

Here are the following topics we are going to cover:

  • What is Azure DevTest Labs?
  • Test Environments
  • Dev Machines in the Cloud

What is Azure DevTest Labs?

Azure DevTest Labs is a service that Microsoft Azure provides. This service provides functionality for managing environments that contain Azure Virtual Machines. DevTest Labs does not cost any more than the cost of the virtual machines that you are using.

Azure DevTest Labs makes it easy to provide Virtual Machine Images that you can reuse within your team for development and testing.

It also enables you to manage costs by setting things like:

  • Maximum number of VMs per lab and per user
  • Allowed VM sizes
  • VM auto-startup and auto-shutdown times

Auto-startup and shutdown are really key features. Compared to just using virtual machines, the auto-shutdown helps you save a lot of money.

And it has loads of features that help you to quickly provision and de-provision your environment for development and test.

Here are some definitions that are used in the Azure DevTest service:

  • Base Images
    • VMs are based on images, that can come from the Azure Marketplace, or that you upload yourself (as VHD)
    • Windows Server – Quickly create test machines for 2008R2, 2012, or 2016
    • Windows with Visual Studio – for development
    • Databases – Images with SQL Server or Oracle
    • Linux – Ubuntu, CentOS, Redhat and others
    • Microsoft Products – Sharepoint, Dynamics, Biztalk
  • Artifacts
    • VMs can contain artifacts. These can be things that need to be installed, but also things that need to happen
    • When you create a VM, you can indicate that you want to add artifacts, like install Git and Slack, or create a website shortcut or download a file
    • Artifacts are stored as scripts in a Git repository. Per default, they come from the Public Repo from Microsoft.
    • You can add a Git repo as a source for artifacts and create your own, custom artifacts. You can use this to do things like automatically download the latest version of source code onto the VM
  • Formulas
    • When you create a VM, you choose the properties of the VM like the base image, the name, the size (pricing tier), the disk type, etc.. In Azure DevTest Labs, you can create formulas that allow you to create a VM quickly. A formula provides all of the properties pre-filled so that you can create a VM with just a few clicks
  • Policies
    • Azure DevTest labs enable you to set policies for the lab to manage costs and minimize waste. You can set things like: the number of VMs that each person can use, the allowed VM sizes, auto-shutdown and -startup times for VMs and more

Artifacts are Awesome!

Artifacts can be added to VMs and can help you a lot. Artifacts are customizable elements that can be used to deploy your latest bits or your dev tools onto a VM. They can be things that need to be installed or things that need to happen. Per default, you can use the artifacts from Microsoft’s Public GitHub repository.

You can also create your own, custom artifacts. You do this by creating a JSON file in a certain format and have that point to a task (PowerShell, or other executable) that performs the action that you want. You need to store the JSON file in a Git repository that you attach to the DevTest Lab.

Why are artifacts so useful? Because they enable you to create a VM that is perfectly configured, without the need to manually install things and perform actions like getting the latest source code. You can immediately start developing when you turn on the VM.

You can also use chocolatey to script installing virtually anything!

DevTest Labs is All About Self-Service

Setting up a development and test environment can take lots of time. You’re restricted by the capabilities of IT operations and – as developers and testers – you’re not in control of the machines.

What you really want is self-service development and test environments. And you can: by using Azure DevTest Labs!

The main reason for a developer to use DevTest labs is that it provides self-service. You can create the VMs that you need, provision and de-provision them and have everything ready to develop and perform tests on.

You can do all of this yourself. No more waiting on IT operations. A well-configured Azure DevTest lab has policies set up by the Lab Manager (maybe somebody from IT operations) and enables developers and testers to set up an environment in a very short time without worrying about costs or security.

This looks like a shortcut to work around IT operations. But it should be a new way of working for both IT operations and developers and testers.

Using Azure DevTest Labs for Test Environments

DevTest Labs is perfect for test servers. The ability to set them up with auto-shutdown helps ensure that the costs don’t get out of control. You don’t have to pay much for servers when they are off so you can turn them on, use them for a while, and shut them right back off.

Stackify takes advantage of DevTest Labs for testing their APM server monitoring agents. They can quickly spin them up, install the latest agent and run some load testing. Knowing that auto-shutdown will turn them off relieves a lot of headaches on the cost side.

If you are using Azure for production, DevTest Labs can be very useful for various sorts of test servers, build servers, or other utilities. Having the VMs close to the rest of your Azure resources is ideal.

To aid with continuous delivery and automate things as much as possible, you can integrate Azure DevTest Labs in your favorite Build / Release tool.

For instance, in Visual Studio Team Services, you can use the DevTest Labs tasks in builds and releases.

Using these, you can easily create a custom VM for testing, containing your latest build, run some tests on it and delete the VM.

Provisioning VMs is pretty fast – not super fast. In my experience, it usually takes between 5 and 10 minutes before a VM is properly started. Keep that in mind when you create an automated test process.

Using Azure DevTest Labs for Dev Machines in the Cloud

Developing software is hard. The process is difficult and there are lots of things that you need to keep in mind. Some of those things are things that you’d rather not deal with, like:

  • Making sure that every developer on the team has the same essential libraries and applications on their machine so that they can just work and everything works the same for everyone
  • Providing a fresh dev machine to new developers, so that he can hit the ground running
  • Making sure that everyone can work from everywhere
  • Provisioning development and test environments that have all the right configuration to run the application

I’ve often seen companies buy loads of very expensive development laptops and install images on them with Windows, Visual Studio and so on. This is often a very expensive solution and makes developers dependent on operations.

Example Pricing

A dual core VM on Azure with 4GB of RAM costs about $100 a month on Azure if you used it 24/7. $1,200 a year for a virtual desktop sounds expensive. But don’t forget, you won’t be using it 24/7 and DevTest Labs can automatically start up and shut down your VM to ensure that you don’t waste any money.

There are 168 hours in a week. If you used your VM for 50 hours a week for work, that is less than $400 a year. You could even have multiples and since you probably only use one at a time, the cost doesn’t go up very much. You only pay the storage costs when they are turned off.

Template Your Dev Tools

Often, you’d need a particular piece of software that’s not included in the image. Usually, developers are local admins on the machines and can install that themselves, but not everybody does, and not everybody installs the exact same version. That can cause trouble, so the right thing to do is to get the application embedded in the image. Often this takes time as it needs to go on the backlog of the IT operations organization.

Disposable Dev Machines in the Cloud

Using Azure DevTest Labs, you can easily create a range of VMs that you use just for software development. To me, this a very attractive idea: you can do whatever you want with the VM and just retire it when it gets ‘dirty’ (you know: when you messed around with it too much). And voila: you can have a fresh, new machine in 10 minutes or so.

VMs in the cloud can be very fast – you don’t have to worry about having a slow machine. You need to find the right VM size for you, that is fast enough and has all the bits that you need. This will probably save you costs over using dedicated, fast and expensive dev machines. The VMs can be shut down at the end of the day, thereby stopping the VM from costing money (almost completely). You can’t save costs like that with actual hardware that you bought.

Moreover: when a new dev starts, you just spin up a new VM from a formula and 10 minutes later he can get cracking!

Conclusion

Azure DevTest Lab is very useful for developers and testers. IT operations can use it to enable a self-service environment where developers and testers can create their own environment quickly, with minimal restrictions, whilst being cost-effective. It can even be used to automate test processes.

This removes a lot of friction in the overall software development process. Look into it!

Let us know what you think in the comments!

The 44 Best Chrome Extensions for Developers

The Best Chrome Extensions for Developers: 40+ Tools for Programmers

Angela Stringfellow Developer Tips, Tricks & Resources Leave a Comment

Google Chrome is the most-used browser, offering a set of Chrome DevTools with built-in web authoring and debugging tools designed to make life easier for developers. But that’s not all: Chrome’s capabilities can be vastly expanded with thousands of add-ons and extensions that make it possible to perform a variety of tricks, test websites and apps in development, experiment with other fonts and layouts, and generally be a more productive developer. We’ve put together this list of 45 of the most helpful, user-friendly and feature-rich Chrome extensions — designed, of course, with the challenging tasks of developers in mind.

All current ratings listed are accurate as of the most recent update of this post in March 2017. Also, bear in mind that the add-on user reviews are taken directly from Chrome extension pages, so please excuse typos and grammatical errors.

Pre-development Extensions

Research your competition and form a plan of attack with these great extensions.

Page Ruler

Page Ruler

Current Rating: 4.5/5 stars

Page Ruler allows you to render a ruler on any web page, providing you with the width, height, and position (top, bottom, left, and right) of any page elements you want to measure. Easily resize or re-position the ruler by dragging its edges or using the arrow keys or manually update the ruler’s size and position from the toolbar for more precise adjustments. Page Ruler also features an “Element Mode,” which outlines elements on a page as you mouse over them. Plus, you can navigate through parents, children, and sibling elements of any measuring element. This Chrome extension has more than 600,000 users, with more than 1,450 contributing to its pretty stellar average rating. For more info, visit the developer’s main website at blarg.co.uk.

Add-on User Review:

by Mohamed Jebali – Modified Jun 9, 2016

Perfect!
Just missing a minor detail. Would be great if it’s preserved on page reload. Sometimes, you make a small change, reload and have to re-click the icon on the toolbar 🙂

Dimensions

Dimensions

Current Rating: 4/5 stars

Dimensions is another handy Chrome extension especially useful for designers who need to measure screen dimensions and other elements on a web page. Measure between elements such as images, input fields, buttons, videos, .gifs, text, and icons — essentially, anything you can see in your browser, mockups, area boundaries, and more with Dimensions. This extension is Open Source, hosted on GitHub, and you can also check out the main website.

Add-On User Review: 

by Liquid Rider – Modified Nov 4, 2016

As a front end dev this is a must have tool. Incredible work. Clean, simple and reliable. Perfect for static designs to measure padding and margins.

Tape

best google chrome extensions for web and app developers

Current Rating: 4.5/5 stars

For pixel-perfect web development, Tape is a valuable Chrome add-on that lets you put down guides that snap to your page content and stay securely affixed even if an element moves on a scroll or resize. Easily measure the positions and sizes of any page element with Tape, which offers on-screen help, the ability to display user-defined row and column grids, and even a built-in magnifying glass for maximum precision.

Add-On User Review: 

by Curtis Schwoebel – Modified Jun 24, 2013

This is a wonderful plugin for web development. It is simple, easy to use, and accurate. A great tool for anything that has to deal with customer who need things to be pixel-perfect.

WhatFont

best google chrome extensions for web and app developers

Current Rating: 4/5 stars

When you need to identify the font used on a web page but don’t want to deal with Firebug or WebKit Inspector, WhatFont is the quickest and easiest way to do so. Just select the text you want to identify and hover over it with your mouse for instant identification. Check out the main website here.

Add-On User Review: 

by Rayna Kuzio – Modified Oct 30, 2016

I’ve compiled quite the list of freshly discovered font styles since I’ve began using this tool!

Here’s how simple it is:

See a font you like? Go ahead and click the ‘WhatFont’ button on your toolbar, hover over any text on the page with the font, and a small bubble pops up beside it displaying the font name. To toggle off, hit the ‘Exit WhatFont’ button that’s up near the top-right corner of your screen.

Font Playground

Font Playground

Current Rating: 4.5/5 stars

Another helpful font tool, Font Playground makes it possible to experiment with different fonts without actually making changes to your apps or websites. You get access to more than 1,000 free Google web fonts, allowing you to preview what they’d look like in just a few seconds.

Add-On User Review: 

by Tim Mackey – Modified Jul 31, 2015

Love the ability to search and favorite fonts. No lag either, unlike other chrome extensions like this!

ColorPick Eyedropper

best google chrome extensions for web and app developers

Current Rating: 4/5 stars

Color Picker is an eyedropper and color picker tool that allows you to quickly grab the color value for any location on a web page. It also features a zoomed, drag-able preview so you can hone in on the precise color you want to grab for pixel-perfect accuracy. This extension attempts to use the lossless PNG quality to detect colors, although it’s possible to disable this feature to use JPEG quality if needed. Pro licenses are available for business users as well. Check out the developer’s main website for more details on features and functionality.

Add-On User Review: 

by Exfinity Models – Modified Dec 10, 2016

Works super well!
Would definitely recommend it! I love the interface, simple but organized.It does what it should do, and it does it amazing!Well done!

Eye Dropper

best google chrome extensions for web and app developers

Current Rating: 4/5 stars

An Open Source extension for easily picking colors from web pages, color picker, and your personal color history, Eye Dropper is a free and convenient extension for Google Chrome and Chromium. Every picked color is stored in your personal history so you can quickly locate any color that you’ve previously used. Check out the main website for more information on this handy tool.

Add-On User Review: 

by Ant Svensk – Modified Oct 17, 2016

Quick and Painless. Easy to use. The palette feature is really useful when building sites on a CMS platform.

TinEye Reverse Image Search

best google chrome extensions for web and app developers

Current Rating: 4.5/5 stars

The first reverse image search engine on the web to rely on image identification technology (as opposed to keywords, metadata or watermarks), TinEye makes it simple to quickly find the original source of almost any image. It creates a unique fingerprint for every image searched, then compares it to every other image in the database to find exact matches (not similar matches), including exact matches that have been edited, cropped, or resized. Tens of millions of new images are added every week. Visit the TinEye blog for the latest updates and information.

Add-On User Review: 

by Tim mi – Modified Dec 11, 2016

I have no criticism on this app, except that it’s indexing is far from complete. It does, however, do a better job than Search Image by Google for the ones that are indexed. Where Google gets it wrong, this is spot on, every time, without exception.
Nice features are that you can sort by image size. It lets you find source images from memes, for example, and in a larger size. It lets you find images of fake facebook profiles’ pictures to report fake spammer profiles and fake posers. (often celebrity pictures used on fake profiles, and FB has a feature where, if you find who it is, you can type it in so they can cross-reference it). This is one area where google fails or has trouble: properly finding similar images of people.

Search by Image

best google chrome extensions for web and app developers

Current Rating: 4.5/5 stars

Search by Image is Google’s own reverse image search add-on, enabling you to initiate a Google search using any image on the web. Simply right-click on any image on the web and select “Search Google with this image.” Or, if it’s an extension you’ll use frequently, you can add a clickable Search by Image icon that appears when you point to an image for easier access. Learn more about Google Search by Image here.

Add-On User Review: 

by Tim mi – Modified Dec 25, 2016

It is definitely perfectible. I need to use TinyEye Image Search in conjunction with this. The algorythims are different: google seems to use patterns and colors, and often comes up with completely unrelated stuff, whereas TinyEye will find exactly the same image in all it’s iterations, even if a portion of it was changed, cropped, larger versions/originals, and so on. If TinyEye was anywhere near the web coverage/indexing that google is at, I wouldn’t use google at all. But both tools complete each other, and when you have both, you can find anything.

BuiltWith Technology Profiler

best google chrome extensions for web and app developers

Current Rating: 4.5/5 stars

Find out how a website is built with the click of a button thanks to BuiltWith Technology Profiler, a handy website profiler tool that couldn’t be simpler to use. After you click the BuiltWith icon, this extension returns with all the technologies it can find on any web page. Visit the BuiltWith website for more information, where you can also plug in an URL to discover the technologies used on any site.

Add-On User Review: 

by Alex A. – Modified Oct 28, 2016

Amazing summary. Goes all the way from the more complicated technologies used all the way down to the oldest ones. Everything gets a link and a brief description too (which you can disable in options). I’m sticking with this one.

Wappalyzer

best google chrome extensions for web and app developers

Current Rating: 5/5 stars

A cross-platform utility for uncovering the technology used to build websites and apps, Wappalyzer is similar to BuiltWith in functionality and earns stellar reviews from users. This extension detects content management systems (CMS), e-commerce platforms, web frameworks, server software, analytics tools, and more. Check out the full list of applications Wappalyzer detects here.

Add-On User Review: 

by Mel Pullen – Modified Jan 29, 2017

great tool, more important that it creates a community around web stacks.

Development Extensions

Dig in and start developing with these extensions.

Firebug Lite

best google chrome extensions for web and app developers

Current Rating: 4/5 stars

Firebug Lite for Google Chrome is supported by Firebug Working Group and allows you to inspect Source Code, HTML, and CSS right in your browser. It’s not a substitute for Firebug or Chrome Developer Tools; instead, it’s designed to be used in conjunction with these tools, offering functionality such as rich visual representations of HTML elements, DOM elements, and Box model shading, as well as the ability to inspect HTML elements with your mouse, live editing CSS properties, and more.

Add-On User Review: 

by Dom Ko – Modified Apr 13, 2016

I like this app on Chrome to view my CSS. I just wish there was an option to view the CSS in its original indentation. Does anyone know of a way to do this? (Never mind, Chrome lets me Rite-click -> Inspect -> Source tab, find my CSS file, and I can view my color coded CSS there.) Anyway, I still like.

Web Developer

best google chrome extensions for web and app developers

Current Rating: 4.5/5 stars

A toolbar for your browser with a full suite of just about everything you need to look into the elements of a webpage, Web Developer is a must for any developer or programmer. Web Developer is also available for Firefox and Opera, and it will run on any platform these browsers support including Windows, Mac OS, and Linux. A full history of release notes is available here.

Add-On User Review:

by Murray Chapman – Modified Feb 12, 2017

This is a must have for web developers. I have no idea how I ever got along without it. My only gripe is that unlike the Firefox web developer extension, every time I refresh, I lose all of my tweaks such as outline block elements. Firefox version had a setting to make the changes stick and reapply after refreshing which I do a lot when developing. It’s a downer but the plugin is still well worth using. (Ignore the one star ratings below).

Page Edit

PageEdit

Current Rating: 3/5 stars

Transform your browser into a WYSIWYG HTML editor with Page Edit, which uses CKEditor as a WYSIWYG editor and CodeMirror as a source editor. It offers syntax color highlighting in source editor mode, a basic embedded save dialog, and the ability to edit files stored on HDD. The source code is available on GitHub. Check out this YouTube video illustrating how it works.

Add-On User Review: 

by James Tuson – Modified May 19, 2015

AMAZING!!! Simply the best HTML editor I’ve used. So easy! The code it generates is so clean! I love this extension – made editing my basic 1 page intranet site super easy.
Worked for me in both Windows 8.1 and Server 2008 R2 with SP1

HTML Instant

HTML Instant

Current Rating: 3.5/5 stars

With HTML Instant, you can edit HTML code in real-time. Simply enter your JavaScript, HTML, and CSS code in the left pane and see your changes render instantly in the right pane. It’s a useful tool for on-the-fly editing as well as for coding instruction. See how it works in this YouTube video or check out the main website.

Add-On User Review: 

by Cal Kustomz – Modified Nov 28, 2012

Its OK, needs more flexibility. Its a good extension, just need to add more doable working frames so users can edit html and copy good codes from it.

Pendule

best google chrome extensions for web and app developers

Current Rating: 4.5/5 stars

Pendule extends Chrome’s built-in developer tools with even more information, and it’s loaded with features such as viewing/reloading CSS, disabling styles, converting select inputs to text inputs, showing hidden elements, viewing and editing JavaScript, validating HTML and CSS, and a whole lot more.

Add-On User Review: 

by Justin Webb – Modified Feb 1, 2012

Pendule is great. Its UI is pleasant and intuitive and it has all the key features I use a browser for during web design.

My only complaint is “Miscellaneous” is a confusing, non-specific grouping; it takes a little getting used to.

Pendule claims credit as my only web design browser extension. It does everything!

Code Cola

best google chrome extensions for web and app developers

Current Rating: 4.5/5 stars

Visually edit a page’s CSS with Code Cola. The source code is available on GitHub. While the last commit was in 2013, reviews as recent as 2015 indicate that this is still a solid tool and one of the best for visually editing CSS.

Add-On User Review: 

by Justin Hoffman – Modified Feb 18, 2015

I just spent 30 minutes testing every CSS editor for Chrome.

This was the easiest to figure out, and it works exactly as i wanted it to. Nice UI.

PerfectPixel

best google chrome extensions for web and app developers

Current Rating: 4.5/5 stars

PerfectPixel lets you overlay a semi-transparent image on a webpage to perform a pixel-to-pixel comparison. Useful for both developers and markup designers, this extension makes it possible to develop sites with pixel-by-pixel precision. Check out the main site for this actively updated extension here.

Add-On User Review: 

by Елена Семенова – Modified Feb 20, 2017

It’s a great useful plugin for markup!

I improve my markup skills because I can do my work with high accuracy. I compared markup and design by Screenshots and Photoshop before. But 4 years ago I had known about PerfectPixel plugin and its saved me a lot of time. By that plugin, I added a new design and see differences instantly!

I definitely recommended using PerfectPixel the plugin to markup design.

Add-Ons to Erase Your Footprint

Wipe out your history and erase your footprint with these easy-to-use Chrome extensions for clearing cache and cookies, a useful step if you want to see how your site really looks and works for new visitors.

Forget Me

Forget Me

 

Current Rating: 3.5/5 stars

Delete everything about a website, including cookies, history, local and session storage, and every tidbit of information with Forget Me. All it takes is a simple click of the icon to permanently erase any indication that you’ve ever visited a website.

Add-On User Review: 

by Bryan Stark – Modified Mar 5, 2017

Despite what other users say, it does delete history and cookies for the specific site you are on at the time that you double-click the icon. It doesn’t delete all history on other sites, it only works on the site you have in your address bar at the time.

Clear Cache

Clear Cache

Current Rating: 4.5/5 stars

Clear your cache and browsing data with a single click thanks to Clear Cache, all without dealing with frustrating confirmation dialogs, pop-ups, and other annoyances. You can even customize what and how much of your data you want to clear by specifying your preferences on the options page, including App Cache, Cache, Cookies, Downloads, File Systems, Form Data, History, Indexed DB, Local Storage, Plugin Data, Passwords and WebSQL. Even better, you can delete cookies globally, just for specific domains, or for everything excluding specific domains. Check out the developer’s website here.

Add-On User Review: 

by Ynnek Thennek – Modified Mar 11, 2016

This works just like it says and it does. It deletes every thing it’s supposed to with one click. I used click and clean before and other privacy extensions, but they do not get rid of everything. I use them and still have chache and some cookies left, but with this, almost everything is gone. The only thing is, it doesn’t get rid of all locally stored data or flash cookies(LSO’s),but I haven’t come across any programs that do on chrome. I just delete them manually. If you want to see what I’m talking about, go to >settings >advanced >privacy >content settings >all cookies and site data, and look at what’s left and click >remove all if you want to get rid of everything else.

Click&Clean

best google chrome extensions for web and app developers

Current Rating: 5/5 stars

It takes a lot to maintain a perfect 5-star rating in over 45,000 reviews, but Click&Clean achieves this feat. It deletes typed URLs, cache and cookies, and your download and browsing history with a single click. Click&Clean will even delete client-side Web SQL Databases, remove Flash Cookies (LSOs), and more. According to the main website, it’s the #1 private data cleaner for the Google Chrome browser.

Add-On User Review: 

by Marcos Valle – Modified Mar 1, 2017

Unobtrusive piece of software which does exactly what it says it will do and does it efficiently. I’m very happy about having added this to Chrome.

Development Testing Extensions

Your app or site is ready…or is it? Give these extensions a shot to test everything before you publish.

User-Agent Switcher

best google chrome extensions for web and app developers

Current Rating: 4/5 stars

Trick the web into thinking you’re on a different browser or device to see how your app or site performs with User-Agent Switcher, which enables you to spoof Internet Explorer to visit IE-only sites, pretend you’re on your iPhone to experience the mobile version of your site, see how a site renders when it believes you to be Google’s search spider, and more. With a slew of user agents to choose from, User-Agent Switcher allows you to spoof practically any browser or device.

Add-On User Review: 

by Michael Miller – Modified May 7, 2014

Works on my CHROMEBOOK C720.

Of the three options available in the Chrome Web Store, this is the ONLY one that lets me use my work’s Outlook Web App in full-fledged glory instead of light mode.

To make it perfect, it needs (like many others have stated):

– Per tab effects, instead of browser-wide.
– Needs a domain-list that we can add sites for auto-applying certain agents upon browsing there.

iMacros for Chrome

iMacros for Chrome

Current Rating: 4/5 stars

iMacros for Chrome is an extension that streamlines the testing process by allowing you to record and save your actions — saving you the time you’d otherwise spend repeating the same process over and over again. Designed to automate the most repetitious tasks on the web, iMacros for Chrome is sure to save you hours of precious time. Get more info at iMacros.net.

Add-On User Review: 

by Andrew Monteith – Modified Nov 23, 2016

There are a few glitches which occasionally prevent it from recording macros properly. Easily fixed by just closing the dialog and re-opening or refreshing the page.

Not a replacement for proper end-to-end testing, but a HUGE time-saver if you’re deving a component that only shows up halfway through a form for example.

Resolution Test

best google chrome extensions for web and app developers

Current Rating: 4/5 stars

Test how your app or site displays on a wide variety of screen resolutions with Resolution Test. Visit the changelog for a full history of this handy extension, which changes the size of the browser window to enable developers to preview websites in a variety of different screen resolutions. The most common resolutions are offered in a helpful list you can easily choose from, but you can also customize it to preview your site in any resolution.

Add-On User Review: 

by Katy LaVallee – Modified Oct 5, 2013

Great for testing responsive sites. Especially like being able to add my own sized to test Bootstrap break points.

IE Tab

IE Tab extension

Current Rating: 4.5/5 stars

Display web pages by using IE from within Chrome with the IE Tab extension. It works only in Windows, but this helpful extension enables you to use Java, ActiveX, Sharepoint, Silverlight, and more to test your website with different versions of IE without actually leaving Chrome.

Add-On User Review: 

by Doug Borg – Modified Feb 19, 2017

Until now, I have declined to make Chrome my default browser because of Chrome’s inferior print preview and print scaling control compared to IE11. Such control is vital to the way I work on a specific company website.

IE Tab with AutoURL solves the problem!

IE Tab Multi

best google chrome extensions for web and app developers

Current Rating: 4.5/5 stars

The scourge of every developer’s existence. Check out how your app or site displays in Internet Explorer with IE Tab Multi. It’s the tool producing the most similar results to original IE behavior, also enabling you to run ActiveX controls. It only supports Windows, and in Windows 8 it only supports desktop mode. Check out the main website here.

Add-On User Review: 

by Dennis Balla – Modified May 5, 2015

I love this extension for those sites that just don’t play nice outside of IE.

Newest Chrome broke it, until I read about manually re-enabling NPAPI support. Now it works again!

visit:
chrome://flags/#enable-npapi

Validity

best google chrome extensions for web and app developers

Current Rating: 4/5 stars

Quickly validate your code by clicking an icon in your browser’s address bar with the Validity extension for Chrome. Simply click on the icon in the toolbar to validate the current HTML document without leaving the page. The source code for this Open Source extension is available on GitHub.

Add-On User Review: 

by Jirka Ludvar – Modified Oct 12, 2016

The only validation plugin that works for me for webpages that are not online yet / on a proxy. Works like a charm, thanks.

YSlow

YSlow

Current Rating: 4/5 stars

YSlow is a page performance tool that gives you insights on how to make your pages load faster by analyzing web pages and making suggestions based on a set of rules for high-performance web pages. This extension also summarizes page components and displays page statistics, making it a valuable tool for developers. The complete changelog and source code are available on GitHub, and you can get more details on the YSlow website.

Add-On User Review: 

by Jason Chen – Modified Feb 2, 2012

I am on a 5 year old laptop. I often got stuck with yahoo pages for minutes with high CPU utilization. This plug-in improves it quite a bit. I am not sure though what it does behind the scene and if there is any feature I may lose.

Chrome Daltonize!

best google chrome extensions for web and app developers

Current Rating: 4/5 stars

Test your apps and sites for accessibility from the colorblind with Chrome Daltonize! This extension uses Daltonization, which is a technique for making details visible to color-blind users that they wouldn’t otherwise be able to detect. With two different filters, you can visualize how elements appear to people who are color blind or Daltonize elements to make difficult-to-detect details visible. Check out this site for more details about Daltonization and this helpful extension.

Add-On User Review: 

by Dylan Martin – Modified Sep 19, 2013

This extension is truly revolutionary for color blind people. I am a Protonope (type of red-green color blind), and I am seeing images with more discernment than I ever have in the past.

This program should be released for the display as a whole, not just for Chrome! It should extend to the entire Color Gamut calibration of the monitor! AMAZING!

Check My Links

best google chrome extensions for web and app developers

Current Rating: 4/5 stars

Are all the links on your site working? Check it out with this fast-acting extension. Check My Links is an easy-to-use add-on that crawls your site to check for broken links, developed for web designers, developers, and content editors. The source code for this tool is available on GitHub.

Add-On User Review: 

by Spcug Database – Modified Aug 28, 2016

I have just tested a page with twenty links in a few seconds and found no broken links.
Then I tested a ‘favourites’ page with over 850 links in just over a minute and found 40 dead links.
Impressive speed, Top app.

After the Deadline

best google chrome extensions for web and app developers

Current Rating: 4/5 stars

Sometimes you’re too busy worrying about coding and development to worry about spelling, style, and grammar. Let this extension help! After the Deadline uses AI to evaluate your spelling, style, and grammar with a simple click of the ABC icon in the lower-right corner of an editable area. Visit the main website for more info.

Add-On User Review: 

by Tony Neria – Modified Mar 29, 2016

I’ve used this extension for many years and it has been a great help to me. However, it makes google sheets unusable in Chromium. Ironically, Google Sheets works fine for me when I’m using the new MS Edge browser. Fix issues with Google Docs and Sheets and it will be great.

Websecurify

best google chrome extensions for web and app developers

Current Rating: 3/5 stars

Test your app’s security right in your browser with Websecurify, a powerful, cross-platform web security testing toolkit for developers. This extension is the Websecurify Suite Companion Browser Extension for Google Chrome, and it’s fast, efficient, and easy-to-use for evaluating the security of your websites and apps. Check out the main website here.

Add-On User Review: 

by Passlicasci Freenalesko – Modified Jul 21, 2014

Fantastic extension. It does what it says. Most of the tools are not free except Foundation but they are very good.

General Productivity Extensions for Developers

Stay efficient and on-task with these extensions.

Awesome Screenshot

Awesome Screenshot

Current Rating: 4.5/5 stars

Capture and annotate your screen to better communicate changes you recommend or want to be made with Awesome Screenshot, a fast and easy-to-use extension for quickly grabbing screenshots for anything you want to share or preserve. Grab the full screen or a partial screen, add notes and annotate, make comments, and blur personal or sensitive information before sharing. Check out the main website for this popular extension here, or watch this YouTube video for a demonstration of how it works.

Add-On User Review: 

by Ole Albert – Modified Mar 3, 2017

The app name is spot on: Awesome,
…haven’t found anything to criticize, it just works with all the nice features. Very useful for creating step by step user guides with picture directions.
A+

Clipular

Clipular

 

Current Rating: 4/5 stars

Clipular is another screen-capture extension for Chrome, offering the same easy capture as Awesome Screenshot along with the ability to auto-save your clips in Google Drive. It’s essentially a screen-capture tool plus bookmarking capabilities, making it a useful extension for developers who want to save documentation or gather inspiration from around the web for their next project. Check out the main Clipular website for more info.

Add-On User Review: 

by Tom Bonello – Modified Aug 10, 2015

This does exactly what I needed! Double-tap Alt, click+drag the screen area I want captured and then have a few options to share it, including download and backup to Google Drive.

Bukket

Bukket

Current Rating: 4.5/5 stars

Bukket is a super handy extension for Chrome that enables you to take screenshots as well as screen capture and record. If you need to create a quick tutorial or demonstrate a usability issue, Bukket is the add-on you’ll rely on. A simple, reliable visual bookmarking tool, Bukket makes it possible to capture and record animated GIFs right from your browser. Check out the main site for more details.

Add-On User Review: 

by Prithu Goswami – Modified Jan 3, 2017

Its perfect. But the gifs are a little choppy. The best feature itself is that it creates gifs on the run.

Marmoset

Marmoset

 

Current Rating: 5/5 stars

Marmoset makes it possible to create beautiful code snapshots in just seconds, outputting your code for wireframes and markups. Plus, you can add themes and other effects for using snapshots in your portfolio. It’s a simplistic, intuitive add-on that simply does what it says, and it earns a coveted 5-star rating from users for its reliable performance.

Add-On User Review: 

by Brynden Bielefeld – Modified Jul 19, 2016

A great tool, have been looking for something like this for a while now.

Giving 5 stars, although the lack of syntax highlighting for C almost brought me down to 4.

One thing I’d like to see in the future, is the ability to change the resolution of the output image, as well as the ability to move the code up/down in the image.

Web Timer

best google chrome extensions for web and app developers

Current Rating: 4.5/5 stars

See how you spend your time on the web and how you can improve your focus and efficiency with Web Timer, which tracks the tab you’re actively using and updates every three minutes to give you a clear picture of where you’re devoting (or wasting) the most time. Your data is displayed in an intuitive pie chart so you can easily see where your time is being spent.

Add-On User Review: 

by Joseph Hutchins – Modified Jan 25, 2017

I like it, however I’d like to be able to review my long term data better. For example it’d be nice to see how I spent my time for the past month, or the past year.

Lorem Ipsum Generator

best google chrome extensions for web and app developers

Current Rating: 4/5 stars

Create dummy text to place inside your sites or apps quickly and easily, avoiding the need to cut and paste the standard lorem ipsum placeholder text repeatedly as you work on mockups and wireframes. Lorem Ipsum Generator aims to keep this process simple and fast compared to similar extensions that serve the same purpose.

Add-On User Review: 

by Robyn McKeown – Modified Feb 25, 2013

Makes Lorem Ipsum quickly but sometimes needs refreshing in between uses

Linkclump

best google chrome extensions for web and app developers

Current Rating: 5/5 stars

Drag over multiple links to open them all at once in new tabs with Linkclump. Simply drag a selection box around a group of links with your mouse to instantly open them all in new tabs, open in a new window, save as bookmarks, or copy to your clipboard. The source code for this helpful extension is available on GitHub.

Add-On User Review: 

by Patrick PK – Modified Dec 16, 2016

This is the extension that gives Chrome the absolute Edge over any other browser out there.

I use this every day with every Google search I perform.

UPDATE:

I STILL LOVE THIS EXTENSION. IT IS THE ABSOLUTE BEST EXTENSION FOR CHROME.

It makes my research on any item so much more effective. THANK YOU!!!

AutoPagerize

best google chrome extensions for web and app developers

Current Rating: 4/5 stars

Load paginated pages in one page with AutoPagerize, a handy, straightforward little tool that makes web browsing more efficient.

Add-On User Review: 

by A Google User – Modified May 31, 2016

One simply cannot browse the web without this extension; it’s like going to the restroom without toilet paper.

Website Blocker

best google chrome extensions for web and app developers

Current Rating: 4/5 stars

Block your access to specific websites that you know will distract you from your work with Website Blocker. If you find yourself wasting time on sites like Facebook and Twitter, this extension will prevent you from accessing the sites that tend to suck your time so you can focus on the work that matters. The wiki for this tool and its source code can be found on GitHub.

Add-On User Review: 

by Dayle Gibson – Modified Feb 9, 2017

I mainly use it to block websites I find stupid and I’ve suffered no problems so far but it does need a FAQ, for example, what does the Disable of the time limit function box do? and a password system, also I suggest that it tells us how many websites are being blocked, also when you put the same website address twice in the list, it appears twice

all in all keep up the good work!!!

however it tends to block sites which aren’t on the block list if one of the websites you blocked is mentioned in it

Session Manager

best google chrome extensions for web and app developers

Current Rating: 3.5/5 stars

Save sessions to quickly view a huge number of tabs you may have open at a later date. With Session Manager, you can quickly and easily save your current browser state at any time, allowing you to instantly bring all your tabs back up again whenever you need them. It’s also helpful for grouping sites together with a similar purpose, such as a collection of your social media profiles, tabs related to certain projects, and the like.

Add-On User Review: 

by John Kennedy – Modified Mar 13, 2016

I have tried this one and the Session Manager by tkaz.ec. A blend between these two managers would be better. Both have good features and bad. What I like is I can simply save a session and bring up a new session. I like making different types of sessions like Job, Research, Shopping etc. The problem with this session manager is I cannot be in one session and add a tab to a different session. What I mean by this is I cannot be in the Research session and come across a good shopping site and add it to the Shopping session.

LastPass

best google chrome extensions for web and app developers

Current Rating: 4.5/5 stars

You have a ton of passwords to keep track of, so let LastPass do it for you securely. It’s practically impossible to remember dozens of passwords and login credentials for the many sites the average person needs to use, let alone a developer. Thanks to LastPass, you can remember just one single, secure password and let this extension handle the heavy-duty lifting. Check out the LastPass site for more information.

Add-On User Review: 

by Chris L – Modified Mar 5, 2017

been using this app for 6 years; can be annoying with the new 2 factor authentication at times when using public areas. But google does it too; Great time saver, must Pay for use in connection with your phone. NO ADS which is great. there was an issue with compromised passwords a while back but this has been fixed. as for other reviewers, they just don’t understand how it saves passwords, or deals with ‘root domains’ that have multiple logins. In the past the toolbar was crap and needed work but in the past two years they must have hired some new developers because it works great for me, I finally got my grandmother to use it!

Domain Checker

best google chrome extensions for web and app developers

Current Rating: 4/5 stars

View the availability of a domain right from your toolbar with Domain Checker. It supports a large number of domain extensions, allows you to quickly switch between registrars, and even makes it possible to “favorite” domains. More info at the developer’s site, SEO Heap.

Add-On User Review: 

by A Google User – Jul 23, 2011

When you favorite a domain, you will have the option of how often to periodically check the status of the domain. Options are Never (default), Automatically – it’ll detect when the expiry date is and check more often during the expiring period, Week – checks weekly etc.

Tab Resize

Tab Resize

Current Rating: 4/5 stars

Tab Resize makes working in a split screen easy by enabling you to resize the current tab and tabs to the right in separate windows, plus it offers multi-monitor support. Resize all your tabs and display them in organized layouts on your screen to simulate multi-monitor setups with this easy-to-use extension. For a demo of how it works in action, check out this YouTube video or visit the main website for more details.

Add-On User Review: 

by Tom Davidson – Modified Jan 28, 2016

Awesome, thoughtful design that doesn’t add any complex new UI (like with multiple web views under 1 tab.)

Took me a minute to understand that it populates the new windows with the tabs to the *right* of the current one. The demo should perhaps explain how you can reorder your tabs before resizing to get a particular effect.

SOAP vs REST primary differences

SOAP vs. REST: The Differences and Benefits Between the Two Widely-Used Web Service Communication Protocols

Angela Stringfellow Developer Tips, Tricks & Resources Leave a Comment

Defining SOAP and REST

SOAP (Simple Object Access Protocol) and REST (Representational State Transfer) are both web service communication protocols. SOAP was long the standard approach to web service interfaces, although it’s been dominated by REST in recent years, with REST now representing more than 70% of public APIs according to Stormpath.  Understand the primary differences between SOAP vs. REST  and how each can benefit your organization’s goals.

SOAP vs REST: Primary Differences

REST operates through a solitary, consistent interface to access named resources. It’s most commonly used when you’re exposing a public API over the Internet. SOAP, on the other hand, exposes components of application logic as services rather than data. Additionally, it operates through different interfaces. To put it simply, REST accesses data while SOAP performs operations through a more standardized set of messaging patterns. Still, in most cases, either REST or SOAP could be used to achieve the same outcome (and both are infinitely scalable), with some differences in how you’d configure it.

SOAP was originally created by Microsoft, and it’s been around a lot longer than REST. This gives it the advantage of being an established, legacy protocol. But REST has been around for a good time now as well. Plus, it entered the scene as a way to access web services in a much simpler way than possible with SOAP by using HTTP.

Benefits of REST Over SOAP

In addition to using HTTP for simplicity, REST offers a number of other benefits over SOAP:

  • REST allows a greater variety of data formats, whereas SOAP only allows XML.
  • Coupled with JSON (which typically works better with data and offers faster parsing), REST is generally considered easier to work with.
  • Thanks to JSON, REST offers better support for browser clients.
  • REST provides superior performance, particularly through caching for information that’s not altered and not dynamic.
  • It is the protocol used most often for major services such as Yahoo, Ebay, Amazon, and even Google.
  • REST is generally faster and uses less bandwidth. It’s also easier to integrate with existing websites with no need to refactor site infrastructure. This enables developers to work faster rather than spend time rewriting a site from scratch. Instead, they can simply add additional functionality.

Still, SOAP remains the preferred protocol for certain use cases. The general consensus among experts these days is that REST is the typically preferred protocol unless there’s a compelling reason to use SOAP (and there are some cases in which SOAP is preferred).

Benefits of SOAP Over REST

Because you can achieve most outcomes using either protocol, it’s sometimes a matter of personal preference. However, there are some use cases that SOAP tends to be better-suited for. For instance, if you need more robust security, SOAP’s support for WS-Security can come in handy. It offers some additional assurances for data privacy and integrity. It also provides support for identity verification through intermediaries rather than just point-to-point, as provided by SSL (which is supported by both SOAP and REST).

Another advantage of SOAP is that it offers built-in retry logic to compensate for failed communications. REST, on the other hand, doesn’t have a built-in messaging system. If a communication fails, the client has to deal with it by retrying. There’s also no standard set of rules for REST. This means that both parties (the service and the consumer) need to understand both content and context.

Other benefits of SOAP include:

  • SOAP’s standard HTTP protocol makes it easier for it to operate across firewalls and proxies without modifications to the SOAP protocol itself. But, because it uses the complex XML format, it tends to be slower compared to middleware such as ICE and COBRA.
  • Additionally, while it’s rarely needed, some use cases require greater transactional reliability than what can be achieved with HTTP (which limits REST in this capacity). If you need ACID-compliant transactions, SOAP is the way to go.
  • In some cases, designing SOAP services can actually be less complex compared to REST. For web services that support complex operations, requiring content and context to be maintained, designing a SOAP service requires less coding in the application layer for transactions, security, trust, and other elements.
  • SOAP is highly extensible through other protocols and technologies. In addition to WS-Security, SOAP supports WS-Addressing, WS-Coordination, WS-ReliableMessaging, and a host of other web services standards, a full list of which you can find on W3C.

At the end of the day, the best protocol is the one that makes the most sense for the organization, the types of clients that you need to support, and what you need in terms of flexibility. Most new APIs are built using REST and JSON, simply because it typically consumes less bandwidth and is easier to understand both for developers implementing initial APIs as well as other developers who may write other services against it. Because it’s more easily consumed by most of today’s web browsers, REST+JSON has become the defacto technology for the majority of public APIs. However, SOAP remains a valuable protocol in some circumstances. Plus, you don’t have to look far to find die-hard fans advocating for SOAP for certain use cases.

Top Development Operations Tools

Top DevOps Tools: 50 Reliable, Secure, and Proven Tools for All Your DevOps Needs

Angela Stringfellow Developer Tips, Tricks & Resources Leave a Comment

Even though DevOps has been around for a few years, it still is a fuzzy area for some organizations. A mashup of development and operations teams, DevOps centers on collaboration and a culture that seamlessly integrates developers and IT operations teams working to put out the best new apps. Because DevOps encompasses two teams working from ideation through product release, DevOps tools fall into several categories including those for logging, monitoring, automation, security, and configuration management.

Due to the intensive work DevOps engineers and their teams complete on a daily basis, they don’t have time to search for tools to help them complete their work more efficiently and productively. That’s why we have searched for the top DevOps tools and created this list of the most reliable, secure, relevant, and useful tools you can rely on. Many of the tools to make the cut have been around for some time and have proven themselves invaluable to the DevOps process, while others are emerging tools created by developers to help fellow developers work smarter and release even better products. Please note, we have listed our top 50 DevOps tools here, in no particular order.

1. Jenkins
@jenkinsci

Jenkins

The leading open source automation server, Jenkins is a DevOps tool for monitoring executions of repeated jobs. This extensible automation engine enables DevOps teams to integrate project changes more easily and access outputs for quickly identifying problems.

Key Features:

  • Self-contained Java-based program ready to run out of the box with Windows, Mac OS X, and other Unix-like operating systems
  • Continuous integration and continuous delivery
  • Easily set up and configured via a web interface
  • Hundreds of plugins in the Update Center

Cost: FREE

2. SolarWinds Log & Event Manager
@solarwinds

SolarWinds Log and Event Manager

SolarWinds offers IT management software and monitoring tools. DevOps teams turn to their Log & Event Manager software when they need a solution for security, compliance, and troubleshooting.

Key Features:

  • Normalize logs to quickly identify security incidents and simplify troubleshooting
  • Out-Of-The-Box rules and reports for easily meeting industry compliance requirements
  • Node-based licensing
  • Real-time event correlation
  • Real-time remediation
  • File integrity monitoring
  • Licenses for 30 nodes to 2,500 nodes

Cost: FREE trial available for 30 days

  • LEM30: $4,495 – Up to 30 nodes
  • LEM50: $7,485 – Up to 50 nodes
  • LEM100: $12,995 – Up to 100 nodes

3. Vagrant
@HashiCorp

Vagrant

HashiCorp gives organizations the ability to provision, secure, and run any infrastructure for any application with their Suite, which includes Vagrant, Packer, Terraform, Vault, Nomad, and Consul. Vagrant, specifically, helps DevOps teams create and configure lightweight, reproducible, and portable development environments. Vagrant also features easy-to-use workflows and focuses on automation, saving DevOps teams time in setting up development environments.

Key Features:

  • No complicated setup process; simply download and install within minutes on Mac OS X, Windows, or a popular distribution of Linux
  • Create a single file for projects describing the type of machine you want, the software you want to install, and how you want to access the machine, and then store the file with your project code
  • Use a single command, vagrant up, and watch as Vagrant puts together your complete development environment so that DevOps team members have identical development environments

Cost: FREE

4. PagerDuty
@pagerduty

PagerDuty

PagerDuty is a DevOps tool that helps teams and businesses protect their brand reputation and customer experiences. PagerDuty is an incident management solution supporting continuous delivery strategy and enabling DevOps teams to deliver high-performing apps and superior customer experiences.

Key Features:

  • Real-time alerts
  • Gain visibility into critical systems and applications
  • Quickly detect, triage, and resolve incidents from development through production
  • Full-stack visibility across dev and production environments
  • Event intelligence for actionable insights

Cost: FREE trial available for 14 days

  • Lite: $9/month/user billed annually – Unlimited notifications and 180+ integrations with top tools
  • Basic: $29/month/user billed annually – Unlimited notifications and 200+ integrations with top tools
  • Standard: $49/month/user billed annually – Unlimited global notifications and 200+ integrations with top tools
  • Enterprise: $99/month/user billed annually – Unlimited global notifications and 200+ integrations with top tools

5. Prometheus
@PrometheusIO

Prometheus

Prometheus, an open-source service monitoring system and time series database, powers DevOps teams’ metrics and alerting. Prometheus especially is popular with teams using Grafana.

Key Features:

  • Flexible query language for slicing and dicing collected time series data to generate graphs, tables, and alerts
  • Stores time series in memory and on local disk with scaling achieved by functional sharing and federation
  • Supports more than 10 languages and includes easy-to-implement custom libraries
  • Alerts based on Prometheus’s flexible query language
  • Alert manager handles notifications and silencing

Cost: FREE

6. Ganglia
@gangliainfo

Ganglia

Ganglia provides DevOps teams with cluster and grid monitoring capabilities. This scalable tool is designed for high-performance computing systems like clusters and grids. Ganglia makes use of XML, XDR, and RRD tools.

Key Features:

  • Scalable distributed monitoring system based on a hierarchical design targeted at federations of clusters
  • Achieves low per-node overheads for high concurrency
  • Can scale to handle clusters with 2,000 nodes

Cost: FREE

7. Snort
@Snort

Snort

Snort is a DevOps tool for security. An open source intrusion prevention system, Snort is capable of real-time traffic analysis and packet logging. Snort boasts more than 500,000 registered users and has been downloaded more than 5 million times, making it the most widely deployed intrusion prevention system in the world.

Key Features:

  • Performs protocol analysis and content searching and matching
  • Provides real-time traffic analysis and packet logging
  • Detects buffer overflows, stealth port scans, CGI attacks, SMB proves, OS fingerprinting attempts, and other attacks and probes

Cost: FREE

8. Splunk
@splunk

Splunk

Designed to make machine data accessible, usable, and valuable to everyone, Splunk delivers operational intelligence to DevOps teams. The insights Splunk gives help make companies more productive, competitive, and secure.

Key Features:

  • Actionable insights with data-driven analytics
  • Next-generation monitoring and analytics solution
  • Delivers a central, unified view of IT services
  • Detects patterns, dynamically adapts thresholds, highlights anomalies, and pinpoints areas of impact

Cost: FREE trial available; Contact for a quote

9. Nagios
@nagiosinc

Nagios

Helping DevOps teams daily, Nagios is the industry standard in IT infrastructure monitoring. DevOps teams identify and correct problems with world-class network, server, and log monitoring from Nagios.

Key Features:

  • Nagios XI monitors mission-critical infrastructure components such as applications, services, operating systems, network protocols, system metrics, and network infrastructure
  • Nagios Log Server simplifies the process of searching log data
  • Nagios Network Analyzer delivers an in-depth look at network traffic sources and potential security threats for quickly gathering high-level information on network health

Cost:

  • Nagios XI: Starts at $1,995
  • Nagios Log Server: Starts at $1,995
  • Nagios Network Analyzer: Starts at $995

10. Chef
@chef

Chef

By automating your infrastructure, Chef is a DevOps tool for achieving speed, scale, and consistency. Chef turns infrastructure into code so that users easily and quickly can adapt to changing business needs.

Key Features:

  • Accelerate cloud adoption
  • Manage data center and cloud environments
  • Manage multiple cloud environments
  • Maintain high availability

Cost: FREE trials available

  • Chef Basics: FREE
  • Hosted Chef: $72/node, minimum 20 nodes
  • Chef Automate: $137/node

11. Sumo Logic
@SumoLogic

Sumo Logic

Sumo Logic helps leading companies analyze and make sense of log data. DevOps teams choose Sumo Logic because it combines security analytics with integrated threat intelligence for advanced security analytics with deep insights for modern applications.

Key Features:

  • Build, run, and secure AWS, Azure, or Hybrid applications
  • Cloud-native, machine data analytics service for log management and time series metrics
  • One platform for real-time continuous intelligence
  • Remove friction from your application lifecycle

Cost: FREE trial available

  • Sumo Logic Free: FREE – Up to 500MB/day
  • Professional: $90/month, 1 GB/day with annual pre-pay – 3-20 users
  • Enterprise: $150/month, 1 GB/day with annual pre-pay – 20+ users

12. RabbitMQ
@RabbitMQ
RabbitMQ

An open source multi-protocol messaging broker, RabbitMQ is a DevOps tool that supports a large number of developer platforms. RabbitMQ also runs on all major operating systems and is easy to use.

Key Features:

  • Enables software applications to connect and scale
  • Gives your applications a common platform for sending and reaching messages and provides a safe place for messages to sit until received
  • Flexible routing, reliability, clustering, highly available queues, and more

Cost: FREE

13. Logstash
@elastic

Logstash

Logstash, from Elastic, is a DevOps tool for centralizing, transforming, and stashing data. An open source tool on the server side of data processing, Logstash simultaneously ingests data from multiple sources, transforms it, and sends it to the stash of your choice.

Key Features:

  • Collect, parse, and transform logs
  • Easily ingest from logs, metrics, web applications, data stores, and AWS services in continuous, streaming fashion
  • Dynamically transforms and prepares data no matter its format or complexity
  • Pipelines are multipurpose and may be sophisticated to give you full visibility when monitoring deployments or even an active Logstash node

Cost: FREE

14. Loggly
@loggly

Loggly

A DevOps tool providing cloud log management, Loggly assists in logging data intelligence for modern infrastructure. Simplify log management and solve operational issues more quickly with little time or effort, thanks to Loggly.

Key Features:

  • Mines scores of log data in real time
  • Delivers insights DevOps teams need to produce quality code and ensure a superior user experience
  • Get a bird’s-eye view of logs by seeing what is happening across distributed environments in real time
  • Use data to search for answers
  • Use open protocols rather than proprietary agents to send logs
  • AWS DevOps Competency designation for providing effective solutions helping businesses access, manage and analyze log data across the entire application stack on AWS

Cost: FREE trial available

15. Apache ActiveMQ
@TheASF

Apache ActiveMQ

The Apache Software Foundation presents Apache ActiveMQ, a DevOps tool that is an open source messaging and integration patterns server. ActiveMQ is useful because it is fast, supports several cross language clients and protocols, includes easy-to-use enterprise integration patterns, and fully supports JMS 1.1 and J2EE 1.4.

Key Features:

  • OpenWire for high-performance clients in Java, C, C++, and C#
  • Supports advanced features like message groups, virtual destinations, wildcards, and composite destinations
  • Spring support for easily embedding it into Spring applications; configured using Spring’s XML configuration mechanism
  • Designed for high-performance clustering, client-server, peer-based communication

Cost: FREE

16. Papertrail
@papertrailapp

Papertrail

Papertrail offers hosted log management and delivers real-time tail and search, alerts, text files and syslog, and encryption. DevOps teams choose Papertrail when they want an easier time dealing with logs because this cloud-hosted log management tool eases frustration and allows for instant log management.

Key Features:

  • Aggregate – All app logs, text log files, and syslog in one place
  • Tail and Search – Realtime, using a browser, command-line, or API
  • React and Analyze – Get instant alerts, detect trends, and archive forever
  • Instant log visibility
  • Realize value from logs you already collect

Cost:

  • FREE plan – 48 hours search, 7 days archive, 5 GB first month bonus and then 100 MB/month
  • 1 GB/month: $7 – 1 week search, 1 year archive
  • 2 GB/month: $18 – 1 week search, 1 year archive
  • 4 GB/month: $35 – 2 weeks search, 1 year archive
  • 8 GB/month: $75 – 2 weeks search, 1 year archive
  • 16 GB/month: $150 – 2 weeks search, 1 year archive
  • 25 GB/month: $230 – 2 weeks search, 1 year archive

17. OverOps
@overopshq

 

 

OverOps3

OverOps is the DevOps tool that tells teams why bugs happen and servers crash. Quickly and easily identify when and why code breaks in production with OverOps.

Key Features:

  • Detects when production code breaks and delivers the source code and variable state that caused it to DevOps teams
  • Improve staff efficiency by eliminating time wasted sifting through logs; get the complete source code and variable state to fix any error
  • Proactively detects when deployments introduce errors
  • Avoid release delays and spend time delivering great features rather than dealing with production issues

Cost: FREE Pro Trial available for 14 days

  • Lite: FREE – 1 user/1JVM
  • Pro: $109/month/JVM with annual plan – Up to 25 users
  • Enterprise: Contact for a quote – Volume discounts are available

18. Squid
@squidcache

 

Squid

As a cache proxy for the web, Squid is a DevOps tool that optimizes web delivery and supports HTTP, HTTPS, FPT, and more. By reducing bandwidth and improving response times via caching and reusing frequently-requested web pages, Squid also operates as a server accelerator.

Key Features:

  • Extensive access controls
  • Runs on most available operating systems including Windows
  • Licensed under the GNU GPL
  • Optimizes data flow between client and server to improve performance
  • Caches frequently-used content to save bandwidth

Cost: FREE

19. Visual Studio IDE
@VisualStudio

Visual Studio IDE

A fully-featured integrated development environment (IDE) for Android, iOS, web, and cloud, Visual Studio IDE is a DevOps tool from Microsoft. DevOps teams use Visual Studio IDE to write code accurately and efficiently while retaining the current file context.

Key Features:

  • Easily zoom into details like call structure, related functions, check-ins, and test status
  • Leverage Visual Studio IDE’s functionality to refactor, identify and fix code issues
  • Build apps and games for devices running Windows, native or hybrid apps for Android or iOS or Windows, apps that scale to Azure, modern web apps with powerful tools and an extensible ecosystem, and more
  • Easily develop and deploy SQL Server and Azure SQL databases with ease

Cost:

  • Visual Studio Community: FREE – For students, open-source, and individual developers
  • Visual Studio Professional: FREE trial available; Contact for a quote
  • Visual Studio Enterprise: FREE trial available; Contact for a quote

20. MCollective
@puppetize

MCollective

Puppet strives to build a world where software powering everything around us always is available, modern, and accessible from anywhere. Their Marionette Collective, or MCollective, is a DevOps tool that delivers a framework for building server orchestration or parallel job execution systems. MCollective is an ideal tool for DevOps teams working with large numbers of servers.

Key Features:

  • Uses metadata-based discovery and filtering rather than relying on a static list of hosts to command it
  • Can use a rich data source such as PuppetDB or can perform real-time discovery across the network
  • Uses publish/subscribe middleware for communicating in parallel with several hosts at once instead of directly connecting to each host, which often requires too many resources and slows the pace

Cost: Contact for a quote

21. Memcached
@memcached

Memcached

A free and open source high-performance distributed memory object caching system, Memcached is the DevOps tool that speeds up dynamic web applications by alleviating database load.  While it is a simple tool, Memcached is powerful and promotes quick deployment, ease of development, and problem-solving for large data caches.

Key Features:

  • API available for most popular languages
  • In-memory key-value store for small chunks of arbitrary data from results of database calls, API calls, or page rendering
  • Simple, yet powerful

Cost: FREE

22. MySQL
@MySQL

MySQL

The world’s most popular open source database, MySQL is a DevOps tool that saves teams time and money by making it faster and easier to deliver high performance, scalable database applications. MySQL offers several editions to meet users’ various business and technical requirements.

Key Features:

  • Reduce the risk, cost, and complexity in developing, deploying, and managing business-critical MySQL applications
  • High performance, reliability, and scalability
  • Cross-platform flexibility
  • Easy to use and fast installation, configuration, and integration make it possible for developers to focus on application development and reduce costs and time to market

Cost: Contact for a quote

23. Docker
@docker

Docker

An integrated technology suite enabling DevOps teams to build, ship, and run distributed applications anywhere, Docker is a tool that allows users to quickly assemble apps from components and work collaboratively. This open platform for distributed applications is appropriate for managing containers of an app as a single group and clustering an app’s containers to optimize resources and provide high availability.

Key Features:

  • Package dependencies with your apps in Docker containers to make them portable and predictable during development, testing, and deployment
  • Works with any stack
  • Isolates apps in containers to eliminate conflicts and enhance security
  • Streamline DevOps collaboration to get features and fixes into production more quickly

Cost:

  • Community Edition: FREE
  • Enterprise Edition Basic: Starting at $750/year
  • Enterprise Edition Standard: Starting at $1,500/year
  • Enterprise Edition Advanced: Starting at $2,000/year

24. Cacti

Cacti

A complete RRDTool-based graphing solution, Cacti is a DevOps tool that provides complete network graphing that harnesses the power of RRDTool’s data storage and graphing functionality. Cacti is a popular DevOps tool because it features an intuitive and easy-to-use interface that is ideal for any application from LAN-sized installations through complex networks with thousands of devices.

Key Features:

  • Provides a fast poller, advanced graph templating, multiple data acquisition methods, and user management features out of the box
  • Create data sources that utilize RRDTool’s create and update functions
  • Supports RRD files with more than one data source

Cost: FREE

25. Stackify Retrace
@Stackify

Stackify Retrace

Working to help developers write even better code to become even better developers, Stackify offers Retrace. This DevOps tool delivers powerful application performance management for teams and applications and makes developers’ jobs easier.

Key Features:

  • Quickly find bugs and improve application performance on QA/test and production servers
  • Specifically designed to give developers visibility, data, and actionable insights
  • SaaS-based APM
  • Offers a single pane of glass for code performance and metrics including integrated errors and logs
  • Gain deeper code insights like which cache key is being used and names of queues
  • Works with most common app stacks

Cost: FREE trial available for 14 days

  • Retrace (Pre-Production): $10/month/pre-production server
  • Retrace (Production): $25/month/server (single core) or $50/month/server (multi-core)

26. CFEngine
@cfengine

CFEngine

A DevOps tool for IT automation at web scale, CFEngine is ideal for configuration management and helps teams automate large-scale, complex, and mission-critical infrastructure. With CFEngine, you can ensure compliance even while securely making consistent global changes.

Key Features:

  • A lean, fast solution with execution time less than one second
  • Written in C
  • An open source configuration solution with an unparalleled security record
  • A mature solution that has conducted hundreds of billions of compliance checks in large-scale production environments
  • Scalable: deploy a model-based configuration change across 50,000 servers in five minutes

Cost: FREE for up to 25 hosts

27. Gradle
@gradle

Gradle

Delivering adaptable, fast automation for DevOps teams, Gradle is a build tool that accelerates developer productivity. Teams that utilize Gradle build, automate, and deliver software that is better, and they do it faster than ever before.

Key Features:

  • Build anything by writing in Java, C++, Python, or whichever language you prefer
  • Take advantage of Gradle’s rich API and mature ecosystem of plugins and integrations to automate everything
  • Deliver faster by scaling out development with lightning-fast builds

Cost: FREE

28. Apache Maven
@TheASF

Apache Maven

Part of the Apache line of projects from the Apache Software Foundation, Apache Maven is a project management and comprehension tool for DevOps teams. With Maven, users get a reliable tool for managing a project’s build, reporting, and documentation.

Key Features:

  • Use consistently across all projects to simplify onboarding for new developers coming onto a project
  • Simple projects setup that follows best practices
  • Superior dependency management including automatic updating, dependency closures, and transitive dependencies
  • Large, growing repository of libraries and metadata to use out of the box

Cost: FREE

29. JFrog Artifactory
@jfrog

JFrog Artifactory

JFrog is a universal artifact repository and distribution platform. A unique DevOps tool, JFrog Artifactory is a universal artifact repository manager that fully supports software packages created by any language or technology.

Key Features:

  • Enterprise-ready repository manager
  • Supports secure, clustered, high-availability Docker registries
  • Integrates with all major CI/CD and DevOps tools to provide an end-to-end, automated, bullet-proof solution for tracking artifacts from development to production
  • Remote artifacts are cached locally for reuse, eliminating the need to download them again and again

Cost: FREE trial available

  • JFrog Pro Edition: $2,950
  • JFrog Pro SaaS Edition Google Cloud Platform: Starting at $85/month
  • JFrog Pro SaaS Edition Microsoft Azure: Starting at $95/month
  • JFrog Pro SaaS Edition Amazon Web Services: Starting at $98/month
  • JFrog Enterprise SaaS Edition: Contact for a quote
  • JFrog Enterprise Edition, starting with 3 servers: $29,500

30. Capistrano
@capistranorb

Capistrano

Capistrano is a remote server automation tool for DevOps teams. This tool supports scripting and executing arbitrary tasks and includes a set of sane-default deployment workflows.

Key Features:

  • Reliably deploy web application to any number of machines simultaneously in sequence or as a rolling set
  • Automate audits of any number of machines
  • Script arbitrary workflows over SSH
  • Automate common tasks in software teams
  • Drive infrastructures provisioning tools such as chef-solo, Ansible, and the like

Cost: FREE

31. Redis
@redisfeed

Redis

Redis is a data structure server used as a database, cache, and message broker. This DevOps tool supports data structures including strings, hashes, lists, sets, sorted sets, and more.

Key Features:

  • Open source in-memory data structure store
  • Supports bitmaps, HyperLogLogs and geospatial indexes with radius queries
  • Built-in replication, Lua scripting, LRU eviction, transactions, and different levels of on-disk persistence
  • Provides high availability via Redis Sentinel an automatic partitioning with Redis Cluster

Cost: FREE

32. Tripwire
@TripwireInc

Tripwire

Tripwire is a leading provider of endpoint detection and response, security, compliance, and IT operation solutions for enterprises, service providers, and government agencies. DevOps teams use Tripwire to detect, prevent, and respond to cybersecurity threats quickly and confidently.

Key Features:

  • Keep configurations in a known and trusted state and identify and remediate non-compliant changes using Tripwire’s nearly 800 policy/platform combinations
  • Detect changes in real time
  • Differentiate authorized and unauthorized changes and prioritize based on business context
  • Reliably collects, normalizes, analyzes, and stores log data for immediate alerting of suspicious behaviors and to support detailed forensic analysis

Cost: Contact for a quote for the best Tripwire solution to fit your DevOps needs

33. Monit
@tildeslash_

Monit

Monit is a DevOps tool for system monitoring and error recovery. Monit provides easy, proactive monitoring of processes, programs, files, directories, filesystems, and more and acts as “a watchdog with a toolbox on your server.”

Key Features:

  • Small open source utility for managing and monitoring Unix systems
  • Conducts automatic maintenance and repair
  • Executes meaningful causal actions in error situations

Cost: FREE

34. Collectl
@sourceforge

Collectl

Collectl is a tool that delivers performance data to DevOps teams. Collectl is one tool that handles a number of tasks and alleviates the need to have several tools in your DevOps toolbox.

Key Features:

  • Choose to monitor broad sets of subsystems including buddy info, cpu, disk, nodes, lustre, memory, network, tcp, slabs, sockets, or a number of others
  • View output in a single line to spot spikes or other anomalies more easily
  • Mix and match data in the brief format you need
  • Choose to display information in verbose format
  • Save output in a rolling set of logs for later playback or display it interactively in a variety of formats
  • Supports OpenStack Clouds

Cost: FREE

35. Consul
@HashiCorp

Consul

From HashiCorp, Consul is a DevOps tool used for discovering and configuring services in your infrastructure. Consul is an ideal tool for modern, elastic infrastructures because it is useful for those in the DevOps community and application developers.

Key Features:

  • Provide a service such as API or MySQL
  • Provide health checks associated either with a given service or with a local node
  • Make use of the hierarchical key/value store for dynamic configuration, feature flagging, coordination, leader election, and more
  • Supports multiple data centers out of the box

Cost: FREE

36. JIRA Software
@Atlassian

JIRA Software

The leading software development tool used by agile teams, JIRA Software is used by DevOps teams for issue and project tracking. For teams that want to ship early and often, JIRA Software is the ideal tool because it is the singular tool every member of your team needs to plan, track, and release a great product.

Key Features:

  • Create user stories and issues, plan sprints, and distribute tasks across DevOps teams
  • Prioritize and discuss work in full context and with complete visibility
  • Ship with confidence knowing the information you have always is current
  • Improve team performance based on real-time, visual data
  • Use an out-of-the-box workflow or create one tailored to your team

Cost: FREE trial available

  • Cloud: Starts at $10/month for 10 users
  • Server: Starts at $10/month for 10 users
  • Data Center: Starts at $12,000/month for 500 users

37. Apache Ant
@TheASF

Apache Ant

Apache Ant, part of the Apache Software Foundation, is a Java library and command-line tool. DevOps teams use Ant as a build automation tool because it saves time by driving processes described in build files as targets and extension points dependent upon each other.

Key Features:

  • Supplies a number of built-in tasks for compiling, assembling, testing, and running Java applications
  • May be used to build non-Java applications such as C or C++ apps
  • Pilot any type of process that can be described in terms of targets and tasks
  • Extremely flexible and does not impose coding conventions or directory layouts to the Java projects that use it as a build tool

Cost: FREE

38. God
@mojombo

God

From Tom Preston-Werner, co-foudner and CCEO of GitHub, God is a process monitoring framework in Ruby that is easy to configure and extend. DevOps teams turn to God for keeping server processes and tasks running.

Key Features:

  • Config file written in Ruby
  • Integrated notification system or write your own
  • Various poll conditions can have different intervals
  • Easily write your own custom conditions in Ruby
  • Easily control non-daemonizing scripts

Cost: FREE

39. ProductionMap

ProductionMap

An open source, all-in-one platform for DevOps, ProductionMap was created by a group of IT and DevOps professionals to deliver the most advanced orchestrator and development platform available. This DevOps tool enables teams to develop and execute complex automation on a large scale of servers and hybrid technologies.

Key Features:

  • Integrated visual platform for DevOps
  • Makes automation development fast and easy
  • Develop more robust products
  • Document every change and reproduce previous executions quickly and easily
  • Drag and drop with the orchestrator

Cost:

  • FREE with registration
  • DevOps professional services for developing automation using ProductionMap: Contact for a quote

40. Juju
@ubuntucloud

Juju

DevOps teams use Juju for automating cloud infrastructure and deploying application architectures. This tool, along with Juju’s best practice Charms, helps DevOps teams handle configuration, management, maintenance, deployment, and scalability more easily.

Key Features:

  • Operate big software at scale on any cloud
  • Deploy, configure, scale, and operate software on public and private clouds
  • Choose a 5-node developer cluster or an 11-node production-grade cluster
  • Spread the cost of expertise and amplify the power of your team with open source operations code and model-driven operations at any scale and on any cloud

Cost: FREE

41. Scalyr
@scalyr

Scalyr

A SaaS platform for lightning-fast centralized log management, systems monitoring, and alerting, Scalyr is a DevOps tool that helps teams solve problems quickly. In fact, Scalyr searches terabytes of logs in mere seconds.

Key Features:

  • Aggregates all server logs and metrics into a centralized system in real time
  • Powerful web UI delivers search results in seconds
  • Insights and visualizations for the entire DevOps team so you can diagnose issues before they grind operations to a halt
  • Monitor key metrics, alert when trouble is about to strike, and keep operations moving smoothly
  • Integrated suite of server monitoring, log management, visualization, and analysis tools to find and resolve more incidents in less time and all from one screen

Cost: FREE trial available for 30 days

  • Silver: $99/month – 2GB/day log volume with 14 days retention
  • Gold: $249/month – 5GB/day log volume with 21 days retention
  • Platinum: $499/month – 10GB/day log volume with 30 days retention
  • Enterprise: Contact for a quote

42. Stackify Prefix
@Stackify

Stackify Prefix

Stackify is a lightweight DevOps tool that shows real-time logs, errors queries, and more directly at your workstation. Rather than serving as a standard code profiler, Prefix displays details per web request to help teams understand what your code is doing and how long it takes.

Key Features:

  • Detailed trace of every web request
  • Eliminate messy config or code changes
  • Runs fast and always is ready
  • Provides an instant feedback loop to see what your .NET or Java web apps are doing
  • Find and fix bugs prior to production

Cost: FREE

43. SaltStack
@SaltStack

SaltStack

SaltStack is software for data-driven orchestration and configuration management at scale. This DevOps tool is the solution for intelligent orchestration for the software-defined data center.

Key  Features:

  • Manages heterogeneous computing environments
  • Orchestrates any cloud
  • Automates deployment of nearly any infrastructure and application stack used to create modern cloud, enterprise IT, and web-scale
  • Proven and packaged for unique infrastructure automation, cloud orchestration, and configuration management requirements of DevOps, CloudOps, and ITOps at scale

Cost: Contact for a quote

44. Ansible
@ansible

Ansible

Providing the simplest way to automate IT, Ansible is a DevOps tool for automating your entire application lifecycle. Ansible is designed for collaboration and makes it much easier for DevOps teams to scale automation, manage complex deployments, and speed productivity.

Key Features:

  • Deploy apps
  • Manage systems
  • Avoid complexity
  • Simple IT automation that eliminates repetitive tasks and frees teams to do more strategic work

Cost: Contact for a quote

45. Code Climate
@codeclimate

Code Climate

Code Climate helps teams ensure the health of your code, from the command line to cloud. With Code Climate, you get a DevOps tool for automated code review for test coverage, complexity, duplication, security, style, and more.

Key Features:

  • Merge with confidence
  • Fix issues sooner to ship better code more quickly
  • Automated code review where you work
  • Get immediate results within your pull requests
  • Integrates directly into your workflow
  • One interface for all data, from test coverage and style to security and code quality

Cost: FREE trial for 14 days

  • Standard, Hosted: $16.67/set/month billed annually or $20/seat/month billed monthly
  • Enterprise, On-Premise or Hosted: Contact for a quote

46. Rudder
@RudderProject

Rudder

Rudder provides continuous configuration and auditing software for automatically measuring and correcting configuration drift on Linux, Windows, and more. This DevOps tool is an easy-to-use, web-driven, role-based solution for IT infrastructure automation and compliance.

Key Features:

  • Workflow offers various user options at their own level: non-expert users, expert users, and managers
  • Automate common system administration tasks such as installation and configuration
  • Enforce configuration over time
  • Inventory all managed nodes
  • Web interface for configuring and managing nodes and their configuration
  • Compliance reporting by configuration and/or by node

Cost: FREE

47. Puppet Enterprise
@puppetize

Puppet Enterprise

Puppet Enterprise is one of the most popular DevOps tools on the market because it enables teams to deliver technology changes quickly, release better software, and do it more frequently with confidence. Use Puppet Enterprise to manage infrastructure as code and get a solid foundation for versioning, automated testing, and continuous delivery.

Key Features:

  • Deploy changes with confidence
  • Recover more quickly from failures
  • Free your team to be more agile and responsive to business needs
  • Increase reliability by decreasing cycle times
  • Ensures consistency across development, test, and production environments so teams know that changes are consistent and systems are stable when you promote them

Cost: FREE trial available

  • 12-Month Puppet Enterprise Subscription for up to 500 Nodes: $3,000 – Standard support and maintenance
  • Contact sales for more than 500 nodes or for premium support

48. Graylog
@graylog2

Graylog

An open source log management tool that works wonders for DevOps teams, Graylog delivers trusted, full-featured log management. Build specifically for DevOps, security, and operations, Graylog stores, searches, and analyzes log data from any source.

Key Features:

  • Monitoring of distributed applications at any time and on demand
  • All log data available and accessible in one central location
  • Discover and resolve issues faster
  • Ensure customer satisfaction with less downtime and better performance
  • Proactively monitor key indicators and exceptions across the entire stack
  • Reuse code and simplify rule management by composing stages in named pipelines

Cost: FREE

49. UpGuard
@UpGuard

UpGuard

UpGuard is a DevOps tool that offers visibility into the state of your IT infrastructure and enables teams to understand risk potential, prevent breaches, and hasten software delivery. UpGuard’s solutions provide complete visibility into server and device configurations and enable teams to ensure systems are secure while minimizing the risk of unplanned outages and data breaches.

Key Features:

  • Integrity monitoring allows you to detect and rectify integrity issues before they get out of control
  • Powerful diffing capabilities for discovering and comparing differences between single systems or entire environments, regardless of complexity
  • Advanced vulnerability analytics to keep teams in the loop with current, tested information for better decision making

Cost: Contact for a quote

50. Sensu
@sensu

Sensu

Sensu delivers full-stack monitoring for dynamic operating environments. As a DevOps tool, Sensu is helpful in monitoring servers, services, application health, and business KPIs, collecting and analyzing custom metrics, and being alerted to failures before users do.

Key Features:

  • A cohesive monitoring platform that focuses on composability and extensibility
  • Approximately 70% of Sense users report standardizing on Sensu and replacing at least 3 or more legacy monitoring systems within the first 30 days of installing it while improving monitoring coverage by over 25%
  • Monitor servers, containers, services, applications, network devices, and remote resources
  • Reuse existing monitoring logic
  • Designed to work with automation tools like Puppet, Chef, and Ansible
  • Improves operational visibility by providing a single pane of glass for multiple physical or logical data centers

Cost: FREE trial available

  • Sensu Enterprise: Starts at $42/month paid annually or $50/month paid monthly

We miss something?




Have a Favorite Tool or Resource? Tell Us Here!




Stackify Release Update

Big Stackify .NET APM Update is Here! v4.6 of Windows Agent Release

Matt Watson Stackify Product & Company Updates Leave a Comment

After many months of hard work, we are preparing to release the latest Retrace agent for Windows / .NET, and along with this release, there are some changes to how we will be releasing our agents in the future.

Change Around Automatic Agent Updates

We have listened to a lot of feedback from our user base, and combined with the pace of our releases, have decided to disable automatic updates of agents by default, for both Windows and Linux.

As always, when we have a new release, it will be the active download for new installs (available on the “Getting Started” page in the Retrace portal). This ensures that you will always be getting the latest version when you need it.

However, for some time automatic updates have been managed by the Stackify Environments you have defined. To date, the default is allow automatic updates for each environment; we have changed that to default to no automatic updates; you may now “opt in” rather than “opt out.” If you wish to continue receiving automatic updates, please opt in your applicable environments.

NOTE: If you script your agent install for new servers, such as for Azure Cloud Services or Azure App Services, any new instances will always get the latest version. Retrace for Azure App Services will continue to auto-update as well, until a later release.

Otherwise, for existing installs, you can still manually update to the latest version by downloading and running the installer on that server; or by using the Server Settings dialog in the Retrace portal and clicking “Update Agent”

In the near future, we will be adding some features to better notify you of when agent updates become available, by the Retrace portal and email.

Changes to the .NET Windows Agent

So, what’s in the new version (4.6)? Glad you asked!

Please note that these changes all center around the Windows agent and .NET CLR profiler itself. Many of them are technical changes in how we collect and process the data that is then uploaded to the Retrace portal. This announcement is not in reference to any changes of functionality within the Retrace portal, except auto-updates.

  • Significant optimizations to our .NET CLR profiler to reduce CPU overhead in your applications
  • Reduced CPU usage in our monitoring agent that runs as a Windows Service
  • Fixes for various bugs in profiling
  • An improved update / uninstall experience that will prevent app pool recycles that were happening in some scenarios
  • Minor improvements to installer for .NET Core and Windows Services

When will it be available?

Retrace Windows Agent Available Now
Retrace for Azure App Services (auto-updates) 3/9/17

At Stackify, we always love hearing your feedback, so please let us know what you think of these changes.

Slow is Smooth and Smooth is Fast: Application Performance Management and the New Development Mantra

Guest Contributor Insights for Dev Managers, Live Queue Leave a Comment

military guysBy Charles Araujo, Principal Analyst, Intellyx

In the mid-1980’s my dad ran SWAT teams for the LA County Sheriff. As a team leader, he had a simple mantra that he had learned while training with the Navy Seals and which he and his team repeated before every entry: “Slow is smooth. Smooth is fast.”

This simple phrase was their reminder that in the heat of the battle, there is a great urgency for speed. But when you move so fast that you make mistakes, it’s not fast at all. The key is to move slow enough to ensure that everything works smoothly — and that’s how you go fast.

This is an important thing for enterprise organizations to understand because the overriding philosophy today can best be summed up in two words: speed and agility.

This rallying cry has led to significant interest in agile development methodologies, DevOps, release and deployment automation, and the continuous integration/continuous delivery movement. Amid all this focus on delivery speed, however, organizations often leave code-level, transactional performance testing until it’s far too late in the development and deployment cycle.

The result is often less-than-smooth operational deployments that undermine the very organizational speed that they seek.

There is, however, a very familiar class of tools, but one which organizations see as purely operational, that can help solve this problem: Application Performance Management (APM).

A Fresh Look at APM

The logic of identifying code-level, transactional performance issues early in the development cycle is glaringly obvious. But so are the reasons that APM tools haven’t been used to perform this function thus far: cost and difficulty of deployment.

APM tools have been a staple of the enterprise IT management stack for most of the last two decades. But the major players in the market designed their tools to monitor applications in production — not in development. As a result, their architecture and pricing models made their use within the development lifecycle itself an impracticality.

This unavailability has left organizations with only legacy system testing and load testing technologies to test performance in pre-production — solutions that are far too slow, clunky and burdensome for a fast-moving world.

Stackify, a developer-focused Application Performance Management company, is offering an alternative approach that moves beyond simple simulations to uncover the relationship between the code and application performance throughout the pre- and post-production lifecycle.

Improving Performance at the Point of Development

There is a well-known axiom in the development world that is synonymous to my father’s SWAT team mantra: “The best time to find bugs is when you’re creating them.”

Of course, development teams know this — or at least they pay lip service to it. Quality Assurance (QA) teams and their embedded testing procedures are almost universally a part of the software development lifecycle. But there two corollary facts that are just as prevalent, if less discussed, in an ever-faster-moving development world: coders want to code (not test), and traditional testing won’t uncover the most common performance-related issues.

The problem is that traditional testing approaches primarily test code at a functional level — their aim: to identify code that just doesn’t work. But in today’s world, that’s a rarity. We’re long past the point in which consumers (internal or external) were tolerant of rampant and blatant bugs in the code. Today, the vast majority of issues that make the difference between perceived success or failure of a deployment come down to one thing: performance.

Unfortunately, developers discover most transactional performance issues only after they’re in production rather than at the point of development.

Stackify created Prefix to help close this gap. Prefix runs in your development environment and is a lightweight tool that shows real-time logs, errors, and queries, along with other real-time, performance-related information on the developers’ workstations. It helps them understand how long transactions take and can answer the key question, “what did my code just do,” while they can still do something about it.

Using APM to Improve QA

Prefix goes a long way toward closing the performance error gap. It enables coders to keep on coding, while simultaneously improving performance. Still, the highly integrated nature of the modern enterprise stack means that developers will not discover all transactional performance issues during development.

QA will continue to play a critical role in the development lifecycle. Here too, however, APM can play an important part in improving the quality of deployments.

Most current approaches to QA can only identify a limited set of functional and load-based issues. They test to ensure that things work as developers expect, but provide little insight into transactional performance problems — and also do little to help developers uncover the source of performance problems once they discover them. This challenge becomes even more acute when the source of the problem is an integration with another system or data source — an increasingly common occurrence.

For this reason, Stackify offers their Retrace APM tool in a version exclusively for Dev/Test environments. It is effectively the same tool as their production monitoring version, but they have priced it to encourage its use in development and test scenarios. When deployed in this manner, it can significantly help both QA and development teams identify and resolve performance issues long before they go into production.

The Intellyx Take

Increasing organizational speed and agility is a strategic imperative for nearly every enterprise. Organizations are expending vast resources and launching far-reaching efforts to reshape their organizations to compete in this fast, digitally-transformed world. In doing so, however, they run the risk of over-focusing on delivery speed and under-focusing on the need for “smooth” deployments that eliminate debilitating transactional performance issues before they occur.

Stackify’s approach of utilizing APM within and throughout the development lifecycle — as well as within production — is a unique strategy that can deliver significant benefits to organizations that apply it.

Copyright © Intellyx LLC. Stackify is an Intellyx client. Intellyx retains full editorial control over the content of this paper.

Functional testing

What is Functional Testing? Types, Tips, Limitations & More

Angela Stringfellow Insights for Dev Managers, Live Queue Leave a Comment

A Definition of Functional Testing

Functional testing is a type of software testing that evaluates the performance of individual functions of a software application. The purpose of functional testing is to ensure that the application and all of its individual functions work as they should in the real world and meet all requirements and specifications. It’s a valuable testing method for verifying that the output provided by each application function is in line with what’s expected.

How Functional Testing Works

Functional testing is typically conducted by providing an appropriate input to the function being tested (in line with the typical inputs expected in real-world use cases), and then verifying the result by comparing it to the expected result. This type of testing can answer questions about the capabilities of a software application, such as what actions users are able to perform.

It’s typically approached from one of two perspectives:

  • Requirements-focused testing, which prioritizes requirements based on risk criteria in order to evaluate the most critical and important features and functions first.
  • Business-process-focused testing, which relies on knowledge of end-user business requirements to evaluate an application’s performance in the context of typical use cases.

There are several specific testing techniques. The two primary techniques include white box testing and black box testing, although there are additional techniques including:

  • Smoke testing
  • Unit testing
  • User acceptance testing
  • Integration testing
  • Interface testing
  • System testing
  • Localization testing
  • Regression testing
  • Globalization testing

Benefits of Functional Testing

Functional testing is an essential step in evaluating the performance of a software application before it’s delivered for real-world use. Releasing applications with serious functional shortcomings can create disastrous consequences for end users relying on a software application to meet their use requirements.

In the best-case scenario, an application that doesn’t work as it should is a frustration for end users. But for applications designed for business use, the consequences can be serious. Many industries have specific compliance requirements and regulatory guidelines that must be met, and applications that fall short of meeting these requirements almost always result in negative outcomes for the user.

For instance, a payroll application that fails to accurately account for the various taxes the business is responsible for calculating and remitting can lead to underpayments, penalties, and even fines from regulatory agencies. From a minor inconvenience to a serious disaster, there are always consequences for applications that don’t function properly, and functional testing is one of the most effective ways to avoid these negative outcomes.

Because functional testing is carried out with the end user’s requirements in mind, it aids developers in creating test scenarios that closely mimic real-world use scenarios. The more specific the user specifications, the better functional testing works to ensure that these expectations are met by informing the design of appropriate functional tests. Ultimately, the effectiveness of the testing hinges on knowledge of user requirements coupled with savvy test design.

Limitations of Functional Testing

Functional testing focuses on how well an application does what it’s supposed to do, although it doesn’t include other performance issues that aren’t directly related to its functions but are nonetheless crucial factors to consider when determining whether an application is ready to be deployed. Typically, evaluation and usability factors not falling under the functional testing umbrella are categorized as “non-functional testing,” which may include:

  • Security testing
  • Usability testing
  • Operational readiness testing
  • Endurance testing
  • Interoperability testing
  • Maintainability testing
  • Ergonomics testing
  • Availability testing
  • Recoverability testing
  • And others

Essentially, functional testing encompasses the key components of an application’s design, ensuring that each function does what it’s expected to do based on the application’s design and client or end user requirements, but it fails to account for other variables such as how long it takes specific functions to execute, security, and other concerns also of vital importance to most users. So while functional testing is an integral testing process, it alone doesn’t ensure that an application is ready for real-world use.

According to Software Testing Fundamentals, other disadvantages of functional testing include the possibility of missing logical errors in applications and the high probability of conducting redundant testing. Functional testing also requires an in-depth knowledge of user requirements, which may not always be clear or readily available, and designing context-specific tests to evaluate functional performance can be time-consuming.

Best Practices for Functional Testing

Functional testing can be a lengthy process, and your timeline can change depending on whether functional shortcomings are identified in the testing process. That means you’ll need to be flexible so that your team can easily adapt to changing demands.

Additionally, most software applications have a plethora of individual functions, so having an established system and defined criteria to help you prioritize tests will help your team to stay focused and ensure that the most critical functions are evaluated first. You’ll also want to make sure that your testing plan covers all the primary business use cases – evaluating the functions through a typical process flow, start to finish. In fact, it’s a good idea to craft user stories before you begin the functional testing process to provide guidance and context as you plan and design appropriate tests.

It’s also a sound practice to ensure that all tests can be traced readily to application/user requirements and any bugs identified. Without a map that traces requirements, tests, and bugs, it’s next to impossible to ensure that you’ve rectified every identified issue before release.

Some testers prefer to conduct functional and performance testing simultaneously, which can provide greater context for functional testing techniques. Plus, performance can actually impact testing in some cases, so it’s pretty crucial to ensure that both function and performance are in sync and that one isn’t hindering the other. Finally, maintaining functional and performance testing as two separate deliverables can, at times, result in performance testing falling lower on the priority scale, leading to assumptions that if the functions work, performance should follow – which isn’t always the case.

To make the best use of functional testing efforts, map functions to business requirements, prioritize individual tests accordingly and maintain flexibility to adapt to your sure-to-change needs as functional issues are discovered. Above all, never limit testing to functional testing only. Failing to address performance issues can make or break the success of your application, with serious ramifications for end users if your application doesn’t perform to expectations.

How to Troubleshoot High .NET App CPU in Production With ANTS and Process Hacker

Matt Watson Developer Tips, Tricks & Resources, Live Queue Leave a Comment

One of our .NET background services running as an Azure Worker Role uses a lot of CPU and runs on a bunch of servers. So I decided to spend some time today to see if I can figure out why. I decided to capture how I went about solving the problem so hopefully, it could help others!

Goal: Reduce Number of Servers for Single App

Retrace shows me that we have 17 servers running the same application. Obviously, there has to be some room for improvement in the CPU usage so we can cut down the number of servers and save some money on Azure.

Screenshot from Retrace

Retrace shows me all of the servers individually and I can see the CPU usage across all of them runs pretty hot.

Screenshot from Retrace

When I use remote desktop to log into one the servers, I can verify that task manager shows WaWorkerHost as having high CPU. Azure Worker Roles are sort of like Windows Services but are a little different. Azure has a special way of starting them up and they all run as WaWorkerHost.

Windows Task Manager

Opening up the Developer Toolbox

Process Hacker

The first thing I am going to do is try using Process Hacker to see what it shows me. It is basically a nice upgrade from task manager with some unique features that I will show you.

I start with Process Hacker because it is the least invasive to my application. I am trying to do this on a production server and I don’t want to mess up my application. Process Hacker It is not a profiler but can show me some awesome details. If this doesn’t help, profiling is the next step.

To start, I find my process running in Process Hacker:

Process Hacker

If you double click on your process it can show you a bunch of cool things like .NET performance counters, the loaded assemblies, and much more.

Process Hacker

Since I am most interested in high CPU, I am going to check out the threads view. It shows me all the threads running within my process and shows how much CPU each thread is using.

Process Hacker

If you double click on one of the threads you can see the full stack trace for the thread. This is what I am after, to see if there is a pattern to perhaps what is using the most CPU.

Process Hacker

Depending on what your application does, you may or may not find much that is useful. This particular app does a lot of very short lived things and this time around I didn’t find much of interest. Other times, it has shown me exactly what I needed to know.

Profiling in Production with ANTS Performance Profiler

So Process Hacker didn’t help me this time around, so I am going to fire up ANTS Performance Profiler. I have used a bunch of different .NET profilers, and it is still my favorite. Since ANTS comes with a free trial, I can install it on my server and start a free trial. 🙂

ANTS will let me attach to a running process, which is what I want to do in this case. It is only going to do lightweight sampling, but hopefully, that will be enough to help me find my problem.

If that doesn’t work, I would have to figure out how to stop my app and restart it with the profiler attached. Since this is an Azure Worker Role, I’m not even sure how to do that. It isn’t the same as a Windows Service.

ANTS Performance Profiler

ANTS Performance Profiler

Because ANTS is running in sampling mode, it isn’t killing the CPU on my server. The CPU of my app was already running 70-80% and is still looking about the same.

ANTS Performance Profiler

ANTS Performance Profiler

I let ANTS run for a few minutes and now I can see some meaningful data about what parts of my code are slow.

The call tree view can show me the hot path in my code and you can expand the tree elements to walk through how long each method takes.

ANTS Performance Profiler

ANTS Performance Profiler

I prefer using the methods grid mode which allows me to just sort the methods by the most expensive.

ANTS Performance Profiler

ANTS Performance Profiler

One thing I noticed was a method around Redis transient faults taking 12% of the time. With ANTS I can expand that method to see all of its children and dig deeper.

ANTS Performance Profiler

ANTS Performance Profiler

As I dig around in ANTS looking at expensive methods, I’m also looking at my code in Visual Studio trying to evaluate what the code is doing and perhaps any improvements I can make.

One of the things I found was Entity Framework… being Entity Framework. When it comes to performance, avoid it all costs. Use a low-level SqlDataReader, Dapper, or simply anything else.

Entity Framework and most ORMs for that matter add a lot of overhead. They are great for low volume CRUD type code but should be avoided in high volume places where performance matters. When you have 17 servers running the same app… performance matters.

ANTS Performance Profiler

ANTS Performance Profiler

I found a few more little code changes and found some potential improvements by switching some code to async. A few little tweaks here and there eventually add up to some good improvements!

Conclusion

Hopefully, this step by step walkthrough of my journey can help give you some ideas of how to safely profile your production applications to try and find high CPU problems.

ANTS has a ton of great functionality. Way more than I want to cover here. Be sure to check out their site if you want to learn more. It is definitely a product that I recommend!

Retrace’s APM capabilities are awesome for tracking the performance of your application across multiple servers. Retrace helps identify slow web requests, slow SQL queries, etc. However, when you need to get down and dirty with high CPU problems, a more traditional profiler and approach, as documented here, is your best bet.

firefox add ons for developers

The Best Firefox Add-ons for Developers: 30+ Tools for Programmers

Angela Stringfellow Developer Tips, Tricks & Resources Leave a Comment

Hey…remember Firefox? Google Chrome is now king of the browser hill, but Firefox is still chugging along and is actually still the best browser for web app developers to use. Sure it’s a little slow and hard on memory, but its customization options can’t be beaten. We’ve listed a few of our favorite Firefox add-ons that make our lives as developers a little easier, and hopefully, they’ll save you a bit of time and frustration, as well. From tools designed to meet web developers’ needs to debugging add-ons, tab management tools, password management tools, and more, we’ve rounded up 35 time-saving tools to make your web development work more seamless.

While this post was originally published in a previous year, we’ve recently updated it to eliminate add-ons that are no longer available, include the most recently available information on features and functionality, and replace tools with ratings of 3/5 stars or lower with higher-rated add-ons. All reviews listed with their respective add-ons are taken directly from the Firefox add-on pages, so please excuse the spelling and grammar. Also, note that all Current Ratings are the current overall average rating for each add-on as of the most recent update of this list (in March 2017).

Best Firefox Add-ons – Web Developer Tools

This is where Firefox truly shines. There are a number of Add-ons available for just about any type of web development, and added bonuses like direct FTP capabilities within the browser!

Fire FTP

best firefox add-ons for developers

Current Rating: 4/5 stars

A fast, secure, and cross-platform FTP/SFTP client right in your browser, Fire FTP provides seamless access to your FTP/SFTP servers. It’s worth noting that some users are reporting some difficulties in recent reviews with data connection errors when uploading, problems with the drag-and-drop file feature, and some compatibility issues with a recent version of Firefox. However, the vast majority of reviewers award FireFTP a perfect, 5-star rating, and one reviewer points out that updating to 2.0.31 and Firefox 51 solves these issues.

Add-on User Review:

by Joe on September 16, 2016 – permalink

I’ve been using this plugin for some years now and I’ve never had any issues with it. What can I say… It just works.

This review is for a previous version of the add-on (2.0.28).

Web Developer

best firefox add-ons for developers

Current Rating: 5/5 stars

Adds a wealth of great web development tools to your browser, Web Developer is an extension available not only for Firefox but also Chrome and Opera, and it will work on any system supported by these browsers, including Windows, OS X, and Linux.

Add-on User Review: 

A must for developers

SQLite Manager

best firefox add-ons for developers

Current Rating: 4/5 stars

Manage SQLite databases right from your browser with SQLite Manager, which offers tons of features including an intuitive hierarchical tree showing database objects, helpful dialogues for managing tables, indexes, views, and triggers, a dropdown menu that helps with syntax, enabling you to write SQL easier, intuitive access to functions and common operations through the menu, toolbars, buttons, and context-menu, and more.

Add-on User Review:

by Calvin on June 27, 2016 – 

Very simple, easy to use and functional tool to manage SQLite databases, I have been using it for a while and I really like it. One little complaint I would have however is that it currently does not support right and full joins, which I unfortunately only found out about when I recently needed to use a right join but couldn’t. Other than that, this is great and when those operations are suported this will be the perfect SQLite management tool.

FirePHP

best firefox add-ons for developers

Current Rating: 4/5 stars

FirePHP makes it possible to quickly and easily debug code without interfering with live content. It’s the perfect Firefox add-on for AJAX developers that allows you to log to your Firebug Console using a simple PHP method call.

Add-on User Review:

Very useful and well working addon, it simplifies debugging of PHP code very much.
I only need two more features in it, I think that with them FirePHP will become THE ultimate debugging addon:
1. The ability to show only FirePHP debug messages in FireBug console. In most cases console is filled with non-critical warnings, but if you disable them to view only useful information, FirePHP output disappears.
2. And the ability to search in Variable Viewer. If variable contains many fields and nested objects, it takes much time to find the needed part, as Firefox search works only in underlying window contents or in Firebug console.

Anyway, great addon and thank you for your work and time!

Flash Debugger

Flash Debugger

Current Rating: Not yet rated

Flash Debugger is the successor to FlashFirebug and is an addition to Firefox’s built-in dev tools, offering the ability to debug any AS3 Flash on the web. With Flash Debugger, you can inspect the DisplayList, change properties on the fly, and see warnings, errors, and traces directly within the Flash Debugger extension.

Note: As this is a successor product to a previous extension, there are not yet any user reviews at the time of this writing, although this extension already has 2,450 users.

JavaScript Deobfuscator

best firefox add-ons for developers

Current Rating: 5/5 stars

Watch and debug JavaScript as it is compiled/executed on the page with JavaScript Deobfuscator, which shows you all the JavaScript that runs on a page — even code that’s obfuscated and generated on the fly. It’s a valuable tool even when you’re working with websites that aren’t using obfuscation.

Add-on User Review:

Very useful to see how things work. A must have for JS developers. There is much space for improvements, but this is a new beginning. Keep up the good work!

FireQuery

best firefox add-ons for developers

Current Rating: 4/5 stars

Created specifically to help jQuery Developers, FireQuery is a collection of jQuery enhancements for developers. Built on top of native Firefox developer tools, FireQuery presents jQuery expressions nicely in the Firebug Console, presents jQuery data in the inspector panel, and enables you to inspect jQuery data details. It also includes jQuerify, enabling you to inject jQuery into any page.

Add-on User Review:

I have been developing with Angular.js lately and noticed that there was a strange bug which made angular.js stop working when i went to look inside the console (firebug). I then got this error TypeError: this.__FireQueryShared is undefined which I then turned off FireQuery and the bug was prevented. I don’t want to turn FireQuery off though cause I love it!

This review is for a previous version of the add-on (1.4.1.1-signed).

Empty Cache Button

best firefox add-ons for developers

Current Rating: 4/5 stars

Quickly and easily empty your browser’s cache with the click of a button with Empty Cache Button, including an optional notification of success (although Mac users will require Growl), an optional reload of all tabs or active tabs, and an optional automatic cache clearing for Firefox 31.0 and earlier. Note that beginning with Firefox 53, Empty Cache Button is built with the new WebExtensions API, and for older versions of Firefox, you should use version 2.7.1.

Add-on User Review:

It does what it says; and it also allows to refresh the current page on clicking the button, which is great because it makes the whole process still faster.
Thanks!

Wappalyzer

best firefox add-ons for developers

Current Rating: 4/5 stars

Identify how a website has been built and the systems it runs on with Wappalyzer. It detects a variety of underlying technologies used for websites including content management systems (CMS), eCommerce platforms, analytics tools, JavaScript frameworks, and more. You can check out a full list of applications Wappalyzer detects here. This extension is also available for Chrome.

Add-on User Review:

I have been using this for over 3 years and I love it. Absolute developer must-have!

RESTClient

RESTClient

Current Rating: 4/5 stars

With RESTClient, you can construct custom HTTP requests to directly test requests against a server. This add-on supports all HTTP methods RFC2616 (HTTP/1.1) and RFC2518 (WebDAV).

Add-on User Review:

Have been using this for a couple of years now for testing our REST APIs, using POST, OAuth and JSON content, works perfectly, easy to use, best tool I came across!

JSONView

JSONView

 

Current Rating: 5/5 stars

With JSONView, you can view JSON documents right in the browser with ease. Rather than Firefox prompting you to download the file, documents are shown in the browser similar to the way XML documents appear. The document is formatted and highlighted with collapsible arrays and objects, and even if the JSON document contains errors, this add-on will still display the raw text.

Add-on User Review:

Thank you for a great extension, and thanks for making it easy to add new content types (I needed “application/vnd.api+json”). Didn’t even have to restart. I’ve just build a json API for an important government dataset, and you’ve helped.

Best Firefox Add-ons – Web Development Testing

You can also use Firefox Add-ons to debug and test all your development work!

FoxyProxy

best firefox add-ons for developers

Current Rating: 4/5 stars

FoxyProxy provides advanced proxy management for Firefox, completely replacing Firefox’s limited proxying capabilities. It automatically switches an Internet connection across one or more proxy servers based on URL patterns. If you need a simpler add-on with less advanced configuration options, you should consider FoxyProxy Basic.

Add-on User Review:

I use multiple proxy! With this add-in is automatically switched without manual intervention. I am very grateful to this add-in!

This review is for a previous version of the add-on (4.5.7).

User Agent Switcher

best firefox add-ons for developers

Current Rating: 4/5 stars

User Agent Switcher adds both a menu and a toolbar button to quickly switch your browser’s user agent. User Agent Switcher has more than 310,000 users, and about half of the extension’s 268 reviewers give it 5 stars.

Add-on User Review:

This add-on has saved me more than once when needing to get downloads for different platforms.

The only feature I find lacking is an automatic page reload when the user agent has been switched. Not a big deal, but would save a little bit of time.

HttpFox

best firefox add-ons for developers

Current Rating: 4/5 stars

HttpFox analyzes both incoming and outgoing HTTP traffic between browser and server, aiming to bring the functionality of tools such as HttpWatch and IEInspector to the Firefox browser, providing a wealth of information with each request including request and response headers, sent and received cookies, Querystring parameters, POST parameters, and response body.

Add-on User Review:

Thank You! This is Great Application, but there is need as air few things:

– Searching by content/all data (not only by URLs)
– Deleting/marking some lines. It’s hard to operate with results without it

or just All Data Export in some understandable format – it would be even better.

Poster

best firefox add-ons for developers

Current Rating: 4/5 stars

Interact with web services and send HTTP requests to view the results with Poster, a great add-on for debugging that allows you to set the entity body and content type for requests. The full Poster code is available at Google Code.

Add-on User Review:

Good tool. It can have performance issues at times, though — such as when GETting a large chunk of JSON data.

To robertvazan and others who installed it in a recent Firefox but can’t figure out how to access it, here is how:

Click the Open Menu button (far right)
Click Customize
Click Show/Hide Toolbars
Select Menu Bar
Close the Customize tab

Now you can access Poster through the Tools menu bar dropdown, as before. Enjoy!

HTML Validator

best firefox add-ons for developers

Current Rating: 4/5 stars

HTML Validator adds HTML validation inside Firefox, showing you the number of HTML errors on a page in the form of an icon in the status bar. Details of the errors are shown in the HTML source of the page. Note that for online HTML 5 validation, you’ll need 0.962.

Add-on User Review:

I’ve been testing HTML Validator 0.9.7.4 Beta with no problems on the version of SeaMonkey mentioned below, comparing “Tidy” results with “SGML” results. In particular the “Tidy” version found attribute errors (including quite a number of mismatches due to typos between the name= and id= attributes of <a> tags). 🙂

User agent: Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0 SeaMonkey/2.47a1
Build identifier: 20160625075045
http://hg.mozilla.org/mozilla-central/rev/0e073f5ca38a002d43e92016ee40d686da4a0534
http://hg.mozilla.org/comm-central/rev/ab9359275942

Great that it has ceased being “Windows-only”.

P.S. One unclosed <a> tag caused several “anchor already defined” warnings, but once I had noticed and fixed the error the spurious messages disappeared.

Modify Headers

best firefox add-ons for developers

Current Rating: 4/5 stars

Great for mobile web development, HTTP testing, and privacy Modify Headers enables you to add, modify, and filter HTTP requests sent to web servers. (Check out this guide on HTTP request headers from W3.org.)

Add-on User Review:

Simplicity to set up and use, works perfectly. Only drawback is you have to disable filtering such as Privoxy which strips out referrer headers, leaving you open to ad’s and spam cookies.

IE Tab V2

best firefox add-ons for developers

Current Rating: 4/5 stars

Test your web app or website on IE with IE Tab V2. This is an updated version of the original IE Tab, enabling you to embed IE within a Firefox tab and offering support for Firefox 3.6. The developers note that they’ll continue to update this add-on with new features and enhancements. The source code is also available on GitHub.

Add-on User Review:

Works just as it should.
I did switch the compatibility to IE9 instead of the default IE7, but thats it.
Great addon! Thanks for this!

Win10Pro / FF47.0.1 / x64

Greasemonkey

Greasemonkey

 

Current Rating: 4/5 stars

Greasemonkey lets you control the way a web page displays and behaves using small bits of JavaScript. Make your browsing experience seamless, enjoyable, and frustration-free with the aid of Greasemonkey’s easy-to-use features. You can even write your own scripts (visit the Greasmonkey Wiki for more details), or check out the existing scripts you can put to use to control your favorite sites here.

Add-on User Review:

Greasemonkey is good for devs to try new things, mod environment.

HackBar

HackBar

 

Current Rating: 4/5 stars

A simple security audit and penetration testing tool, HackBar is a must-have for any developer wanting to ensure the security of their work. It’s not a tool for executing standard exploits, and it won’t teach you how to hack a website, but it will help you test SQL injections, XSS holes, and site security. You can get the source code at GitHub.

Add-on User Review:

Thanks for this addon. It’s very convenient for pentest. Just missing the ability to emulate ajax requests when using with GET or POST. When a script verifies that the xmlhttprequest object was sent, it isn’t possible to use the hackbar for the test.

Best Firefox Add-ons – Screenshots

FireShot Pro

best firefox add-ons for developers

Current Rating: 5/5 stars

Quickly grab a screenshot of an entire web page and annotate it with FireShot Pro, a useful add-on that quickly captures and saves screenshots (as an image or PDF), allowing you to send screenshots to your clipboard, print them, annotate, upload, and emails them from a single tool. Note that certain features (annotating, uploading, and emailing) only work on Windows OS.

Add-on User Review:

Excellent add on- works very well. Would actually purchase pro version and give 5 stars if had firefox 64bit support. But alas- and this app is the only reason I still run firefox x86

Nimbus Screen Capture

Nimbus

 

Current Rating: 4/5 stars

Nimbus Screen Capture lets you screen capture entire web pages or selected regions, as well as whole browser windows. You can edit them, save locally or to Google Drive, annotate screenshots with different tools, and upload and share your screenshots for easy collaboration and other uses. There’s also a Chrome version of this add-on, and you can check out the quick guide here.

Add-on User Review:

Although I think the quality of screenshots could be better. For large pictures with text, the quality isn’t as good as when you zoom in the original page. Keep up the good work!

Lightshot

Lightshot

Current Rating: 5/5 stars

Lightshot makes it easy to take quick screenshots of any selected area on a web page. Simply click the Lightshot icon in the toolbar or status bar, select the area you want to capture, and choose “Save” or “Upload to server.” There are also a few shortcuts you can use to make capturing screenshots with Lightshot even simpler.

Add-on User Review:

Clean, easy & simple, no bullshit, does what I says it does. It allows to capture, save in one click, email, and edit printscreens from your screen. Great for, e.g., making printscreens of selected items or specific stuff when you don’t want the whole contents of your screen in the picture.

I wonder why on earth are heaps of people are (still) using add-ons like Easy Screenshot, when there is Lightshot?

Best Firefox Add-ons – Time-savers and Shortcuts

Speed up your browsing and keep yourself on task with these great Firefox Add-ons.

ColorZilla

best firefox add-ons for developers

Current Rating: 4/5 stars

Get the color reading from any point within your browser, quickly adjust the color to your preferences, and paste it into another program with ColorZilla. While color-picking is ColorZilla’s core functionality, it offers a number of other useful features such as an eyedropper tool for grabbing the color from a single pixel on a web page, a CSS gradient generator, a web page color analyzer to get a palette based on any website, and more. Note: Many reviewers express frustration with a recent update, which the developers will hopefully rectify soon.

Add-on User Review:

A very useful program for graphics and color designers. The best one,I dare say!

This review is for a previous version of the add-on (2.8.2). This user has a previous review of this add-on.

Fire Gestures

best firefox add-ons for developers

Current Rating: 4/5

Set up mouse gestures for quick shortcuts within your browser with Fire Gestures, a customizable extension that enables you to execute different commands and user scripts with six types of gestures: mouse gestures, wheel gestures, rocker gestures, keypress gestures, tab wheel gestures, and swipe gestures.

Add-on User Review:

It makes using Firefox so convenient and easy. I can’t use any other browser. I tried becoming a Google Chrome guy, but without Fire Gestures, the experience sucked. This app is the reason I came back. I can do everything I need with the swipe of my mouse. The gestures I use most are save, close, open to front, open to back, last page, and go forward.

Video DownloadHelper

Video DownloadHelper

Current Rating: 4/5 stars

Strip almost any video from the web with Video DownloadHelper, an easy-to-use add-on that makes it easy to download and convert videos from hundreds of sites with YouTube-like functionality. But that’s not all: You can also record Twitter Periscope and use it to capture full browsing sessions. Check out the user manual here.

Add-on User Review:

high performance in media detecting, easy to use.

Session Manager

best firefox add-ons for developers

Current Rating: 4/5 stars

Save and restore any browsing session for later use with Session Manager, either when you want it to or automatically on startup, after crashes, or periodically. Additionally, Session Manager can save the state of open windows individually. Check out the complete user guide for details on all options here.

Add-on User Review:

Been using this wonderful add-on for about two years; without doubt, it is on my exclusive “must have” list. Nice surprise is that it also saves ALL open tabs, not just the current page. Very useful in daily Bible reading while researching and examining several commentaries and concordances. Thank you. God Bless!

AutoPager

AutoPager

Current Rating: 4/5 stars

Automatically loads the next page when you reach the bottom of a page with pagination. It works across a variety of sites including Google and Yahoo, works well with most other add-ons (such as AdBlock Plus, WOT, and most of the Greasemonkey scripts), and offers a Lite version for users who want more basic functionality. Note that there are some recent reviews indicating that this add-on doesn’t work with the latest version of Firefox, but it’s still usable for those using older versions (at least until the developer decides to release an update).

Add-on User Review:

brilliant, although it doesn’t always work and sometimes creates issues

MeasureIt

best firefox add-ons for developers

Current Rating: 4/5 stars

Draw a box on any page to measure an element’s dimensions with MeasureIt, a handy add-on for checking the width, height, or alignment of any page element in pixels.

Add-on User Review:

This extension does what it needs to do… when it works. I am a developer, and currently use FIREFOX DEVELOPER EDITION. This extension does not work in FDE for some reason. So I have to give it a low score. Fix it, and you got 5 stars, baby!

EDIT… Seems to be working SOMETIMES in FDE now. Still checking how stable it is. 4 stars. Once I confirm stability on all pages… you got 5! 🙂

TinEye Reverse Image Search

best firefox add-ons for developers

Current Rating: 4/5 stars

TinyEye is a helpful reverse image search engine, adding a context menu that helps you find the source of any image and see if there are more sizes available. It was the first image search engine on the web that uses image identification technology instead of keywords. Adding tens of millions of new images to its database every week, TinyEye maintains a feed with its ongoing updates here, and if you’re so inclined, check out TinyEye’s blog.

Add-on User Review:

TinEye is a small company but they are doing an outstanding job. I found that in at least half of my reverse searches TinEye outperforms Google. Very useful add-on when it comes to tracing the real origins of images for research projects and making sure they can be reused.

LastPass

best firefox add-ons for developers

Current Rating: 4/5 stars

Manage all your passwords in one, secure place with LastPass, a password manager that’s earned itself a reputation for being one of the easiest-to-use, robust password management tools available. It’s an award-winning password keeper that provides you with secure access from every computer and mobile device by saving, encrypting, and backing up all your login credentials automatically, syncing your password data across all devices, and leaving you with a single, strong password to remember to make your life exponentially simpler. Note: Some reviewers are reporting some issues with recent updates and certain services.

Add-on User Review:

I use multiple browsers, and coordinating my saved passwords between them all was formerly a pain, but LastPass makes this much easier and its encryption gives me confidence that my credentials are secure.

Ghostery

Ghostery

Current Rating: 5/5 stars

If you want to go incognito as you browse the web and substantially boost your browsing speed, Ghostery is the add-on for you. Ghostery enables you to make informed decisions about the data you choose to share with the websites you visit, providing a cleaner, safer, and faster browser experience as you work.

Add-on User Review:

Ghostery is aimed at the paranoid among us. It’s designed to inform a user about the trackers that are following her as she browses a site. What it does well is provide an unobtrusive set of notifications and graphics about the technologies working behind the scenes to show ads, track clicks, integrate social media, and monitor the site’s engagement. Honestly, without it I would have no clue by whom (and where) I’m being tracked. Even beyond that, though, it gives you easy, custom control over which trackers to trust and when. I can tell it to block a tracker on a single site, or multiple ones. I could even go dark, blocking all of the trackers Ghostery knows of and any new ones it finds.

But as much as it informs and reassures, a few things do trouble me. Given that it is an add-on aimed at security, I was expecting that the full functionality would be available without any registration. Unfortunately, some of Ghostery’s advanced features are hidden behind a login wall (albeit a free one). More to the point, the add-on comes with “page and tracker data” sharing automatically enabled, rather than defaulting to privacy and letting users freely consent to that sharing. I’m sure I’m not alone in worrying what the folks at Ghostery are doing with that data.

For better or for worse, this add-on will open your eyes about the zoo of data-hungry trackers following your every click.

Tab Mix Plus

Tab Mix Plus

 

Current Rating: 4/5 stars

Tab Mix Plus is the ultimate tab management add-on for Firefox, offering a variety of features such as duplicating tabs, controlling tab focus, tab clicking options, the ability to undo closed tabs and windows, and more. Additionally, Tab Mix Plus includes a full-featured session manager. Note that for users of Firefox Beta, Aurora or Nightly, the latest Tab Mix Plus development build is recommended. Change logs are available here, and if you need assistance, check out the help forum.

Add-on User Review:

The fact that the developers have kept this addon up to date through all these major browser changes is commendable. I’ve been using this addon since its inception in 2005 . I can’t imagine Firefox without this addon. There’s been dozens of fresh installs and this is one of the first addons I install.

It simply makes browsing multiple tabs such a convenience. Don’t get me wrong “modern day” Firefox tab management is serviceable but back in the day this addon was an absolute must have. TMP still packs a lot useful features that Firefox doesn’t include.

Couple TMP with Tab Groups and you’ve got yourself a real powerhouse.

All-in-One Sidebar

All-in-One Sidebar

 

Current Rating: 5/5 stars

All-in-One Sidebar enables you to open several windows as sidebar panels and easily switch between them. It opens bookmarks and history as well as dialogues such as downloads, add-ons, page info, error console, and more — all in the sidebar. It won’t obstruct your view, either: simply show or hide it with a switch. Plus, you can configure this add-ons behavior on browser startup or in full-screen mode. Get more info on the many features of this add-on here.

Add-on User Review:

I have used AIOS for years and cannot imagine not having it. The ease of opening it by just touching left of screen with mouse is great now – genius all those years ago. It acts like a split screen and is far better than using the bookmarks, history, ad-dons etc drop down menus. There is a great support site and Ingo is a dedicated developer. I always give money when I can.

Resurrect Pages

Resurrect Pages

 

Current Rating: 5/5 stars

Broken links and dead pages are frustrating for users and developers alike. Thanks to Resurrect Pages, you can resurrect and view pages long given up for dead. This handy add-on searches the four main page cache/mirrors including Google Cache, The Internet Archive, WebCite, and archive.is to bring most pages back from the dead (but not all, as not all pages are cached, of course). The source code is available on GitHub.

Add-on User Review:

Works beautifully at streamlining something you may find yourself doing frequently in research – resurrecting pages.

Let us know your thoughts on Chrome vs Firefox for web development use in the comments below!

How to Autoscale Azure App Services & Cloud Services

Barry Luijbregts Developer Tips, Tricks & Resources, Live Queue Leave a Comment

One of the major benefits of using the cloud is scalability. With Azure autoscaling, you can scale up and out like you couldn’t do with your own hardware, as much as your wallet allows. But more importantly, you can scale down and in when you don’t need the resources, thereby saving money. This is something you wouldn’t be able to do if you bought a bunch of servers to accommodate your peak load.

Scale up, out, down and in

Basically, there are two main ways to scale resources:

  • Vertical: Scaling up and down
  • Horizontal: Scaling out and in

Scaling up and down speaks for itself, you scale the number and power of resources up and down. For instance, you provision a bigger server with more horsepower to scale up and a smaller, slower one to scale down.

Scaling out and in is different. When you scale out, you increase the number of hardware resources that the application runs on – you increase a number of instances. This could mean that instead of using 2 servers, you use 3. Scaling in is the opposite: you decrease the number of instances that your application runs on.

Autoscaling Azure App Services

Out of the box, Azure App Services provides scaling abilities. You can scale both ways, up and out. There are many ways to scale, including third-party applications. I’ll only discuss the options that you have when you just use the capabilities within Azure.

Scaling App Services Up

You can scale up in two ways:

You can only scale up and down by scaling the App Service Plan. The App Service Plan basically represents the resources that your App Services use – the hardware that runs them. You can have many App Services running in one app service plan. So when you scale up or down, you will do that for all the Apps in the service plan.

Scaling up or down is a manual operation, even when you use the Azure Rest API. Out-of-the-box, there is no capability to scale up or down based on a schedule or a metric, like CPU usage. If you want to automate that, you’d have to build that yourself, using the Rest API, or look into third-party tooling. I think that the reason why this isn’t an out-of-the-box functionality is because it would scale all Apps in the app service plan and that Microsoft feels that this should be a well-thought-out action.

The image below shows how you can scale up or down in the Azure Portal. You choose a higher or lower pricing tier for the App Service Plan and apply it. In my experience, this is usually applied very quickly, in under a minute.

Scaling App Services Out

You can scale App Services out and in using the Azure Portal and the Azure Rest API. Scaling out will increase the number of instances of your App that are running. You can scale out and in with the following methods:

  • Manual
  • CPU percentage
  • Scaling rules (performance metrics and schedule)

The simplest way of scaling instances is manually. You literally have a slider that lets you slide a number of instances up or down.

Another way is to scale on just CPU percentage. Using this, you can automatically scale up or down based on CPU Percentage.

A more controlled way to scale is to use scaling rules. These consist out of a schedule and optionally, rules.

  • You can create a schedule to scale. For instance, you could scale down to 2 instances every day at 17:00
  • You can create rules that always apply or only apply at certain times according to a schedule
    • These rules are based on performance metrics like CPU, Memory, Disk queue or HTTP Queue length or the amount of data coming in or out
      • These are the metric types that you can use when you create rules in the Azure Portal
      • When you use the Azure REST API, you can use more and different performance metrics
    • The example in the image shows a rule to scale up by one instance when the CPU load is on average, above 50%, in a measuring period of 10 minutes. When this happens, it waits 5 minutes until another scale operation can be applied (that is what the cool down period means)

A scale out or in action typically takes a couple of minutes to complete. Keep that in mind when you design your scaling strategy.

AutoScaling Azure Cloud Services

Cloud Services are one of the oldest services that Azure has to offer. They offer an abstraction over Virtual Machines, just like Azure App Services do, although cloud services are more tied to virtual machines.

With App Services, you can’t remote desktop into the underlying machine, because Azure really abstract the machine(s) away through its elastic magic. There could be multiple machines running your App Service instance. With Cloud Services, you specifically run your service on one or more virtual machines of a certain type. You can even remote desktop into the machines if you want to.

Cloud services were the beginning of Azures’ Platform-as-a-Service offering and were pretty revolutionary at the time. They do have lots of drawbacks. Amongst other things, they are extremely slow to deploy to. This is because of their tight relationship with virtual machines. The same goes for scaling. When you scale up, you literally provision another virtual machine to run the services – that takes time.

Scaling Cloud Services Up

You can scale a cloud service up by changing the deployment configuration of the service. You can also change this configuration through the Azure Rest API.

In the file called ServiceDefinition.csdef, you indicate how large or small the instances need to be:

<WebRole name=”WebRole1″ vmsize=”Small”>

This is a very clunky way to scale up, but nevertheless, it’s possible.

Scaling Cloud Services Out

You can scale out or in by changing the deployment configuration of the service, just like scaling out.

In the file called ServiceConfiguration.environmentname.cscfg, you indicate how many instances you want:

<Role name=”WebRole1″>

<Instances count=”1″ />

Just like App Services, you can also scale out or in from the Azure Portal. You can also use the Azure Rest API to do this. You have almost the exact same capabilities as for App Services:

  • Scaling manually
  • Using scaling rules (performance metrics and schedule)
    • The only thing that is different from App Services, is that you can’t use the Memory performance metric to scale

Remember that scaling cloud services is a slow process, as it has to literally provision and de-provision virtual machines. Therefore, adding an instance can easily take 5 minutes or more.

Conclusion on Azure Autoscaling

Azure provides the ability to scale for most of its services, not only App Services and Cloud Services. This is extremely useful for the availability, performance, and cost of your application. This is what makes the cloud a great tool to work with. You can scale to unimaginable amounts of resources and you can scale back when you don’t need them anymore.

The trick is to create a good scaling strategy. Out of the box, Azure can help you with your basic requirements and scale out when needed and in when you don’t. You will minimize downtime and keep customers happy.

But you need to figure out what fits best for your application. Which metrics you use, or which schedule is best. And what the right performance to cost ratio is. You can only find this out by trying it and extensively monitor the behavior of your app with something like Stackify Retrace to find out what works and what doesn’t.

Take advantage of the cloud and scale! Let me know what you think in the comments.

 

Comparison: Azure App Services vs Cloud Services

Matt Watson Developer Tips, Tricks & Resources, Live Queue Leave a Comment

Microsoft Azure provides multiple ways to deploy your applications to the Azure cloud. Azure App Services and Cloud Services are the two most popular, and easiest, ways to deploy your applications. They both support web applications and background service type applications.

In this article, we will provide a comparison between Azure App services and Cloud Services, along with a quick overview of each.

App Services

Microsoft Azure App Services are a platform as a service (PaaS) offering. Azure runs App Services on a fully managed set of virtual machines in either a dedicated or shared mode, based on your App Service Plan. There are 4 types of App Services –

  1. Web App – It is used for hosting websites and web applications. (Previously Azure Websites)
  2. API App – It is used for hosting the RESTful APIs.
  3. Logic App – It is used for business process automation, system integration and sharing data across clouds.
  4. Mobile App – It is used for hosting mobile app back ends. (Previously delivered by Azure Mobile services)

Pros

  • Very easy to deploy to, deploys much faster than Cloud Services
  • Deployment slots are free
  • Built-in A/B testing features
  • Can combine multiple applications together to save money
  • Extendable with Site Extensions

Cons

  • No server access
  • Cannot use all monitoring tools because you can’t install an agent
  • Limited Windows performance counters
  • Limited VM sizes and specs to pick from

App Services WebJobs

Azure WebJobs provide an easy way to run background processes. These can be configured to run on a schedule, on demand or continuously. For example, Stackify’s Azure monitoring agent runs continuously in the background for every Azure App Service instance that you have. There is no additional cost associated with running WebJobs. You may have to scale your App Service Plan up or out a little to handle the extra resources utilized by the WebJobs.

Pros

  • Easy to deploy
  • No cost beyond App Service Plan costs
  • Easy way to setup scheduled tasks

Cons

  • Apps must work in a limited permission sandboxed environment

Cloud Services: Web & Worker Roles

Cloud services were the very first Microsoft Azure Platform as a service (PaaS) offering. They provide the ability to deploy web apps (web roles) and background services (worker roles) onto Azure virtual machines. Azure handles all of the initialization of the servers, deployment to them, Windows Updates, etc.

Web Roles are used to host web applications. Worker Roles are used to host background services, similar to Windows Services.

Pros

  • Can pick from several VM sizes
  • Full server administrator access
  • Can install a wide array of software on the server itself
  • Full access to Windows performance counters and ETW

Cons

  • Very slow to deploy to
  • Staging slots cost money to use
  • Can’t easily combine multiple apps together
  • Can’t change the VM instance size without redeploying

Comparison Table

The table below compares common App Services and Cloud Services features:

Azure Web Apps Cloud Services
Supported Platforms Support for ASP.NET, Node.js, Java, PHP, or Python Support for Java, Node.js, PHP, Python, .NET and Ruby
URL <AppName>.AzureWebSites.Net <CloudServiceName>.CloudApp.Net
DevOps Supports CI, CD using Visual Studio Team Services, GitHub or BitBucket. Supports CI, CD using Visual Studio Team Services, GitHub or BitBucket.
Support for Multi-Tier architecture Yes Yes
Swap build between staging and production environment Yes (free) Yes (additional cost)
Access to server desktop No control Some control
Webserver maintenance Not required, Azure does OS patching and other activities. Not required, Azure does OS patching and other activities.
Visual studio integration Yes Yes
Access to other services like storage, service bus Yes Yes
Configure Start-Up tasks No (must use WebJob) Yes
Deployment time Fast Very Slow
Multiple applications on same servers Yes No
Scale up without redeploy Yes No
Auto-scaling Yes Yes

Conclusion

Both App Services and Cloud Services provide a lot of good features and are a simple way to deploy your applications to the Microsoft Azure cloud.  They are definitely much easier than setting up your own virtual machines! The primary differentiating factor is Cloud Services offers access to the underlying Azure VMs, and App Services do not.

In my opinion, I prefer App Services for these specific reasons:

  • Combine multiple applications together to save money
  • Free deployment slots
  • Faster deployments

Stackify Retrace works perfectly for monitoring App Services and Cloud Services. 

Special thanks to Sanjeev Assudani who helped contribute to this article.

Azure App Services: 3 Limitations & 9 Awesome Features

Matt Watson Insights for Dev Managers Leave a Comment

Azure App Services make it really easy for developers to deploy and manage their applications. They take away all the complexity of dealing with servers, which greatly simplifies the life of a developer. The way that Azure App Services work creates a few limitations that all developers need to understand. This article highlights some of those.

3 Key Azure App Service Limitations

1. Remote Desktop Is Not Available

Typically, when we are deploying an app or troubleshooting application problems, you would tend to remote into the server to look at log files, review IIS settings, look at even viewer, etc. When you first start using Azure Web Apps, you have to get used to this and learn about the other ways of doing most of these functions. Deploying code is done via Visual Studio, git, a build server, or FTP. Viewing App Service log files, event viewer, running processes, and other tasks can be accomplished via the kudu console, Stackify, and/or Azure portal.

2. Limits on Installing 3rd Party Software and Management Tools

One of the biggest benefits of Azure App Services is also a big limitation. You don’t have to manage Windows Server at all and Microsoft is completely responsible for everything. But, you also have no access to install virtually all 3rd party software. This can be a negative if your corporate IT uses traditional monitoring tools like nagios, SolarWinds, Dynatrace, Splunk and many others.

There are some vendors who have adapted their products to work with Azure App Services, like Stackify’s Retrace product, but there are very few. You can check the Azure marketplace to look for potential solutions. Do note that some of the listed products may only work for virtual machines and not Azure Web Apps.

If you are planning to move an app to Azure, you may need to think about how to accomplish certain tasks that your IT department may require. Like how to extract and archive all of the IIS logs for an Azure Web App for security and auditing purposes.

3. Performance Counters Are Not Available

Performance counters can be a pain to work with. But they are critical to understanding key metrics about IIS, applications, and the .NET CLR. Without performance counters there is no way to monitor things like garbage collection, IIS queuing and a lot of other data that can be critical to troubleshooting weird performance problems.

Sorry, but you can’t view or monitor any of these key metrics that Microsoft recommends in Performance Counters for ASP.NET. We are anxiously waiting for Microsoft to add support for this!

Also, if you had been using performance counters to track your own custom app metrics there are solutions for that. There are third party companies that have products built around these types of custom metrics, including Stackify (see our docs to learn more).

9 Awesome Azure App Services Features

1. Easiest Way to Deploy Apps to the Cloud

If you are using Visual Studio, deploying your application to Azure is just a couple of clicks. You can also deploy your app automatically via git, Powershell, and other options. Azure automatically handles deploying your code to multiple servers and high availability. Deployments are very fast.

Azure-App-Service-Deploy-Click

2. Combine Multiple Apps to Save Money

One of the best features is being able to combine multiple applications together. If you used Azure Worker Roles before, they required that each app had its own servers. You can save a lot of money by switching to App Services and combining your application together. If you want to separate them, you can just put them on different App Service Plans, which is more like different groups of servers.

3. Automatic High Availability & Auto-Scaling

You can automatically or manually autoscale your app out to use additional servers. Based on your App Service Plan, you can define the server size and the rules about autoscaling. Azure also automatically takes care of high availability and provides a 99.95% SLA.

Azure-App-Service-scaling-config

4. Low Cost

Microsoft Azure offers pay-as-you-go pricing. It is very cost effective for small and medium enterprises. App Services also has built-in load balancers that help save infrastructure costs.

Azure-App-Service-low-cost

You only pay for the services that are active on Azure account. With this flexibility, Developers can purchase the services only when necessary during the development process.

Azure-App-Service-pick-services

5. Security

Along with the security, given by the developer, Azure App Service also provides Infrastructure and platform security where the application is run securely on the cloud. App service provides layered security like multi-factor authentication to access the application. Azure App Service is also ISO and PCI compliant.

6. IDE Integration

Azure has made it much easier to deploy your applications directly from various IDE’s like Visual Studio (with Azure SDK), Xcode, IntelliJ IDEA. It helps the developer on the first hand aiding to get deeper insights into the application development lifecycle covering the basic tasks of developing the application by debugging and other code integrations.

Azure-App-Service-ide-integration

Azure SDK on Visual Studio makes all the instances first class citizens making it easy to query the database hosted on one of the Azure App Services and make CRUD operations easier and live on Azure app.

7. Deployment Slots

Deployments slots are one of the best features for App Services. They essentially provide a duplicated environment for your app so you can deploy a new version to a “staging” slot to test before swapping to production. The best part is they don’t cost any money like they did with Cloud Services.

8. No Server Maintenance

The bad news is you don’t have access to login to the servers. The good news is you don’t need to. All of you have to worry about is deploying your app. Microsoft Azure will take care of deploying it to servers, keeping the servers running, and all the other stuff that nobody wants to spend time on. App Services do have various logs that you can access to troubleshoot application issues.

9. Site Extensions

Site Extensions are essentially plug-ins that can add various types of functionality to your applications. Including various monitoring solutions, additional management functions, Let’s Encrypt SSL, Azure Service Profiler, and much more.

Monitoring Azure App Services?

If you are in need of a good developer solution for monitoring the performance of your Azure applications, be sure to check out Stackify! We have been using Azure for 4 years and we have the best application performance monitoring solution for Azure & .NET developers available! If you’re ready to check out Stackify with your own data, click here to begin your free trial today.

Have questions about Azure? Hit us up on Twitter @Stackify and maybe we can help. We know a few things about building and scaling massive apps on Azure.

Why APM is Valuable to Every Part of Your Business

Matt Watson Insights for Dev Managers, Live Queue Leave a Comment

Virtually every business depends on mission-critical software to run their business. Any slight application slowdown or outage can lead to legions of unhappy employees or customers. Application Performance Management (APM) solutions can help monitor for performance issues, but they can also be used to gain insights to proactively improve performance as well.

APM is not just a tool for IT Operations. APM has grown into an essential tool that can be utilized by many departments within your business.

IT OPERATIONS

When you think of APM, you normally think about IT operations using it for monitoring mission-critical applications. Instead of only monitoring servers and infrastructure, APM solutions can help better track performance at the application level. Including overall performance, key transactions, and much, much more.

DEVELOPMENT TEAMS

APM solutions collect a lot of data. Including code level performance, overall application usage and performance, metrics, log messages, errors, real user monitoring, and more. All of this data can be very valuable for developers when it comes to researching bugs in production. It can also be used to identify parts of an application that can be optimized and validating those performance optimizations.

Developers can also use APM in QA to test and validate the performance of their code before it gets to production.

QA

Traditionally, APM is thought to be used mostly in production. However, APM can be extremely valuable as part of your QA process to find problems before they get to production. It could be used to look for any overall change in performance, new application errors found load testing validation and more.

DATABASE ADMINISTRATORS

Most APM solutions track the performance of SQL queries. This can be useful information for your DBAs to augment other tools they may also have. They could potentially use APM for various monitoring capabilities. For example, monitoring how often a specific SQL query is taking or how often it is being called.

PRODUCT OWNERS AND EXECUTIVES

The product owner ultimately cares a lot about the application, its functionality, usage, service availability, and performance. APM gives product owners visibility into the performance of their application and potentially into metrics around how much it is being used. APM dashboards are popular with product owners and other executives in a company.

CUSTOMER SERVICE

When a customer calls and says your application is slow, what do you do? After a quick login test to your app, your customer service member would likely tell the customer that everything seems to be working fine, and the problem is likely on their end.

The problem is a user could be accessing your application on a different server, database, or even in a different data center. If your customer service team has access to basic APM dashboards, they could leverage those to better understand if any application problems may exist or not with more certainty. They also wouldn’t have to bug the IT department every time a customer complains.

SALES AND MARKETING

Major application outages are always a big PR problem for marketing teams, but hopefully, they can use it to instead rave about how fast your application is! They could also use it to gather insights into how parts of your application are being used. Just like your customer service team, your sales team is going to get flooded with calls if your site is down.

CONCLUSION

Application performance is important to your entire business. APM solutions collect an amazing out of data and usually provide very flexible reporting options. I would encourage you to think of ways to leverage the value of it anywhere that you can.

This article was originally posted on APMDigest.com

Top 50 Integrated Developer Environment Tools (IDEs)

Top Integrated Developer Environments (IDEs): 51 Powerful Dev Environments for Streamlined Development

Angela Stringfellow Developer Tips, Tricks & Resources Leave a Comment

The work of a developer is complex and time-consuming, but arming yourself with the most sophisticated tools makes the job both quicker and easier. That’s why many developers turn to integrated development environments (IDEs) to manage workflows, access a suite of development tools within a single dashboard, and reduce errors that can have catastrophic consequences if deployed unchecked.

IDEs run the gamut from the simple to the incredibly sophisticated, with some aiming for a clutter-free UI in a lightweight tool to maximize speed for smaller-scale tasks and others offering cross-platform, multi-language support in robust environments capable of handling the most complicated development projects.

Whether you’re looking for a simple, language-specific IDE or a full-featured platform to manage most or all of your development projects, we’ve put together this list of 51 of the most useful, robust, and feature-rich IDEs to make it easier for busy developers to find the tools they need to streamline their workflows. Note that the following 51 IDEs aren’t ranked or rated in any particular order of importance; rather, we’ve listed them in alphabetical order for the sake of simplicity and easy reference.

  1. Amethyst 2

Amethyst (IDE Tools)

Amethyst 2 is an IDE developed by Sapphire Steel Software, founded by Dermot Hogan and Huw Collingbourne in 2006. Amethyst 2 is offered in two editions, including a commercial edition, Amethyst Ultimate, and a free edition, Amethyst Personal. Amethyst Ultimate includes a variety of tools including Amethyst Designer, code refactoring, a debugger, and more.

Key Features:

  • Amethyst Personal offers a limited range of editing features
  • Amethyst Ultimate:
    • Amethyst Designer
    • Extensive code refactoring and code navigation
    • Powerful IntelliSense
    • Suite of debugging tools
    • Method and variable renaming with preview
    • Document navigator
    • Scratchpad to drag-and-drop reusable code snippets
    • Snippet editor to create custom snippets
    • Editing and project management

Cost:

  • 30-day trial access to Amethyst Ultimate
  • Amethyst 2 Ultimate: $299
  1. Android Studio
    @AndroidDev

Android Studio (IDE Tools)

The official IDE for Android, Android Studio provides the fastest tools for building apps across all types of Android devices. A flexible build system and instant build/deploy system enable developers to focus on building feature-rich, high-quality apps and deliver quickly.

Key Features:

  • Instant Run
  • Intelligent code editor
  • Feature-rich Android Emulator 2.0
  • Flexible build system
  • Easily share code among different versions of your apps
  • Code templates
  • GitHub integration

Cost: FREE

  1. Anjuta DevStudio

Anjuta Dev Studio - IDEs

Anjuta DevStudio is a GNOME integrated development environment with versatile functionality including project management, source control and version control, debugging, and more in a simple, intuitive user interface.

Key Features:

  • Integrated glade for WYSIWYG UI development
  • Wizards and project templates
  • Integrated GDB for onboard debugging
  • DevHelp integration
  • Supports C, C++, Java, JavaScript, Python, and Vala

Cost: FREE

  1. AppBuilder
    @theappbuilder

AppBuilder (IDE Tool)

Offering a single framework for developing applications for iOS, Android, and Windows Mobile platforms, AppBuilder supports web-standard technologies including HTML, CSS, and JavaScript. Users can build on their choice of five IDEs with full integration, or opt to build within their web browser.

Key Features:

  • Single shared JavaScript code base for all mobile platforms
  • Code changes applied instantly and look native on all devices
  • Built-in simulation, debugging, and deployment tools for all platforms
  • Build from any Windows, Mac or Linux computer
  • Simply click “save” to experience your code changes
  • Plugins for Visual Studio and Sublime Text
  • Command Line Interface (CLI) works alongside any IDE
  • Integrates with NativeScript, Angular, Ionic, Kendo UI Mobile, jQuery Mobile and more
  • Dozens of sample apps
  • Verified Cordova/PhoneGap plugins

Cost:

  • Developer: $39/user/month
  • Business: $149/user/month
  • Enterprise: Contact for a quote
  1. Aptana Studio 3
    @Aptana

Aptana (IDE Tool)

Aptana Studio 3 is a powerful, open-source IDE harnessing the power of Eclipse to provide a fast and seamless environment for developing and testing complete web applications from a single environment. Supporting all major browser technology specs, Aptana Studio 3 eliminates compatibility and testing obstacles to enable rapid deployment.

Key Features:

  • HTML, CSS, and JavaScript Code Assist to aid authoring of HTML, CSS, JavaScript, PHP, and Ruby
  • Supports the latest HTML5 specifications
  • Multiple protocols including FTP, SFTP, FTPS, and Capistrano
  • Automatically publish Ruby & Rails apps to hosting services like Heroku and Engine Yard
  • Integrated debugger allowing you to set breakpoints, inspect variables, and control execution
  • Git integration; facilitates Git-based deployments
  • Built-in terminal for quick command line access
  • Customization: Extend the core capabilities through scripting of custom commands

Cost: FREE

  1. Arduino IDE
    @arduino

ArduinoIDE

Arduino is an open-source electronics platform offering flexible, easy to use hardware and software. Arduino IDE offers both the browser-based Arduino Web Editor and the downloadable Arduino IDE, enabling you to work how you’re most comfortable.

Key Features:

  • Arduino IDE:
    • Easily write code and upload it to the board
    • Runs on Windows, Mac OS X, and Linux
    • Based on Processing and other open-source software
  • Arduino Web Editor:
    • Save your sketches in the cloud
    • Always have the most up-to-date version of the IDE
    • Includes all contributed libraries
    • Support for new Arduino boards

Cost: FREE

  1. Atom
    @AtomEditor

Atom

A free, open-source, futuristic text editor, Atom is “hackable to the core,” meaning you can customize it to do just about anything you want it to. At the same time, you can also use Atom with ease without ever touching a config file. In other words, Atom is totally adaptable to meet your needs.

Key Features:

  • Cross-platform editing; works on OS X, Windows, and Linux
  • Built-in package manager – search for and install packages or create your own
  • Smart autocompletion
  • Find and replace
  • File system browser – find and open files, projects, or multiple projects in one window
  • Multiple panes for easily comparing and editing code across files
  • Pre-installed with four UI and eight syntax themes
  • Built with HTML, JavaScript, CSS, and Node.js integration

Cost: FREE

  1. BlueJ

BlueJ (IDE Tool)

Develop Java programs quickly and easily with BlueJ, a development environment with a smaller, simpler interface designed with teaching in mind, enabling beginners to get started quickly without being overwhelmed with features. BlueJ is part of the Raspbian distribution and is installed by default on the Raspberry Pi image.

Key Features:

  • BlueJ is used as a platform for teaching university courses
  • Many teaching resources available in the BlueJ Educators Community
  • Interact with objects to inspect value, call methods on them, pass them as parameters, and other actions
  • Directly invoke Java expressions without compiling; BlueJ is a powerful graphical shell/REPL for Java
  • Runs on Windows, Mac OS X, Linux and other platforms running Java
  • 15+ year-old product actively supported and updated by a full-time dev team
  • Original BlueJ features including object bench, code pad, and scope coloring
  • Extensions to enhance base BlueJ functionality

Cost: FREE

  1. Brackets.io
    @brackets

Brackets

A modern, open-source text editor that makes designing in the browser easy and seamless, Brackets.io is designed for web designers and front-end developers. An Adobe project, Brackets is released under a MIT License. With built-in visual tools, Brackets offers the right amount of help when you need it without disrupting your creative process.

Key Features:

  • Inline editors
  • Live preview
  • Preprocessor support
  • Robust social community on Twitter, GitHub, Facebook, and more
  • View backlog on Trello or Waffle

Cost: FREE

  1. C-Free

C-Free

A free IDE for C and C++ development, C-Free can be used as an editor or as a stand-alone programming environment. You can edit, build, and debug programs with total autonomy, with a single, compatible workflow with integrated tools and features to extend your capabilities.

Key Features:

  • Includes MinGW 5 package
  • Small, 14MB installation file size; 80MB total unpackaged size
  • Rapidly make and implement changes in a fraction of the time compared to other IDEs
  • Hovering tool tips to boost coding speed
  • Detects and builds changes quickly without makefile
  • Seamlessly integrates with GDB for rapid response of tracing

Cost: FREE

  1. CLion
    @jetbrains

CLion (IDE Tool)

A cross-platform IDE for C and C++, CLion offers native C and C++ support, including C++11 standard, libc++, and Boost to manage routine tasks so you can focus on the most important aspects of development. Loaded with features, CLion is a robust IDE for C and C++ developers.

Key Features:

  • Seamless, intuitive navigation
  • Simple keyboard shortcuts for code generation
  • Refactoring, including automated refactoring
  • Instantly identifies potential code issues
  • Data Flow analysis
  • Integrated debugger
  • GDB or LLDB available as a backend
  • Embedded terminal
  • Semantic highlighting
  • New CMake workflow

Cost:

  • CLion:
    • $199.00/1st year
    • $159.00 /2nd year
    • $119.00 /3rd year onwards
  • All Products Pack:
    • $649.00 /1st year
    • $519.00 /2nd year
    • $389.00 /3rd year onwards
  1. Cloud9
    @Cloud9IDE

Cloud9 (IDE Tool)

Powerful and flexible, Cloud9 facilitates public and private workspace collaboration. Work with team members remotely, in real-time, to write, debug, and run code from the cloud. Group editing and chatting functions enable seamless communication for geographically dispersed teams. Coupled with a plethora of useful features and functionality, Cloud9 is a robust IDE with powerful capabilities.

Key Features:

  • Deployment options include Heroku, Cloud Foundry, and Windows Azure
  • Powerful collaboration features
  • Easy system setup, no maintenance
  • Workspaces powered by Docker Ubuntu containers
  • Built-in Terminal and Runners
  • Workspace cloning to replicate your complete environment
  • Language tools including Code Completion suggestions, Outline view, and Jump to Definition of variables for easy navigation
  • Debugger
  • Split view
  • 30+ themes that control syntax highlighting and UI
  • Run Panel to run any language
  • Extensive set of default Runners including Ruby, Python, PHP/Apache, CoffeeScript, Node.js
  • Key Bindings Editor
  • Configure Cloud9 to go into VIM, Emacs, or Sublime mode
  • Built-in image editor
  • 300 browser/OS combinations

Cost:

  • FREE – free public workspaces, 1 private workspace
  • Individual: $19/month – unlimited private workspaces, 3 hot workspaces
  • Teams: $29/user/month – unlimited team workspaces, 10 hot workspaces
  • Education: $1/teacher/month – free public workspaces, 1 private workspace/student
  1. Coda2

Coda 2 (IDE Tool)

Featuring the same Editor, Terminal, CSS, Files, and other essentials for developing web apps, Coda2 is a dramatic improvement on the original version you already know and love. More than 100 new features extend the capabilities of Coda2 to create a lightweight, simple, yet incredibly powerful code editor (supporting two dozen programming languages) with multiple plugins for extensibility.

Key Features:

  • Supports 24 languages
  • Instant switching between editor and preview
  • Customizable column guides, color-coded tabs, and other visual editor features
  • Site-wide autocomplete of functions, classes, and variables
  • Manage and discover plugins
  • Track and publish files modified outside of Coda
  • Built-in Terminal and MySQL editor
  • Open files locally or edit remotely on FTP, SFTP, WebDAV, or Amazon S3 servers
  • Coda for iOS available for your iPad

Cost: $99

  1. Code::Blocks

Code::Blocks

Built around a plugin framework, Code::Blocks is designed to be fully extensible and configurable with a consistent look, feel, and operation across platforms. Designed for C, C++ and Fortran, this open-source and flexible IDE is the cross-platform functional tool for developers with demanding needs.

Key Features:

  • Compiling and debugging functionality (provided by plugins)
  • Add any functionality by installing or coding a plugin
  • Supports multiple compilers
  • No makefiles needed
  • Support for parallel builds
  • Inter-project dependencies
  • Full breakpoints support
  • To-do list management with different users
  • Open files list to quickly switch between files
  • Debugger
  • Multi-target projects
  • Imports Dev-C++ projects

Cost: FREE

  1. Codefresh
    @codefresh

Codefresh (IDE Tool)

A continuous delivery and automation platform for Docker, Codefresh enables you to build, test, and deploy apps, as well as gather feedback on your container-driven applications. Building and testing your containers on every branch or pull request, Codefresh helps you streamline seamless deployments and share with your team or customers for user acceptance testing or to offer feature previews.

Key Features:

  • Fastest builds for Docker images
  • Store images in a Docker registry of choice or the built-in Codefresh registry
  • Monitor your Git repository
  • Runs unit tests with each Docker build
  • Runs integration, UI, and other tests on running Docker images or composition
  • Store test results as part of the image’s metadata
  • Share new feature implementations with your team for comments and feedback
  • Capable of auto-deployment at the end of every build process
  • Works seamlessly with Docker, Git Hub, Quay, Jenkins, and other tools
  • Collaboration via Slack/Hipchat

Cost:

  • Open Source: FREE – 1 Dev/Test environment, 1 concurrent build
  • Basic: $99/month – 3 Dev/Test environments, 3 concurrent builds
  • Pro: $299/month – 5 Dev/Test environments, 5 concurrent builds
  • Enterprise – contact for a quote
  1. CodeLite

CodeLite

An open source, cross-platform IDE for C, C++, PHP, and Node.js coding languages, CodeLite is a lightweight and efficient IDE with the features you need for seamless development including workspaces, folder management with multiple outline view options, debugging, and more.

Key Features:

  • Specialized in C, C++, PHP, and JavaScript (primarily for Node.js backend developers)
  • Supports syntax highlighting for other languages
  • Default, built-in debugger
  • Workspace management with virtual folders for projects
  • Plugins to extend functionality
  • Code formatter support for XML files
  • Git plugin
  • Outline views to change hierarchy
  • Add external tools that are automatically triggered when a file is saved

Cost: FREE

  1. Codenvy
    @CodenvyHQ

Codenvy

Codenvy is powered by Eclipse Che, a developer workspace server and cloud-based IDE for instantly-available and instantly-shareable workspaces. A sophisticated offering, Codenvy boasts one-click Docker environments, team onboarding and collaboration, a workspace platform for DevOps, and much more.

Key Features:

  • Quick installation
  • Multi-machine workspaces
  • Easily accessible workspaces from any browser or local IDE
  • Rules and permissions to control access to workspaces
  • Seamless integration with JIRA issue management
  • Scalable workspace management platform for DevOps

Cost:

  • Codenvy for Teams: $500 per user per year
  • Codenvy for Developers: Free up to 3GB RAM
  1. Eclipse
    @EclipseFdn

Eclipse

Eclipse is an open source community of tools, projects, and collaborative working groups, also offering several popular IDEs including desktop IDEs, cloud IDEs, and IDE platforms including the widely used Eclipse Che and Orion platforms. Whether you’re looking for a desktop IDE, a cloud-based environment, or other tools to support your development work with any language, Eclipse offers a tool that meets your needs. While each IDE offered by Eclipse functions independently, if you’re looking for IDEs from a reputable source for various programming languages, the Eclipse suite is worth a look.

Key Features:

  • Desktop IDEs:
    • Java IDE
    • Java EE
    • C/C++ IDE
    • PHP IDE
  • Cloud IDEs (for Java, JavaScript, CSS, and HTML):
    • Orion
    • Eclipse Che
    • Dirigible
  • IDE Platforms:
    • Eclipse Platform
    • Orion
    • Eclipse Che

Cost: FREE

  1. Eric Python IDE

Eric Python

Eric Python IDE is a full-featured IDE written in Python. Based on the cross-platform Qt GUI Toolkit, it integrates Scintilla, a highly flexible editor control. Designed for use as an intuitive, everyday editor as well as a more robust tool for professional project management, Eric also boasts a plugin system for extending its native capabilities.

Key Features:

  • Unlimited editors
  • Configurable window layout and syntax highlighting
  • Sourcecode autocompletion, calltips, and folding
  • Advanced search functionality enabling find and replace across a full project
  • Integrated version control interface for Mercurial, Subversion, and Git
  • Integrated chat and shared editor for collaboration
  • Integrated Python debugger, sourcecode documentation system, profiling and code coverage support, automatic code checkers, task management, and more
  • Interactive Python shell including syntax highlighting and autocompletion
  • Ability to run external applications within the IDE
  • Many other built-in features

Cost: FREE

  1. Geany

Geany

Geany is a text editor utilizing the GTK2 toolkit, but it contains most of the essential features of an IDE. Designed to be a simple, small, and fast IDE, it has only a few dependencies from other packages and supports many file types.

Key Features:

  • Syntax highlighting
  • Code folding
  • Symbol name auto-completion
  • Auto-closing XML and HTML tags
  • Call tips
  • Code navigation
  • Symbol lists
  • Build system for compiling and executing code
  • Simple project management
  • Extensive list of plugins from the Geany Plugins Project

Cost: FREE

  1. Idle IDE

IdleIDE (IDE Tool)

Idle IDE was designed for Python but offers several customization options and supports Python, XML, and custom languages. It’s a straightforward and intuitive IDE that’s ideal for developing in custom scripting languages.

Key Features:

  • Intuitive file navigation system
  • Multi-window text editor with syntax highlighting
  • Autocompletion
  • Operates on Windows and Unix
  • Built with Python using the tkinter GUI toolkit
  • Integrated debugger
  • Python Shell with syntax highlighting
  • Call stack visibility
  1. IntelliJ IDEA
    @jetbrains

IntelliJ IDEA

IntelliJ IDEA is a Java IDE that supports Java 8 and Java EE 7, offers coding assistance for languages such as Spring, Android, React, AngularJS, and more, and understands a variety of other languages for a comprehensive solution. A comprehensive IDE, IntelliJ IDEA is a robust development environment with wide functionality for all your development needs, and you can extend it even further with IDEA’s robust plugin ecosystem.

Key Features:

  • Powerful static code analysis
  • Ergonomic design
  • Smart completion
  • Chain completion
  • Static members completion (use static methods or constants)
  • Data flow analysis
  • Coding assistance for selected languages
  • Cross-language refactoring
  • Finds duplicate code fragments on the fly
  • Inspects code to detect issues and offer quick-fix solutions
  • Editor-centric environment
  • Plenty of shortcuts
  • Version control and build tools
  • Test runner and coverage
  • Built-in decompiler for Java classes
  • Database tools, application server, and Docker
  • Extended coding assistance for Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, React, AngularJS
  • Understands many languages including Groovy, Kotlin, Scala, JavaScript, TypeScript and SQL

Cost:

  • IntelliJ IDEA Ultimate:
    • $499.00 /1st year
    • $399.00 /2nd year
    • $299.00 /3rd year onwards
  • All Products Pack
    • $649.00 /1st year
    • $519.00 /2nd year
    • $389.00 /3rd year onwards
  1. JCreator

JCreator

JCreator is an IDE for Java, boasting tons of features and functionality in a simple user interface suitable for both beginner and advanced developers. Unlike most Java IDEs (typically written in Java), JCreator is written entirely in C++ to leverage greater speed and agility.

Key Features:

  • Fully customizable user interface
  • Project management
  • Project templates
  • Source code navigation
  • Popup for code snippets and identifiers
  • JSP, Ant, and CVS support
  • Code-completion
  • Feature-loaded debugger interface
  • Editor with syntax highlighting
  • Helpful wizards
  • Automatically starts the appropriate tool when a program is run

Cost:

  • Free: 30-day trial
  • LE: $35 for 1 user
  • Pro: $79 for 1 user
  • Pro: $359 for 5 users
  • Pro: $1,099 for 20 users
  • Pro: $1,600 for 30 users
  1. Kantharos IDE
    @psychip

Kantharos

A rapid and portable IDE for PHP development, Kantharos IDE is designed for offline scripting rather than major web projects. A clean UI coupled with drag-and-drop functionality make Kantharos IDE a truly intuitive environment ideal for developers with offline scripting needs.

Key Features:

  • Code execution time analysis
  • Custom database maintenance
  • Manual web page queries
  • Single-script oriented
  • Built-in debugger
  • Syntax checker
  • Code assistance functions
  • Class and function navigator
  • Keyboard shortcuts

Cost: FREE

  1. KDevelop

KDevelop

KDevelop is a cross-platform IDE supporting popular languages including C, C++, Python, QML and JavaScript, and PHP that’s been in development since 1998. A seamless development for programmers who take on projects of any size, KDevelop combines an advanced editor with semantic code analysis for a dev environment that actually understands your project.

Key Features:

  • Supports a range of platforms from Linux, Solaris, FreeBSD, Mac OS X, Microsoft Windows, and other Unix varieties
  • Based on KDevelop Platform (kdevplatform), the KDE Frameworks and the Qt libraries
  • Basic syntax highlighting and text-based code completion even for non-supported languages
  • Annotate border shows who changed a line and when
  • GUI integration for certain version control systems including Git, Bazaar, Subversion, CVS, Mercurial, and Perforce
  • Support for CMake, QMake, Custom Makefiles (partial), and generic build systems (no automatic include path detection)
  • Invokes automation tools such as make and ninja
  • Navigation widget pops up when mousing over items
  • Code browser mode for browsing an unknown code base
  • Context-sensitive, semantic code completion
  • Semantic and rainbow highlighting
  • Documentation integration
  • Customizable

Cost: FREE

  1. Komodo
    @ActiveState

Komodo

Komodo IDE is a comprehensive IDE for web and mobile app development, featuring a variety of integrations and frameworks in a single, cross-platform polyglot IDE. With support for more than 100 languages, including Python, PHP, Go, Perl, Tcl, Ruby, NodeJS, HTML, CSS, JavaScript, and more, you won’t have a reason to utilize several IDEs for various programming languages.

Key Features:

  • Supports 100+ languages on any operating system
  • Slack sharing for collaboration
  • Integrates with Gulp, Grunt, NPM and Yarn for easy access to common tasks
  • Run emulators, build targets, and easily interact with Cordova & PhoneGap
  • Use or write tutorials for various languages, including Catalyst, Django, Flask, Pyramid, Rails, and more
  • Debug web apps without Chrome tools
  • Supports popular web frameworks

Cost:

  • Community Edition: FREE – Current version(s), non-production use ONLY
  • Business Edition: Starts at $1,200/instance/year – Current versions on production, past versions on production and non-production, and external-facing servers and business critical applications
  • Enterprise Edition: Contact for a quote – Required for site-wide licensing and mission-critical applications
  • OEM Licensing: Contact for a quote – Required for external redistribution
  1. Lazarus

Lazarus (IDE Tool)

A Delphi-compatible, cross-platform IDE, Lazarus offers rapid development with a variety of ready-to-use components and a graphical form designer for creating complex graphical user interfaces. Create your own open source or commercial applications from file browsers to image viewers, database applications, graphics editing software, 3D software, games, medical analysis software or any application you can imagine with Lazarus.

Key Features:

  • 200+ built-in components
  • Extendable with add-ons via Lazarus Package Files (LPKs)
  • Written in Pascal for Pascal
  • Tons of example applications in Lazarus Application Gallery
  • Create programs with no platform dependencies (some exceptions)
  • Made for writing object-oriented Pascal code
  • GPL/LGPL licensing for use for commercial projects
  • Offers a similar programming experience across Windows, Mac OS X, Linux, BSD, Raspberry Pi, and more

Cost: FREE

  1. Light Table
    @idbknox

Light Table

A next-generation code editor, Light Table connects you to your project with instant feedback and by displaying data values throughout your code as you work. Light Table offers all the tools you need, easily integrated within your workflow in order to not disrupt your creative process with cumbersome processes.

Key Features:

  • Embed anything – graphics, games, running visualizations, etc.
  • Fully customizable to your specific projects
  • Quickly and easily test new ideas
  • Evaluation, debugging, fuzzy finder for files, commands, and more fit into your workflow
  • Elegant, lightweight, and clutter-free
  • Add watches to expressions to stream data to Light Table in real-time
  • Inline evaluation
  • Completely open source
  • Plugin manager connects to the central list of plugins – no more searching for the plugins you need
  • Powerful editing

Cost: FREE

  1. MacRabbit Espresso
    @macrabbits

MacRabbit Espresso

Turbo-charge your workflow with MacRabbit Espresso’s powerful feature set. With built-in CSSEdit 3, Espresso offers award-winning visual tools, efficient coding with live styling, and the flexibility of tabs with smooth integration with your project files.

Key Features:

  • CSS3 support for multi-browser gradients, shadows and more
  • See how your changes impact your project with X-ray
  • CodeSense, Zen coding, and a drag-and-drop Navigator
  • See CSS updates in real-time – no need to save, publish, and reload
  • Supports HTML5, CSS3, JavaScript and PHP; all-new Ruby, Python, Apache and Markdown
  • Extendible with XML/JS Sugars
  • Project-wide find and replace, Quick Filter and colorized regex
  • Quick Publish, Server Sync and Browse for server-based workflows

Cost:

  • 15-day trial
  • $59 (beta offer)
  • Standard cost: $79
  1. MariaMole

MariaMole

An open-source IDE for Arduino, MariaMole offers a simple-yet-advanced interface for coding and uploading to Arduino boards. Choose to automate some parts of the code or opt to create your own code entirely, work with multiple projects simultaneously, and more with MariaMole.

Key Features:

  • Use the code pre-processor to automate some parts of the code
  • Work with several projects simultaneously
  • Maintain distinct specifications for each project; upload to different Arduino boards
  • Import existing Arduino sketches and libraries
  • Create new projects based on examples
  • Compiles, links and uploads your programs to your Arduino boards
  • Project properties wizard for customizing options
  • Works on Windows, Linux and OS X; files created with MariaMole compatible with these same systems
  • Imports and exports your projects to Arduino sketches

Cost: FREE

  1. Microsoft Visual Studio IDE
    @VisualStudio

Microsoft Visual Studio IDE

Microsoft’s Visual Studio IDE is available in both Windows and Mac versions for use on either type of machine. Visual Studio for Mac is a mobile-first, cloud-first IDE made for the Mac, while Microsoft Studio 2017 is a full-featured IDE for productive app development. Both offer robust features enabling you to develop, debug, collaborate, and extend with ease. Develop Windows apps and games, native or hybrid apps for Android, iOS, and Windows, Azure apps, web apps, Office apps and tools, cross-platform games, and more.

Key Features:

  • Write code accurately and efficiently without losing file context
  • Refactor, identify, and fix code issues
  • Write your own extensions
  • Quickly find and debug bugs cross languages, locally or remotely
  • Debug across code history
  • Find and diagnose performance issues without leaving the debugger workflow
  • Plan, execute, and monitor your entire testing effort
  • Quality metrics, indicators, and test status reporting
  • Manage your source code in Git
  • Use Visual Studio Team Services to manage code and bugs and work items for your entire project
  • Variety of tools, controls, and templates available from Microsoft, partners, and the community

Cost:

  • Visual Studio Community: FREE
  • Visual Studio Professional:
    • Standalone License: $499
    • Standard Subscription: $1,199 ($799 to renew)
    • Cloud Subscriptions: $539/year, $45/month
  • Visual Studio Enterprise: Contact for a quote
  1. Monkey Studio

Monkey Studio

A cross-platform IDE written in C++/Qt 4, Monkey Studio originally intended to support only Qt 4; however, it has evolved to support Qt development and any type of project. It’s a complete, fast, and powerful IDE for Qt 4 that functions on any platform supported by Qt.

Key Features:

  • Designer and Assistant
  • Flexible plugin system for infinite expansion
  • Released under GNU GPL
  • Works on Windows 98 SE, XP and Vista, Mac OS X 10.3 and up, Mandriva, Suse, Fedora, Frugalware, Gentoo and debian/Ubuntu/Kubuntu
  • Customizable QScintilla-based code editor
  • Syntax highlighting for 22+ languages
  • Automatically detects End of Line and indentation modes
  • Templates wizard
  • Code restyling
  • Automatic completion
  • Search and replace
  • Navigator shows classes, methods, functions, and variables
  • GNU debugger

Cost: FREE

  1. MonoDevelop

MonoDevelop

Quickly write desktop and web apps on Linux, Windows, and Mac OS with MonoDevelop, a cross-platform IDE for C#, F#, and more. Maintain a single code base for all platforms while porting .NET applications made with Visual Studio to Mac OS and Linux.

Key Features:

  • Code completion support for C#, code templates, code folding
  • Fully customizable window layouts, user defined key bindings, external tools
  • Supports C#, F#, Visual Basic .NET, C/C++, Vala
  • Integrated debugger for Mono and native apps
  • Easily build GTK# applications with GTK# Visual Designer
  • NET with full code completion and test support on XSP, the Mono web server
  • Source control
  • Makefile integration
  • Unit testing
  • Packaging and deployment
  • Localization

Cost: FREE

  1. MyEclipse
    @Genuitec

MyEclipse

Unify your development in a single Java IDE with MyEclipse, featuring the must-have tools for every full-stack developer. Create both dynamic front ends and powerful back ends with the same IDE; MyEclipse makes it possible to create quality applications using the latest technologies.

Key Features:

  • The latest Eclipse
  • Built-in libraries and wizards
  • Database tooling and persistence
  • Built-in TomCat server
  • Maven project management
  • WebSphere connectors with RAD migration
  • Enterprise reporting
  • Spring tooling with bean tooling and scaffolding
  • Popular app server connectors
  • TypeScript and JavaScript validation and debugging
  • Code Live with Live Preview
  • Validation and auto-complete for HTML
  • Angular 2+ support

Cost:

  • Webclipse including the Angular IDE: Starts at $48/seat for commercial license
  • Eclipse Delivery by SDC: Starts at $100/user, 1-10 users
    • Unlimited delivery of a single product: $15,000
    • Unlimited usage of a single delivery hub: $25,000
    • Enterprise-wide license: $75,000
  • MyEclipse Enterprise IDE: Starts at $63.55/seat (HTML5, UML and more)
    • Enhanced WebSphere Tooling: Starts at $158.95/seat
    • Advanced Spring Tooling: Starts at $149.95/seat
    • Including license pre-activation and distribution: Starts at $99.95/seat
  1. NetBeans IDE
    @netbeans

NetBeans

Develop web apps quickly and easily with Java, JavaScript, HTML5, PHP, C/C++ and more. Free and open source, NetBeans boasts a robust community of users and developers worldwide.

Key Features:

  • Official IDE for Java 8
  • Quickly update apps to use new Java 8 constructs
  • Editors, code analyzers, and converters
  • Search multiple apps simultaneously
  • NetBeans Editor indents lines, matches words and brackets
  • Automatically highlights code syntactically and semantically
  • Code templates, coding tips, and code generators
  • Supports Java, C/C++, XML and HTML, to PHP, Groovy, Javadoc, JavaScript and JSP
  • Extensible editor to support other languages
  • Easy project management with multiple data views
  • Built-in versioning tools from Subversion, Mercurial, and Git integration
  • Design GUIs for Java SE, HTML5, Java EE, PHP, C/C++, and Java ME applications
  • Visual debugger for Java SE applications

Cost: FREE

  1. Nuclide

Nuclide

Built on a single package on top of Atom, Nuclide provides hackability coupled with the support of an active user community. It’s a first-class development environment for React Native, Hack, and Flow projects.

Key Features:

  • Built-in debugging for React Native, Hack, Flow and more
  • Remote development – connect to your remote servers and get full file tree access in Nuclide
  • Built-in support for Flow
  • First IDE with support for Hack
  • Autocomplete, jump-to-definition, inline errors, and an omni-search bar for projects
  • Task Runner for building, running, testing, and debugging Hack, Buck, and Swift projects
  • Working Sets reduce noise by narrowing your focus to the subsets you need to focus on
  • Mercurial support

Cost: FREE

  1. NuSphere PhpED
    @PHP_IDE

NuSphere PhpED

PhpED is a world-class IDE for PHP, HTML, CSS, XML, SMARTY, XHTML, and more. An advanced code editor, dbg debugger, a database connectivity client, and secure deployment capabilities combine for a comprehensive IDE solution that meets most development needs.

Key Features:

  • Saves up to 75% of development time
  • PhpED 18.0 editing features including highlighting, easy code navigation, and PHP code folding
  • Powerful PHP debugger for debugging PHP remotely or locally
  • Find and eliminate bottlenecks in your code with the PHP Profiler
  • Secure, fast, and flexible deployment
  • Supports all major protocols including FTP, FTPS, SSH/SFTP, and WebDAV
  • Integrates with third-party tools such as PHP encoders, formatters, and HTML validators
  • Pre-configured tools including a PHP documenter, HTML tidy, CVS client, and HTML validator

Cost:

  • PhpED Personal: $74 – 1 license for individual developers
  • PhpED Professional: $179 – 1 license for companies and organizations
  • NuSphere Advantage: $299 – Full stack of tools for development, protection of your code and deployment PhpED Professional, NuCoder and PhpDock
  • PhpED Team4: $537 – 4 licenses
  1. PhpStorm
    @jetbrains

PhpStorm

A lightning-smart IDE for PHP, PhpStorm supports major frameworks including Symfony, Drupal, WordPress, Zend Framework, Laravel, Magento, Joomla!, CakePHP, Yii, and more. A deep understanding of your code and its structure plus support for all PHP language features for both modern and legacy projects make PhpStorm a solid option for PHP developers.

Key Features:

  • Supports most front-end technologies including HTML5, CSS, Sass, Less, Stylus, CoffeeScript, TypeScript, Emmet, and JavaScript
  • Version Control Systems integration
  • Support for remote deployment
  • Full support for PHP and Databases/SQL
  • Command-line tools
  • Vagrant, Composer, REST Client, and more
  • Includes all features of WebStorm
  • Intelligent code assistance; on-the-fly error prevention
  • Easy debugging and testing
  • Fast, safe refactoring
  • Code completion and smart code navigation
  • Support for Docker in remote interpreters

Cost:

  • PhpStorm:
    • $199.00 /1st year
    • $159.00 /2nd year
    • $119.00 /3rd year onwards
  • All Products Pack:
    • $ 649.00 /1st year
    • $519.00 /2nd year
    • $389.00 /3rd year onwards
  1. PyCharm
    @jetbrains

PyCharm

PyCharm is a Python IDE for professional developers, also offering support for avaScript, CoffeeScript, TypeScript, Cython, SQL, HTML/CSS, template languages, AngularJS, Node.js, and more. With a slew of built-in, out-of-the-box tools, PyCharm is a complete solution for Python developers who need an IDE that supports multiple languages.

Key Features:

  • Smart code completion, code assistance, error highlighting and quick-fixes
  • Automated code refactoring and rich navigation
  • Supports modern web development frameworks including Django, Flask, Google App Engine, Pyramid, and web2py
  • Integrates with IPython Notebook
  • Interactive Python console
  • Supports Anaconda plus scientific packages including matplotlib and NumPy
  • Run, debug, test, and deploy apps on virtual machines and remote hosts
  • Integrated debugger and test runner
  • Python profiler
  • Built-in terminal
  • Integration with major VCS
  • Built-in Database Tools

Cost:

  • PyCharm:
    • $199.00 /1st year
    • $159.00 /2nd year
    • $119.00 /3rd year onwards
  • All Products Pack:
    • $ 649.00 /1st year
    • $519.00 /2nd year
    • $389.00 /3rd year onwards
  1. Qt Creator
    @qtproject

Qt Creator

Go beyond the code to design and create with Qt Creator, a cross-platform IDE for creating connected devices, UIs, and applications. Create mobile apps, desktop applications, and connected embedded devices from a single sophisticated console.

Key Features:

  • Integrated UI design tools including Qt Widgets and Qt Designer
  • Create smooth, quick animations with Qt Quick Designer
  • Expand your global market with Qt Linguist to speed translation
  • Qt Assistant, a configurable and redistributable documentation reader
  • Add-in for Visual Studio users
  • Sophisticated code editor for C++ and QML
  • Integrated with popular version control systems
  • Project and build management
  • Quickly switch between build targets with multi-screen and multi-platform support

Cost:

  • Free trial
  • Contact for a quote
  • Use this wizard to find the right option for you
  1. RubyMine
    @jetbrains

RubyMine (IDE Tool)

RubyMine is an intelligent IDE for Ruby and Rails development. Loaded with features including options to configure your project environment and seamless integration with third-party tools including Rake Task Runner, Rails Generators, Bundler, RVM/Rbenv, Zeus, and others, RubyMine is a comprehensive IDE for Ruby and Rails developers.

Key Features:

  • Support for Ruby and Rails, JavaScript, CoffeeScript, ERB, HAML, CSS, Sass and LESS, and more
  • Language specific-aware syntax
  • Error highlighting
  • Code formatting and code completion
  • Quick documentation
  • Smart search for jumping to any class, file, symbol, IDE action, or tool window
  • MVC-based project view and model
  • Class and gem dependencies diagrams
  • Code inspectors for verifying your code
  • Quick-fix options for on-the-fly improvements
  • Automated, safe refactoring
  • Rails-aware refactoring for project-wide changes
  • Powerful debugger
  • Graphical UI for Ruby, JavaScript, and CoffeeScript
  • Create and run RSpec, Cucumber, Shoulda, MiniTest, and Test::Unit tests
  • Customizable color and keyboard schemes
  • Unified UI for working with Git, SVN, Mercurial, and other version control systems
  • Manage your infrastructure with Vagrant, Capistrano, Chef, or Puppet

Cost:

  • RubyMine:
    • $199.00 /1st year
    • $159.00 /2nd year
    • $119.00 /3rd year onwards
  • All Products Pack:
    • $ 649.00 /1st year
    • $519.00 /2nd year
    • $389.00 /3rd year onwards
  1. SapphireSteel

SapphireSteel (IDE Tool)

SapphireSteel is a professional Ruby development tool for Visual Studio, offering powerful IntelliSense, a fast Cyclon debugger, syntax-sensitive editing, and a visual UI designer for a complete development environment.

Key Features:

  • Ultra-fast Cyclon debugger with breakpoints and tracing, hover and drill-down, conditional breakpoints, and more
  • Drag-and-drop designer for creating visual UIs for Ruby programs
  • Code coloring and code folding
  • Bracket and keyword/end matching
  • Auto-generate code blocks with snippets
  • Create your own snippets without coding with the snippet editor
  • Auto-align code with smart or block indenting
  • Automatic code formatting
  • Fast code completion analyzes code as it’s written
  • Drop-down menus with relevant, accurate information on the methods available to objects and classes
  • Documentation hints
  • Drop-down navigation bars over the editor to quickly navigate code
  • Sapphire projects are managed from the Visual Studio Solution Explorer

Cost:

  • 30-day trial
  • Sapphire 3: $249
  1. ShiftEdit
    @ShiftEditIDE

ShiftEdit

ShiftEdit is an online, browser-based IDE allowing you to develop websites from the comfort of your browser. Gain access to project files regardless of where they reside (FTP, SFTP, and cloud-based services such as Dropbox or Google Drive), clone repositories from GitHub and Bitbucket, and more.

Key Features:

  • Connect to a localhost with the aid of a proxy
  • Invite, chat, and collaborate with other team members in real-time
  • Sophisticated autocomplete, syntax checking, and function definitions
  • Fully functional terminal to connect to a dev environment or ssh server
  • Preview your changes as you work
  • Revision history with easy step-back
  • Compare files including live diff or two distinct files
  • Customizable with snippets, notes, themes, and the ability to import your own CSS
  • Git client
  • GitHub and Bitbucket integration
  • Deploy servers with AWS or Linode

Cost:

  • Basic: $6/month
  • Business: $15/month – unlimited projects and revisions
  1. Squad
    @weCodeTogether

Squad

A web-based, collaborative IDE, Squad makes it easy to open, edit, and share code in real-time. Invite team members to workspaces to gain feedback or code together on the same projects simultaneously.

Key Features:

  • Copy and share workspace URLs
  • Anyone with the URL can access your workspace with no account necessary
  • Syntax highlighting for 16+ languages
  • Searchable chat history
  • Remote FTP/SFTP connections
  • Chat and edit files from anywhere with an Internet connection
  • Constantly saves workspaces for multi-machine availability
  • Maintain control of your files
  • Use Squad as an IDE or simply for collaboration
  • Documents who opened and saved which files to help you stay in sync with your team

Cost:

  • FREE: 1 user
  • Solo: $3.95/month – 1 user
  • Team: $49.95/month – 5 users, $8/user/month for additional users
  1. Visual LANSA
    @LANSA

Visual LANSA

A low-code, cross-platform development environment, Visual LANSA offers a metadata repository and a high-level programming language for developing and maintaining web, desktop, and mobile applications. The IDE is available on Windows and in the cloud, with deployment platforms including Cloud, Windows, IBM i, and Linux. With prototyping tools in a visual application framework, developers get a kick-start to building powerful applications with Visual LANSA.

Key Features:

  • Platform-independent metadata repository
  • RDML (Rapid Development and Maintenance Language)
  • Develop web, Windows desktop, and mobile, 5250, and server-based applications from a single code base
  • Seamless access to IBM i, JDBC, and ODBC-compliant databases
  • Centralized data definitions, business rules, and algorithms
  • Make changes in one place to apply them to all apps for streamlined maintenance
  • Point-and-click to select fields and files
  • Cut and paste to rapidly edit and debug
  • Powerful forms painter to design UIs
  • Test apps on a single Windows system and deploy to a mix of platforms at any time

Cost: Contact for a quote

  1. Visual Studio Code
    @code

Visual Studio Code

Visual Studio Code is a free, open-source IDE that runs anywhere. With built-in Git, debugging tools, and a variety of extensions to extend its capabilities, plus tons of other features including IntelliSense, Visual Studio Code provides a robust interface packed with features and functionality.

Key Features: 

  • Debug code right from the editor
  • Debug with break points, call stacks, and an interactive console
  • IntelliSense provides smart completions based on variable types, function definitions, and imported modules
  • Built-in Git commands
  • Extensions for adding themes, languages, debuggers, and more

Cost: FREE

  1. WebStorm
    @jetbrains

WebStorm

A smart JavaScript IDE, WebStorm is both lightweight and powerful as well as equipped for complex client-side and server-side development with Node.js. Intelligent coding assistance and support for the latest technologies make WebStorm a valuable tool for web developers.

Key Features:

  • Smart code completion and on-the-fly error detection
  • Powerful navigation and refactoring
  • Supports JavaScript, CSS, HTML, and Node.js
  • Supports frameworks including Angular JS, React, Meteor, and more
  • Unified UI for working with Git, SVN, Mercurial, and more
  • Integrates with tools like Grunt task runner, linters, npm, and more
  • Terminal also available as an IDE tool window
  • Debugging, tracing, and testing
  • Support for Flow, TypeScript, and React Native

Cost:

  • WebStorm:
    • $129.00 /1st year
    • $103.00 /2nd year
    • $77.00 /3rd year onwards
  • All Products Pack:
    • $649.00 /1st year
    • $519.00 /2nd year
    • $389.00 /3rd year onwards
  1. Wingware
    @pythonide

WingWare

Wingware was founded back in 1999 with the aim of building high-end software solutions for Python developers. Wingware’s Python IDE is an intelligent development environment for serious Python programmers, featuring code assistance, debugging tools, version control and more in a cross-platform solution.

Key Features:

  • Autocompletion, error checking, source navigation, and other code assistance tools
  • Auto-editing, refactoring, code folding, remote editing, and more
  • Supports test-driven development with Django, nose, pitest, and other testing frameworks
  • Fast and powerful debugging features
  • Flexible project management with Mercurial, Git, Subversion, Perforce, CVS, and Bazaar
  • Review changes before commit
  • Runs on Windows, Linux, and OS X
  • Works with Python 2.x and 3.x as well as Stackless Python
  • Remote development (new in Wing 6)

Cost:

  • Free 30-day trial
  • Commercial Use: $245/user
    • 5-Pack: $1,150
    • 10-Pack: $1,995
  • Non-Commercial Use: $95/user
  • There are also two free versions available: Wing Personal is a free Python IDE that omits some features, and Wing 101 is a very simplified free Python IDE for beginners.
  1. Xamarin
    @xamarinhq

Xamarin

Xamarin Studio enables you to build better apps with intelligent code completion that unlocks iOS, Android, and OS X APIs, easy and powerful debugging, and availability in 14 languages with support for tvOS, Apple WatchKit, Android Wear, and compatibility with Microsoft Band’s C# SDK.

Key Features:

  • Quickly look up methods and types
  • Discover API functionality
  • Debug in a simulator or on a device
  • Watch values change in real-time
  • Available in 14 languages
  • Full support for modern technologies
  • Package and distribute apps to the App Store and Google Play
  • Universal search
  • Contextual insights
  • Intelligent refactoring
  • Version control
  • First-class F# support
  • Code navigation
  • More than 22,000 NuGet packages
  • Smart syntax highlighting
  • iOS and Android Designers

Cost:

  • Xamarin Studio Community: FREE
  • Xamarin Studio Professional: Contact for a quote (free trial)
  • Xamarin Studio Enterprise: Contact for a quote (free trial)
  1. Xcode

Xcode

The Xcode IDE is “at the center of the Apple development experience.” It integrates with Cocoa and Cocoa Touch frameworks and offers powerful tools for building apps for a range of Apple devices including Mac, iPhone, iPad, Apple Watch, and Apple TV.

Key Features:

  • Assistant Editor presents related source code in a split window pane
  • Simply drag the mouse to connect UI controls to implementation code
  • Robust Interface Builder design canvas
  • Version editor and source control
  • Apple LLMV compiler technologies
  • LLDB debugger
  • Automatically identifies mistakes and offers quick-fix suggestions
  • Communicates with Apple Developer website
  • Enable Game Center or Passbook in apps with a single click
  • Capable of setting up a remote bot for continuously building, analyzing, testing, and packaging your app
  • Bundles and submits apps to App Store
  • Customizable to match any workflow

Cost: FREE

  1. Zend Studio
    @zend

Zend Studio

Zend Studio is a PHP IDE for faster, smarter PHP development offering 3x faster performance. It’s the only PHP IDE combining mobile development with PHP, and it includes a sample mobile application with source code so you can hit the ground running with your next project.

Key Features:

  • Rapid indexing, validation, and searching of PHP code
  • PHP 7 support
  • PHP 7 express migration assistant
  • Seamless integration with Zend Server 9
  • Debugging capabilities with Xdebug, Zend Debugger, and Z-Ray integration
  • Extensive plugin capabilities via the Eclipse ecosystem
  • Support for Docker and Git Flow
  • Deploy PHP apps on any server
  • Cloud support for AWS and Microsoft Azure
  • Wizards, tutorials, and videos

Cost:

  • Commercial Use: $189, $139 for in-term renewal
  • Commercial Use 3-Year Free Upgrades: $328
  • Personal Use: $89
  • PHP Developer Suite: Contact for a quote


16 Critical App Insights Tips. Get Them Here.

How to Write Test Cases and Why They Are Like the Scientific Method

Matt Watson Developer Tips, Tricks & Resources, Live Queue Leave a Comment

As I’ve mentioned before on this blog, I have a good bit of experience writing unit tests.  In fact, I’ve managed to parlay this experience into a nice chunk of my living.  This includes consulting, training developers, building courses, and writing books.  From this evidence, one might conclude that unit testing is in demand.

Because of the demand and driving interest, I find myself at many companies, explaining the particulars of testing too many different people.  We’d like some of the testing magic here, please.  Help us boost our quality.

A great deal of earnest interest in the topic lays the groundwork for improvement.  But it also lays the groundwork for confusion.  When large groups of people set out to learn new things, buzzwords can get tossed around and meaning is lost.

Against this backdrop, I can recall several different people at asking, “how should we/our people write good test cases?”  If you’re familiar with the terms at play more precisely, you might scratch your head at this question given my unit testing expertise.  A company brought me in to teach developers to write automated unit testing and someone is asking me a term loosely associated to the QA group.  What gives?

But in fact, this really just begs the question, “what is a test case?”  And why might it vary depending on who writes it and how?

What is the Goal of a “Test Case”?

Let’s consider an apparently obvious source.  A site called “software testing fundamentals” defines a test case this way.

A test case is a set of conditions or variables under which a tester will determine whether a system under test satisfies requirements or works correctly.

Seems reasonable to me.  You have a system and a tester.  Then the tester creates some set of conditions, does something to the system, and confirms the outcome.

Let’s grab this idea and hold onto it for a moment.  The tester puts together a hypothesis about system behavior.  Next, he creates a situation — an experiment, if you will – in which the preconditions for confirming or denying that hypothesis exist.  Then he executes the experiment.  And, finally, he observes and records the outcome.

Is it just me, or does that sound suspiciously like the scientific method?  We might then say that writing a test case equates with forming and recording hypotheses about the system.  We might also say it doesn’t really matter who records them.

In a recent post, I talked about “arrange, act, assert” as the scientific method applied at the unit test level, by programmers.  And the software testing fundamentals site describes the same paradigm for QA pros.  In fact, I think we can thus generalize a software test case to anyone that might exercise the system in any way.

Don’t Overcomplicate Your Testing

Go back to the link defining a test case and scroll down a bit to the template and sample.  As an initiate to writing a test case, you might find yourself quickly overwhelmed with questions.

  • What is a test suite and how do I find its ID?
  • Does every test case require a related requirement?
  • How much detail should I specify in the test procedure?
  • Those remarks don’t look very helpful.

You get the idea, I imagine.  That site has launched from a fairly simple concept (test the system) to a fairly complex one.  If like many of the people asking me about “test cases,” you don’t fully understand where all of this stuff comes from, you might feel lost.

Let me demystify a bit for those unfamiliar and add some emphasis for those familiar.  This template arises from the ipso facto expectation that “test case” immediately means dedicated QA people executing carefully scripted tests, cataloged in an expensive tool and recorded for reporting and review.  We went from a concept to a full blown implementation with many assumptions.  I mean, I think you can test your software without a “test suite ID” or a “remarks.”

Because of this familiar (to some) mental leap, a lot of confusion crops up among people in the software world about the different types of test.  “You’re here to teach the software developers to write unit test cases?  So should QA be involved, too?”

Manual Testing Woes: Activity Instead of Productivity

Beyond just confusing the matter when consultants show up, this notion of the ‘formal’ test case creates another issue.  It potentially invites the confusion of activity with productivity.  Because testing requires precision in setup, people think that test case management requires hyper-precision in process.

The organization then places a premium value on generating reams and reams of detail about these test cases.  And, of course, someone has to record, revise, and maintain all of that detail.  And that’s on top of dutifully going through the steps, one by one, painstakingly executing them, and recording the results.  Better throw another few fields in there as data points; everyone likes stuff like “severity, priority, and urgency.”

I’ll take my tongue out of my cheek a bit and get explicit.  All of the formalism instantly associated with “test case” invites boilerplate.  And all of that boilerplate requires creation and maintenance.  When those folks spend their energy on the boilerplate, they don’t spend energy reasoning about experiments to run on your system.  They’re active without being productive.

What Makes A Good Test Case?

Let me then talk about how to write a good test case.  First, I’ll offer a quoted tweet from noted clean code champion, “Uncle” Bob Martin.

@ajimholmes _Scripted_ manual tests are immoral.

— Uncle Bob Martin (@unclebobmartin) October 1, 2012

He has frequently contended over the years that writing scripts for humans to execute manually are immoral.  I’ll leave that lightning-rod morality assessment aside and phrase it in the business terms I used above.  Having people in your organization that thumb through a book, brainlessly following instructions, and recording the result wastes the talent of intelligent people and wastes money.  What’s the alternative?

Full stop: a good test case is an automated test case.

When developers exercise the system using automated unit tests, integration tests, and acceptance tests, you have good test cases.  When QA folks use tools at their disposal to script system tests, you have good test cases.  And when QA folks engage in exploratory testing, you have them using time well.

A good test case, and the good test suite encasing it, result from figuring out how to let the humans do the world of conceiving of the experiments while the machines do the work of executing them.

How to Write Test Cases

I never did mention my answer to the slightly confusing question, “how should we write our test cases?”  What do I tell these folks?  Well, I simply explain that everyone should follow the scientific method, with precision, using the tools at their disposal.  Get the system into the required state, execute the behavior in question, and observe and record the result.  A good test case is the test case that makes this easy.

But I then go on to advocate collaboration and a blurring of responsibilities.  Don’t think of silos of people writing different sorts of tests.  Think instead of bringing people together ahead of the actual software development to agree on what done looks like.

QA people know how to exercise a system and critically evaluate.  Software developers know automate and implement.  BAs and analysts specialize in the needs of the business and the users.  Bring these groups of people together and say, “what does success look like in this case, and how, exactly will we know?”

Automate it at the most granular level with unit tests.  Then add some integration tests and end-to-end tests.  Sprinkle into that mix some acceptance tests, using a business language like Gherkin, that everyone can speak.  The people write the test cases and they do so in such a way that a system tracks, executes, and reports on them.

So how do you write good test cases?  You do it via collaborative, intelligent execution of the scientific method.

 

Monetize More Header

Building an Ideal Virtual Environment for a Developer Team

Build//Better BuildBetter Leave a Comment

Kean Graham CEO of MonetizeMore

Kean Graham                         CEO of MonetizeMore

Contributed by Kean Graham, CEO of MonetizeMore

Kean started MonetizeMore in 2010 with the goal to build a bootstrap business that would dramatically increase ad revenues for publishers. Over the years, Kean has perfected the proprietary MonetizeMore ad optimization model and now increases ad revenues for hundreds of publisher networks in over 40 countries.

Competition for top-notch developers has never been as heated as it is now. As MonetizeMore transitions into a technology company, building and optimizing our developer team has become our prime focus. Here are the main reasons why our developers love working for us.

Location freedom: As long as they have stable Internet, each developer has the ability to work and live anywhere in the world they please. Many ambitious developers feel they need to move to expensive cities like New York or San Francisco to advance their careers. With MonetizeMore, you don’t have to move. You can earn the same compensation while avoiding cities with high costs.

Schedule freedom: Our developers are not restricted to the typical 9-to-5, and can choose the time of day they prefer to work. Many developers like to work in bursts, allowing themselves space to recharge in between. That’s not possible with typical office hours. We encourage each of our developers to work during the times they excel the most.

Minimal scheduled meetings: There is a lot of wasted time during meetings. As a result, we try to keep scheduled meetings to a minimum. We have one quick stand-up meeting per weekday to communicate each team member’s goals for the day, and the rest of our time is devoted to building innovative technology. That is what our developer team loves to do, and we want them to spend as much time as possible doing exactly that.

Minimal interruptions: When a developer is in the zone, getting interrupted is the worst thing that can happen. We have filtered communication from non-developers via Slack for very urgent requests and a ticketing system for everything else. This minimizes interruptions so our developers can focus on the tasks at hand.

– Build Greenfield Technology: We are building some of the most innovative ad technology on the planet. Our developers are innovating past unexplored bounds and continue to push it further. Our technology measurably outperforms our competitors that are 50x larger than MonetizeMore. We might not be larger than our competitors but we can innovate quicker and our developers are definitely smarter. The technology that our developer team is building is revolutionizing the ad tech industry and the user experience of 100,000,000s of users.

-Developer Team Feeling Valued: Our greatest source of competitive advantage derives from our developer team and the technology they build. Without a happy, top-notch, empowered team, we would be doomed to mediocrity. Therefore, we base a lot of our decisions on how it will affect our developer team’s morale and performance.

We are proud of the developer team we’ve been able to build so far, and are excited to continue to hire and grow. The ad tech industry has never seen innovation at the speed it’s at now. This is a crucial time in our industry to out-innovate our competitors with intrepid solutions. In order to achieve this, we need to continue to hire the best and empower our current team.

 

Follow Kean on LinkedIn and Twitter.

Top 10 Load Testing Tools to Know

Matt Watson Developer Tips, Tricks & Resources, Live Queue Leave a Comment

Load testing tools can help you find out how your application will perform under load. It can expose problems within it and help you to make improvements before releasing your software to your customers. If you want to ensure that your system is as efficient and as quick as it can be, you can’t afford to ignore load testing any longer.

Before you get started with load testing, you need to know about the best load testing tools. These are the tools that will help you carry out the process of load testing from start to finish. All of the load testing tools below are very good, so read on to find out more about them.

Tsung

Tsung is an application widely used for load testing. It’s written in Erlang language, and thousands of users can be simulated by the application during the testing process. This is useful and important because it provides you with a more accurate analysis of how your system would hold up under pressure. The application can also produce statistical and geographical reports for you to view. By using this tool, you get greater insight as to how your system is able to perform.

Soasta CloudTest

This scalable cloud-based system is a full testing service that goes further than many of its direct rivals. One example of this comes in the form of the real-time analytics that is offered up by the service. Global testing is a possibility, and any number of users can be chosen. With Soasta Cloud Test, test scenarios are built by using usage patterns for better results. And traffic simulations are very accurate as well. It’s a testing service that goes far and produces the goods for you.

LoadComplete

The best thing about LoadComplete is the way in which it can set up testing very quickly. In a matter of seconds, you can be using it to test your system. Web and mobile tests are both facilitated by the software, and it could not be any easier to use. So, if you’re a beginner and you don’t know much about load testing, this could be one of the best options for you to consider. Different browsers can also be used for even more accurate results.

LoadStorm

This is another form of a load testing that is very easy to use and setup. The scripts are intuitive and offer lots of customizable features. Test durations and user behavior vary, offering you results that are going to be true to life and useful to you. On top of all that, LoadStorm provides content validation, and you can look at peak response times if you want to. Because it’s so easy to adapt and simple to get started, this is an option that attracts developers.

NeoLoad

If you want to place a focus on mobile devices, NeoLoad could be the load testing tool for you. It allows you to test both web and mobile native applications. And this can give you exactly the kind of information that will allow you to make your website better suited for mobile browsing. These days, that’s something that is becoming more important with each passing month.

ApacheBench

HTTP performance is the main focus of ApacheBench. It works well on pretty much any web server out there. So, if you need to test an HTTP server, then ApacheBench could be the ideal fit for you. It’s a software that is able to support concurrent testing, which will be a big advantage for many users. If you have an Apache installation already, ApacheBench will already be freely available to you, which is another reason to use it for many developers.

Loader.io

A GUI or API can be used when testing with Loader.io, both enable advanced analytics and concurrent testing. There are integration tools that are available to you when you use this service, so it should definitely be considered. It’s one of the most popular and widely used examples of a load testing tool out there. It’s SaaS based, and it’s important to be aware of that. It will suit some users, but not necessarily all of them depending on their needs.

Httperf

Httperf might have the catchiest name on the list, but it has a lot more to offer than that. It’s a great tool for testing web-based servers and their performance. The report generated by the software will help you to see the request rate, as well as lots of other figures and information that might be useful to you as you build up your system. It can be resource intensive, so keep that in mind when you start to use the software for yourself.

BlazeMeter

BlazeMeter provides solutions that are out-of-the-box. It tests servers, mobile apps, and websites. Cloud servers from sites such as Amazon and Google are used to make sure the results you get are as positive and accurate as they should be. Network testing can even be carried out behind secured firewalls. JMeter test scripts can be run, and one million concurrent users can be simulated as well. Testing locations in USA, Asia, and Europe are all available, making this a global platform.

The Grinder

The Grinder is a Java-based load tester is used to test a wide array of things. Web servers and application servers are tested; as can anything with a Java API. Dynamic scripting is used in order to reach the very best results for the user. Jython is Java’s version of Python, and this is the scripting language that is used by this tool. It’s also easy to extend The Grinder because scripting replaces plug-ins. All in all, it’s a useful load testing tool.

Conclusion

All of the load testing tools listed above are respected and widely used. Of course, you will need to decide for yourself which of them is right for you. Everyone has different load testing needs, so your decision should take those needs into account.

java-logs-stk

Java Logging Best Practices: How to Get More Out of Your Log Data

Eric Martin Developer Tips, Tricks & Resources Leave a Comment

Logging: We Should be Doing This Better by Now!

What do I mean? There are lots of Java logging frameworks and libraries out there, and most developers use one or more of them every day. Two of the most common examples for Java developers are log4j and logback. They are simple and easy to use and work great for developers. Basic log files are just not enough, though, but we have some Java best practices and tips to help you make the most of them!

Have you ever had to work with your log files once your application left development? If so, you quickly run into a few pain points.

  • There’s a lot more data.
  • You have to get access to the data.
  • It’s spread across multiple servers.
  • A specific operation may be spread across applications – so even more logs to dig through.
  • It’s flat and hard to query; even if you do put it in SQL, you are going to have to do full-text indexing to make it usable.
  • It’s hard to read; messages are scrambled like spaghetti.
  • You generally don’t have any context of the user, etc.
  • You probably lack some details that would be helpful. (You mean “log.Info(‘In the method’)” isn’t helpful???)
  • You will be managing log file rotation and retention.

Additionally, you have all this rich data about your app that is being generated and you simply aren’t proactively putting it to work.

It’s Time to Get Serious About Logging

Once you’re working on an application that is not running on your desktop, logging messages (including exceptions) are usually your only lifeline to quickly discovering why something in your app isn’t working correctly. Sure, APM tools can alert you to memory leaks and performance bottlenecks, but generally lack enough detail to help you solve a specific problem, i.e. why can’t this user log in, or why isn’t this record processing?

At Stackify, we’ve built a “culture of logging” which set out to accomplish these goals:

  1. Log all the things. Log as much as we possibly can, to always have relevant, contextual logs that don’t add overhead.
  2. Work smarter, not harder. Consolidate and aggregate all of our logging to a central location, available to all devs, and easy to distil. Also, to find new ways for our logging and exception data to help us proactively improve our product.


The 8 Tools Every Java Developer Needs. See Them Here.

In this post, we’ll explore these best practices, and share what we’ve done to address it, much of which has become a part of Stackify’s log management product. Also, if you haven’t used Prefix to view your logs, be sure to check it out!

Start Logging All the Things!

I’ve worked in a lot of shops where log messages looked like this:

I’ll give the developer credit; at least they are using a try/catch and handling the exception. The exception will likely have a stack trace so I know roughly where it came from, but no other context is logged.

Sometimes, they even do some more proactive logging, like this:

But generally, statements like that don’t go a long way towards letting you know what’s really happening in your app. If you’re tasked with troubleshooting an error in production, and/or it is happening for just one (or a subset) of the application users, this doesn’t leave you with a lot to go on, especially when considering your log statement could be a needle in a haystack in an app with lots of use.

As I mentioned earlier, logging is often one of the few lifelines you have in production environments where you can’t physically attach and debug. You want to log as much relevant, contextual data as you can. Here are our guiding principles on doing that.

Walk the Code

Let’s pretend that you have a process that you want to add logging around so that you can look at what happened. You could just put a try / catch around the entire thing and handle the exceptions (which you should) but it doesn’t tell you much about what was passed into the request. Take a look at the following, oversimplified example.

public class Foo {

    private int id;
       
    private double value;
    
    public Foo(int id, double value) {
   	 this.id = id;
   	 this.value = value;
    }
    
    public int getId() {
   	 return id;
    }

    public double getValue() {
   	 return value;
    }
    
}

Take the following factory method, which creates a Foo. Note how I’ve opened the door for error – the method takes a Double as an input parameter. I call doubleValue() but don’t check for null. This could cause an exception.

public class FooFactory {

    public static Foo createFoo(int id, Double value) {
   	 return new Foo(id, value.doubleValue());
    }
    
}

This is a simple scenario, but it serves the purpose well. Assuming this is a really critical aspect of my Java app (can’t have any failed Foos!) let’s add some basic logging so we know what’s going on.

public class FooFactory {

    private static Logger LOGGER = LoggerFactory.getLogger(FooFactory.class);
    
    public static Foo createFoo(int id, Double value) {
   	 
   	 LOGGER.debug("Creating a Foo");
   	 
   	 try {
   		 Foo foo = new Foo(id, value.doubleValue());
   		 
   		 LOGGER.debug("{}", foo);
   		 
   		 return foo;
   		 
   	 } catch (Exception e) {
   		 LOGGER.error(e.getMessage(), e);
   	 }
   	 
   	 return null;
    }
    
}

Now, let’s create two foos; one that is valid and one that is not:

    FooFactory.createFoo(1, Double.valueOf(33.0));
    FooFactory.createFoo(2, null);

And now we can see some logging, and it looks like this:

2017-02-15 17:01:04,842 [main] DEBUG com.stackifytest.logging.FooFactory: Creating a Foo
2017-02-15 17:01:04,848 [main] DEBUG com.stackifytest.logging.FooFactory: [email protected]
2017-02-15 17:01:04,849 [main] DEBUG com.stackifytest.logging.FooFactory: Creating a Foo
2017-02-15 17:01:04,851 [main] ERROR com.stackifytest.logging.FooFactory:
java.lang.NullPointerException
    at com.stackifytest.logging.FooFactory.createFoo(FooFactory.java:15)
    at com.stackifytest.logging.FooFactoryTest.test(FooFactoryTest.java:11)

Now we have some logging – we know when Foo objects are created, and when they fail to create in createFoo(). But we are missing some context that would help. The default toString() implementation doesn’t build any data about the members of the object. We have some options here, but let’s have the IDE generate an implementation for us.

    @Override
    public String toString() {
   	 return "Foo [id=" + id + ", value=" + value + "]";
    }

Run our test again:

2017-02-15 17:13:06,032 [main] DEBUG com.stackifytest.logging.FooFactory: Creating a Foo
2017-02-15 17:13:06,041 [main] DEBUG com.stackifytest.logging.FooFactory: Foo [id=1, value=33.0]
2017-02-15 17:13:06,041 [main] DEBUG com.stackifytest.logging.FooFactory: Creating a Foo
2017-02-15 17:13:06,043 [main] ERROR com.stackifytest.logging.FooFactory:
java.lang.NullPointerException
    at com.stackifytest.logging.FooFactory.createFoo(FooFactory.java:15)
    at com.stackifytest.logging.FooFactoryTest.test(FooFactoryTest.java:11)

Much better! Now we can see the object that was logged as “[id=, value=]”. Another option you have for toString is to use Javas’ reflection capabilities. The main benefit here is that you don’t have to modify the toString method when you add or remove members. Here is an example using Google’s Gson library. Now, let’s look at the output:

2017-02-15 17:22:55,584 [main] DEBUG com.stackifytest.logging.FooFactory: Creating a Foo
2017-02-15 17:22:55,751 [main] DEBUG com.stackifytest.logging.FooFactory: {"id":1,"value":33.0}
2017-02-15 17:22:55,754 [main] DEBUG com.stackifytest.logging.FooFactory: Creating a Foo
2017-02-15 17:22:55,760 [main] ERROR com.stackifytest.logging.FooFactory:
java.lang.NullPointerException
    at com.stackifytest.logging.FooFactory.createFoo(FooFactory.java:15)
    at com.stackifytest.logging.FooFactoryTest.test(FooFactoryTest.java:11)

When you log objects as JSON and use Stackify’s Retrace tool, you can get some nice details like this:

Retrace Logging Dashboard JSON Viewer

Logging More Details with Diagnostic Contexts

And this brings us to one last point on logging more details: diagnostic context logging. When it comes to debugging a production issue, you might have the “Creating a Foo” message thousands of times in your logs, but with no clue who the logged in user was that created it. Know who the user was is the sort of context that is priceless in being able to quickly resolve an issue. Think about what other detail might be useful – for example, HttpWebRequest details. But who wants to have to remember to log it every time? Diagnostic context logging to the rescue, specifically the mapped diagnostic context. Read more about SLF4J’s MDC here: https://logback.qos.ch/manual/mdc.html.

The easiest way to add context items to your logging is usually a servlet filter. For this example, let’s create a servlet filter that generates a transaction id and attaches it to the MDC.

public class LogContextFilter implements Filter {

    public void init(FilterConfig config) {
    }
    
    public void destroy() {
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
   	 
   	 String transactionId = UUID.randomUUID().toString();
   	 
   	 MDC.put("TRANS_ID", transactionId);
   	 
   	 try {
   		 chain.doFilter(request, response);
   	 }
   	 finally {
   		 MDC.clear();
   	 }
    }

}

Now, we can see some log statements like this:

More context. We can now trace all log statements from a single request.

This brings us to the next topic, which is Work Harder, Not Smarter. But before that, I’m going to address a question I’m sure to hear a lot of in the comments: “But if I log everything won’t that create overhead, unnecessary chatter, and huge log files?” My answer comes in a couple of parts: first, use the logging verbosity levels. you can LOGGER.debug() everything you think you’ll need, and then set your config for production appropriately, i.e. Warning and above only. When you do need the debug info, it’s only changing a config file and not redeploying code. Second, if you’re logging in an async, non-blocking way, then overhead should be low. Last, if you’re worried about space and log file rotation, there are smarter ways to do it, and we’ll talk about that in the next section.

Work Smarter, Not Harder

Now that we’re logging everything, and it’s providing more contextual data, we’re going to look at the next part of the equation. As I’ve mentioned, and demonstrated, just dumping all of this out to flat files still doesn’t help you out a lot in a large, complex application and environment. Factor in thousands of requests, files spanning multiple days, weeks, or longer, and across multiple servers, you have to consider how you are going to quickly find the data that you need.

What we all really need is a solution that

  • Aggregates all Log & Exception data to one place
  • Makes it available, instantly, to everyone on your team
  • Presents a timeline of logging throughout your entire stack/infrastructure
  • Is highly indexed and searchable by being in a structured format

This is the part where I tell you about Stackify Retrace. As we sought to improve our own abilities to quickly and efficiently work with our log data, we decided to make it a core part of our product (yes, we use Stackify to monitor Stackify) and share with our customers, since we believe it’s an issue central to application troubleshooting.

First, we realize that lots of developers already have logging in place, and aren’t going to want to take a lot of time to rip that code out and put new code in. That’s why we’ve created logging appenders for the most common frameworks.

Continuing with log4j as a sample, the setup is easy. Just add the Stackify appender to your project’s maven pom file.

<dependency>
   <groupId>com.stackify</groupId>
   <artifactId>stackify-log-log4j12</artifactId>
   <version>1.1.9</version>
   <scope>runtime</scope>
</dependency>

Also, add in some configuration for the Stackify appender to your logging.properties file.

log4j.rootLogger=DEBUG, CONSOLE, STACKIFY

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p %c: %m%n

log4j.appender.STACKIFY=com.stackify.log.log4j12.StackifyLogAppender
log4j.appender.STACKIFY.apiKey=[HIDDEN]
log4j.appender.STACKIFY.application=test-logging
log4j.appender.STACKIFY.environment=test

As you can see, if you’re already using a different appender, you can keep it in place and put them side-by-side. Now that you’ve got your logs streaming to Stackify we can take a look at the logging dashboard. (By the way, if our monitoring agent is installed, you can also send Syslog entries to Stackify as well!)

This dashboard shows a consolidated stream of log data, coming from all your servers and apps, presented in a timeline. From here, you can quickly

  • Load logs based on a range of time
  • Filter for specific servers, apps, or environments

Plus there are a couple of really great usability things built in. One of the first things you’ll notice is that chart at the top. It’s a great way to quickly “triage” your application. The blue line indicates the rate of log messages, and the red bars indicate # of exceptions being logged.

It’s clear that a few minutes ago, my web app started having a lot more consistent activity but more importantly, we started getting more exceptions about the same time. Exceptions don’t come without overhead for your CPU and memory, and they also can have a direct impact on user satisfaction, which can cost real money.

By zooming in on the chart to this time period, I can quickly filter my log detail down to that time range and take a look at the logs for that period of time.

Searching Your Logs

Do you see that blue text below that looks like a JSON object?

Well, it is a JSON object. That’s the result of logging objects, and adding context properties earlier. It looks a lot nicer than plain text in a flat file, doesn’t it? Well, it gets even more awesome. See the search box at the top of the page? I can put in any search string that I can think of, and it will query all my logs as if it were a flat file. As we discussed earlier, however, this isn’t great because you could end up with a lot more matches than you want. Suppose that I want to search for all objects with an id of 5. Fortunately, our log aggregator is smart enough to help in this situation. That’s because when we find serialized objects in logs, we index each and every field we find. That makes it easy to perform a search like this:

json.idNumber:5.0

That search yields the following results:

Want to know what else you can search by? Just click on the document icon when you hover over a log record, and you’ll see all the fields that Stackify indexes. Being able to get more value out of your logs and search by all the fields is called structured logging.

Exploring Java Exception Details

You may have also noticed this little red bug icon (bug) next to exception messages. That’s because we treat exceptions differently by automatically showing more context. Click on it and we present a deeper view of that exception.

Our libraries not only grab the full stack trace, but all of the web request details, including headers, query strings, and server variables, when available. In this modal, there is a “Logs” tab which gives you a pre-filtered view of the logging from the app that threw the error, on the server where it occurred, for a narrow time window before and after the exception, to give more context around the exception. Curious about how common or frequent this error occurs, or want to see details on other occurrences? Click the “View All Occurrences” button and voila!

I can quickly see this error has occurred 60 times over the last hour. Errors and logs are closely related, and in an app where a tremendous amount of logging can occur, exceptions could sometimes get a bit lost in the noise. That’s why we’ve built an Errors Dashboard as well, to give you this same consolidated view but limited to exceptions.

Here I can see a couple of great pieces of data:

  • I’ve had an uptick in my rate of exceptions over the past few minutes.
  • The majority of my errors are coming from my “test” environment – to the tune of about 84 per hour.
  • I have a couple of new errors that have just started occurring (as indicated by the red triangles).

Have you ever put a new release of your app out to production and wondered what QA missed? (Not that I’m saying QA would ever miss a bug……) Error Dashboard to the rescue. You can watch real time and see a trend – lots of red triangles, lots of new bugs. Big spike in the graph? Perhaps you have an increase in usage, so a previously known error is being hit more; perhaps some buggy code (like a leaking SQL connection pool) went out and is causing a higher rate of SQL timeout errors than normal.

It’s not hard to imagine a lot of different scenarios for which this could provide early warning and detection. Hmm. Early warning and detection. That brings up another great topic.

Monitor

Wouldn’t it be nice to be alerted when

  • An error rate for a specific app or environment suddenly increases?
  • An error that was specifically resolved starts happening again?
  • A certain action that you log does not happen enough, too often, etc?

Stackify can do all of that. Let’s take a look at each.

Error Rates

When we looked at the error dashboard, I noted that my ‘test’ environment is getting a high number of errors per hour. From the Error dashboard, click on “Error Rates” and then select which app/environment you wish to configure alerts for:

I can configure monitors for “Errors/Minute” and “Total Errors Last 60 minutes” and then choose the “Notifications” tab to specify who should be alerted, and how. Subsequently, if using Stackify Monitoring, I can configure all of my other alerting here as well: App running state, memory usage, performance counters, custom metrics, ping checks, and more.

Resolved Errors & New Errors

Earlier on, I introduced a new error by not checking for null values when creating Foo objects. I’ve since fixed that and confirmed it by looking at the details for that particular error. As you can see, the last time it happened was 12 minutes ago:

It was a silly mistake, but one that is easy to make. I’m going to mark this one as “resolved” which lets me do something really cool: get an alert if it comes back. The Notifications menu will let me check my configuration, and by default, I’m set to receive both new and regressed error notifications for all my apps and environments.

Now, if the same error occurs again in the future, I’m going to get an email about the regression and it shows up on the dashboard as such. This is a great little bit of automation to help out when you “think” you’ve solved the issue and want to make sure.

Log Monitors

Some things aren’t very straightforward to monitor. Perhaps you have a critical process that runs asynchronously and the only record of its success (or failure) is logging statements. Earlier in this post, I showed the ability to run deep queries against your structured log data, and any of those queries can be saved and monitored. I’ve got a very simple scenario here: my query is executed every minute, and we can monitor how many matching records we have.

It’s just a great simple way to check system health if a log file is your only indication.

Java Logging Best Practices

All of this error and log data can be invaluable, especially when you take a step back and look at a slightly larger picture. Below is the Application Dashboard for a Java web app that contains all of the monitoring:

As you can see, you get some great contextual data at a glance that errors and logs contribute to: Satisfaction and HTTP Error Rate. You can see that user satisfaction is high and the HTTP error rate is low. You can quickly start drilling down to see which pages might not be performing well, and what errors are occurring:

All said and done, this has helped us tremendously in improving our own product, to quickly detect and resolve application issues.

There was a lot to cover in this post, and I feel like I barely scratched the surface. If you dig a little deeper or even get your hands on it, you can! I hope that these Java logging best practices will help you write better logs and save time troubleshooting.

All of our Java logging appenders are available on GitHub and you can sign up for a free trial to get started with Stackify today!

Also check out our article about log tagging, and our C# logging best practices article.