This ESG Technical Review documents testing of the Diamanti D10 Bare-metal Container platform with a focus on fast, easy container deployment and guaranteed quality of service (QoS).
With business needs rapidly changing, many applications are being developed in modules to speed development and release, and to increase flexibility and scalability. Container technology was designed to support these needs with greater efficiency, portability, and isolation. As a result, the adoption of container technology for both development and production applications is on the rise. While cloud-native applications are big targets, they are not the only ones. In ESG research, 73% of current and potential container users reported that they expect to leverage containers for both new and legacy applications.1 In addition, when asked about using containers in production applications, 56% said they had already deployed containers in production and an additional 40% are planning to test that functionality (see Figure 1).2 Furthermore, many forward-looking enterprises are looking to replace VMs with containers as a platform for their production applications.
While containers offer efficiency and agility benefits, building them on legacy infrastructure can be complex, taking weeks or months of effort, adding costs, and slowing time to market. Taking a do-it-yourself (DIY) route can create unforeseen challenges, such as coordinating network and storage scalability or inefficient resource utilization over time. Organizations need an infrastructure foundation designed specifically for containers to address these challenges.
The Solution: Diamanti D10 Bare-metal Container Platform
The Diamanti D10 is a hyperconverged container platform designed to deliver the simplicity, efficiency, performance, and control organizations need to run stateful applications at scale using container technology. The D10 runs containers on bare metal, eliminating the additional layer of virtualization and management of running containers on virtual machines (VMs); this method also enables greater utilization, efficiency, agility, and performance. Offered in a minimum three-node cluster, the D10 offers storage configurations of 3.2 TB, 6.4 TB, and 32 TB along with simple deployment, scalability, and granular control. Key features include:
- 15-minute deployment.
- Persistent NVMe storage with 10GbE connectivity between nodes for high performance/low latency.
- Plug-and-play networking.
- Configurable, container-granular network and storage quality of service (QoS).
- Full open-source Docker and Kubernetes integration into the platform to easily migrate data and applications.
- Data protection including snapshots and synchronous volume mirroring/failover.
- Container-granular, policy-based management.
- Role-based access control, Active Directory (AD) and LDAP integration for authentication.
- Compatibility with container-native security solutions for Docker and Kubernetes.
- High resource utilization and low TCO.
- Integrated support for the complete stack.
Configuring container networks is complex and traditionally uses overlay networks that create interoperability problems. Diamanti solves this challenge by enabling networks that plug into existing VLANs and DNS, along with MAC addresses and fixed, routable IPs. In addition, the network and storage virtualization built into the D10 run on a dedicated processor, so they don’t take CPU away from the application host.
The Diamanti management application can be accessed via browser, CLI, or API. It provides the ability to guarantee SLAs with configurable QoS, multi-tenant isolation to ensure predictable performance, and real-time monitoring with intuitive dashboards. In addition, its easy management means that developers can self-provision, reducing IT’s workload.
ESG validated Diamanti testing that focused on two key features of the Diamanti platform: fast, easy container deployment, and simple management that includes configurable QoS.
Ease and Speed of Deployment
The testing started with a racked Diamanti D10 cluster.3 With Diamanti, once the nodes are racked, stacked, and connected to a network switch, container deployment takes minutes. ESG viewed the process that administrators execute, running a few simple commands to create a cluster, network, and volumes, and to configure storage and network QoS. All management tasks can be done using built-in templates in the GUI, or with a CLI. Developers that want to interact with the cluster using a CLI to create volumes and networks or to add and delete nodes have the option of using kubectl or Diamanti’s dctl. These Mac, Windows, or Linux tools can be easily downloaded from the GUI.
Container deployment began with creating a Kubernetes cluster from the node management GUI. First, we named the new cluster demo-cluster and added the pod DNS domain name, test.diamanti.com, which serves as the DNS name for all containers that will be deployed in the cluster. Next, we provided a virtual IP address to serve as a single point of management of the highly available cluster, a VLAN ID for intra-cluster storage communication, and a recovery password. The D10 discovered 26 total nodes in the environment; we selected three nodes (appserv91, appserv92, and appserv93) and clicked the Create Cluster button. In seconds, a notification appeared indicating that the cluster had been successfully created, and we clicked the Go to Dashboard button (see Figure 3).
This brought us to the Diamanti management console, where we signed in. A notification displayed as a reminder to configure a network and AD or LDAP authentication; Diamanti built in a reminder and instructions about these steps to ensure ease of use for any administrator.
Create Virtual Network
Network segmentation is essential for providing isolation and performance. Organizations can choose to separate VLANS, IPMI, and management networks. The Diamanti network is not an overlay network, enabling it to be high performing.
The first step is to plug in the network to a standard interface. Diamanti includes its own container network interface (CNI), which enables administrators to create many virtual networks—a control feature that is not normally available in Kubernetes or in the cloud. Next, from the left navigation pane, we clicked on Network Administration/Create Network and named the network blue. After providing a VLAN ID and IP range to segment the network, and adding subnet and gateway addresses, we clicked Submit and were notified that the network had been successfully created. We created a second network named default as well.
Next, we clicked on Storage Administration/Volumes/Create Volume. We inserted a volume name (test-vol-1), selected the xfs file system, assigned 20 GB capacity, clicked Save Volume, and were alerted to its successful creation. The GUI showed volume health/heartbeat and storage details as well as the node on which the volume was created. QoS and mirroring configurations can be selected in this step. Figure 4 shows network and volume creation screenshots.
When we clicked on Nodes in the left nav, we could view health, CPU and memory utilization, network throughput and utilization, and storage IOPS and capacity utilization for each node in the cluster.
Granular Storage and Network QoS
In the cloud-native and container/VM world, shared infrastructure can cause a performance imbalance. Workloads sharing resources often cause critical applications to be starved of storage I/O or bandwidth by another busy workload, resulting in unacceptable latency.
Diamanti built the ability to configure QoS by container or volume into the D10. A key benefit is that IT no longer needs to execute tasks such as overprovisioning hardware or splitting workloads among nodes or clusters in order to ensure adequate performance under any circumstance. All those tasks increase both complexity and cost.
Diamanti added functionality to the platform to include storage and network requirements when creating containers, in addition to the CPU and RAM requirements that other Kubernetes deployments include. Administrators can set up tiers with IOPS, latency, and bandwidth thresholds and apply them as containers are deployed.
Clicking on Advanced Settings/Performance Tiers brought up the GUI for configuring performance tiers. These enable organizations to guarantee minimum performance requirements for specific containers, so that “noisy neighbors” that use the same infrastructure don’t impede performance. Three tiers are available out of the box: high, medium, and best effort, with customizable levels of IOPS, latency, and network bandwidth.
Using these three tiers, our testing ran a script to create a storage and network load on the cluster using FIO, a common workload generator for storage testing. Leveraging the blue network, we created three containers at high QoS (minimum 20K IOPS), three at medium (minimum 5K IOPS), and three at best effort (minimum 1K IOPS) on each of the three nodes, for a total of 27 pods (nine per node). The QoS definition depends on this configurable ratio, regardless of the actual number of IOPS assigned. The script generated network traffic across the nodes, and the pods generated local I/O; the FIO load was a 4k workload with a queue depth of 128 for each pod. To make the value of storage QoS easily viewable, the script created 100% read I/O on appserv91, 70% read/30% write load on appserv92, and 100% write on appserv93. The common iPerf tool was used to measure network throughput. Full volumes were written out beforehand on all three nodes to demonstrate that the D10 nodes were working fully loaded as they might be in a production environment.
We viewed the performance for the nine pods on each node as the load was run. Figure 5 shows the 100% write load on appserv93; the high QoS pods are showing 213K IOPS, the medium show 56K IOPS, and best effort show 11K IOPS, while all are sharing the same back-end drives. In another screen, we viewed network throughput, which showed a similar distribution of service.
When we looked back at the Node view, we could see appserv91 generating more than 900K 100% read IOPS, appserv92 generating 625K read IOPS and 272K write IOPS, and appserv93 generating 841K write-only IOPS (see Figure 6). CPU, network, and storage utilization details were also displayed. ESG also noted that the two virtual networks we created generated almost 20 Gbps across the three nodes, a level which is difficult to achieve with most Kubernetes distributions using overlay networks.
Finally, a graph on the Dashboard view showed all 27 individual pods as dots, demonstrating the distribution of high (green), medium (orange), and best effort (blue) QoS workloads (see Figure 7).
Why This Matters
The DIY approach to container infrastructure requires selecting and buying servers, network switches, and storage; assembling nodes individually; adding Docker and Kubernetes; and ensuring interoperability. Many organizations take six months to a year to accomplish that. Infrastructure platforms built for VMs struggle to deliver performance, agility, and efficiency; they also cannot fine-tune to address application-specific SLAs.
ESG validated the ease and speed of deploying containers using the Diamanti D10, which took only minutes to set up. In addition, we validated the ability to define and implement granular storage and network QoS minimums so that applications get the performance they need without interference from “noisy neighbors.” The importance of QoS is that it offers organizations a choice to define container performance minimums tailored to business requirements.
Global Financial Organization: Diamanti D10 Delivers Productivity, Efficiency, and Competitive Advantage
ESG spoke with the director of cloud for a Fortune 50 North American financial services organization that is using the D10. The company has 70K employees around the globe and achieved $12B in profit last year. Senior IT managers wanted to improve their infrastructure agility so they could deploy new resources quickly as needed and shut them down when the need subsided. The primary impetus for considering container technology was the three to six months it took to put together the infrastructure to address business objectives. A lot can change in that amount of time, resulting in a mismatch between IT and business priorities.
This led the organization to containers. After evaluating several solutions, the IT team chose the Diamanti D10. The organization was able to migrate off of its complex, costly, less agile legacy database and now leverages the D10 for PostgreSQL, MongoDB, SQL Server, and MariaDB. The organization wanted to run on bare metal to avoid the additional cost and complexity of a second virtualization layer. And while other solutions were able to deliver the CPU and memory, only Diamanti was able to solve the storage and network challenges of containers. Said this director, “Diamanti gave us all that plus QoS, which was very important. One problem with Kubernetes and Docker is that sometimes applications cannibalize each other. Diamanti QoS lets us guarantee a certain level of service.” In particular, he was pleased that users will see consistent performance now and in the future. He continued, “Users don’t care about infrastructure, they just want their service. That’s most important in my mind, and Diamanti gives me that.”
Time to market was also important. Deploying the D10 cluster was fast; said this director, “We’ve been in production almost a year, while others are still playing with Kubernetes in development after that much time.” In addition, the company can get resources deployed in a few minutes instead of months, and it is not wasting resources with overprovisioning. Because this organization can release new products to the market faster, the business now has a competitive advantage. The director explained, “When the business asks for a feature, they get it within a day instead of a month.” In addition, it is easy to use; end-users who know nothing about Kubernetes or infrastructure are bringing up their own instances with no calls for help.
With Diamanti in place, IT can focus more on solving business problems instead of on tactical infrastructure improvements. And this is only the beginning, as more services are slated to come online using the D10 in the coming months.
The director summed it up this way: “With Diamanti, our application guys are spinning things up fast and efficiently, and if you go up a level, our end users are more productive. The bottom line is, our end users are the ones that make money for us. The D10 makes them more productive, and that enables our business to make more money.”
The Bigger Truth
In recent years, technology solutions have focused on delivering optimized infrastructure for virtualized applications. But as container technology gains in popularity, infrastructure must change to better support it. As containers have come into play, organizations have built DIY infrastructures for them—and suffered the cost and time consequences. The pressure for fast time to market for application development puts high demands on IT departments; whether it’s new web portals, streaming content, real-time ads, database inventory tracking, or other applications, businesses want them up and running, delivering value fast. Keeping up with the velocity of their developers is a tall order. Diamanti fills the void for a simpler, easier container infrastructure that delivers the performance that stateful production applications demand.
Diamanti has built an architecture in the D10 that includes key features answering a clear customer need: making containers easy and fast to deploy, and enabling storage and network QoS to efficiently deliver on performance needs. This vendor understands why containers are in use, and what challenges today’s typical infrastructures present. VMs enable consolidation and workload portability, but they do not use resources efficiently. Every VM includes a complete operating system, and resources are tied to VMs and cannot be shared. Containers share the operating system on a host, making them more efficient and portable. With the Diamanti platform, containers are supported by an infrastructure foundation that was designed for them, is more efficient, and is less complex and time consuming to build.
ESG validated the ease and speed of deployment, the simple process of configuring QoS, and the distribution of storage and network resources to containers based on QoS. Enabling this functionality will help organizations to distribute resources efficiently and guarantee SLAs for certain workloads, eliminating any impact from other busy workloads hosted on the same platform. This is a configurable metric that Diamanti offers that others currently do not, and it provides the ability to deliver on SLAs that meet your business needs more efficiently. This makes containers much more possible for production applications.
There are still some gaps in the D10’s feature set—for example, data compression, erasure coding, and cloning would be good additions—but Diamanti is aware and working to fill these gaps in the near future. ESG was impressed with the D10’s capabilities, and speaking with a current customer only strengthened that impression. ESG expects to see containers become a standard deployment for production applications in the next 12-24 months, and organizations that want fast, easy container deployment and a way to guarantee SLAs would be well served to look closely at the Diamanti D10.
1. Source: ESG Brief, The Growth in the Use of Application Containers, May 2018.↩
3. The test bed included a three-node D10 cluster. Each node was configured with 4 x 800 GB NVMe SSD, for a total of 3.2 TB of storage; 128 GB of RAM; 2 x Intel Xeon E5 multi-core processors; 4 x 10 GbE using a single 40GbE QSFP+ connection; Diamanti OS version 2.0; Kubernetes version 1.12 (certified); and Docker version 1.12.6.↩