Link to home
Start Free TrialLog in
Avatar of Varun Malhotra
Varun Malhotra

asked on

How to Implement Any Configuration Management Tool - Amazon Web Services

Hi,

We have a particularly unique situation so I will try to be as clear as I can be.

Project information in Nutshell:

In one of my project we need to implement some configuration management tool (Chef,Puppet,Ansible etc).
Project in Nutshell : We're supporting our client infrastructure which is completely running on AWS. They have five products which are being used by their clients. There setup is like this : 5 AWS Accounts(Prod in VA and CA Region, Dev (CA Region), Demo(CA Region), UAT(CA Region) these all are running in EC2- Classic. All the instance are running on Amazon Linux and each instance running multiple tomcats, each tomcat is hosting their different application which their client is using(Shared environment). These are customizable application based on client requirements. For each client they request us to setup a similar environment in DEV account. On the Front end we've Apache which is redirecting the requests to the respective application server based on it's vhost entry.

For their two other products we've setup a dedicated environment in VPC. In each VPC only that specific product is running. We've separated different schemas for each client using that product. Two applications servers running multiple tomcats+ One database server.

Till now they used to give us WAR file location. We used to download the war file and do manual deployments. Now, they requested us to set-up a Jenkins and they'll provide us access to a branch so that we've do the deployment using Jenkins.

Goal:

Apart from that as they've already requested to implement any configuration management tool. After doing the architecture review I see less possibilities of reaping the benefits of CM tool in this environment because there are only two servers connected to one database server in all the environments. Don't see frequent changes in terms of provisioning more servers. Only we get requests to deploy a new tomcat and setup a new environment for the new client.

The Question:

Does anyone suggest a CM tool that can work best in the above mentioned scenario and how can it help? Also, suggest any cheap and best CM tool.

Thank you very much for the help :)
Avatar of Phil Davidson
Phil Davidson
Flag of United States of America image

There aren't many servers to justify using a CM tool.  Many CM tools support database changes.  If a single server supports two or more customers, using two CM tools can make sense.  One DevOps / Sys Admin can use one tool exclusively.  This way the two DevOps / SysAdmins completely own their own tools and know the difference by the tool type itself.

The open source versions of the tools would be cheapest.

Instead of a CM tool, you may want to get Jenkins to kick off scripts and execute changes.  I think supporting another tool and implementing it with all the dependencies may not be worth it.  

SaltStack can be used over SSH.  It puts less overhead processing on the client (minion) servers.  If the people supporting the CM tool are better with Python, I would recommend Ansible or SaltStack.  If they are better with Ruby, I would recommend Puppet or Chef.
okay. the number of servers imho should not be the only reason to go with a configuration management tool .
one goes with a CM tool to obtain below benefits
 - repeatability of deployment
- have infrastructure as code, so you can have it in scm.
- no human error in the play
- having repeatable playbooks/modules will mean they can be re-used for different clients
- to achieve operational efficiency. do things quickly, efficiently and without error.
for someone who've used Puppet and Ansible, I found Ansible to be much easier to learn and get on with.
finally, there is no cheap and best combination. you either compromise on enterprise support by going with open source stuff or get on with proprietary software that also gets you training, jumpstart and handholding support all the way.
for starters - Ansible should be easy to get on with.
This question needs an answer!
Become an EE member today
7 DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform.
View membership options
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.