summaryrefslogtreecommitdiff
path: root/wiki/12factor
diff options
context:
space:
mode:
authorOwen Jacobson <owen.jacobson@grimoire.ca>2013-02-02 14:23:27 -0500
committerOwen Jacobson <owen.jacobson@grimoire.ca>2013-02-02 14:23:27 -0500
commitb5f0131c00aa0827eac8702c47b30fb62ed3d65a (patch)
tree718df1314226b9c76a508d4dcfaaf4a3790cdcc9 /wiki/12factor
parent28a1613d5c44e063546a7d69039cff20e8f37f2b (diff)
Some musings on kwargs in Java.
Diffstat (limited to 'wiki/12factor')
-rw-r--r--wiki/12factor/7-port-binding.md31
1 files changed, 31 insertions, 0 deletions
diff --git a/wiki/12factor/7-port-binding.md b/wiki/12factor/7-port-binding.md
new file mode 100644
index 0000000..2daf342
--- /dev/null
+++ b/wiki/12factor/7-port-binding.md
@@ -0,0 +1,31 @@
+# Factor 7: Port Binding
+
+[This](http://www.12factor.net/port-binding) is the exact point where the
+Heroku-specific features of the approach overwhelm the general features.
+
+Factor 7 is over-specific:
+
+* It presupposes the existence of a front-end routing layer, without providing
+ any insight into how to deploy, configure, provision, or manage one.
+
+* It demands HTTP (by name) rather than a more flexible "any well-standardized
+ protocol", without explaining why. (Web apps can have non-HTTP internal
+ components.)
+
+* It dismisses the value of "pre-existing" container ecosystems that don't
+ work the way Heroku does. Have a giant, well-managed
+ [Glassfish](http://glassfish.org) cluster that you deploy components to? TOO
+ BAD, not Heroku-like enough for these guys even though many aspects run
+ along similar philosophical lines.
+
+* It dismisses the value of unix-as-a-container. Unix domain sockets with
+ controlled permissions? Psh, let's go through the network stack instead.
+ SysV IPC? (Yeah, I know.) Network. Pipes? Network. There's an implicit
+ exception for "intra-process" communication, but it's never really
+ identified or reasoned about.
+
+* Have you _seen_ the kinds of process control interfaces developers invent,
+ when left to their own devices? Signals and PID files are well-established
+ conventions, and smart, competent people still fuck those up all the time.
+ Command-line arguments are another frequent case of NIH stupidity. Do you
+ really want every app to have its own startup API?