Using Nomad as an Orchestration Tool in an AWS Cloud Implementation
Mar 5, 2018
With the advent of cloud services and the increased complexity of applications —both the development and management of them — the need for robust and scalable orchestration tools has become a critical component for any organization. Even with companies utilizing more cloud services, merely moving into the cloud and configuring services to mimic what they had in data centers does not always simplify a customer’s operations
This challenge was why a recent client of ClearScale, an AWS Premier Consulting Partner, asked for a review of their current development and application operations. Like many companies, they knew they needed to move to the cloud to take advantage of what it had to offer their operations and customer base, but they needed the expertise of ClearScale to not only determine what the best approach was but also to implement it on their behalf.
The Orchestration Challenge
Having architected their applications in a non-scalable environment using Ansible to manage them, the client needed to find a methodology that would allow them to deploy a solution where they could manage hundreds of environments with both containers and AMIs (Amazon Machine Image). They engaged with ClearScale to find and implement an orchestration tool that would perform well while lowering the overhead with their manual scaling and deployment workflow using only Ansible.
As is evident from the diagram below, the method the client had used by leveraging Packer with Ansible deployments meant that a number of bottlenecks in the process prevented them from being able to scale the application up effectively. The reliance on Packer to build the applications and shuttle them around via Ansible meant extra effort and intervention were required each time an application had to be built or deployed.
ClearScale knew that there were a number of orchestration solutions in the market that might suit the client’s needs. For example, AWS had its own orchestration service available by default called Elastic Container Service (ECS). However, ClearScale also recognized that the client was already using a number of HashiCorp products, namely Consul, Terraform, and Vault. Given this, the decision to adopt Nomad, another HashiCorp product, as the preferred orchestration tool was a simple decision since it would integrate flawlessly with the other HashiCorp products, keep the maintenance overhead minimal, and provide only a small amount of configuration to get it up and running.
ClearScale’s Nomad Orchestration Solution
Nomad is a general-purpose cluster management and scheduling tool for managing a cluster of machines and applications housed on them. Its generalized approach to management allows users to state what they want to use or run and Nomad, in turn, determines which servers to run it on, thus abstracting out the machines and the locations they are housed in.
In addition, Nomad has a much simpler approach to architecture than Kubernetes, for example; being a virtualized stand-alone service allows Nomad greater ease of use. Although Kubernetes is a robust, highly scalable cluster management tool, it does require effort to configure and integrate it within the architecture a customer chooses to use.
Because Nomad is designed with extensible drivers and requires no external services for coordination for storage or cluster management, it creates a very lightweight approach compared to other cluster management solutions.
The robust and sophisticated scheduler combined with its highly available and distributed nature makes the service an ideal choice for companies wanting an operationally simple approach to application development and management.
The re-architected approach that ClearScale designed and implemented meant that, using the client’s previous GitHub and Jenkins implementations, they could effectively leverage Docker and Amazon Elastic Container Registry (ECR) to build the applications for deployment in a scalable way. Moreover, by using Nomad, the client could then instantiate and scale up the application usage as needed using the virtualized Nomad Cluster. ClearScale also created an AMI for Nomad Cluster, which starts client applications. This allows their infrastructure to scale at both EC2 and container levels.
The result was a much more performant solution that allowed the client to scale their operations quickly and effectively to meet the demands of their customers. With the implementation, costs to develop, deploy, maintain, and operate decreased overall by solving a number of ongoing deployment issues the previous solution had inherent to its design.
Moving to the cloud is not always a simple thing to do. With all of the options, solutions, and third-party applications available today, the decisions an organization has to undertake can be a daunting task. Choosing one approach over the other could lead to an un-optimized solution which can lead to increased costs and more maintenance overhead.
By partnering with ClearScale, clients get expertise that has been thoroughly demonstrated through numerous client cloud implementations since 2011. We treat each client’s implementation as unique based on their requirements and strategy. ClearScale designs and delivers solutions that not only meet clients’ immediate operational needs but also account for unexpected demand in the years to come.
Learn more about ClearScale’s cloud DevOps services here.