Cloud Infrastructure has evolved radically in the past 5+/- years and continues to change at an accelerating pace. Here at Tranquil Hosting, we’re on the front lines as the hosting industry remakes itself to serve the changing needs of enterprises and developers.
This series will share our perspective on how infrastructure design and architecture is changing and how we’re embracing new approaches and technologies in our five data centers. We hope that this will be valuable to existing customers and generally to CIOs, architects and developers seeking to quickly get up to speed on the current infrastructure state of play.
What’s Driving Infrastructure Change?
Think about a typical enterprise application of 5-8 years ago. The endpoints accessing the application were pretty stable – either a client or one of a small number of browsers. Mobile wasn’t on the scene yet. The application relied on a predictable and small number of data sources that delivered data in a structured and standard way in modest and predictable volumes. All of this meant that the infrastructure requirements for hosting this application – whether it was an internal data center or with a hosting company like Tranquil – were straightforward. You needed a relational database, an application server (likely J2EE, Ruby or PHP), web server, dedicated storage and enough networking and computing horsepower to satisfy user demand.
Now consider the needs of an enterprise app you might build today. The endpoints are far more varied and changing very rapidly, including mobile, connected devices (e.g. IoT), and fast-moving browsers that varyingly comply with standards. The data sources to which you can connect, and to which your users will expect you to connect, are orders of magnitude more numerous and varied, the data structure varies widely from traditional rows and columns to unstructured, and the amount of data can be massive and unpredictable.
At the same time, software development processes have shifted entirely to an agile model.
Taken together, these changes in the app development landscape require a similarly radical shift away from the traditional data center to completely elastic cloud infrastructure.
Over the next several weeks, we will publish a series of five blogs covering different, but related, aspects of next generation cloud infrastructure design and operations.
Specifically, the series will cover:
- Shared storage
- PaaS
- Containerization
- Cloud Operating Systems
- Orchestration
In each entry, we will follow the same outline:
- Technical and market overview
- Our perspective on the pros and cons of the major options
- A description of how Tranquil Hosting leverages, or plans to leverage, each advancement
Part 1: Shared Storage
Technical and market overview
Think of shared storage as literally the ying to the VM’s yang. VMs emerged to solve the age-old problem of server underutilization. The same logic applies to storage – some apps need lots of it, some less, so virtualizing and sharing storage let’s you be much more efficient.
As VMs became mainstream, virtualized data centers ran into new problems. HW, network connections, networking gear, ISPs… sometimes fail, so if you’re *really* going to see efficiency gains, you need to be able to easily migrate workloads from one physical machine to another. Live and near live VM migrations require shared storage.
The advancement of storage technologies also pushes the need for shared storage. With HDDs, high RPM HDDs, and SSDs all providing a different price/performance trade-off, the need to decouple storage from compute becomes even more urgent in order to match the right tech with each job.
Top options for implementing shared storage
Table 1 contains the most popular current options for implementing a shared storage data center environment.
Tech | Description | License | Pros | Cons | Links |
ceph | Software storage platform that stores data on a single distributed computer cluster, and provides interfaces for object-, block- and file-level storage. According to red Hat, which acquired the company behind ceph in 2014, it is voted the number one storage platform by OpenStack users. | LGPL 2.1 |
|
|
ceph v GlusterFS debate Network World Ceph, GlusterFS Comparison Support from Red Hat |
GlusterFS | Scale-out NAS and object store. Described by Red Hat, which acquired the team behind GlusterFS in 2011, as a scalable, reliable, and cost-effective data management platform, streamlining file and object access across physical, virtual, and cloud environments. | GPL v3 |
|
|
ceph v GlusterFS debate Network World Ceph, GlusterFS Comparison Support from Red Hat |
iRODS | Distributed storage management system. iRODS uses existing Unix or NTFS filesystems (and maybe also ceph, too), it does not deploy its own filesystem. | BSD |
|
|
https://irods.org/ |
Pure Storage | Focused on greenfield SSD storage arrays. Offer:
|
Proprietary |
|
|
www.purestorage.com |
How Tranquil Hosting Does Shared Storage
As shown in Figure 1, the Tranquil Hosting shared storage stack consists of KVM hypervisors orchestrated with CloudStack and backed by ceph + libvirt to manage shared HDD and SSD storage.
In our experience, ceph provides the best balance of features, tunability for performance and cost.
For Tranquil Hosting’s cloud customers, ceph allows us to scalably offer advanced redundancy and availability, through :
- automatic failover if a disk dies
- automatic failover if an entire storage node dies
- if a hypervisor goes down, the workload is automatically brought up on another hypervisor
- if maintenance is needed on a HV, we can gracefully move the workload to another HV so the VMs see no downtime
Figure 1: Tranquil’s Shared Storage Stack
Up Next – PaaS
In our PaaS blog, we’ll cover the origins of PaaS, looking at Heroku and other pioneers, as well as the newest entrants like PaaSTA.