A Tale of Two Architecture Models: A Peek into Canonical Cloud Architecture Design Rationale

A Tale of Two Architecture Models

When designing clouds for customers and partners, Canonical Consultants and Architects follow a standard process that creates designs based upon use-cases and requirements. Over the years working with many thousands of customers and partners, we have zeroed in on two Cloud Architecture Models that serve as the base for many of our designs.

The Hyperconverged Model is the default model used in our Canonical Cloud Reference Architecture and is what all technical sales conversations are started with.

Canonical OpenStack Foundational Architecture Design Models

But, as we delve deeper into those discussions, either through pre-sales activities or via paid consulting engagements, it may be determined that another model, the Disaggregated Model should be used.

The primary difference between the two, as you will see in the diagrams below, is service placement on physical hardware. Other key differences abound and are also important to help drive the final outcome of design workshops with customers.

While both models have pros and cons, the use-case & requirements we gather while working with customers ultimately decides which model we will go forward with.

Hyperconverged Model

Hyperconvergence is a type of infrastructure  with a software-based architecture that tightly integrates compute, storage, networking and virtualization resources and other technologies on commodity hardware.

Screenshot 2016-08-31 09.24.21

Typical Use Cases of the Hypercoverged Model

The primary use cases for the Hyper-Converged design model are Public Cloud, General Purpose or starter clouds on premises.  The cost savings in management and operations costs alone can make it a great choice for many reasons or uses:

  • Public Clouds
  • General Purpose Clouds
  • Proof of Concepts
  • Development Labs
  • Non-specific workloads
  • Customers who want to test vast amounts of different services and technology
  • Customers who expect large services growth rates and need to scale out quickly
  • Customers unsure or undecided of application stack

This model is generally more efficient requiring fewer physical servers to provide the required capacity, however, it can carry additional cost as it’s not optimized for any particular type of workload.  For clouds where the diversity of workload is very low, alternate architectures may offer greater potential for performance tuning.

Disaggregated Model

Disaggregation takes cloud architecture a step further and targets the processing, memory, networking, and storage subsystems which make up every system. Disaggregation is really attractive among hyperscale providers which see disaggregation is a way to achieve more flexible systems and fewer underutilized resources.

Screenshot 2016-08-31 10.32.25

Typical Use Cases of the Disaggregated Model

The use cases for the Disaggregated Model is customers who know what workloads will be deployed and understand how to tune the environment for those applications.  A customer may have one workload that is CPU bound while another demands low latency networking or high-performance storage.  When choosing between the Disaggregated Model and the Hyper-converged model, the latter is less efficient to grow the cloud that is optimized for these workloads, especially if they grow at different rates.

Use Cases where the Disaggregated Model work best are:

  • NFVi Clouds
  • Storage Clouds
  • HPC
  • Other Specialized Workloads

The Disaggregated Model gives the customer flexibility to grow the cloud in a more optimized way based on a specific workload. It requires more detailed knowledge of workload and takes more thought to scale out.  The payoff of knowing these two is going to be a more efficient cloud for the price.

When to choose which model?

The flexibility of cloud workloads, in general, makes the hyper-converged model a great starting point.  For clouds where the diversity of workload is very low and more specialized, the disaggregated architecture model may offer greater potential for performance tuning.

NFVi cloud architecture designs, for example, are best served by the disaggregated model. In the case of NFVi,  many vendors of VNFs require the cloud infrastructure to be specialized and tuned to give the highest performance and to attempt to reach as close to line rate speeds as possible. Some machines may be tuned and/or built for VNFS that would require SR-IOV and DPDK while others may be used for VNF management backplane and be less powerful. Again,  it all will depend on the use-case and requirements of the customer.

Changing Models on the Fly

But what if my use-case or requirements change? How do I reuse hardware that I have already purchased? I do not want to go out and spend hundreds of thousands of dollars on another purpose-built cloud.  Juju and MAAS to the rescue!

If you haven’t heard about Juju, it is Canonical’s tool for modeling, deploying, and operating Big Software.  One such Big Software Stack is Canonical OpenStack(OpenStack,Ceph, Swift, etc.). It has the innate ability to re-deploy a cloud architecture at any time. In parallel, MAAS has a complete picture of my physical infrastructure that allows me to redeploy operating systems, reconfigure networks, and do other cool stuff that I would otherwise have to manually do.

We find Juju and MAAS extremely useful when we are testing and validating designs as we are working with customers.  Our labs only contain a limited set amount of hardware with a very generic hardware configuration. Juju and MAAS combined give me the ability to repurpose that hardware, redeploying either model quickly and efficiently.

It’s as simple as

juju deploy customerdesign_hyperconverged_version.yaml

or

juju deploy customerdesign_disaggregated_version.yaml

whereas the YAML file will have a complete description of how services should be placed, configured, and deployed on our lab hardware. This means I can redeploy without having to run through a large amount of steps to repurpose that hardware or have two sets of hardware laying around for testing.

Conclusion

Simply put, cloud designs and deployments can be boiled down to two discrete models. Hyperconverged for general purpose computing where workloads are generic and forgiving or Disaggregated where workloads are more specialized requiring higher levels of performance.

Using a use-case, requirements-driven approach to design has simplified and shortened delivery of clouds to our customers. Ultimately, it has allowed us to streamline and reduce our architectures down to two models which drive designs that match customers vision and business case more closely.

Special  Thanks

This blog post was co-authored with Chris DeYoung who is one of my co-workers and team members on the Canonical Consulting Architect Team that I lead.  A very special thanks to Chris for his contributions to this post and for his help with creating the cleaner diagrams.  He, along with other members of my team, are some of the best High Touch Domain Architects in the world. Check him out here:  https://www.linkedin.com/in/christiandeyoung

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.