Machine Learning using TensorFlow

The year 2017 has witnessed an explosion of Machine Learning (ML) applications across many industries. Machine Learning is the field of study under artificial intelligence that gives computers the ability to learn without being explicitly programmed. It uses 3 types of algorithms for learning – Supervised Learning, Unsupervised Learning, and Reinforcement Learning. To know more you can refer to one of our infographics on Machine Learning. The idea behind ML is to collect more and more data, learn the pattern, train a model, analyze it, and then tune the data until a satisfactory result is generated. The application of Machine Learning has extended across industries like manufacturing, e-commerce, financial services, and energy. Many tools have been developed for using Machine Learning like Apache Singa, Apache Spark MLlib, Oryx 2, Amazon Machine Learning (AML), etc. As the study of ML is getting matured, the tools are also getting more standardized, robust, and scalable. TensorFlow (TF) is one such tool that has made its own space for ML applications. TensorFlow was initially developed by Google’s Brain Team as an internal tool for their products and then was released under Apache’s open-source license in 2015. For every major project in Google, close to 6000 of them are using Tensorflow in some form or other. Rather than a tool for ML, TensorFlow is used as a Deep Learning toolkit, which means, unlike the basic ML algorithms, deep learning is a broader family of ML methods that tend to mimic how our brains process information. TensorFlow Overview Ever since Google open-sourced TensorFlow, it has gained popularity and wide acceptance among the research community and forums like Github, and Stack Overflow. To understand it better, let’s look at its components and the programming paradigm behind TensorFlow. The main concept in TensorFlow is that numerical calculations are expressed as graphs and graphs are made of tensors (data) and nodes (mathematical operations). Tensors are multidimensional arrays or multilinear functions consisting of various vector variables which flow between these nodes and hence the name. These variables are user-defined and the actual calculation happens when data is fed into the tensor. Nodes represent the mathematical operations and accept any number of inputs but have a single output. Fig 1: A Graph in TensorFlow One of the advantages of TensorFlow is that it is a low-level toolkit which means it is portable and scalable on a lot of platforms. The code can run on CPU, GPU (Graphical Processing Units), mobile devices, and TPU ( Tensor Processing Units, which are Google’s dedicated TensorFlow processors). Above the platform layer is the Distributed Execution Engine which executes the graph of operations and distributes it among the processors. Initially, Python was the only language used to build the graphs, but once Tensorflow was open-sourced, community support increased to include other languages such as C++, Java, Haskell, Go, Julia, C#, and R. Fig 2: TensorFlow Architecture (Picture Courtesy TensorFlow.org) The heavy graph orientation of TensorFlow is one of its greatest strengths. However, people find it difficult to code in TF directly. To circumvent this low-level functionality, TensorFlow has some libraries and API layers that make it easier for users to work on models. The Layers API of TensorFlow allows users to construct the models without having to work on the graphs and operations directly. Another is the Estimator and Keras which are used to train and evaluate models. The Canned Estimators were included in the 1.3 version of Tensorflow and are basically high-level API that allows users to build on models with minimum coding. Unlike other ML frameworks like Theano, Torch, etc, the high-level APIs of TensorFlow allow building deep learning solutions an accessible and easy task for everyone One of the other latest developments in TensorFlow is the developer preview of TensorFlow Lite in November 2017. These are designed as lighter-weight machine learning models to run quickly on mobile and embedded devices. The project is still under active development the scope of how this evolves is something the community will have to experiment with and see.
Solving the Mobile Testing Conundrum

A global overview revealed that more than half of the world’s web traffic now comes from mobile devices and by 2018, more than 50 percent of users will go to a tablet or smartphone first for all online activities. So, it is not surprising that today’s software development is based on a mobile-first, even if it is not mobile-only, imperative. But for all these dramatic changes, developers still struggle when it comes to mobile testing. There are many factors that can make or break the success of a mobile app. For example, consider device fragmentation. At present, users use smartphones (Android and iOS) widely but there are hundreds of millions of other devices running older firmware. When your app needs to work across most of these devices, it can become a serious burden for testers. Another factor that contributes to this complexity is the device itself: varying screen and device sizes, resolutions, and orientations. Next, we have multiple app types, such as web, hybrid, and native. These multitudes of devices operate differently on various device and OS combinations. Finally, you have users all over the world in different regions that must be tested for translations, time zones, and targets. These factors make testing with mobile a challenge. Even though mobile testing is complex, it can be done successfully with the correct strategy. A sound mobile test automation strategy must include test automation frameworks, real devices, and emulators and simulators. When building a mobile testing strategy, there are three key areas of focus: Real device testing Emulator and simulator testing Test automation frameworks Read our blog on Simulators, Emulators, or Real Devices: Which is the Best for Mobile Testing? By focusing on these three areas, organizations will thrive in the fast-paced world of mobile app development. Scale continuous testing with emulators and simulators For several years, the use of emulators and simulators to test mobile applications has been met with some resistance. This is based on the perception that if you’re not testing on a real device, you’re not testing at all. For continuous testing and continuous delivery of mobile apps, both emulators/simulators and real devices are needed. An emulator, as the term suggests, emulates the device software and hardware on a desktop PC, or as part of a cloud testing platform. The Android (SDK) emulator is one example. On the other hand, a simulator delivers a replica of a phone’s user interface. It does not run the real device OS; rather, it’s a partial reimplementation of the operating system written in a high-level language. The iOS simulator for Apple devices is one such example. Emulators give teams the ability to implement parallel testing and test automation via external frameworks like Appium or Espresso. Selenium revolutionized the world of web app testing by pioneering browser-based test automation. Today, Appium is its counterpart for mobile app testing and uses the same WebDriver API that powers Selenium. This enables the automation of native, hybrid, and mobile web apps and also increases the speed of tests for organizations. Emulators enable parallel testing in a way that can’t be achieved with devices in a lab. Because tests on emulators are software-defined, multiple tests can be run on tens of emulators at the click of a button without having to manually prepare each emulator for the tests. Further, automation is easier with emulators as the tests can be executed without manual intervention, and be controlled remotely. DevOps, continuous testing, and continuous delivery The speed of release and change demands of mobile development is agile and requires continuous testing as a key component of the overall regression testing strategy. In order to properly build out a mobile regression testing strategy, the dev/test teams should be well-equipped with the following: A comprehensive web and mobile testing platform: Since building a test lab from the ground up is timely and expensive, it is advisable to use a cloud-based, device lab solution with an extensive choice of real devices, as well as emulators and simulators. Parallel testing should also be included so that test execution can be done in a shorter amount of time. Highly scalable, highly available solution: Developers and testers need to ensure that the infrastructure for mobile testing allows the team to expand coverage as the test suite grows. The goal is to decrease test execution time while providing fast feedback and to ensure that the team spends less time chasing false failures and more time on actual testing and defect remediation. CI/CD optimization: The regression testing process must have tight integration with the development workflow and mobile app delivery pipeline to keep up with the fast pace of continuous delivery. This will eliminate any unnecessary manual steps and encourages automation testing throughout the testing process. The use of mobile regression testing reduces the risks of flaky software. Mobile test automation frameworks Test automation frameworks are an integral part of mobile test automation. There are many test automation frameworks freely available, but the top mobile testing frameworks are Appium, Espresso, and XCUITest. Sauce Labs recently conducted a survey of teams using test automation frameworks for mobile app testing The survey found that 63 % of the participants use the Appium framework, while 31 % didn’t use any test automation framework at all. Since Appium is based on Selenium (the popular open-source functional testing framework), it wasn’t a huge surprise that most of the users surveyed were using Appium. But the main question is why is it that over 30 % of users were not using some sort of testing framework? The answer lies in the implementation or lack of a mobile testing strategy. When implementing a mobile testing strategy, it is very important to understand the skill set of the test automation team and the framework that best fits the organization’s preferred development methodology. Tester automation skillset When evaluating frameworks, it’s important to understand the technical background of your team. Some frameworks take a “black box” test approach, which is typically best for traditional test automation engineers. While other frameworks take a “white box” approach suitable for developers.
Top 12 Usability Testing Tools for your website

Website usability testing is all about testing how user-friendly a website is from the end-user’s point of view. Several factors will be taken into account for checking this – elements such as website workflow, navigation, layout, speed, and content of the website. There are many tools available today that enable project teams to perform usability testing. Listed here are some of the paid, free, and freemium tools that are hugely popular among project teams. Paid Tools for Usability Testing Loop11 This is a tool that is unique, customer-friendly, and simple to use. Loop 11 offers two solutions for testing, a coded solution, and a no-code solution. The coded solution, which is the standard user testing method allows the user to insert JavaScript into the website. The no-code solution is easier and widely acknowledged as it does not require any CSS or HTML knowledge to run the test. In both cases, the result will be shown as heat maps and clickstream analysis with real-time reporting. Loop 11 can work in over 40 languages. Website: Loop 11 TryMyUI This is a tool with which the user can watch videos of real people using a website and find out how user-friendly the site is. The developers have to write a list of tasks to perform and then choose the end-user by analyzing all the demographic factors. They can then watch the videos of how these end users are interacting with the website. This tool has a variety of other features such as mobile user testing and video screencaps. Website: TryMyUI Contentsquare This is a recording tool that captures and analyzes the interaction of a real user with the website as they complete the given task. The psychological analytics of this tool helps to understand the impact made by the website on the end-user. The web analytics feature helps to get an idea of what the users are looking for on the site. The result will be displayed as heat maps and reports. Website: Contentsquare Crazy Egg A user-friendly tool that analyzes the website by taking a digital snapshot of the website and generating reports on click-based user experience. The Heatmap will display the website area where the highest number of clicks each visitor has made. The Scrollmap will display the scroll depth of the webpage. The Confetti will provide insights regarding search terms, visitor sources, and other elements, and the Overlay will break down the number of clicks per page element. Website: Crazy Egg Free Tools for Usability Testing Browsershots This is a tool used to test the browser compatibility of a website. The user has to enter the website URL and choose the browser types. The tool will provide screenshots of the website’s performance across the chosen browsers. This can be adopted as an easy way to find and correct the HTML or CSS faults of the website. Fivesecondtest A tool used to optimize the website design by counting the first impression. This tool can be used to test the UI of a website’s homepage, landing page, logos, etc. It will take only 5 secs to run the test and the users are asked questions about what they remember about the website. The Fivesecondtest is run by UsabilityHub. Website: Fivesecondtest ClickHeat This is an open-source tool that provides a visual heatmap of clicks made on a website displaying hot and cold zones. A small no of function calls is required to log a click. Along with the clicks, screen sizes, and browsers are also logged in to test. This tool is launched through the GitHub community. Website: ClickHeat Chalkmark A free tool that is used to get feedback on the website design. The user can upload a screenshot of a website to this tool. Then enter the common tasks for which the end-user will be accessing the site. A test link can then be shared with end-users or testers. They are required to provide the areas where they expect to find answers to the tasks asked. The result will be shown as a heat map that helps the users to analyze where the end-user clicked on each assigned task. Website: Chalkmark Freemium Tools for Usability Testing Qualaroo A tool that provides real-time surveys by website visitors to gather qualitative information as to what they are looking for in the site and the roadblocks, if any, from achieving the result. Some of its interesting features are the exit survey, skip logic, and the option to integrate with sales and marketing tools like Salesforce and Marketo. Website: Qualaroo Mouseflow A tool that displays the end-user behavior while using the website and takes necessary actions on the pain points found. It tracks clicks, mouse movements, and scrolls made by end-users and records them. The result will be summarized in a heat map. It is fast, secure, and mobile-friendly. Website: Mouseflow Optimizely A user-friendly A/B testing platform that allows users to test everything from design patterns to the algorithms of a website. It features cross-browser testing, mobile website testing, etc. Website: Optimizely GetFeedback This tool has different features combined altogether like click heatmaps, exit surveys, mobile feedback, targeted feedback forms, and feedback widgets that gather data via emails. Using this tool will improve the user experience, save time & resources, and increase conversions. Website: GetFeedback
Guidelines for Web Application Performance Optimization

Application performance can be defined in terms of response time ( How fast the application responds under peak load), resource usage (How many resources viz. CPU, memory, network the application use), and consistency (Does the application behave consistently over time, across browsers). An average user has no patience for websites or web application that takes too long to load. According to a study by Kissmetrics, a 0.1-second delay in the page load time of an application will cause a 7% loss in conversions, an 11% decrease in page visits, and a 16% decrease in customer satisfaction. In dollar terms, this means that if the site typically earns $100,000 a day, this year it could lose $2.5 million in sales. Similarly, a study by FastCompany shows that an increase of every 0.1-second load time of Amazon decreases its sales by 1%, and increasing page load time from 0.4 seconds to 0.9 seconds in Google decreases its traffic and ad revenues by 20%. A better and fast-performing site or application will have a better user experience, repeat site visits, will be indexed faster by search engines, and appear on top of SERPs which in turn leads to increased revenue. Several factors can affect application performance, but some of the most common ones are: Rich and interactive UI with too many plugins, images, or animations, application complexity, technology & framework, data handling mechanism, number of concurrent users, etc. The poorly optimized code causes potential bugs, performance & security issues, code complexity, and technical debts. Inefficient database design affects the application in production Incorrect and insufficient environment configuration while hosting Steps to Improve Web Application Performance Here we have categorized the steps for improving web application performance into 4 sections – 1)Application Design Optimization 2) Application UI Optimization 3) Database Optimization 4) General Recommendations 1. Application Design Optimizations Technology & Framework – Choose technology and framework that is appropriate for your application functionality. No concurrent users – If there are concurrent users using the application, the third-party controls chosen should be able to handle the load, else it can cause a performance issue. Data Handling Mechanism – Use proper DB, caching, etc. to make data loading on demand and on mobiles display required data only. Hosting Server – Check for the deployment environment, load balancer, and database partitioning, and use orchestration tools. Optimized code – Always do manual code review, peer review & automated code review. Avoid writing unwanted loops, use serialization techniques, make use of asynchronous calls, use service brokers in SQL, use reusable code, and use JavaScript appropriately. 2. Application UI Optimizations Simple and Lightweight – Make the application simple and lightweight by streamlining the number of elements on the page, using partial rendering, merging all JS & CSS, and minifying using YUI compressor, codekit, or JavaScript minifier. This will improve the page speed. Optimize images – Keep the images of the application as small as possible since oversized images take longer to load. Crop the images to the correct size, reduce color, and remove comments from images. Enable Caching – Enabling the browser cache is crucial for the application since it will store the page visited and next time will load the page without sending another HTTP request to the server. 3. Database Optimization Rewrite the queries – Rewrite the queries using looping queries, picking only needed columns and filtering rows correctly, and using indexes. Also, can use ORM tools. Change indexing strategy – Change the indexing strategy if a non-selective index has been picked while execution and use index hints. Use an external cache – Use of an external cache can reduce the database load. 4. General Recommendations Monitor & maintain page performance, web application speed, application performance management, etc. using various tools. Use partial-page-rendering. Minimize the amount of data requested per request Maximizing the usage of client-side components wherever possible Avoid 3rd party plugins unless absolutely required. Keep the 3rd party scripts at the bottom of the page and load on demand Encourage usage of CSS scripts Avoid iframes and redirects to the best extent possible Introduce caching at the server-side, database layer, and other possible integration layers Conduct usability studies and understand the expectations of end-user
Top Free Tools for Scanning Security Risks
Today’s internet is all about web apps and the advancement of web applications and other technologies that change the way we do business. Assuming that the network firewall that you have in place to protect your network will secure your websites and web applications won’t help. Ensuring security is about identifying the risks and implementing appropriate countermeasures. Below are some top listed tools used for identifying the common web application security risks Burp Suite A comprehensive solution for web application security checks. Netsparker A tool used for testing SQL injection and XSS. OpenVAS The most advanced open-source security scanner used for testing known vulnerabilities. Security Headers A tool to quickly report which security headers like CSP and HSTS a domain has enabled and correctly configured. Xenotix XSS Exploit Framework An OWASP tool that includes a huge selection of XSS attack examples, which you run to quickly confirm whether your site’s inputs are vulnerable in Chrome, Firefox, and IE. OWASP Zap The Zed attack proxy is an easy-to-use integrated penetration testing tool for finding vulnerabilities in web applications. OWASP SWF Intruder (Swiff Intruder) A first-in-case tool specifically developed for analyzing and testing the security of Flash applications at runtime. Subgraph Vega Vega can help you find and validate SQL Injection, Cross-Site Scripting (XSS), inadvertently disclosed sensitive information, and other vulnerabilities. Browser Extensions Browser Extensions can also help in securing the web applications like:
A Brief Introduction to Machine Learning
The past two decades have witnessed the emergence of Machine Learning as one of the mainstays of information technology. In ML, the computers ‘learn’ as it automatically identifies patterns in data, thus making accurate predictions. The critical thing in a machine learning process is to select the right algorithm suitable for various applications. The below infographic shows some basic things about machine learning.
How to Secure Your WordPress Site?

WordPress enjoys the biggest market share among all Content Management System tools available on the market today. At the same time sites on WP are a popular target for hackers. As per the WordPress usage statistics report of 2016, “75 million blogs use WordPress as a platform or as a CMS. Nearly 4.5% of the entire internet runs on WordPress, where 25% of users make a living off of it. More than 44K WordPress plugins are available on the web, which has been downloaded 1.25 billion times.” WordPress sites once in a while confront security issues that can make the website inaccessible, which could lead to a loss in brand reputation and sites getting blacklisted. The website safety also depends on the quality of the host’s software and the themes & plugins used. A simple approach to secure your WordPress site is to understand the reasons for security issues. As many experts suggest, the first step to ensuring the security of your website is to answer these five questions: who would hack? (anonymous or friend) why would they hack? (fun, profit, or political) when would they hack? (least expected or you are not ready) where would they hack? (shared hosting, dedicated server, or everywhere) how would they hack? (the security issues discussed above) The strategy to ensure the health of the WordPress website can start with hosting. From choosing the right OS to checking the disk space and bandwidth to backup and support, all has to be done wisely. The next important thing is to regularly check for WordPress updates, mainly core updates, plugin updates, and theme updates. This will protect your resources, visitors, and customers, and will keep the hackers out. The best and most critical things you can do to secure your WP site are, Choose the right web hosting service provider. Always use trusted third-party software; never go for trial versions and use premium themes and plugins. Use a Theme Authenticity Checker (TAC) to do a pre-check for the themes installed. Delete all inactive plugins and themes Scan the theme daily using a WP Antivirus Harden the security testing by, Securing the login page by providing a strong password and bizarre username. Also, change your password every now and again. (Move the .htaccess file to the /wp-admin/ directory for basic password protection) Limiting the number of login attempts and creating a two-step login authentication Removing the version number from all components and blocking malicious URL requests Changing the URL of the WordPress login page Reset File & Folder permissions Add security plugins like Login Lockdown, Secure WordPress, WP-Security Scan, WP-File Monitor, WP-Malwatch, WordPress AntiVirus, etc. Regularly update WordPress, Themes, and Plugins to their latest versions. (Deactivate all plugins before updating as some plugin features may not work properly while updating and produce unexpected results.) Develop a checklist to perform a vulnerability scan using tools before hosting Remember to keep a backup of all the data – the last and most important part of WordPress security The WordPress community on a regular basis keeps track of potential vulnerabilities and follows a well-defined process for fixing bugs and security issues. Even then, it is pertinent that reasonable steps are taken as a WordPress site owner to ensure security and one of these is constant vigilance.
Test Automation for Backend Data Migration

Regardless of whether you are migrating from legacy frameworks or moving from one product to another, Data Migration is a standout among the most difficult activities. If not executed properly, there can be major application issues, data mishaps, and unexpected downtime, which can ultimately impact the customer or brand. Testing forms a key part of ensuring a successful data migration. Manual testing for the data validation process is tedious and prone to human errors, hence is an ideal candidate for test automation. Automating data migration is very challenging and exciting at the same time. We had an excellent opportunity to bring this to one of the clients, who have a product suite used for portfolio management in the life sciences industry. This has five versions of the main application; customized for several of their clients. The challenge was to bring all this under a single version. Since this is a stable product suite, the merging of features across the versions was planned in stages Our key task was to make sure that the batch processes and DB calculations worked as expected before and after the merge. First, create expected data from DB and export the data into an Excel file Delete specific data from the DB Compile the merged package version, execute the script, and compare the values in the Excel file with the DB After the script execution mismatch is manually checked. In case the DB value was found to be correct, then update the Excel file and execute the test again; else declare the mismatch as a bug and report. The reason for data migration in any project is propelled by the need to discover new efficiencies; situations which any enterprise can face over the course of time. However, the method to be adopted will depend on the project specifics. While it’s tedious to manually cross-check batch processes and ensure the correct working of DB calculations, automating some parts of data and feature migration in this particular case has helped in confirming no mismatch in package versions and the presence of the right data in production.
A Comprehensive and Integrated Test Automation Framework using Open Source Tools

Consider a scenario where the client has a SaaS application, which needs to perform seamlessly across browsers, be mobile browser compatible, and have a mobile app extension. If you are required to do manual testing here, you probably would spend ages completing just this project. This scenario is ideal for Test Automation. However, this does not make the work easy as there are several tools for each specific part of the project. Testing is a noteworthy cost and time factor in custom software development. As many of our clients’ progress from manual to test automation, they do go over a few sorts of bewilderment with the automation tool to be selected for various applications, the extent of test automation required, and different test conditions that are in place. We have lots of open-source tools available for web or mobile applications. For eg: for web application development, we have selenium, JMeter, cucumber, etc as the open-source tool, and for mobile app development, we have appium, UI Automator, etc. So selecting one and the best from these vast varieties of tools can be a tedious task. Integrated test automation has been proposed as one answer to diminishing these expenses. An integrated test automation tool guarantees to build the number of tests they run and the recurrence at which they run them. However, the cost factor still persists. How nice would it have been if we had an open-source tool or framework that can handle all of such cross-browser & parallel testing, cross-platform & device testing, or keyword-driven testing? It would be a huge advantage for all the testers out there to seamlessly support their client for continuous delivery and integration. This led us to think of a framework that will help to build on the Quality Engineers’ mindset. An open-source test automation tool that can perform innovative services and can cater to end-to-end services – this is what we are offering. We are providing an Open Source Integration Framework that includes a Test Case Adapter, an Object and Keyword Repository, and a Tool Adapter. Our framework is fit for executing tests, announcing results, and contrasting outcomes and prior trials. Tests completed with this device can be run over and over, whenever we want in a day. We support all of the open-source tools mentioned above used for testing, both web and mobile. The Test Case Adapter identifies which test case to be executed and specifies which all are the environment. In a large file, it is difficult to execute regression testing for each module separately. Automation will be based on an Object Repository, where the framework will identify individual pages as a class and various elements of the pages as objects, and a Keyword Repository, where the framework identifies the common keyword used. The Tool Adapter will identify the test cases for the browser, mobile, and web services separately and execute testing for all of them using the free open-source testing tools available in the market like Selenium, appium, etc. If needed, it can be redirected to web testing from mobile and vice versa. The output will be a single report which captures the test results coming from both web and mobile apps and is also customizable as per client requirements. This open-source automation is very much useful for long-term projects as it is very much economical.
Containers vs Virtual Machines

The emergence of virtualization started a new era of modern computing with improved system utilization, applications decoupling from the underlying hardware, and enhancing workload mobility & protection. Virtualization in both forms, Container and Virtual Machines allows multiple operating systems to run on a single physical machine. Even though containers expedite rapid, agile development, questions are still raised on how they differ from virtual machines? Containers and virtual machines -two distinctive approaches to set up multiple and segregated administrations on a solitary stage, where a Container framework requires a crucial OS that offers help for the separation; then again, a VM has its own OS utilizing VM support hardware. What are Virtual Machines? A Virtual Machine is a software/firmware that sits between the OS and the hardware to virtualize the server. Each VMs runs on its own unique OS, and VMs with different OS can be run on the same physical server. Along with VMs comes a software component named a hypervisor, which acts as an agent between the VM environment and the underlying hardware and provides the necessary layer of abstraction. The size of the VMs can be in gigabytes as each VM has its own libraries and applications that it services and they need a guest operating system to run. This quickly adds up to a lot of RAM and CPU cycles. What are Containers? Containers provide a way to run the software predictably and on a single server/host OS when moved from one server environment to another. Containers share the host OS, its binaries, and libraries too. Shared components of a container are read-only, which makes it extremely light. The highlight of containers is their speed and lightweight nature. In addition, many more containers can be put onto a server than onto a traditional VM. Difference between Containers and Virtual Machines (Containers vs Virtual Machines) Though it seems to be the same, containers and VMs are unique in their own ways. Let’s see the difference between them. Containers and VMs vary in their size. Containers involve less space (megabytes) contrasted with VMs, which possess an estimate of gigabytes. The speed of Containers is higher contrasted with VMs. Containers will take seconds to begin thinking about of VMs, which will take minutes. More containers can be possibly facilitated by an OS than a VM. The administration costs of your organization will diminish utilizing Containers set up of VMs as containers share a basic working framework. The user can’t run a container with a guest OS on an alternate OS conveying host, not at all like VMs which can be kept running with an OS on some other host OS. Containers are more asset proficient than VMs since the need for extra assets for every OS is dispensed with. The danger of single-point disappointment is high in containers and any malware assault on the host OS will influence every one of the containers Not at all like containers, a VM is a software-based condition custom-made to mimic an equipment-based condition, for the applications it will have Just because containers are more popular these days, doesn’t mean VMs are outdated. There is a lot more to VMs than just how many apps you can put in a box. Containers do come with their own disadvantages; the main one is security. Reports say that more than 80% of all cyber-attacks are specifically targeting software applications rather than the network and any attack targeted at a container can cause the entire network to crash. The smartness of a container is breaking deployments into more functional discrete parts, but that also means that we have more parts to manage. What to use – Containers or Virtual Machines? You can use a container if your requirement is to run multiple copies of a single app, say MySQL, but keep a tab on the security of the containers. If you want the flexibility of running multiple applications, you can use a virtual machine. If you want the flexibility of running multiple applications, you can use a virtual machine. Companies these days tend to use containers inside a VM. Docker, for example, is the child of virtualization and containerization that utilizes virtualization technology in the Linux kernel to create containers.