Best CI/CD Practices for Better Code Quality

Continuous integration and continuous delivery, also referred to as CI/CD, are a tradition, set of basic concepts, and set of practices that application development teams use to deliver code changes more frequently and reliably. Continuous integration is a coding philosophy and set of techniques that encourage development teams to commit tiny code changes to a version control repository regularly. Because most current applications include writing code on a range of platforms and tools, teams want a standardized method for integrating and validating changes. Continuous integration allows developers to build, package, and test their applications in an automated manner. Developers are more likely to commit code changes more frequently when they have a consistent integration procedure, which leads to improved cooperation and code quality. Continuous delivery is a software development approach that automates the infrastructure provisioning and application deployment process by combining it with continuous integration. After code has been tested and built as part of the continuous integration process, continuous delivery takes over in the last stages to ensure it can be deployed to any environment at any time. Everything from infrastructure provisioning to application deployment to the testing or production environment can be covered by continuous delivery. The program is constructed in such a way that it may be deployed to production at any moment with continuous delivery. Then you may either manually trigger the deployments or switch to continuous deployment, where the deployments are also automated.
(more…)

Load Testing Tips

A load test is a technique used to measure the response of a system under various load conditions. It assists in identifying the maximum capacity of an application and also any bottlenecks and finds out which element is degrading.

Load testing is a crucial component of performance testing that is gaining immense importance in today’s digital-driven world. Performance testing gauges whether a web application can handle high volumes and patterns of traffic before it goes live. It is a practice in which the performance of the system is tested under peak traffic conditions for web applications and APIs. By simulating the concurrent access of multiple users to an application, testers create a model of the expected usage of the application.

(more…)

Building Resilient Applications – Popular Design Principles & Using NetHavoc to Test Efficacy

Introduction

For microservices, it’s crucial to conduct resiliency testing to ensure that the system can recover from failures and keep operating as expected. Gartner reports that on average, IT downtime costs $5,600 per minute, with the cost of an hour’s downtime ranging from $140,000 to $540,000 depending on the business. A survey shows that 98% of organizations estimate the cost of a single hour of downtime to be over $100,000, while 81% say it costs over $300,000. Any disruption or downtime in these systems can lead to significant financial losses, damage to the organization’s reputation, and loss of customer trust. This is where Cavisson, a leading enabler for Fortune 100 organizations in their quest towards digital excellence, comes in. One of the key ways in which we help businesses reduce their IT downtime costs is via our chaos engineering tool, NetHavoc. This blog will explore some of the most popular design principles for ensuring resilient microservices based applications and how you can leverage NetHavoc to test their effectiveness.

What is resiliency testing?

System downtime is no longer an option. If a user is unable to access an application once, they are unlikely to use it again. Resilience is the system’s ability to gracefully handle and recover from such failures while still providing an acceptable level of service to the business. In a nutshell, it assesses the system’s resilience, introduces a flaw, and ensures that the system fully recovers. 

What are microservices?

Software architecture style that involves breaking down a large application into a set of smaller, independent services that can be developed, deployed, and maintained separately. Each service typically has a well-defined interface and communicates with other services via lightweight protocols such as HTTP or messaging systems like RabbitMQ or Kafka. Microservices are designed to be highly modular, scalable, and resilient, and are often used in large, complex systems that require a high degree of agility and flexibility. By breaking down an application into smaller, more manageable components, microservices allow developers to make changes and updates to specific parts of the application without affecting the entire system, leading to faster development cycles, better fault tolerance, and easier maintenance.

(more…)

HTTP/3 – Getting ready for the future with Cavisson NetStorm

HTTP/3 is the upcoming version of the Hypertext Transfer Protocol (HTTP), which is the underlying protocol used for communication on the World Wide Web. Let us look at some of the most significant changes being made in HTTP/3 and how it proves to be beneficial for both organizations and end-users alike:

QUIC –  Secure and reliable connection in a single handshake

QUIC enables secure and reliable connections in a single handshake. This is achieved through a feature called “0-RTT” (Zero Round Trip Time), which allows the client to send data to the server in the first packet itself, without waiting for a response from the server. This reduces the latency and speeds up the connection establishment process. QUIC is that it runs over UDP, which is a connectionless protocol that is less prone to congestion and provides better performance in high-latency networks. QUIC also includes built-in congestion control mechanisms that are designed to prevent network congestion and ensure fair sharing of network resources among different connections.

(more…)

Common Application Performance Bottlenecks—And How to Avoid Them?

In computing, the term “bottleneck” refers to an overloaded network, a device whose one component is unable to keep pace with the rest of the system, thus slowing overall performance, or an application issue that may be causing your customers/end-users to wait indefinitely while performing business critical operations. 

Fixing bottleneck issues usually results in returning the system to a stable level of performance; however, to fix bottleneck issues, it is necessary to first identify where the issue lies which decides the all-important metric(s) – mean time to detect (MTTD) & mean time to resolve (MTTR). 

Poor application performance can be caused by a variety of factors. Even just a few seconds of application downtime can have an adverse effect on revenues, reputation, and customer satisfaction. Understanding and overcoming barriers to optimal application performance is crucial to delivering the best experience to each user.

(more…)

Best Practices for API Testing

Introduction​

APIs are the “middle man” between the layers and systems in an application or software.  API (application programming interface) testing occurs at the message layer without GUI. During integration testing, it is determined whether the APIs meet the testers’ expectations regarding functionality, reliability, performance, and security. When faults occur, they are costly, both in terms of the direct costs of resolving the defects and in terms of the indirect costs of damaged relationships, lost business, and missed development time. Inadequate software testing raises the risk of developer issues, stakeholder displeasure, and poor customer experiences. API tests are the quickest ways to check the functionality, reliability, performance, and security of the programming interfaces. An API is a software middleman that allows two programs to communicate with each other or the “middleman” of the layers and systems of an application or software. An application programming interface (API) is the interface that allows various software to communicate with one another.
(more…)

Performance Newsletter September’ 2023

RECOGNITION

Cavisson Systems recognized as one of the key players in multiple technologies.

Top 50 Innovative Company in 2023

Cavisson Systems, Inc is proud to announce that we’ve been named one of the Top 50 Innovative Companies to Watch in 2023, by CEO Views. A testament to our constant strive for innovation, the award further validates our vision to provide a one-stop solution for

Web Performance

Market Research Access Services mentions Cavisson Systems, Inc. as one of the key players in the Global Web Performance Testing Market for 2022-2030. The report comprises various segments as well as an analysis of the trends & factors that are playing a substantial role in the market. Read More 

Cloud Testing

According to Cloud Testing Service Market Size And Forecast 2022-2030, Cavisson is one of the key players in Cloud Testing Service. The Global Cloud Testing Service Market is growing at a faster pace with substantial growth rates over the last few years and is estimated that the market will grow significantly in the forecasted period i.e. 2022 to 2030. Read More

Service Virtualization

According to Absolute Global’s “Service Virtualization Market” 2022 research report, Cavisson become the Major Topmost Player in the list of the Service Virtualization market. It shows the market analysis which comprises the market size, share, revenue, and trends in order to be familiar with the current market position in both the regional and worldwide segments. Read More

Introducing Cavisson's Experience Management Platform

Built to assist businesses in delivering resilient, performant & stable applications at scale & with speed.
Our unified platform combines testing, observability, chaos engineering & service virtualization in a single platform to facilitate organizations in providing exceptional customer experience to stay ahead of the competition and ace the digital-first economy. Here are some of the advantages of our Unified platform:-

Organizations have traditionally used a variety of tools for performance testing, application monitoring, chaos engineering, and service virtualization. One of the biggest drawbacks of such an approach is the amount of time spent to ensure that all these different tools integrate with each other to present a complete picture of your application’s performance, not to mention the cost involved in doing so as well as the fact that there is no guarantee that such integration will end up providing a holistic view of your application and its underlying components. This is where Cavisson’s integrated performance intelligence platform comes in with its combined approach to different facets of application performance. With Cavisson, all you need is a single product for the aforementioned solutions without the need for any additional integration.

When an organization depends on multiple vendors, an inherent risk is associated as organizations have to tirelessly work towards making sense of disparate sources/products and obtaining a bird’s eye view across their application ecosystem. Important organization resources like time, cost, and man-hours are lost in making sure that these different products are interacting with each other to provide actionable insights. This approach greatly reduces & delays the value adds that an organization will see post-implementation of different products. Cavisson System’s Performance Intelligence Platform circumvents such issues with its unique approach of providing a one-stop shop for all your application performance requirements. 

With a single platform addressing various facets of application performance, the integrated solution offers a unique approach that can be deployed across your production and pre-production environments. The major benefit of having a single tool to test your application’s performance & resiliency, combined with monitoring, is that it gives you the ability to greatly reduce blind spots that end up affecting customer experience and revenue. 

PRODUCT UPDATES

Performance Suite

Added support for user data point function: The ns_user_data_point function allows you to record your own data for analysis. Users have to pass ‘Name’ and ‘value’ to this API. The name should have text characters except for the special characters (” ‘ % *, < > ` ~ \ ^ | #).

Web Performance Report of RBU:

The Web Vital Performance Report provides a set of three different reports: Web Vital Average Report, Page Average Report & Lighthouse Report. Each report summarizes the pages and important metrics for an overview to quickly identify and drill down to the pages that would need immediate attention.

Web-based Script Manager User Interface is now available: Earlier, users had to download JNLP files, and the script manager also required a certain version of Java. However, the script manager is now web-based and is not JAVA-dependent. The UI itself allows users to manage every script.

Compare Script feature in Script Manager: By using this feature, the User can compare 2 files of either the same script or different scripts.

Account Summary Report Support: The account test run usage report or Account Summary Report is a report which describes the total usage of the product including the number of test runs, time of the test run, and the number of maximum virtual users. 

Need Support LoadTest Jenkins plugin handles all SERVER HOST:  By using this feature, User can use server mapping for performance tests with Jenkins.

HTTP3 Support Added: Now Load test support HTTP3 for performance testing. The third major version of the Hypertext Transfer Protocol, or HTTP/3, is used to transmit data across the World Wide Web. Similar request methods, status codes, and message fields are used by HTTP/3 in comparison to earlier iterations of the protocol, but they are encoded and the session state is maintained differently.

Record websocket script through script manager- Script manager:

Now in the Script recorder user can record WebSocket APIs as well. WebSocket enables fast, secure, two-way communication between a client and a remote host without relying on multiple HTTP connections. It supports full-duplex, bi-directional messaging which is great for real-time, low-latency messaging scenarios.

RBU Puppeteer/Headless Support: Puppeteer is an agent used for headless browser testing. From headless browser testing, users can run lightweight tests which will take fewer resources like CPU, memory, etc. By using a headless browser users can run more virtual user tests than normal RBU tests.

Redesign & Introduce Advanced Feature:

We have redesigned the UI of several components like WSDL, Manage Template & Test Service screens. New functionalities for virtualizing services have been added via OpenAPI. Users can also scale the service time of multiple virtualized services at once.

Added SQL Parameter Support: NetOcean supports several types of SQL parameters to hold the values of composing service response, template, selection, and data selection. Parameterized SQL provides robust handling and escaping of user input, preventing accidental exposure of data.

GIT Support: Users can now can keep all their services in a centralized GIT repository and any changes made are automatically reflected under the Service Virtualization module. With this integration, users will witness ease of maintaining their services without the need to make changes at multiple places whenever any modifications are done to the services.

Automation API Support: The following list of REST APIs are used to create a virtual service through Jenkins: create service, enable service, disable service, delete service, and edit service.

RR Pair Support: When a virtual service is created by the use of request and response pairs (RR Pairs), RR pairs can handle any request and response whether they are XML, JSON, or any other arguments.

Kafka Support: A Kafka service refers to a cloud service and a data streaming platform. Kafka is supported in NetOcean and provides cloud-based services such as Apache.

Application Disruptions:

Cavisson NetHavoc introduces Application Disruption as a separate havoc category. This havoc category contains the following havoc (chaos experiments).

  1. Alter Inbound Services – Helps you to induce delays in the response time and service failure in the service transactions of your application
  2. Alter Outbound Services – Leads you to apply faults when calling out other services for inducing delayed response time and service failure Invocation
  3. Method Invocation – Induces delay in method execution time so that you can check how your application behaves in such instances. 
  4. Method Exception – Inject exceptions in method execution to analyze dependencies and affected components. 
  5. Heap Memory Leak – Heap memory is generally used for dynamic memory allocation of objects and classes that are created during the execution of a java program. In this havoc type, we increase the heap memory utilization for JVM by 100% of transactions that happen in the application.
  6. Application CPU Burst –  Application CPU Burst helps you to inject faults in the application’s CPU by two methods. Increasing the CPU utilization percentage is one of the categories and another is increasing the core size of the application CPU.

Monitoring Suite

Java Agent​

  • Memory Profiling
    • Memory profiling through Cavisson NetDiagnostics enables you to understand your applications’ memory allocation and garbage collection behavior over time. It helps you identify method calls within which most memories were allocated and combine this information with the number of allocated objects.
  • Mutex Lock Analyses
    • Lock profiling enables you to understand your applications’ lock contention and blocking thread behavior over time. Extremely useful in analyzing threads and identifying and solving performance bottlenecks faster in your application, resulting in an uptick in customer satisfaction!
  • Support for JDK version 13 and higher
    • Earlier java versions greater than 12 were not working. Now after the support of ASM9, this issue is resolved. It supports java versions up to 16.
  • AWS Lambda Support
    • With AWS Lambda observability powered by AI and automation, you can enhance application performance. Get complete visibility into all tiers of your stack to help you optimize response time hotspots, simplify error analytics and optimize your architecture. This will increase scalability, lower costs and improve the performance of your application.

Support for AKKA Tx capturing :

Users can capture transactions by AKKA as it is a set of libraries for designing scalable, resilient systems.

Tag Support: 

Monitoring and Search Based on Tags in Business Transactions. Tags organize data coming from a large number of sources and/or to a large number of accounts. It identifies teams, roles, environments, or regions to know who’s responsible for what and also organizes and searches dashboards and workloads to Query and chart APM data.

Support of thirdparty GO Library – grpc server:

Support of third-party GO Library on grpc server i.e new frameworks has been supported. Some go applications use these frameworks. Supporting the framework means the user can capture the entry point to generate records, as GRPC being a modern open source high performance Remote Procedure Call (RPC) framework can run in any environment.

DotNet Agent: 
Application topology is discovered automatically by ED based on input provided by NDP & agent instead of configuring it manually by mapping the backend name to the corresponding tier name as done previously
 
PHP Agent
  • Support for the Oracle database is provided in phpAgent. The entry point is oci_parse.
  • The support was given for exception monitor in the PHP agent.
  • The following frameworks are now supported by the PHP agent: CakePHP, Laravel, Codeigniter, Symfony, and WordPress.

Python Agent

  • Adding to our growing capabilities, we are ready with the Python application agent. With instrumentation support for the application, core, and third-party modules, you can now identify & monitor critical business transactions across your python based application.
  • Moreover, users will be able to identify database, HTTP & custom callouts made from their python applications to quickly identify if an issue occurs outside your application.

Similar Session Search:  We can search sessions applying various filters but many times users want a similar session and he/she wants to see a similar session for that purpose feature a similar search is required. A similar session means a session having Similar Events, Similar User Actions & Similar Page Sequence or subsequence.

Single max doc endpoint for all nfdb requests :  With this feature, a single endpoint will handle all the nfdb requests, making nfdb more flexible and optimizing performance. Before this enhancement, two endpoints were being used, one for processing 10,000 documents and another one for processing greater than 10,000 documents.

Tags & Attributes: Support Now both Tags & Attributes are supported by Log monitoring in which Tags and attributes are two different things, Tags are labels used for organizing entities’ metrics data time series, and attributes are key/value pairs used for defining extra information for entities.

Loki Support for MVCOMBINE Construct, NOMV Construct, and MVEXPAND Construct​:  This construct is used to group multiple events, which are identical except for the specified field, which contains a single value. The resultant of this operation is a single event in which the specified field becomes a multi-value field.

Support for creating log metric monitor by selecting strings from logs:  This feature helps to create a log metric monitor from the Logs screen by selecting some string/text from the message or any other fields. The user selects some value/text from any fields and one popup menu opens for Log Monitor.

Events

Achieving exceptional digital customer experience in today’s digital-first economy ​
Cavisson Connect May 2023

We are delighted to share that Cavisson Systems recently hosted a highly successful conference on Friday, May 26th. The conference centered around the critical theme of “Ensuring exceptional customer experience in today’s digital-first world,” and it was a resounding success!

We were honored to welcome key stakeholders and decision-makers from various industry verticals to our office. The event provided an invaluable platform for discussing how to create resilience against application failure and deliver outstanding customer experiences.

Cavisson Connect 2.0 Aug 2023

We believe that ensuring exceptional online customer experience requires a multi-disciplinary approach, combining testing, observability, and chaos engineering among other aspects.

Discussing the finer points around the pivotal agenda of “Ensuring Exceptional Customer Experience in Today’s Digital-First World,” was the order of the day at the recently concluded Cavisson Connect 2.0 on 10th August.