Are you on top of newly introduced errors in your CI/CD releases?

Log files are infamous for being “noisy”. Without the right management solution, trying to find a specific piece of information or using them to reproduce a critical error is a complex undertaking. If you’re working with CI/CD solutions, how do you attribute new errors to a particular release? How do you investigate those errors and make sure that your customers aren’t being impacted?

Faster releases mean shorter development and testing cycles before new code reaches production. On top of that, users are only increasing their expectations for high-quality user experiences. Staying on top of newly introduced errors is absolutely critical to achieving that goal.

In this post, we’ll take a closer look at why new errors are so important to track. 

New vs. Familiar Errors

Errors can impact users and affect your business, but not every error needs to be addressed right away. A lot of what shows up in the log files is just noise – non-relevant data and familiar, low priority errors. Being able to separate the signal from the noise allows teams to focus their efforts on what really matters.

We need to identify new errors and prioritize them by severity. Those which risk downtime or significantly affect user experience should be handled immediately. We can add less critical bugs to the backlog. Engineers can then monitor for anomalies which could also be the effect of code changes.

Monitoring for new errors and critical anomalies is especially important. To resolve issues before they reach users, we need to to quickly identify when a particular release introduces new errors. This process needs to be instant, in order to keep up.

Keeping up with CI/CD

When things are constantly changing in your environments, it makes it even more difficult to track which errors are new, which are occurring with higher-than-usual frequency and which are legacy errors that have been around for a while and aren’t a high priority. 

CI/CD workflows have much higher frequency releases than what we used to see in traditional software development lifecycles. In a modern software office, we do not release code once a year. Weekly, daily and ad-hoc releases are becoming the new normal.

This means shortened development and testing cycles. Even without this increased pressure to deliver new code, errors inevitably reach production environments. There’s simply no way to test for every possible situation, and errors are bound to occur. Now, with CI/CD, these same issues are being introduced at an accelerated rate.

When we deploy a faulty version, it’s important to know immediately so we can resolve them. Part of that might include correlating your logs with the release that introduced them as this can shorten the time it takes to identify the root cause of the error and to resolve it.

The Risks of Falling Behind your CI/CD process

The last thing you want is for your customers to be the ones telling you that something’s wrong with your application. With CI/CD workflows, the risks of a new release introducing errors are higher, but our customers still expect the same high-quality performance.

The effects of a faulty release can range from relatively benign bugs causing slight loading delays to system failure or downtime. Either way, the potential fallout from these issues can damage the company’s reputation. Reputation damage ultimately hits us where it hurts. The bottom line. 

In order to prevent new errors and critical anomalies from affecting customers, you need the ability to identify them as soon as they appear and prioritize them for resolution. Let’s see how Coralogix can help with that.

Coralogix’s New Error and Critical Logs Anomaly Feature

Using the ability to organize logs by their original template, Coralogix is able to automatically alert users on new errors that haven’t occurred before or critical anomalies of logs that are occurring in their system.

Only 5 days after connecting Coralogix, the tool uses Machine Learning to understand the logging system and starts to send a daily digest outlining all new and critical logs for the previous two weeks, along with a list of the top 10 errors from the past day.

This feature is most commonly used by our customers right after a deployment to verify that the release didn’t introduce any new errors, exceptions or critical logs. For those with CI/CD release cycles, this feature helps ensure that new errors are identified immediately and don’t cause issues for their users or delays in the product roadmap.

All it takes to ensure release quality is to wait for the daily digest email to get a better understanding of the deployment status. From the email, users can enter the Coralogix system and view the high priority logs one by one or in aggregate with Coralogix’s Loggregation©.

 

Test Automation Tools to Accelerate CI/CD

So much of our world has moved away from the slow and methodical, towards the agile and iterative. In transport, for example, everything is “on demand”, constantly changing and adaptable. The same is true for developers. With movements and philosophies such as CI/CD solutions, everything is about moving quickly, yet smartly.

Test automation is an integral part of this development philosophy. We’ll take a look at 3 popular test automation tools, and help you decide which one is the right fit for your organization.

The Importance of Test Automation

Before we jump into the 2 testing tools, a quick note on the importance of test automation. Automated testing frameworks can “help quality assurance engineers define, execute, and automate various types of tests that can help development teams know whether a software build passes or fails.” In the CI/CD environment, test automation literally becomes part of the continuous flow and cycles of development.

Let’s take a look at the 3 platforms:

Test.ai

Test.ai is a machine learning-based platform that has been trained to recognize common user scenarios and execute test cases. The platform leverages AI to identify the various screens and elements in your app, and to execute user scenarios to enable you to test on-demand whenever you’re ready. It also recognizes elements, so that things don’t break even when they change.

Test.ai is relatively quick and easy to set up, requires no programming knowledge for more basic functions, and the platform can execute tests even when the user interface or certain flows in the app change.

Even though the company has been around since October 2015, and has raised around $17m, there is a definite lack of quality peer reviews available. This is concerning as most companies of this size would have multiple reviews available, from different companies and roles, giving an indication of the level of robustness of the solution, as well as insights into which types of projects the platform is better suited to.

Test.ai claim “larger unnamed partners that ‘make app stores’ or devices…working at the stratospheric level having to verify tens of thousands of apps to ensure that everything is in working order”.

Testcraft.ai

Testcraft bills itself as “codeless Selenium with ai maintenance”, for automated manual testing with no framework or maintenance. It is primarily a platform for web apps, and is a complete SaaS solution, with a shallow learning curve (and no coding required).

Its automation platform includes regression and continuous testing capabilities, a drag-and-drop interface, and the ability to run tests on multiple browsers and work environments at the same time. TestCraft promises faster test creation, execution, and maintenance, through its dynamic test model that can be updated to reflect changes to your app. Its interface is simple and easy to use.

Areas, where there could be an improvement, are an occasional lack of responsiveness, some issues with urls from outside of the app itself, changing datasets can be confusing, and there are quite a few bugs that still need to be ironed out.

Testim.io

Testim.io leverages machine learning for the authoring, execution, and maintenance of automated test cases. The platform uses dynamic locators and learns with every execution. The outcome is super fast authoring and stable tests that actually learn and improve, eliminating the need to continually maintain tests with every code change.

Well known companies such as Netapp, Verizon Wireless, Wix.com, and others run over 500,000 tests every month using Testim.io. The platform has gained acclaim for significantly shortening the time from development to production, to minutes in some cases. It allows the testing of new features with full regression test coverage. Test stability is known to be high, with easy-to-understand results. The platform is also easy to connect to your chosen CI and discover and fix bugs, with helpful screenshots along the way. Customer support is known to be excellent.

But, there are some issues that have been brought up for improvement, such as image verification, but these are being dealt with according to company communications, and barely detract from what is otherwise an excellent product.

Comparison

Most reviews conclude with some form of a “we cannot recommend one product, it all depends on your needs”. In this case, however, we have found testim.io to be a top performer in most categories, and feel compelled to recommend it.

This choice is further enhanced by the numerous positive reviews and big names using the platform.

Continuous Improvement

When it comes to continuous integration and continuous delivery, areas like automated testing and automated log insights become essential, integrated tools – not merely welcome additions.

For machine learning-powered log analytics, look no further than Coralogix. With Coralogix, you get virtually endless seamless integrations, dashboards and live streams, view hours of data in seconds and get automated insights into any log issues. CI/CD has found the perfect log partner.

Travis CI vs CircleCI

Travis CI vs CircleCI

The way we think about development and CI/CD solutions started with Waterfall – sequential, solid, conservative – moved to Agile, whose origins can be traced back to a somewhat romantic story at a ski resort in Utah, and is now heavily influenced by DevOps.

This progression, from a stage-by-stage process that often meant reaching the “end” of a project only to begin the herculean task of debugging, then to a world of Scrums and sprints, and finally to a full DevOps culture, has led to the adoption of Continuous Integration.

DevOps intersection

What is CI?

This new approach is consistent with the values of collaboration, quicker release cycles, and the integrated disciplines of development, QA, and Operations.

Continuous Integration solutions (related to Continuous Delivery and Continuous Deployment) is a development practice where developers integrate code into a shared repository regularly, often several times a day. These check-ins are verified by an automated build, which allows teams to detect problems early.

Through this regular approach, errors can be detected quickly, located more easily, last-minute pre-release chaos is averted, the most current build is always available, feedback on changes is immediate – with all of this saving time, money, and other resources, and contributing to a more efficient organizational culture.

While there are caveats; the CI approach may not be efficient for smaller projects, the automated test suite may require a significant cost/time investment, and larger teams may encounter queueing issues, overall this method is seen by many as the most valuable of all the software development practices today.

We’ll look at 2 popular CI platforms, to help decision makers when it comes time to choose the right one for different projects or organizations.

Travis CI

Travis CI is a hosted distributed continuous integration service used to build and test software, and is known for its easy integrations and quick setup.

TravisCI


Originally designed for open source projects (and still free for these), Travis CI has now expanded to closed source projects.

Travis bills itself as “The simplest way to test and deploy your projects”. This is not far from the truth, as using Travis CI can be as easy as logging in with GitHub, instructing Travis CI to test a project, and then pushing to GitHub.

Top-10-CI

When you run a build, Travis CI clones your GitHub repository into a new virtual environment. It then carries out a series of tasks to build, and then test, your code. If none of these tasks fail, the build is considered passed (well done!), and Travis CI is able to deploy your code. If one of these tasks fails, the build is considered broken.

You can have Travis watch tests as they run and easily integrate with tools like Slack to keep your team up-to-date with any build issues.

Travis-dashboard

More details about builds, jobs, stages, and phases can be found in the documentation depository. The Travis CI documentation is generally excellent, providing guidance and advice to experts and novices alike.

Travis CI supports most programming languages, including Android, C, C#, C++, Clojure, Crystal, Dart, Erlang, Elixir, Go, Groovy, Haskell, Haxe, Java, JavaScript (with Node.js), PHP, Python, Ruby, Scala and Visual Basic.

Complaints from users about Travis CI often refer to clunky UI, slowness at times, and the relatively steep pricing for the paid version.

In terms of Circleci pricing, the first 100 builds are free, no matter what plan you’re on. As mentioned, open source projects are always free, and closed source projects are billed based on the number of concurrent jobs, from the Bootstrap package at $69 per month (1 concurrent job), to the Premium package at $489 a month (10 concurrent jobs). All packages come with unlimited build minutes, unlimited repositories and unlimited collaborators.

There is also an enterprise option, an on-premises product for companies wanting the regular features of Travis CI, but with additional on-site security needs.

CircleCI

Like Travis, CircleCI is a continuous integration and delivery platform that automates the software development process and is used by the likes of Facebook, Kickstarter, and Spotify.

circle-CI

CircleCI integrates with GitHub, GitHub Enterprise, and Bitbucket, creating a build every time you commit code It then automatically tests your build in a clean container or virtual machine, notifying you of build fails that issues can be addressed as quickly as possible. Once a build has passed, it is deployed to various environments.

CI-FLOW ilustration

Other integrations include Fastlane, Azure, Jira, Slack, and many others depending on an organization’s specific needs, and is known for its Docker support.

CircleCI can be hosted on the cloud or run behind a firewall on an organization’s private infrastructure. Any language that builds on Linux or macOS is supported, including C++, Javascript, .NET, PHP, Python, and Ruby. CircleCI also emphasizes their security credentials, including LDAP for user management, full-level virtual machine isolation, and audit logging.

CircleCI-2.0-start-building

In terms of user feedback, many users prefer the config set up in Travis, a confusing dashboard, and there have been complaints of slowness but this is probably project-dependent.

Pricing is offered as a cloud plan or a server plan. On the cloud plan, Linux is billed per container, with the first container being free, and each additional container is costing $50 a month. For macOS, pricing is calculated based on concurrency and build minutes and starts at $39 a month. The server plan is priced at $35 per user per month, with a 10 user minimum.

Comparison

Choosing the right tool will depend on factors such as your chosen programming language and application architecture, your team’s skills, experience and preferences, and your roadmap in terms of growth and scaling.

CircleCI has a whole page dedicated to its advantages over Travis CI, and while many points are valid, there are some Travis CI advantages that are not presented.

Right now, Travis CI seems to have the edge when it comes to open-source or smaller projects, while CircleCI is generally seen to be the better option for larger teams and projects. Both, however, have been successfully used in large and small projects, and in this case, the desired option will probably come down to personal preference.