Skip to content

Tarsus Distribution Partners with Scale Computing to Deliver a VMware Alternative to the Southern African Market

JOHANNESBURG, South Africa – 23 May 2024 – Tarsus Distribution has partnered with Scale Computing, a market leader in edge computing, virtualization, and hyper-converged solutions, to deliver simple, reliable, affordable and easy-to-deploy infrastructure solutions via Scale Computing’s award-winning SC//Platform while simultaneously expanding its technology offerings to its channel partner network. 

“Our new partnership with Scale Computing is an important step in our efforts to set new standards in IT efficiency and reliability, fostering growth and operational excellence for businesses across our markets. Their focus on practical and reliable computing solutions aligns perfectly with what our partners and their customers need,” said Alan Hawkins, General Manager: Enterprise Solutions at Tarsus Distribution. “By working together, we can offer a straightforward approach to complex IT challenges, helping our customers streamline their operations and save on costs. We believe this partnership stands to make a real difference for businesses looking for stability and simplicity in their IT infrastructure.”

Many of today’s virtualization solutions consist of multiple vendor products, making them more complicated and expensive than necessary. Moreover, properly configuring disparate server and storage components takes up valuable department resources, and that’s even before a company has installed and configured hypervisors or tested for compatibility and performance. Together, Tarsus Distribution and Scale Computing are bringing a virtualization alternative to the Southern African market.

The SC//Platform combines simplicity, high-availability and scalability, replacing the existing infrastructure and providing high availability for running virtual machines (VMs) in a single, easy-to-manage platform. Regardless of hardware requirements, users can run applications in a fully integrated platform, and the same innovative software and simple user interface provides the power to run infrastructure efficiently at the edge.

“Scale Computing’s commitment to innovation and reliability has made it a standout provider of edge computing solutions, not just in existing markets, but with great potential for growth in emerging ones,” said Scott Mann, Global Channel Chief and Vice President of International Sales at Scale Computing. “Our partnership with Tarsus Distribution represents a strategic move to extend our reach within greater Southern Africa, a market rich with opportunity. Tarsus Distribution is known for its expertise in logistics and a deep understanding of the local IT landscape. We are confident that this collaboration will deliver unparalleled value to businesses throughout Southern Africa, offering them scalability, operational efficiencies, and cost savings that are critical in today’s fast-paced digital world. We look forward to a successful partnership and to bringing our cutting-edge solutions to more customers across the region.”

The imperative for IT leaders to simplify operations and reduce costs in navigating the dynamic IT infrastructure landscape is clear. Scale Computing’s customers typically experience a substantial reduction in ongoing management costs, ranging between 60 and 80 percent. This partnership symbolises our mutual commitment to innovation and excellence, aiming to set new industry standards in delivering advanced technology solutions and offering a viable VMWare alternative that caters to customers’ diverse and evolving needs.

To find out more about migrating from your existing virtualization platform or if you are virtualizing from scratch for the first time, please contact us here.

About Tarsus Distribution

As Southern Africa’s leading value-added technology distributor, Tarsus Distribution represents top tier global hardware, software and information security brands. The company has made extensive investments in providing digital tools and logistics systems that empower channel partners with the speed, efficiency and flexibility they need to meet the needs of today’s demanding and connected customer.

Tarsus Distribution sets itself apart in a commoditized and competitive market by partnering with the channel to provide complete solutions to the end-client — from consulting about the business requirement to fulfillment of the order. In addition to an unsurpassed national logistics engine and integrated supply chain, Tarsus Distribution offers the channel technical support capabilities and tailored channel financial services.

Tarsus Distribution is a Level 1, 51% black-owned and 30% black female-owned B-BBEE businesses under the Amended ICT Sector Codes.

More information about Tarsus Distribution is available at:

www.tarsus.co.za
https://www.linkedin.com/company/tarsus-distribution/
https://www.facebook.com/TarsusDistribution

Contacts:

Monique Crosson
Marketing Operations Manager
T: +27 11 531 1000

About Scale Computing

Scale Computing is a leader in edge computing, virtualization, and hyperconverged solutions. Using patented HyperCore™ technology, Scale Computing Platform automatically identifies, mitigates, and corrects infrastructure problems in real-time, enabling applications to achieve maximum uptime, even when local IT resources and staff are scarce. Edge Computing is the fastest-growing area of IT infrastructure, and industry analysts have named Scale Computing an outperformer and leader in the space, including being named the #1 edge computing vendor by CRN. Scale Computing’s products are sold by thousands of value-added resellers, integrators, and service providers worldwide. When ease-of-use, high availability, and TCO matter, Scale Computing Platform is the ideal infrastructure platform. Read what our customers have to say on Gartner Peer Insights, G2, and TrustRadius.

About Version 2
Version 2 is one of the most dynamic IT companies in Asia. The company develops and distributes IT products for Internet and IP-based networks, including communication systems, Internet software, security, network, and media products. Through an extensive network of channels, point of sales, resellers, and partnership companies, Version 2 offers quality products and services which are highly acclaimed in the market. Its customers cover a wide spectrum which include Global 1000 enterprises, regional listed companies, public utilities, Government, a vast number of successful SMEs, and consumers in various Asian cities.

About Scale Computing 
Scale Computing is a leader in edge computing, virtualization, and hyperconverged solutions. Scale Computing HC3 software eliminates the need for traditional virtualization software, disaster recovery software, servers, and shared storage, replacing these with a fully integrated, highly available system for running applications. Using patented HyperCore™ technology, the HC3 self-healing platform automatically identifies, mitigates, and corrects infrastructure problems in real-time, enabling applications to achieve maximum uptime. When ease-of-use, high availability, and TCO matter, Scale Computing HC3 is the ideal infrastructure platform. Read what our customers have to say on Gartner Peer Insights, Spiceworks, TechValidate and TrustRadius.

SalesTechStar Interview with Joseph Rodriguez, CRO at Portnox

Originally published on SalesTech Stars.

Hi Joseph, tell us about yourself and what piques your interest about being in the B2B SaaS market?

I have over 20 years of SaaS Enterprise sales and Go-to-Market experience. This includes my current role as CRO at Portnox, revenue leadership positions at Spredfast (now Khoros) and Upland Software. e.

I approach every interaction with genuine care, whether it is with the sales team, customers and prospects, or my peers. I truly enjoy working shoulder to shoulder with our incredible sales team to deliver unprecedented revenue-growth, expansion, and retention.

The team aspect of it is very important to me. A good example – last month we brought the sales organization to Austin for a sales rally. We spent the time not only talking about the business and key focus areas. In addition, we took part in team building exercises and dinners to get to know and trust each other on a personal level.

I also love planning sessions with my peers on the Portnox Executive Leadership team to think about focus areas for the next six months and into the following year.

It’s invigorating to genuinely solve a challenge for customers. I love it when I have a solution that solves real problems. At Portnox, we are solving cybersecurity issues and challenges for customers – making their environment and devices and employees safer. I sat in the offices of a large customer last week, and the team was so grateful for all the problems we helped them solve. They feel like they’ve taken a giant leap in security safeguards and are helping them create their security strategy.

The combination of teamwork, strategic planning, and the genuine impact we have in solving real problems for companies is what makes being in the B2B SaaS market incredibly fulfilling for me.

Read More: SalesTechStar Interview with Allison Metcalfe, CRO at Cloudinary

As a revenue and sales leader: what are the five fundamentals you follow as a daily practice that you also instill in your team?

As a revenue and sales leader, I adhere to five fundamental practices daily, which I also instill in my team. These practices are essential for maintaining excellence and achieving consistent success, particularly in the competitive SaaS industry.

  1. Do What We Say We’re Going to Do: Reliability is crucial. Delivering on our promises builds trust and credibility with our clients and colleagues. This practice ensures accountability and fosters a culture of dependability.
  2. Be On Time: Punctuality reflects our respect for others’ time and our commitment to professionalism. Whether it’s a meeting, a call, or a project deadline, being on time demonstrates discipline and reliability. It’s a simple yet powerful habit that sets a positive tone for all interactions.
  3. Prep, Prep, Prep: Thorough preparation is non-negotiable. We emphasize the importance of being well-prepared for every engagement, whether it’s a sales pitch, a client meeting, or an internal discussion. This includes understanding the client’s needs, researching their business, and anticipating potential questions or challenges.
  4. Add Value: Our goal is to consistently add value to our clients’ businesses. This goes beyond selling a product or service; it’s about understanding their challenges and providing solutions that genuinely address their needs. We train our team to focus on how we can help our clients achieve their goals, not just on the features of our offerings.
  5. Understand the Customer’s Business: Deeply understanding our customers’ businesses is critical. This involves recognizing their unique challenges, industry dynamics, and strategic objectives. By doing so, we can tailor our approach and provide insights that resonate with them, positioning ourselves as trusted advisors rather than just vendors.

In addition to these fundamentals, we emphasize value-based selling. This approach is centered on understanding what the customer is genuinely trying to solve. Our training focuses on identifying the core issues our customers face, such as achieving security compliance goals or protecting their devices, rather than merely highlighting product features. By asking the right questions and truly listening to our customers, we can align our solutions with their specific needs, ultimately delivering greater value and fostering long-term partnerships.

Can you take us through some of the revtech and salestech that you’ve relied on over the years to drive goals?

We rely on several revolutionary technologies to drive our sales goals and optimize our processes. Here are a few that have been indispensable:

Gong is an AI-powered sales listening tool is something I couldn’t live without. Gong records our calls and provides data, analytics, and metrics that are invaluable for understanding and improving our sales interactions. For instance, I can see the percentage of time our sellers talk versus listen on a call, the breakdown of demo versus presentation calls, and the most commonly asked questions from prospects. This data allows us to be proactive in training our sales team, ensuring they are always improving and aligning with best practices.

Another AI-oriented tool, 6Sense, has been critical in identifying the right prospects who are actively in the market for our solutions. It helps us craft the right type of message, ensuring that we’re reaching the right person at the right place and time. The data-driven insights from 6Sense make our sales team incredibly efficient, allowing them to target the right people with precision. I’ve used 6Sense in every organization I’ve been a part of, and it consistently delivers results.

Every member of our sales team uses LinkedIn Sales Navigator. It allows us to message key stakeholders of our customers or prospects one-on-one, fostering genuine connections on a business-oriented but social platform. The ability to connect and engage with prospects on LinkedIn has been a game-changer for us, enhancing our outreach and relationship-building efforts.

These tools have not only helped us achieve our sales goals but have also significantly improved our overall sales strategy and efficiency.

What are the five biggest challenges that modern sellers and revenue leaders face today and what tips would you share against these?

Modern sellers and revenue leaders face several significant challenges in today’s sales landscape. Here are the five biggest challenges and some tips to address them:

  1. Educated Buyers: Today’s buyers are more informed than ever before. They often don’t engage with salespeople until they are 60-70% through the sales process, meaning they already have a lot of knowledge about your product. This shift requires salespeople to be even more prepared and knowledgeable. Tip: Leverage tools like Gong and 6Sense to gain insights into what your customers are interested in before you even speak to them. Be prescriptive in your approach, demonstrating clear value and providing tailored solutions that address their specific needs.
  2. Reduced Time with Buyers: With buyers doing much of their research independently, salespeople have limited time to influence decisions. Tip: Make every interaction count. Focus on delivering high-value content and personalized experiences. Utilize data-driven insights to understand pain points and position your product as the ideal solution quickly and effectively.
  3. Shifting Messaging Needs: The way you communicate with potential customers has evolved dramatically. Buyers now expect more direct and relevant interactions. Tip: Use AI tools to gather data and to tailor messaging. Be clear about the value you bring and how your product can help them achieve their goals.
  4. Access to Decision-Makers: Getting direct access to ultimate budget holders and decision-makers can be challenging, as they are often focused on high-level strategy rather than tactical buying decisions. Tip: Focus on educating and arming your primary contact with the information and resources they need to sell your product internally. Provide them with compelling use cases, ROI data, and any support materials that can help them advocate for your solution.
  5. Adapting to Change: The sales environment is constantly evolving, and what worked 18 months ago might not work today. Staying ahead of the curve is essential. Tip: Continuously invest in learning and adapting to new technologies. Encourage a culture of agility and innovation within your sales team, always seeking out new ways to meet (and exceed!) the evolving needs and expectations of your customers.

By addressing these challenges head-on and leveraging the right tools and strategies, modern sellers and revenue leaders can navigate the complexities of today’s sales landscape and drive success.

Take us through your use of AI in salestech and how you enable your teams with upskilling and better processes so that new age tech is used optimally?

We layer in AI to enhance, not replace, human interaction in sales. While AI provides valuable data, it’s still crucial to connect genuinely with prospects. AI tools help us analyze calls and identify prospects, making our sales efforts smarter and more targeted.

However, we do more of our training around developing essential soft skills like empathy and active listening. This approach helps our teams be more prescriptive in their strategies and move prospects quickly to demos and proofs of concept. Ultimately, AI is a tool to make us smarter, but the human element of understanding and curiosity remains key to our success.

A few ways in which you think B2B tech sales should change?

B2B tech sales need to shift focus from an overload of techniques and tools to fostering genuine human connections. Despite the abundance of technology and data, sales remain fundamentally people driven. Instead of relying solely on sales methodologies, sales professionals should prioritize understanding and relating to prospects on a personal level. Be genuinely curious, respond authentically, and leverage your expertise to connect with and help clients, not just to sell to them. This approach will build stronger, more meaningful relationships and drive better results.

Some thoughts you’d share for fellow CROs before we wrap up?

Embrace adaptability and rapid decision-making. Constantly evaluate your internal talent to ensure it aligns with your go-to-market strategy and optimize resource allocation to manage costs effectively. The ability to change and iterate every quarter is crucial—don’t get stagnant. Leverage data and prioritize sales and revenue operations to drive efficiency and informed decision-making. Continuously review and adjust based on data insights to stay ahead and optimize performance.

About Version 2
Version 2 is one of the most dynamic IT companies in Asia. The company develops and distributes IT products for Internet and IP-based networks, including communication systems, Internet software, security, network, and media products. Through an extensive network of channels, point of sales, resellers, and partnership companies, Version 2 offers quality products and services which are highly acclaimed in the market. Its customers cover a wide spectrum which include Global 1000 enterprises, regional listed companies, public utilities, Government, a vast number of successful SMEs, and consumers in various Asian cities.

About Portnox
Portnox provides simple-to-deploy, operate and maintain network access control, security and visibility solutions. Portnox software can be deployed on-premises, as a cloud-delivered service, or in hybrid mode. It is agentless and vendor-agnostic, allowing organizations to maximize their existing network and cybersecurity investments. Hundreds of enterprises around the world rely on Portnox for network visibility, cybersecurity policy enforcement and regulatory compliance. The company has been recognized for its innovations by Info Security Products Guide, Cyber Security Excellence Awards, IoT Innovator Awards, Computing Security Awards, Best of Interop ITX and Cyber Defense Magazine. Portnox has offices in the U.S., Europe and Asia. For information visit http://www.portnox.com, and follow us on Twitter and LinkedIn.。

Wi-Fi Logins with a Twist: Captive Portals and DNS Filtering

Ever connected to a public Wi-Fi network at a coffee shop or airport, only to be greeted by a login page instead of the internet? That’s a captive portal in action. It’s like a gatekeeper, ensuring you meet certain requirements before granting access.

Benefits for Businesses:

  • Security First: Captive portals keep unauthorized users out, protecting business networks from malware and hacking attempts. They can also enforce security terms to limit liability.
  • Marketing on Autopilot: The captive portal is a captive audience! Businesses can use it to display targeted ads,special offers, or showcase their brand.
  • Customer Engagement: Interactive portals with surveys, polls, or social media logins can gather valuable customer feedback and boost engagement.
  • Data-Driven Decisions: Businesses can collect email addresses or social media logins to build email lists and gain customer insights for better marketing.
  • Premium Wi-Fi: Businesses offering high-speed or premium connections can leverage captive portals for paid Wi-Fi access.

While captive portals are great at managing network access and leveraging that access for business benefits, they do not protect users from accessing harmful websites or inappropriate content after they have connected to the network. This is where DNS filtering steps in as a critical ally. 
It works as a second line of defense, blocking access to non-compliant and harmful websites right from the get-go. DNS filtering can block malicious sites even before you log in, keeping your device protected. Additionally, some portals can integrate with DNS filtering, allowing access to specific DNS servers only after successful login. This helps enforce company policies and security guidelines.

Combined, these technologies make it possible for businesses to provide a safe, controlled, and productive online experience. This is why DNS filtering becomes an invaluable partner for captive portals to make the environment not only accessible but also secure.


Potential Bumps in the Road:

Here’s the catch: strong DNS filtering on users device might block the captive portal’s redirection, preventing the login page from showing up. This can be frustrating!

  • Roaming Client Blues: This often happens with software installed on devices (roaming clients) for DNS filtering. If users run into this, they should contact their company’s IT team to add the captive portal to an “allow list”.
  • Local vs. Network DNS: By default, roaming clients might prioritize their own DNS servers over the network’s.This can cause issues with captive portals that require the network’s specific DNS server for redirection.


Finding the Right Balance:

While combining DNS filtering and captive portals offers great benefits, it’s important to consider user experience, technical challenges, and privacy concerns. Striking a balance between security and usability is key. Additionally,organizations need to stay updated on evolving threats and regularly adjust their filtering policies.

The Final Word:

Captive portals and DNS filtering, when used together, create a powerful shield against online threats and unwanted content. This combo allows organizations to create secure and controlled network environments while empowering users to access resources safely. As security threats become more prevalent, this integration is a cornerstone of modern network security strategies.




About Version 2
Version 2 is one of the most dynamic IT companies in Asia. The company develops and distributes IT products for Internet and IP-based networks, including communication systems, Internet software, security, network, and media products. Through an extensive network of channels, point of sales, resellers, and partnership companies, Version 2 offers quality products and services which are highly acclaimed in the market. Its customers cover a wide spectrum which include Global 1000 enterprises, regional listed companies, public utilities, Government, a vast number of successful SMEs, and consumers in various Asian cities.

About SafeDNS
SafeDNS breathes to make the internet safer for people all over the world with solutions ranging from AI & ML-powered web filtering, cybersecurity to threat intelligence. Moreover, we strive to create the next generation of safer and more affordable web filtering products. Endlessly working to improve our users’ online protection, SafeDNS has also launched an innovative system powered by continuous machine learning and user behavior analytics to detect botnets and malicious websites.

Leveraging virtual machines for efficient and effective software testing

As we all know, software testing is vital in the software development lifecycle. It ensures that the software meets the requirements and is bug-free, and it allows developers to optimize performance and validate the functionality of their projects. 

However, testing can be time-consuming and resource-intensive, especially when testing software components on different operating systems and configurations. These use cases are where using virtual machines (VMs) to test software comes to the rescue.

A VM is a software-based emulation of a physical computer that allows multiple operating systems to run on a single physical computer.

VMs are indispensable tools for software testing, offering flexibility, scalability, and reproducibility in testing environments.

Virtual machines also make it easier to test different configurations without affecting the host operating system.

This guide will explore how to leverage virtual machines for efficient and effective software testing.

Understanding the benefits of virtual machines for software testing:

Virtual machines have become an indispensable tool for software testing. They provide a range of benefits, including isolation, reproducibility, scalability, and flexibility.

1. Isolation

VMs provide isolated environments for testing, allowing testers to create and test different software components and dependencies without any conflicts. This isolation is particularly important for complex software systems, where conflict between components can have severe consequences.

2. Reproducibility

VM snapshots allow testers to create and revert to specific states of the testing environment. This ease of replication ensures that test results are consistent and reproducible, which is essential for evaluating software quality.

3. Scalability

A critical aspect of software testing is the ability to easily clone and deploy testing environments to enable parallel testing of multiple software configurations. This scalability helps improve testing efficiency and reduce the time and resources required for testing. It’s especially useful for large-scale projects.

4. Flexibility

VMs like Parallels Desktop support multiple operating systems and configurations, allowing testers to simulate diverse environments and scenarios and ensure that you are testing software under a range of conditions. This flexibility is particularly important for identifying and addressing potential issues across different environments.

Creating reproducible testing environments

One of the significant challenges of software testing is creating a reproducible testing environment. A testing environment should be identical to the production environment, ensuring the software behaves in a similar fashion. VMs provide an easy way to create and manage reproducible testing environments.

To create reproducible testing environments using virtual machines, follow these steps:

1. Choose a hypervisor

To host your virtual machines, select a hypervisor such as Parallels Desktop.

2. Develop base images

Develop base images containing the desired operating system, configuration, and software dependencies as in the production environment.

3. Customize VM settings

You can customize VM settings such as CPU, memory, disk space, and network configuration to match testing requirements.

4. Install testing tools

Install testing frameworks, debuggers, and other tools necessary for VM tests.

5. Take snapshots

Take snapshots of the VM at various stages of the testing process to capture specific states for later reference or rollback.

Following these steps, you can install the software you want to test on the VM in a controlled environment. If the software behaves differently in the testing environment, you can identify and fix the issue before deploying it to the production environment.

Example: You’re testing a web application requiring specific web server versions, databases, and middleware. You can create a base VM image with the required software stack installed and configured. By taking snapshots before and after each iteration, you can quickly revert to a clean state and ensure consistent testing conditions.

Utilizing snapshots for testing scenarios

Another advantage of using VMs for software testing is the ability to take snapshots of the VM at different stages of testing.

Snapshots are invaluable for testing scenarios where you must revert to a known state, compare different test outcomes, test different configurations, or perform multiple iterations of the same test.

Here’s how to effectively utilize snapshots for software testing:

1. Before-test snapshots

Before running tests, take snapshots of the VM to capture the initial state of the testing environment. This snapshot lets you easily revert to a clean state if tests fail or produce unexpected results.

2. After-test snapshots

Take snapshots after completing tests to preserve the state of the environment and any changes made during testing. These post-test snapshots provide a reference point for analyzing test results and debugging issues.

3. Branching snapshots

Create branching snapshots to explore alternative test scenarios or configurations without affecting the primary testing environment. This step allows testers to experiment with different configurations or test cases while maintaining the integrity of the base environment.

4. Snapshot management

Maintain a structured approach to snapshot management, including naming conventions, documentation of snapshot purposes, and regular cleanup to avoid cluttering the VM environment with unnecessary snapshots.

Example: You’re testing a software update. Before applying the update, you can take a snapshot of the VM to capture the pre-update state.

If something goes wrong during the update, you can quickly revert to the pre-update snapshot and investigate the issue.

After you’ve applied the update and run your tests, you can take another snapshot to preserve the post-update state. This snapshot will help you identify any changes that occurred after the update and determine the root cause of any issues that may have arisen.

Taking snapshots is a great way to ensure you can quickly troubleshoot and investigate any issues that may arise during software testing. They also save you time and resources, as you don’t have to recreate the entire testing environment each time you want to run a test.

Optimizing VM configurations for testing different software components

When testing software, you may need to test different components on different operating systems and configurations. VMs allow you to create and manage different configurations to test software components expediently. You can create a VM for each configuration, install the required software, and test the software in an isolated environment.

To optimize VM configurations for testing different software components, you can allocate resources such as CPU, memory, and disk space based on the software’s requirements while testing against different real-world conditions with the network, such as slow clients, a drop in the internet connection, etc.

For example, if you are testing a memory-intensive application, you can allocate more memory to the VM. If you are testing a CPU-intensive application, you can allocate more CPU resources to the VM.

Consider the following factors when optimizing VM configurations for testing different software components:

1. Resource allocation

Allocate sufficient CPU, memory, and disk space to each VM to ensure optimal performance during testing. Adjust resource allocations based on the requirements of the software you’re testing and the complexity of test scenarios.

2. Networking setup

Configure virtual networks that simulate various network conditions, such as latency, packet loss, and bandwidth constraints. This setup allows testers to evaluate software’s performance and resilience under different network conditions.

3. Integration with testing tools

Integrate VMs with testing tools and automation frameworks to streamline the testing process. These integrations include configuring VMs to interact with testing scripts, reporting tools, and version control systems for efficient test execution and result analysis.

4. Environment configuration management

Implement version control and configuration management practices to track changes to VM configurations and ensure consistency across testing environments. This capability helps avoid discrepancies between testing environments and promotes reproducibility of test results.

Example: You’re testing a distributed system that spans multiple VMs. You can optimize VM configurations by allocating more resources to VMs hosting critical components and simulating network conditions to replicate real-world scenarios.

Integrating VMs with testing tools like Jenkins or Selenium allows you to automate test execution and streamline the testing workflow.

Examples of leveraging virtual machines for software testing

Let’s look at examples of using virtual machines for software testing.

Example 1: Testing web applications

Testing web applications often requires checking compatibility across various configurations and browsers. Here’s how virtual machines can facilitate this process:

Scenario: You’re developing a web application that needs to be compatible with different browsers, such as Chrome, Firefox, and Safari, as well as various operating systems, including Windows, macOS, and Linux.

1. Create VMs for each configuration

Using a hypervisor like Parallels Desktop, create separate VMs for each browser and operating system combination you need to test. For example, you might create VMs for Chrome on Windows, Firefox on macOS, and Safari on Linux.

2. Install the required browsers

Install the specific browser version you want to test within each VM. Ensure that you use the browser version your target users will likely use.

3. Isolate testing environments

You create isolated testing environments by running each browser in its own VM. This isolation prevents conflicts between browser settings, extensions, or plugins that could affect the test results.

4. Take snapshots for testing

Take snapshots of each VM to capture its initial state prior to running tests. As you perform tests, take additional snapshots at critical stages to facilitate rollback if needed.

5. Conduct testing

Run your tests on each VM, performing tasks such as navigating the website, filling out forms, and testing JavaScript functionality. Testing frameworks like Selenium can automate or manually perform tests to ensure compatibility.

6. Analyze results and debug

After testing, analyze the results to identify any issues or inconsistencies across different browsers or operating systems. If problems arise, use your snapshots to revert VMs to a known good state for further investigation and debugging.

7. Report and iterate

Document any issues found during testing and report them to the development team for resolution. Iterate on the testing process as needed, adjusting VM configurations or testing methodologies to improve coverage and reliability.

Example 2: Testing cross-platform applications

Testing mobile applications requires validation across various devices, platforms, and screen sizes. Here’s how virtual machines can facilitate mobile app testing:

Scenario: Imagine you’re developing an application that needs to run smoothly on iOS and Android devices with different screen resolutions and device models.

1. Create VMs for each device/OS combination

Using tools like Android Emulator for Android or Xcode Simulator for iOS, create separate VMs for each device and operating system combination you need to test. For example, you might create VMs for iPhone X running iOS 14 and Google Pixel 4 running Android 11.

It would look something like this:

Create VMs for each OS Combination: Using the development tools for each of the operating systems, create separate VMs to allow running the applications and debugging them.

2. Install the required software

Install the necessary software components, such as the mobile operating system, development tools, and the cross-platform app, within each VM. Ensure that you use the same app version that end users will get.

3. Simulate device environment

You simulate real-world device environments by running each device in its own VM. This simulation allows you to test the app’s behavior on different screen sizes, resolutions, and hardware configurations.

4. Take snapshots for testing

Before running tests, take snapshots of each VM to capture its initial state. As you perform tests, take additional snapshots at critical stages to facilitate rollback if needed.

5. Conduct testing

Perform a variety of tests on each VM, including functional, usability, and performance testing. Use emulators to simulate user interactions such as tapping, swiping, and rotating the device.

6. Analyze results and debug

Analyze the test results to identify any issues or inconsistencies across different devices or operating systems. If problems arise, use the snapshots to revert VMs to a known good state for further investigation and debugging.

7. Report and iterate

Document any issues found during testing and report them to the development team for resolution. Iterate on the testing process as needed, adjusting VM configurations or testing methodologies to improve coverage and reliability.

Example 3: Testing database applications

Testing database applications involves validating data integrity, performance, and scalability across different database systems and configurations. Here’s how virtual machines can support this type of testing:

Scenario: Consider you’re developing a database application that needs to support multiple database management systems (DBMS), such as MySQL, PostgreSQL, and Microsoft SQL Server, across different operating systems.

1. Create VMs for each DBMS

Using a hypervisor, create separate VMs for each DBMS and operating system combination you need to test. For example, you might create VMs for MySQL on Ubuntu, PostgreSQL on CentOS, and SQL Server on Windows Server.

2. Install the required database software

Within each VM, install the specific DBMS version you want to test and any additional tools or utilities required. Ensure you use the same database version and configurations as your production environment.

3. Configure test datasets

Populate each database with test data representing various use cases and scenarios. This example data allows you to evaluate data manipulation, querying performance, and transactional integrity.

4. Take snapshots for testing

Take snapshots of each VM to capture the initial state before running tests. As you perform tests, take additional snapshots at critical stages to facilitate rollback if needed.

5. Conduct testing

Perform a range of tests on each VM, including functional testing, performance testing, and scalability testing. Execute SQL queries, analyze query execution plans, and monitor database performance metrics.

6. Analyze results and debug

Analyze the test results to identify issues or performance bottlenecks across different DBMS or configurations. If problems arise, use the snapshots to revert VMs to a known good state for further investigation and debugging.

7. Report and iterate

Document any issues found during testing and report them to the development team for resolution. Iterate on the testing process as needed, adjusting VM configurations or testing methodologies to improve coverage and reliability.

See how testing on virtual machines can improve your organization’s processes

In conclusion, virtual machines provide a reproducible and isolated environment for testing software, making it easier to test different configurations without affecting the host operating system.

By following best practices such as creating reproducible testing environments, utilizing snapshots for testing scenarios, and optimizing VM configurations, organizations can streamline their testing processes, improve test coverage, and continuously improve software quality and reliability.

Ready to start testing? Sign up for a free 14-day trial of Parallels Desktop to see how it can help improve your testing workflow.

About Version 2
Version 2 is one of the most dynamic IT companies in Asia. The company develops and distributes IT products for Internet and IP-based networks, including communication systems, Internet software, security, network, and media products. Through an extensive network of channels, point of sales, resellers, and partnership companies, Version 2 offers quality products and services which are highly acclaimed in the market. Its customers cover a wide spectrum which include Global 1000 enterprises, regional listed companies, public utilities, Government, a vast number of successful SMEs, and consumers in various Asian cities.

About Parallels 
Parallels® is a global leader in cross-platform solutions, enabling businesses and individuals to access and use the applications and files they need on any device or operating system. Parallels helps customers leverage the best technology available, whether it’s Windows, Linux, macOS, iOS, Android or the cloud.

How we implemented traffic routing in Meshnet for increased security

featured image

How a classical VPN server works

First, we should understand how a classical VPN server operates. Meshnet uses the NordLynx protocol, which is based on WireGuard® – a simple, fast VPN that uses state-of-the-art cryptography. For this article, we’ll refer to WireGuard (wg) in our examples and graphics.

A standard configuration would look like this:

A standard VPN configuration.

To arrive at this setup, a couple of things need to happen.

First, let’s establish a secure tunnel (purple dotted connection):

  1. Virtual network interfaces, labeled as wgC and wgS, (which work like tun adapters) are created on both client and server sides.

  2. The client uses a UDP socket to establish a cryptographic session with the server’s address at 192.0.2.1:51820 (in the diagram above, subnet 192.0.2.0/24 stands for wide area network).

  3. Private IP addresses (100.64.0.2, 100.64.0.1) are assigned to the client and server respectively.

At this point, the client can ping the server using the IP address 100.64.0.1, and the server can ping the client at 100.64.0.2. All IP packets sent through the wgX interface are encrypted and sent via the global internet. The real path of the packet is something like this: wgC –(encapsulate)–> lanC –> lanR –> netR –> netS –(decapsulate)–> wgS

But to the OS, the wgX interface is just another network connection to where IP traffic can be routed, similar to a LAN router.

To the OS, a virtual interface is just like any other network connection.

Now if the client wants to conceal its real IP address, it can configure the routing table to direct all default traffic through the wgA interface (some precautions are needed to avoid routing the encrypted traffic itself, but that’s out of the scope of this article).

Meanwhile, the VPN server needs to be configured to function like a router, accepting incoming packets and forwarding them to their next destination. For this, two features are required:

IP forwarding

In most network stack implementations, if a packet arrives on a network interface, it can only be sent out on the same interface. So when the server receives a packet from the wgS interface that’s directed to an IP address outside the network’s subnet, it is dropped.

Enabling IP forwarding changes this behavior. Now, when a packet arrives at a network interface, it is checked against the network’s entire routing table. If another network interface provides a better match, the packet is forwarded to that interface.

Packet path on the server would look like this:  … -> wgS –(ip_fowarding)–> netS -> …

NATing

IP packets arriving at the VPN server will have a private IP address like 100.64.0.2, assigned to the wgC interface. In most cases, these packets will be directed to a publicly routable IP address. After the packet gets forwarded to the netC interface, it still can’t be sent out, because its source address falls within the private network range. The router uplink only deals with public IP addresses and wouldn’t know which device is sending the packet.

As such, NAT (network address translation) is used. For every packet that has a unique source IP, port, and in some cases destination, a unique mapping is created in the NATing table.

For example, if a TCP packet comes from 100.64.0.2:AAAA, it would be mapped to a 192.0.2.1:BBBB address (here AAAA is the port used by software on the client device, and BBBB is a randomly assigned unused port on the server).

The TCP’s packet’s source IP and port would then be exchanged for NAT mapped values, checksum adjusted, and finally sent out on its merry way to the wider internet.

If another computer responds to this BBBB port, the NATing table is consulted and destination IP and port values revert to the original values before the packet is sent to the wgC interface.

And that’s all for a very rudimentary setup!

Supportable platforms

The main challenge with these two requirements is that they limit the number of devices that can function as routers (apart from implementing a user space transport layer multiplexing/demultiplexing logic).

Typically, if we want to set up IP forwarding and NAT, we need root/administrator permissions. Most platforms with strong sandboxing like macOS App Store, iOS, and Android do not provide official APIs to enable this.

That leaves 3 “platforms” we do support:

Linux

Linux is the easiest one of the bunch because it has everything we need already built in, and our NordVPN service, running as root, can set everything up.

macOS Sideload

Unlike the App Store version (which I count as a separate platform), with macOS Sideload applications it’s possible to create launchd services that run with root permissions. This unlocks features that Darwin (the core Unix operating system of macOS) inherits from BSD like ip_forwarding and pf (packet filter), which are used to set up NATing and filtering.

Windows

Setting up IP forwarding is as trivial as a registry modification. However, even if Windows has an official NAT, we found it difficult to use during testing. It does not properly work with Windows Home editions. Being primarily designed for use with Hyper-V, a lot of undefined behaviors crop up when working with our custom adapter drivers. To work around this, we built and shipped our own implementation for NAT.

How Meshnet traffic routing works

Now that we know how a regular VPN server looks and works, we can compare it to how it operates in Meshnet:

Diagram of Meshnet-enabled VPN configuration.

A Meshnet VPN configuration.

The first interesting difference to observe is that, unlike a VPN server, in general, both Meshnet devices will be located in their local area networks.

And without Meshnet’s NAT traversal capabilities, turning a device into a VPN server for easy connection by other devices would be challenging.

The second difference is that your dedicated VPN server will usually have not one, but two NATing steps.

  1. The client’s (device A) source IP is changed to the server’s IP (device B).

  2. The server’s IP (device B) is then changed to the router’s IP.

This unlocks some interesting behavior: If device A is your phone, and device B is your home PC, routing through B makes it appear to your network that your phone is actually your PC. This allows you to securely access your home network without needing API services hosted on a public server.

And if you use a service that only allows access from your home network, it becomes impossible to tell whether the network messages are coming directly from your home PC or a device routing through it.

At this point, if you are even slightly inclined towards security, some alarm bells may be ringing.

Security considerations

Traffic routing is a very powerful feature:

  • You can take over a local network.

  • The device functioning as a VPN server can inspect all traffic going through it.

  • Other devices can essentially mimic your device.

As such, we want the user to have as much control as possible, so a couple of flags exist to be set on each device per connection.

  • Allow traffic routing: Specifies if a device can route its traffic through the device acting as a VPN server at all

  • Allow local network access: Specifies if the device can communicate with other devices in the server’s local area network

Generally, when using this feature, we want to avoid behaviors that might not be obvious at first glance.

A great example of this is a security issue we found and mitigated during development:

Traffic routing could cause unexpected security issues

Traffic routing could cause unexpected security issues.

Let’s say we have two Meshnet accounts: Mesh X with devices A and B, and Mesh Y with device C. Device C has an external connection to device B, which allows traffic routing for C.

Without any additional network rules, when C is routing through B and pings A’s private IP, it would actually reach A, even though they are not configured to be directly connected. It does not even require NAT to work in this case.

So without any explicit user input, device B has unintentionally exposed device A to device C.

To prevent this, we ensure that all such packets are dropped by B. The only way for C to reach A is to send a Meshnet invite and form a direct connection, making this relationship explicit.

In short, traffic routing is a relatively simple technical solution that unlocks many interesting capabilities in the Meshnet network.

Read more about Meshnet.

About Version 2
Version 2 is one of the most dynamic IT companies in Asia. The company develops and distributes IT products for Internet and IP-based networks, including communication systems, Internet software, security, network, and media products. Through an extensive network of channels, point of sales, resellers, and partnership companies, Version 2 offers quality products and services which are highly acclaimed in the market. Its customers cover a wide spectrum which include Global 1000 enterprises, regional listed companies, public utilities, Government, a vast number of successful SMEs, and consumers in various Asian cities.

About NordLayer
NordLayer is an adaptive network access security solution for modern businesses – from the world’s most trusted cybersecurity brand, Nord Security.

The web has become a chaotic space where safety and trust have been compromised by cybercrime and data protection issues. Therefore, our team has a global mission to shape a more trusted and peaceful online future for people everywhere.

About NordLayer
NordLayer is an adaptive network access security solution for modern businesses – from the world’s most trusted cybersecurity brand, Nord Security.

The web has become a chaotic space where safety and trust have been compromised by cybercrime and data protection issues. Therefore, our team has a global mission to shape a more trusted and peaceful online future for people everywhere.

×

Hello!

Click one of our contacts below to chat on WhatsApp

×