Systems Monitoring with Prometheus and Grafana - <AUTHOR> https://flightaware.engineering/systems-monitoring-with-prometheus-grafana/ <comment><USER3> Grafana truly is best in class, but I have strong reservations about Prometheus.

I really want to like it, it's just so _easy_, publish a little webpage with your metrics and Prometheus takes care of the rest. Lovely.

But I often find that the cardinality of the data is substantially lower than even the defaults of alternatives (influxdb has 1s and even Zabbix has 5s).

Not to mention the lost writes (missing data points) which have no logged explanation.

All of this, however, was in my homelab, which, while unconstrained in resources lacks a lot of the fit and finish of a prod system.

I also take pause with the architecture; it's not meant to scale. It's written on the tin so it's not like I'm picking fault, but when you're building a dashboard that sucks in data from 25 different Prometheus data sources, it becomes difficult to run functions like SUM(), because the keys may be out of sync causing some really ugly and inaccurate representations of data.

Everything about the design (polling, single database) tells me that it was designed primarily to sit alongside something small. It could never handle the tens of millions of data points per second that I ingest(ed) at my (now previous) job.

But it has a lot of hype, and maybe I'm holding it wrong.

<comment><USER4> > Grafana truly is best in class

Really? Recently we've been playing with Chronograf with InfluxDB and most people find it a lot nicer to work with than Grafana (specifically because it makes discoverability a _lot_ nicer)

<comment><USER5> For our modest cloud infra, InfluxData TICK (InfluxDB, Kapacitor, Chronograf and Telegraf) stack has fitted exactly with our needs. We really like its folding building-blocks, interoperability and yeah... easy discoverability and configuration. But also its very convenient InfluxQL which lets us customize reports with ease on InfluxDB.

</comment></comment></comment><comment><USER6> I have a love/hate relationship with Prometheus. If I had no budget for metrics its likely the thing I would reach for, but I'm dying for someone to open source a 'next level' metrics system (something like Monarch or Circonus but free).

But woe betide the team that has to run it as a service. Not that other metrics systems are better but Prometheus can be brutal in that space.

As a 'squad level' tool its really good. After that it gets hairy fast.

<comment><USER7> Could you give more context on Monarch or Circonus features that are missing in Prometheus?

BTW, I'm working on VictoriaMetrics - open source monitoring solution that works out of the box. See [https://github.com/VictoriaMetrics/VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics)

<comment><USER6> 1) histograms as the basic primitive. 2) bidirectional transport 3) runtime configurable filtering at source, collection and sync. 4) provenance as part of the transport.

</comment></comment></comment><comment><USER8> We've got a somewhat similar landscape, on a pretty sizeable network - <USER2> investment in Zabbix and looking to move, perhaps slowly and perhaps only in part, towards Prometheus.

Coming from a monitoring system that supports push and pull with elegant auto- discovery, we're struggling to work out a sane architecture around (effectively pull-only) Prometheus.

<comment><USER9> There's a push gateway: [https://github.com/prometheus/pushgateway](https://github.com/prometheus/pushgateway)

<comment><USER8> Yeah, I think we've looked at that. It provides push for the last mile, and I suppose you could wrangle some auto-discovery using that tooling, but you're still doing pull from Prometheus to that/those server(s).

We're still a bit stuck trying to replicate all the make-life-easy functionality we get with Zabbix sitting on a honking great PostgreSQL / Timescale database, with a bunch of proxies, and automated agent installs that auto-register.

There's places that _doesn 't_ work well (k8s, f.e.) but for conventional fleet metrics it's difficult to abandon.

<comment><USER9> Yeah true, we find it easy for us because we're using K8s annotations for Prometheus scrape target discovery, so the gateway is just another target, and we're not running too many ephemeral jobs that we need more than one gateway.

</comment></comment></comment></comment><comment><USER10> Interesting post. However, I believe that most content, and especially broad technical one like this, absolutely needs a balanced amount of relevant visual elements (e.g., images, diagrams). If you want it to be readable, that is.

<comment><USER11> Yeah, odd post that talks a lot about Grafana and visualizations then uses absolutely none.

<comment><USER10> Yes, it's quite ironic. Hopefully, the authors will eventually improve the post, because core content is valuable.

</comment></comment></comment><comment><USER12> I thought this article, while a little dry, was very illuminating. It sounds Hyperfeed is running at the very least "Medium Data" (we all thing our Data is Big!). And i think it is fascinating to hear of a case where Prometheus is plainly a bad fit for it's intend purpose. It sounds like cardinality explosion around their ML models was a really bad fit for Prometheus. Its great to hear about deployments "in-situ", and people appreciating where it works well, and where it doesn't.

</comment><comment><USER13> What's a good alternative to Prometheus when pulling stats is impractical? Say I want to monitor a personal laptop like I would a server. It will change networks and IP addresses, so pulling would be impractical to configure, whereas the laptop could easily(?) push its stats to a remote server.

<comment><USER14> Telegraf + InfluxDB?

<comment><USER15> This is my setup on all my raspberrypis. I have not be been able to figure out how to monitor a cluster though. I saw that grafana free tier doesn't allow a cluster of servers getting monitored. I have telegraf + influxdb + grafana installed on all my servers.

<comment><USER16> Could you expand on what you mean by:

> grafana free tier doesn't allow a cluster of servers getting monitored.

Is there a particular aspect of the cluster you're missing? Is it that you don't want individual server metrics?

<comment><USER15> I have telegraf + influxdb + grafana-server installed on each of my Rpis giving me multiple dashboards. I want only one grafana-server dashboard where all the telegraf metrics could be seen.

</comment></comment></comment></comment></comment><comment> site-packages1 What do you all do with the collected metrics over time? Do you store everything forever, drop everything after a couple weeks, or something on between? I've heard of people thinning out old data a bit (?) and storing it long term rather than storing everything. What's the usual thing people do?

<comment><USER17> High fidelity operational metrics have a useful half life measured in days or weeks. Read patterns for longer term use cases are also categorically different. Best architecture is to have a separate system for long term stuff, which treats Prometheus as a data source. Then Prometheus can drop after 14-28d.

<comment><USER18> > High fidelity operational metrics have a useful half life measured in days > or weeks.

Depends on the metric IMO. There's a ton of use you can get out of forecasting and seasonality for anomaly detection, but you need data going back for that to have any chance. Many relevant operations metrics exhibit three levels of seasonality: daily (day/night) weekly (weekday/weekend) and annual (holidays, superbowls, media events). Being able to forecast network traffic inbound on a switch to find problems would require you to have 1y of data, effectively. You _might_ be able to discard some of the data but you'd lose some of the predictive capacity for say, the Super Bowl.

<comment><USER17> I agree that it's important to keep some telemetry data for the long term. My point is that you need fewer and less granular metrics for those use cases, and that the access patterns are sufficiently different from real-time operations, that they're most effectively served by two completely different systems.

</comment></comment></comment></comment><comment><USER19> Prometheus is great. I first heard about it at KubeCon last fall, and kind of shrugged it off as one of those fledgling "cloud native" projects that I probably didn't need or didn't have time to learn. There's actually a lot of adoption, you can find great exporters and grafana dashboards for almost any OSS you're running today. I started collecting metrics from Zookeeper and HBase in about an hour, having never had access to that telemetry before. From the existence of Cortex[1], it seems that Prometheus doesn't scale incredibly well, but I don't think many users will hit these limits.

[1] [https://cortexmetrics.io/](https://cortexmetrics.io/)

<comment><USER20> My Prometheus system is a $10/mo Linode. It collects from 27 other hosts, and at least 100 services distributed across those hosts - doesn't even break a sweat. All the exporters run through a wireguard VPN. Prometheus is great for a small/medium SaaS type environment.

<comment><USER15> What do you use as a frontend? As far as I could tell grafana free tier doesn't allow monitoring cluster of servers.

<comment><USER21> You could self host it.

<comment><USER15> Can I self host for monitoring cluster of servers? Currently I have grafana installed on each of my servers and I am having to monitor them individually. I want a centralised dashboard over telegraf + influxdb.

<comment><USER22> Why would you install Grafana + Influx on each server instead of one central one?

<comment><USER15> I haven't spent much time on this but most of the docs were for setting it up on each hosts. Is there a proper tutorial for clusters?

Also I wanted to keep the monitoring unaffected for other servers if one of them go down. If I setup a central server for monitoring then that becomes a single point of failure.

<comment><USER23> Grafana is meant to run as a single instance. For monitoring multiple servers, you need to get the metrics into one data store, from which Grafana will read. That's Prometheus' job. These pieces should not be on the same servers that run your product. For HA, you can run two or more Prometheuses as duplicates, so you can switch to another one if the main one is down.

<comment><USER15> Would the one datasource have a single database with several tables, one for each server? Lets say I am monitoring mysql. Currently I have a `mysql` table in a databse named `telegraf` on each host. Can I combine multiple influx datasources into a single dashboard beacause that would be easiler right now for my current setup?

<comment><USER23> You handle multiple servers by tagging your metrics with the server id or name. No need to create a table per server.

Each panel in a dashboard points to a specific data source, so you can have multiple data sources in one dashboard.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> Prometheus and Grafana are awesome, use them personally for all my monitoring.

However I'm still trying to nail down my high cardinality/highly unique metrics-like data story. What are people using?

I've heard a combination of Cassandra/BigTable and Spark as a potential solution?

<comment><USER25> I found this interesting. My plan is to move from Prom to Victoria.

[https://medium.com/@valyala/measuring-vertical- scalability-f...](https://medium.com/@valyala/measuring-vertical-scalability- for-time-series-databases-in-google-cloud-92550d78d8ae)

<comment><USER17> Woof, good luck. Not a great product.

<comment><USER26> Care to elaborate? At least a slight mention of why.

</comment></comment></comment></comment><comment><USER27> I've been looking into Prometheus + Grafana for other reasons. I have some 3rd party APIs connected through API gateway, which I need to health check and I couldn't find other open source alternatives. Gonna move the whole setup to cloud at some point but I'm not sure if this is the right thing to do. Does anyone have other articles/ open source tools which can be helpful to me? This article goes much deeper into how the setup can be used but I'm looking for more simpler use cases of the same setup, for the task I need to do.

<comment><USER7> Probably vmagent could be useful for your case? See [https://victoriametrics.github.io/vmagent.html#use- cases](https://victoriametrics.github.io/vmagent.html#use-cases)

</comment></comment><comment><USER28> Does anyone have anything good or bad to share about using Grafana as a front end for metrics logged in AWS cloudwatch? I know it has a plug in and I'm fed up with how bad the cloudwatch dashboards are so wondering if I should check it out.

<comment><USER29> Well, I'd say give it a try. We are using CloudWatch as a Grafana datasource, because this way you can concentrate more of your monitoring to one place, which is useful during troubleshooting. With Grafana 7.x, you can even check and correlate your CloudWatch logs inside Grafana, deeplinked to the AWS Console. After this major version, you can even wire Jaeger into Grafana, so you have a one stop solution for tracing as well (and logging, if you utilize Loki too).</comment></comment>


Holy mackerel: Civilisation begins with fishing - <AUTHOR> https://www.spectator.co.uk/2017/11/holy-mackerel-civilisation-begins-with-fishing/ <comment><USER2> I always had a pet theory that Omega-3 kick-started the development of the human brain. Not sure if the science agrees completely but it does suggest a correlation.

<comment><USER3> Aquatic ape hypothesis [^1] is quite convincing.

I have learned about it at freediving course as it explains our natural capabilities of apnea.

[1] [https://en.m.wikipedia.org/wiki/Aquatic_ape_hypothesis](https://en.m.wikipedia.org/wiki/Aquatic_ape_hypothesis)

</comment></comment><comment><USER4> Turtles were also very important to early man, along with shellfish the were easy meals for tool users.

</comment><comment><USER5> Fascinating. I feel like every year or so a new book is written along the topic of something like this though: Fish, Salt, Grain, Money, Paper, etc and how that thing was responsible for modern civilization. I commend the author for bringing this idea to the forefront but its likely disingenuous to think that Fish and Fishing has as the author says, "created the modern world" more so than any of these other things.

<comment><USER6> Still makes for a fascinating read... Plus eventually we'd be able to run ml on the articles to reach a concensus maybe xD

<comment><USER7> I'd speculate that all modern humans were capable of forming civilizations, and like a supercooled fluid would crystalize into one around any workable nucleation site.

<comment><USER8> If they wanted to. Agriculture has been one of the worst changes for average quality of life.</comment></comment></comment></comment>


DOD Science Board Recommends "Immediate Action" to Counter Enemy AI - <AUTHOR> http://www.defenseone.com/technology/2016/08/dod-science-board-recommends-immediate-action-counter-enemy-ai/131066/ <comment><USER2> So a board of military scientists think the US should give more money to military scientists.

Their primary beef seems to be that industry has pulled ahead of the military in AI tech with drones, etc. They want a bunch of money to acquire public technologies and duplicate proprietary commercial tech, otherwise, you know, Bad Stuff.</comment>


Can I save these documents on a dying machine from oblivion? - <AUTHOR> https://superuser.com/questions/1268868/can-i-save-these-documents-on-a-dying-machine-from-oblivion <comment><USER2> They have python running seemingly just fine, I wonder if they could get urllib imported. Then just make one web request to a simple server running on another machine with all the data.

Has this been overcomplicated?</comment>


Don't use "My" in UI elements. - <AUTHOR> http://weblog.muledesign.com/2010/06/unsuck_it_special_byebye_my.php

<comment><USER2> Slightly offtopic, but sometimes I wonder about the number of man-years wasted because Microsoft decided to use "Program Files" instead of "Programs". "Yes, you can finally put spaces in your file names. Well done. That doesn't make it a good idea."

<comment><USER3> Oh, to go back to the 8.3 days... 11 ASCII characters is enough to name your files, right?

<comment><USER4> 12 characters, if you count the dot.

<comment><USER5> Which OS was that?

<comment><USER6> I think by 8.3, he meant DOS 8.3 ?

<comment><USER7> 8.3 refers to: 8 chars, a dot, 3 chars, which was the limit for filenames.

</comment></comment></comment></comment></comment></comment><comment><USER8> So using "my" is lazy, sucks, and bad style but "your" is natural, friendly, and easy to maintain. I don't get it.

<comment><AUTHOR> 1\. "My" will inevitably contradict with "Your" (see the article's LinkedIn screenshot). It seems forced. Using "Your," when appropriate, approximates a _dialog_ between you[r system] and the user.

2\. Avoid both for simple labels, tabs, and buttons.

<comment><USER9> Eventually, you will need copy that explains something to the user. When you do, you will not be able to keep your copy consistent by continuing to use "my".

"If you have questions about your account, call..."

</comment></comment></comment><comment><USER10> Nice topic. Just talked to my co-founder about that. We are developing both web service and mobile app, so there are to different views on the problem. We didn't really thought about the whole problem of calling the user "you" or "me" yet, so here is where we are today:

In the web service we use "you" everywhere. So far so good. But for the mobile app (we just finished the first prototype - without beutification and such) we used "my" in almost every case... and we investigated why: For us it feels convenient that if I hold my cell in my hand, it is MY phone.. and such is the mobile apps that I use. They are MY apps, and as MY apps, they are a part of me (I take them with me everywhere I go - just like my keys). In the keys- example you would also say "my keys" and not just "the keys".. and you say "my phone" and not "the phone". I think it is just intuitive that it is "my app" and (inside of the app) "my posts" and "my messages"...

</comment><comment><USER11> This is being overthought. It's an issue of brevity. "Edit profile." Am I expecting it to allow me to edit a profile of someone else? In so many cases, "my" and "your" are present when the user is unable to interact with content other than their own (e.g. personal finance sites).

<comment><USER12> Why not just "Profile?"

Or just "starpilot?"

For people who spend lots of time at a site that will work.

For my Mom trying to deal with her ISP, not so great.

</comment></comment><comment><USER13> I think people started using 'my' because 'Go to my profile' sounds more friendly than 'Go to your profile' as links. When you say 'you' the person is automatically distanced from you. When helping a customer face-to-face, you can say 'we' and 'our', but that makes even less sense than 'my' on a webpage.

<comment><AUTHOR> The link doesn't need "Go to" at all though — it's a link. "Your profile" works just dandy — if not just "profile."

Edit: "See your profile" is a friendly alternative, too

<comment><USER14> As a further improvement it should be "Go to my profile: click here".

<comment><USER15> Why not make "Go to my profile" the clickable link?

I'm tempted to suggest the next logical extension would be "Go to my profile: click here <\-- HEY! That was the link!" :-S

</comment></comment></comment></comment><comment><USER16> This is how I've been doing it for several years. I may be wrong, of course.

I think that "Me" or "My" should be used when a title of a section (a page or a field) does not contain an action (a verb). It should also be used when a button, link, or title of a page contains a phrase that implies that the user is ordering the system to perform an action. For example:

Field Title: My Company Name: Page Title: My Main Menu Button: [ Change My Password ] Link: Reset My Account

In contrast, I think that "Your" or "you" should be used when the system is telling or asking something from the user. For example:

Field Title: What is your password? Message: You can always change your settings… Link: Click here to contact your agent Message: Your are signed in as:

Whenever I have the option of using one or the other, I go for "My". For example, if I have the option of using both "Post My Project" and "Post Your Project", I use "Post My Project". Why? Because on "Post Your Project" the system is asking the user to do something, while in "Post My Project" the user is ordering the system to perform an action. I think that users like to feel they are in control.

</comment><comment><USER17> I would suggest that "Edit My Profile" implies a sense of ownership and choice that the instructive "Edit your profile" or vague "Edit profile" doesn't, which could conceivably actually have tangible benefits in terms of encouraging user behaviour.

This is a testable hypothesis as is the claim by the author of the original post that it's "helpful" not to have conflict between "my" and "your" for different functions.

Does anyone have any data to support either conclusion?

</comment><comment><USER18> I read about this recently when browsing the Yahoo design pattern library [http://developer.yahoo.com/ypatterns/social/core/yourvmy.htm...](http://developer.yahoo.com/ypatterns/social/core/yourvmy.html)

</comment><comment><USER19> I have had so many debates surrounding this over the years its not funny. I feel elated to have a definitive reason to go with 'your' over 'my' and an article I can send people when they challenge me. Win.

</comment><comment><USER20> Do we really need these pesky pronouns? Putting labels like your pen, your mug, your red stapler on stuff is equally crazy, isn't it? Al link/button labeled Profile/Account/Settings... is just fine. There is no surprise in clicking on something labeled "profile" resulting in your profile being brought up, what else would you expect? My profile?

</comment><comment><USER21> Another item to add to my ongoing list of usability checks (to be published, soon).

</comment><comment><USER22> I wish I could vote this up more than once!

<comment><USER22> You guys are silly. I only meant that I agreed with it so much that I wish there were a way emphasize my vote. Now its "Oh wait, those guys voted down his post, I will too!"

Way to build community guys. I still love you though.

</comment></comment><comment><USER23> I agree with this, but for different reasons. The difference between "Edit my profile" and "Edit your profile" is really a difference in how the relationship between user, interface and back-end system is conceived. When the interface says "Edit my profile", it's represented as speaking for the user to the system, so you have [user+interface] <\---> [system]. Which is a technically accurate representation of client-server architecture, and also generally the way the world looks from the perspective of any system - the UI is decoupled, and speaks to the system on my behalf, in my voice. This is the system-centered perspective.

To the average user, the world looks quite different: [user] <\---> [interface+system]. Here, the interface isn't part of "me", it's outside, part of the system, so it should speak as the system, not as "me". This is the user-centered perspective, because it reflects how users see the world.

I think this also speaks to why programmers generally tend to be bad at user experience - it's almost an ontological problem. What is software, really? Is it just system, with interface added in later, almost as an afterthought? Or is it interface+system?

<comment><USER24> Hmm, somehow I have the inverse mental model, though it might be because of correlation with where I see each usage rather than anything inherent. I associate the "my" usage with cutesy/friendly AOL-style interfaces, where we're trying to make the user feel fuzzy ownership over their stuff: "Change my buddy icon", "update my profile", etc. I associate the "your" usage with a more cold, detached system-centric Unix model, where the programmer/system sees this as _your_ stuff and responsibility: "enter your password", "choose your username", "wipe your home directory [y/n]?", etc.

Perhaps at the extremes, something like: "Hello, I'm Clippy! Let's edit our files together!" versus "Computron 5000 online, please state your request."

<comment><USER25> This reminds me of some observations by Douglas Hofstadter and self- referential expressions. I forget where he wrote this (Metamagical Themas, perhaps), but he wondered, when you come across a dirty car with "wash me!" drawn into the dirt, to what does "me" refer? Why do we assume it's meant to be the car; perhaps those words are some desperate plea from a passerby in need of a bath.

The funny thing with seeing a folder named "My Documents" is that since I did not create that folder, and did not pick that name, my gut reaction is to attach "my" to whatever entity _did_ create it.</comment></comment></comment>


Renewing America's economic promise through older industrial cities - <AUTHOR> https://www.brookings.edu/research/older-industrial-cities/ <comment><USER2> You have to be willing to tolerate "outsiders" with unfamiliar cultures who come and go to attract new industries. World trade is growing ever more intertwined such that xenophobia will slice your economic chances.

Paranoid-inducing TV and AM pundits have made the mid-west into xenophobes, I hate to say. They think there is a organized conspiracy to take away their rifles, outlaw Christianity, and make men wear dresses. I exaggerate a little, but not much.

</comment><comment><USER3> I wonder if there are studies that explore what the loss on investment is. That is to say, if we were to repurpose those older industrialized towns to more modern needs, would the cost on renovating the existing infrastructure be more cost effective than say, building new infrastructure in existing smaller but more popular cities? It seems to me that we may be throwing away a lot of good existing infra to be found in these older cities.

<comment><USER4> That's a good question. I imagine it's not a one size fits all type of solution though.

Where I'm from, the outskirts of Charlotte NC, a lot of the old "industrial" buildings were cotton mills. Many of them sat empty for years, or just became warehouses after the industry left, and were considered a blight. Eventually some areas started growing more and changed zoning laws, so these old mills redeveloped into prime real estate for restaurants and breweries.

However I wonder if the story would have been different if the mills were more like the factories in north and midwest. I don't have a good comparison point, but the mills which tended to work out for redevelopment typically were:

\- 1 or 2 story brick buildings, so typically no need for elevators. \- Ample windows and a good size parking lot \- Not too large \- Located in an area with growth from other industries \- Not exposed to too many harmful materials

for example, this mill which was empty for many years:

[http://www.cmhpf.org/S&Rs%20Alphabetical%20Order/surveys&rDa...](http://www.cmhpf.org/S&Rs%20Alphabetical%20Order/surveys&rDavidsonCotton.htm)

Now looks like this: [https://www.visitlakenorman.org/listing/davidson-cotton- mill...](https://www.visitlakenorman.org/listing/davidson-cotton-mill/1744/)

Meanwhile, a few blocks over, on a piece of land that is even closer to main street, there's a dilapidated building that was formerly an asbestos factory. In comparison, it has nearly no windows and even tearing it down is risky due to the materials which were dumped by the factory: [http://wfae.org/post/davidson-mill-redevelopment-unearths- as...](http://wfae.org/post/davidson-mill-redevelopment-unearths-asbestos-old- tensions#stream/0)

</comment></comment><comment><USER5> The article doesn't address this, but one way to renew older industrial cities would be to connect these cities to more vibrant cities through better public transportation.

For instance, both Lowell and Worcester in MA are each less than 50 miles from Boston, when measuring city center to city center. Both cities fell on hard times in the 20th century, but reliable rail with 20-30 minute travel times is technical feasible and would do wonders for both cites, not to mention help relieve the severe housing shortage around Boston.</comment>


Ask HN: What does Opscode do (http://www.opscode.com/)? - <AUTHOR>

I hear that http://www.opscode.com/ is a successful startup. I know that Engine Yard used their chef software to build their cloud platform.
But I can't understand from their site what services/products they provide ? Why do people pay them? Can someone explain it to me like I'm a 10 years old? <comment><USER2> I am not certain but, here is what it looks like. First I'll describe the text, then the apparent business model, then I'll kibbitz a little about the business model.

The "chef client" is a program that runs on servers, either on-demand or just periodically.

It runs a ruby program called a "chef recipe". Roughly speaking, this program computes the correct configuration for the server, examines the actual configuration, and fixes disparities.

As an example, my recipe might say (in effect) "Apache should be running. The config files should be the lastest versions of package X but the virtual server names have to be rewritten depending which users are hosted on thsi server." The chef client checks to see if Apache is running and the config files are so -- if not, it fixes things.

Information about how particular servers are to be configured may be stored on a separate "chef server". The recipe running on the chef client can read and update the chef server records.

The firm sells the on-line service of hosting a chef server for you, if you like. They would appear to charge in proportion to the number of server configurations you host (judging by the "up to 5, free" freemium).

The firm additionally sells training. I would _guess_ that training is value priced but with discounts for customers who also make a commitment to pay a subscription fee.

It _sounds_ as though all of the code, client and server, is under a free software (but non-copyleft) license.

Notice that they do not make it easy to anonymously download the software from their commercial site.

I would guess / hope that they are also selling support subscriptions which don't involve hosted "chef server" service but do include convenient access to at least mildly warranted distributions along with weakly guaranteed issue report response times (and just general good will).

If the facts and surmises above are correct:

1) They are _theoretically_ vulnerable to a rival that subscribes to them (to get the lastest distributions) but then separately sells the same services for less money. This isn't important because it's worth going to the upstream source.

2) They are _theoretically_ vulnerable to technical staff quitting the firm and opening an office across the street. This would be such a reputation hit for the whole product and team that the stars are unlikely to align that way.

3) At first glance it looks like their hosted "chef server" is a lame lose because it's so technically thin. If they don't already I think the notion is that they tie service subscriptions to preferential access to the data set comprising their "cookbook" (resources to speed up recipe development). In other words, they're main subscription "added value" may turn out to be a walled-garden open source community. That's a pricing challenge, though. If you're hosting the chef server you can charge-per-server-config and that's an OK proxy for value-based pricing (hence, scalable profits -- mostly passive income that grows roughly linearly with the number of server configs hosted). If, on the other hand, you're charging just for nice access to the low-walled- garden customer community and core development/support team: how do you do value based pricing? A customer who is a 5 person small business needs just about exactly as much from you as, say, a division or large department of IBM: they'll want to pay roughly the same amount.

4) They are hugely vulnerable, in my view, to security lapses on multiple levels which, owing to the nature of their business, can have an enormous, immediate, and irrevocable impact on many customers within a short period of time.

</comment><comment><USER3> Suppose you rent a server at a hosting facility. This server could be a physical server or a VPS. It could be a piece of "cloud" infrastructure (a good list can be found at <https://www.cloudkick.com/providers/>).

Some people who have little technical operations experience will write their code and copy it over to their production server to deploy it. As time goes on, the server needs to be changed; perhaps you need to add a library to extend the function of PHP. More time goes on, and then all of a sudden you need to build out a second web server, identical to the first. How do you do it? The first web server has been hacked and modified, and it's not necessarily trivial to build out a new one.

Opscode uses Chef to create "recipes" that determine everything you want on a box. So instead of logging into the first web server and hacking on it to get it in your desired state, you modify your recipes to add your PHP module there. Then, when you need to build out more boxes identical to the first, you run your Chef recipe and away you go.

What I'm not sure about with Opscode is how they do Configuration Management. If I have three applications on the box, and each of them have independent configuration, does Opscode manage that versioning for me, so that I really can take a new server from nothing and have it up and running with identical versions of my code and identical versions of my configuration files, substituting values in where appropriate? You might want every web server to be identical _except_ for X, Y, Z (maybe you route one web server to one MySQL slave and one web server to a second MySQL slave, for example). I'm not sure what Opscode is doing to make that simple.

I've built out a web interface and underlying architecture for the company I work for to do exactly this sort of thing (and a whole lot more) via Puppet (<http://puppetlabs.com>). My interface handles rolling upgrades to eliminate downtime and a whole host of other slick things. Our developers do _not_ hand over code to a deployment team; they do their own deployments. I can't recommend Puppet over Chef as I have no Chef experience, but can say that I've been thrilled with what Puppet can do for me.

If you want more information, let me know either here or via email, I'm happy to go deeper if you want.

</comment><comment><USER3> As to your "Why do people pay them?" question, companies get to the scale where managing their servers in an automated fashion is necessary, and deploying new boxes within a matter of minutes instead of hours is critical. As a DevOps guy, our job is to always automate ourselves out of our job. Why do I want to do anything more than once? Deployment tools like Chef and Puppet help with the "Don't Repeat Yourself" concept.

Disaster recovery is another area where these tools can help. Imagine your database server goes down. Downtime can be really expensive, depending on your application. With Puppet / Chef and an interface on top, you could click a button and have a new box spooled up and your data automatically restored from your most recent backup. Downtime would be reduced pretty dramatically.

Auto-scaling is yet another possibility; if you can detect when you need another server, you could script it so that another server gets reserved and deployed and brought up to snuff. Then, when your traffic drops down, you could release the server.

At some point, it makes sense to either hire a DevOps guy, and / or spend money to have the deployment cycle consistent, dependable, and repeatable.

</comment><comment><USER4> This slideshow gives a mile-high overview of chef, which is at the core of opscode's services.

[http://wiki.opscode.com/download/attachments/2883634/Chef-10...](http://wiki.opscode.com/download/attachments/2883634/Chef-101-OSCON_Preview.pdf)

</comment><comment><AUTHOR> Ok, thanks for the feedback. So people pay them to host recipes on their server (and training). Since the software is open, why wouldn't I host my own chef server and not pay _them_?</comment>


Ask HN: Is it possible to retire early on $1m? - <AUTHOR> I'm early 30s, single, do not plan on having kids, and have about $1m in assets (no house).<p>I have seen a few articles/posts on people in similar situations (including 1 couple) who have decided that was enough to stop working. <comment><USER2> Depends. Using the "4% rule" you should be able to drawn down $40k/year, without depleting your capital, so if you can live on that then in theory the answer is yes. There are various provisos with using the 4% rule but I won't go into them here. A couple of other options:

1) You could retire from full-time work and do the odd contract.

2) Set up a little sideline. It wouldn't have to make much as you already have a lot saved.

3) Part-time job at Starbucks (or similar). This is also known as Barista FIRE (FIRE is Financial Independence Retire Early). The idea is in USA you'd get the Starbucks free health care, and a little income, plus it might be fun, if somewhat hectic.

4) You really do need to think about what you would want your retired life to look like. "Not work" will only be enough to take you through the "decompression zone", not beyond.

One final point. Things change. You change. Life happens. At some point you might want to get married, have ten kids, and build a house in the countryside. Who knows. I think that's why keeping your skills honed and brain working in "retirement" is probably a good idea.

</comment><comment><USER3> It depends... based on 'safe' withdrawal rates (and what the assets are invested in!) 1m will generate 30-40k per year. If that's enough, then why not?

You may find [https://www.reddit.com/r/Fire/](https://www.reddit.com/r/Fire/) helpful.

</comment><comment><USER4> As long as you stay single and don't live in CA or any other blue state, then yes, that will be more then enough to live well. Right now, I know it might seem like you'll be single forever. But, that might change. If you do get a GF, she may want marriage and kids. That will change the equation: at that point you'll need about at least 4-5 times more then what you needed as a single person.

Keep in mind, most forecasts (the average) for long term equities say it will yield roughly 3% real, from here on out, much less than the 6.7% that people have become accustomed to in the last century. This is due to slowing world growth, both in population and a slowing of per capita productivity increase.

<comment><USER5> What specifically is the issue about retiring in a 'blue state'? If you mean cost of living, the OP might choose Needles CA or some place that is much less expensive than, say the Bay Area. Is there a tax you're referring to that is problematic (i.e. cap. gain tax on investment income in state) or just the hidden taxes (i.e. taxes on fuel etc)?

<comment><USER4> Cost of living is much higher in blue states, unfortanetly. It's a outcome of higher regulation which customers end up paying for. Higher cost of living in terms of Shelter cost, Utilities and generally higher taxes.

</comment></comment></comment><comment><USER6> I would say absolutely. You should be able to take over 5% of the total and never dip into the principal. You might be able to take 7-8% even. But it depends on your cost of living which can vary widely. Not owning your own home yet means rent, and that is usually the most expensive part. If you owned your own home with $1 mil then you should be set. But you want to do more research, so I suggest [https://www.getrichslowly.org/](https://www.getrichslowly.org/), [https://www.daveramsey.com/](https://www.daveramsey.com/), and [https://www.mrmoneymustache.com/blog/](https://www.mrmoneymustache.com/blog/). These are all financially conservative resources.

</comment><comment><USER7> There's obviously no way to predict what your needs will be in 40 or 50 years. If you don't own a house, what will your rent be like? Insurance needs? Maybe we will get Medicare opt-in or something like it, but who knows. Will coastal cities even be viable 50 years from now? Florida will be underwater.

</comment><comment><USER8> That depends on a lot of factors. Mostly: how much will you spend per year? And what will the market return: not just on average between now and when you die, but also when will it stagnate/crash and when will it grow?</comment>


Why are there so little women in IT? - <AUTHOR> http://skeptics.stackexchange.com/q/7540/96

<comment><USER2> So far as I have observed, women working in IT are no littler than women in the population at large.

There are surprisingly few of them, though.</comment>


The Best Inventions of 2008 - <AUTHOR> http://www.time.com/time/specials/packages/0,28757,1852747,00.html <comment><USER2> You know how the [scribd] links show up with pdf documents. Seems like a fantastic service would be one that combines a split-up article into a single article - [singlePage]

I'm sorry, maybe I'm lazy, but I'm not going to click [next] 50 times, especially when the loading time for Time is ridiculously slow (2 seconds or so). It's a shame this seems to be a common practice now. Trying to increase pageviews obviously counts more than a good user experience. I gave up after page 7 or so. Can't be bothered.

Could just have a backend process that automatically downloads all the article pages, shoves them together and serves it up as a single article so the user can actually read it unhindered.</comment>