Dev Talks

How to Uses Ansible to help Customers Build On-Premise Products, Reducing Costs and Solving Maintenance Challenges

5xRuby Developer Apa
Apa Yu, Developer Mar 12, 2021

In the era of cloud computing, it takes just a few seconds to activate a server. Contrary to the exorbitantly high management costs for hardware devices in the early days, what matters today is how companies use code to define computational resources and network infrastructure, i.e. “Infrastructure as Code”.

The continuous integration and delivery of software application services have also become important issues in the cloud era.

These features come with sound infrastructure and supporting measures on the public cloud. However, companies have to build their own private cloud infrastructure and support. As building these services requires a certain level of technical expertise, companies have to spend additional time and money on IT training. This may pose a challenge to those which have been accustomed to using software packages.

This holds particularly true for environment set-up and deployment. Anyone who has managed servers knows that, in order to simultaneously manage multiple servers, it is often necessary to repeatedly execute the same installation procedures, which consumes a valuable amount of manpower. What’s worse, if wrong instructions are accidentally entered (e.g., mistakenly deleting the database or other important files for the official website), the corporate assets may very likely be severely impacted.

5xRuby has accumulated abundant deployment experience over the past few years. We help our customers manage cloud machines and services using Chef or assist companies in managing their internal servers using Ansible while substantially cutting down on manpower and enabling customers to focus on the quality of their products and services.

In the following, we will introduce a few practical cases to demonstrate how we effectively use Ansible to help customers achieve the goal of easy deployment and cost reduction.

WHAT IS ANSIBLE?

Those who have shopped at IKEA must have felt amazed at the space IKEA configures using their own furniture. What Ansible does is just like that. Customers don’t have to make furniture. All they need to do is select their desired space design configuration (script in the case of Ansible). IKEA provides design configurations that are suitable for most people. Simply by replacing a few furniture articles with their preferred ones, customers can create their ideal living environment (server environment in the case of Ansible).

Ansible is a set of configuration management tools to automate your server infrastructure setup. It is very easy to read and maintain. Ansible communicates with remote servers solely through SSH keys, so there is no need to set up another server. It can effectively conduct repetitive and time-consuming management tasks on your server, such as package, dependency, and configuration management.

Therefore, how companies incorporate automation solutions and write automated standard operating procedures for each deployment and installation play a critical role in their digital transformation.

AUTOMATED MACHINE MANAGEMENT YOU MUST KNOW

It often takes a tremendous amount of time to reinstall or upgrade software on the server. Sometimes companies may have to fine-tune software to suit their individual purposes. Such cumbersome work is also required for the server where the software is deployed.

If a company has more than one machine on premises, the time cost it spends on fine-tuning will become an enormous drain on its finances over the long term. Some companies use virtualization platforms, such as Proxmox VE and VMware ESXi, to manage their virtual machines. However, all the types of infrastructure mentioned above can be modularized and made testable through Ansible. Testing through continuous integration (CI) may also ensure the provision of high-quality scripts while assisting companies in achieving sound machine management. To illustrate this, let’s consider our analogy with IKEA. Since all furniture specifications have been standardized, it takes much less time to verify whether the parts meet right specifications during assembly or alteration. As long as the furniture is designed with latches of the same size, it can be integrated into the space combination.

Ansible for Application Deployment

Photo from https://www.ansible.com/use-cases/application-deployment

PRACTICAL CASE 1: ADDRESSING VARIOUS NEEDS FOR CUSTOMIZATION

Customer A is a company selling packaged software solutions.

Customer A serves schools of all levels from around Taiwan. However, as these schools use distinct hardware devices and systems, Customer A needs to adjust settings and customize configurations for different environments when installing various types of software for these schools. In addition, repeated manual setups are required for different services requested by each school (e.g., whether email verification is needed for a certain service).

The Solution of 5xRuby

After learning about the requirements and difficulties of Customer A, we created system packages in the unit of containers as Docker Image, and wrote an Ansible script to address their requirements, so that they may adjust configuration according to different needs and efficiently complete deployment for various environments.

What is Docker Image? If we compare a server to a warehouse, then Docker Image is like a container in the warehouse which holds furniture pieces. When customers have to replace some furniture, they only need to pull out the container where the furniture is stored, open the container, and then replace their preferred piece for the furniture.

With a smart use of Ansible Docker Image modules, users can systematize and scriptize complicated operations, while effectively managing a slew of machines at the same time.

PRACTICAL CASE 2: RISING TO PRIVATE CLOUD MANAGEMENT AND COST CHALLENGES

Customer B is disallowed from directly accessing public cloud services in compliance with the internal regulations of the company. Accordingly, all services have to be built on the private cloud. How can 5xRuby help customers create necessary application services and reduce subsequent management costs under the condition of a restricted environment?

The Solution of 5xRuby

Customer B may not freely access external networks and hence have no access to any third-party service. However, creating their own services would be too costly and the subsequent management and maintenance also require highly experienced personnel. In this case, we used Ansible to create software services on the intranet without having to set up another server as it can connect to servers via SSH keys. In addition, we wrote an Ansible script to help shorten the Customer’s learning curve for deployment.

As mentioned earlier, just like using IKEA’s pre-designed furniture configuration, we help customers establish the environment in a swift manner and reduce maintenance costs by enabling easy replacement and rewriting of the script (furniture) in terms of subsequent management. Judging from the Customer’s existing manpower allocation, at least 10-20% of manpower costs may be saved.

Normally, it would take one to two months to learn to deploy the Ruby On Rails project on the server. However, it takes only two or three days using the solution we provide. The IT personnel at the companies of our customers are able to create the most efficient deployment method with minimum learning, while dispensing with up to 95% of regular operations. Our solution is indeed suitable for all types of companies.

Have you encountered any annoying and complicated operational process as our customers did in system deployment?

Contact us and become the next customer to benefit from rapid deployment.


SHARE