TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Infrastructure as code

49 pointsby bimilabout 10 years ago

8 comments

pquernaabout 10 years ago
The crew at Mailgun are kinda doing this, and its been enabled by vulcan proxy:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;mailgun&#x2F;vulcand" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;mailgun&#x2F;vulcand</a><p>At first, sure, Vulcand is just another reverse proxy, but what they have been doing is registering individual HTTP handlers with the proxy -- into etcd:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;mailgun&#x2F;scroll" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;mailgun&#x2F;scroll</a><p>(there is a python implementation somehwere too, just can&#x27;t find it)<p>What&#x27;s neat about exposing these individual HTTP handlers, is now your reverse proxy can produce metrics, apply circuit breakers, etc, all in a central way, but your &quot;micro&quot; service just has to register with etcd:<p><a href="http:&#x2F;&#x2F;blog.vulcanproxy.com&#x2F;vulcand-news-circuit-breakers-better-metrics-and-anomaly-api&#x2F;" rel="nofollow">http:&#x2F;&#x2F;blog.vulcanproxy.com&#x2F;vulcand-news-circuit-breakers-be...</a><p>So, you end up with an architectural style where you can deploy a single HTTP handler as its own service, similar to what the article was pointing to, but in a multi-lanaguage approach, where HTTP is the communication method.
评论 #9289960 未加载
beatabout 10 years ago
The problem is that there&#x27;s a certain essential minimum complexity to every interesting piece of software. You can&#x27;t eliminate essential complexity - you can only move it around.<p>Monolithic architecture turns a configuration management problem into a coding problem. Eventually, coupling within the monolith makes it hard to develop.<p>Service-oriented architecture turns a coding problem into a configuration management problem. Eventually, the potential combinations of small services become unmanageable and untestable, making it hard to run operationally.<p>You have two kneecaps. Which one gets the bullet? Because you&#x27;re gonna get kneecapped either way.
评论 #9290401 未加载
评论 #9290811 未加载
chriswarboabout 10 years ago
It&#x27;s a nice line of thought, but I think there&#x27;s a lot of existing work that&#x27;s should be investigated. Essentially, it seems like another &quot;wouldn&#x27;t it be nice if everything were written in $LANG, even the OS?&quot;.<p>Erlang is mentioned as an example, since its VM certainly offers many features we&#x27;d like from an OS. Maybe comparisons to Smalltalk, LISP machines and even regular UNIX shells should be offered.<p>It&#x27;s likely that all this has been done before, and I&#x27;m tempted to think that its major problems would stem from having too much power in the config language. For example, I&#x27;d imagine you could do this with SysV init&#x27;s runlevels and shell scripts, but it would be pretty horrible. What would make the language du jour any less horrible?<p>Also related is, of course, the Nix ecosystem: Nix package management, NixOS configuration management, NixOps provisioning, DisNix distributed services, etc.
评论 #9289502 未加载
dugmartinabout 10 years ago
This sounds a lot like CORBA (<a href="http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Common_Object_Request_Broker_Architecture" rel="nofollow">http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Common_Object_Request_Broker_Ar...</a>).<p>The big problem with distributed classes is that network communication links are fragile and you need to bake how to deal with failures into your methodology. Erlang handles this in a way that Joe Armstrong explains here:<p><a href="http:&#x2F;&#x2F;armstrongonsoftware.blogspot.com&#x2F;2008&#x2F;05&#x2F;road-we-didnt-go-down.html" rel="nofollow">http:&#x2F;&#x2F;armstrongonsoftware.blogspot.com&#x2F;2008&#x2F;05&#x2F;road-we-didn...</a>
评论 #9290775 未加载
评论 #9290253 未加载
marcosdumayabout 10 years ago
I don&#x27;t get it. Is that yet another CORBA clone?<p>I think the CORBA clone currently in fashion is SOAP (or did we get something newer?). There probably are SOAP tools for Earlang, and you&#x27;ll really get the possibility of using an heterogeneous system, like you said you&#x27;ll want.<p>Yet, those things never work so well as people think they should. Keeping interoperability within a code-base is hard work, distributing it just makes it harder.
评论 #9290825 未加载
jkotabout 10 years ago
For this I would go with some J2EE or clustered framework. Erlang is nice, but is outdated and does not handle clustering that well. It is about migrating clients and threads, while multiple versions of the same library exist within system.<p>&gt; <i>The size of the code deployed matters</i><p>And I disagree with this. The hardest deployment I ever seen was 2KB of code. Sim toolkit is impossible to modify once it is flashed into 2 million SIM cards. :-)
评论 #9290006 未加载
评论 #9290095 未加载
macca321about 10 years ago
Sounds like you&#x27;re looking for a distributed actor framework like AKKA
评论 #9289975 未加载
kirababout 10 years ago
Maybe D-Bus fulfils the requirements of OP?