|
|
|
|
|
by gpapilion
5245 days ago
|
|
I disagree. Infrastructure as code can be implemented any way you want. The DSL portion of chef should get you very far, if it doesn't you should just be writing ruby, C, or python code to meet you needs. Automation is really what devops is about; infrastructure as code, continuous integration, continuous deployment are all just synonyms for automation. I think again, what ever get the job done the most reliably, and quickest. |
|
I'll give you a Chef example of why DSL is not going to get you far.
Let's say you are running a LAMP stack. Let's say your engineers are good enough to implement a Service Oriented Architecture. SOA means your infrastructure needs to be capable of running a variety of disjoint components. As a DevOps Engineer you need to be able to automate infrastructure and deployment to support rapid releases of application services.
From the infrastructure perspective, application services needs are similar. An application service will probably require a set of Hosts/VMs with specific roles, Vhost configuration, DNS provisioning, Load Balancer config, Logging configuration, User configuration, etc.
If you are writing just in DSL you will end up for a unique Chef recipe for every application service. These recipes are going to be 90% similar, and your Chef repo will become very difficult to maintain because many changes will require edits of multiple recipes (copy-pastes mostly).
Now, if you move beyond Chef's DSL, you will be able to extend Chef's DSL with your own definitions.
My Chef's recipe for a new LAMP application service is php_app "name" do ... that sets up DNS, Vhosts, logging, users and everything required in one command. The code is also very maintainable. To change the way logging is done for all application services, I need to edit only several lines of code in the Chef definition.
DevOps movement started as idea to adapt developer practices in systems administration. One of the principles developers use is DRY (Don't Repeat Yourself). In order to DRY you need to know more than basic Chef DSL.