4 ms·
Most of the provisioning capabilities in tools like Chef, Puppet, etc. are pretty rudimentary from the perspective of thinking about infrastructure as composabl
by mattzito 12y ago
Most of the provisioning capabilities in tools like Chef, Puppet, etc. are pretty rudimentary from the perspective of thinking about infrastructure as composable services.
So, for example, a "knife ec2 server create" or a "puppet node_aws" will kick off an aws machine, but it's up to you to manually describe the metadata around that server - what AMI, what VPC, attached subnets, security groups, etc.
But really, that's not what you want, you don't want a server, you want a composed service. You want to describe the entire stack, and you want to be able to represent that stack as code, so it can be tested, version controlled, etc. just like all of your other infrastructure.
The chef guys have clearly recognized this, and have their chef-metal project, which frankly seems like a bit of an ugly hack to get around the limitation that most config management tools have where all of the execution is on a target node (whereas with composable infrastructure you probably want some central node coordinating and orchestrating).
The thing that's more interesting about terraform, as well as Amazon CloudFormation, is that it can not only represent the traditional assets of servers and VMs, but also can describe SaaS services, which is slick.
So it's not so much splitting configuration across multiple tools, moreso of segmenting out the levels of description - I have one tool for service definition and catalog management, I have another tool for effecting change and configuration within a given service. Macro vs. micro.
- joshpadnick 12y agoWe're currently using "knife ec2 server create" to create servers, and it is indeed a pain. That's part of what's driven my interest in Terraform. In practice, though, we're hampered by Terraform's only partial support of the detailed EC2 instance properties.[1] Compared to the full EC2 API[2], there's quite a bit missing (e.g. declare an EBS volume as encrypted). Is there any way around this by passing arbitrary key-value pairs somehow, or are we limited to Terraform's documented API? [1] http://www.terraform.io/docs/providers/aws/r/instance.html http://www.terraform.io/docs/providers/aws/r/instance.html [2] http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-RunInstances.html http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReferenc...
- mattzito 12y agoSo - I have no idea, I've never used Terraform, I just spend a lot of time thinking about infrastructure automation theory. I think that would be a good feature if it doesn't exist, though.
- joshpadnick 12y agoThanks for your reply. I actually do have a couple related "practice" questions for the theory guy. Do you have any recommendations on good tools for: a) visually modeling your servers (something more than just lists of instances) b) tool for monitoring all active jobs to make sure they're all running (I know, lots of ways to solve this one, Deadman's Snitch, Jenkins, etc., but curious what you think) c) basic tool for dashboard of servers (I guess Nagios is the most common, and there's also commercial tools like Librato). I realize those are loaded questions. Feel free to answer partials if you're short on time. Thx for your input!
- mattzito 12y agoSorry for not responding sooner, I'm actually at my employer's user conference, so I was lured away by the prospect of food and booze. a) No! Though this is actually a conversation I've had here with a couple of customers - people want a good service modeling and visualization option. I'm thinking about how that might work. b) So, I think this is a space where the commercial tools (my employer makes a really good one, control-M) do better than OSS, I think because the nuance of job management and scheduling is so boring and detail-oriented. For OSS, Rundeck wants to do this work. c) Nagios, Monit, Zenoss - all can do what you want, depending on the nuances of the use cases. Hope this is helpful, thanks for the questions.
- joshpadnick 12y agoThanks very much for your reply. Both Rundeck and control-M look like they're worth checking out.