TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Microservices – Please, Don’t (2016)

136 点作者 s4i超过 2 年前

21 条评论

preommr超过 2 年前
My crazy advice: Build a monolith as microservices.<p>By which I mean focus on Domain Driven Development, focus strongly on modularity even when, and this is the key part, it&#x27;s not required because it&#x27;s in a monolith.<p>There are a great deal of advantages to microservices like teams being able to focus on a subset that can still be accomplished with a well designed monolith. While still avoiding the biggest headaches with microservices like managing a crazy network of deployments, across multiple environments where teams don&#x27;t have the neccessary discipline to communicate.<p>If at a certain point scalability does become a big enough issue, then it&#x27;s much more manageable to segment what&#x27;s needed (and even transition back if needed). It still might take months, but the quality of the transition is much higher.
评论 #32803998 未加载
评论 #32803044 未加载
评论 #32804247 未加载
评论 #32804523 未加载
评论 #32803201 未加载
评论 #32803481 未加载
评论 #32804128 未加载
评论 #32804552 未加载
评论 #32804524 未加载
评论 #32804149 未加载
评论 #32807420 未加载
userbinator超过 2 年前
A lot of these programming fads seem to come and go over the years. I&#x27;ve witnessed the same cycle with OOP, then FP. What a lot of people don&#x27;t seem to realise is that by trying to split up a system into more smaller pieces in an attempt to decrease complexity, it&#x27;s often the case that you end up with even more complexity, just hidden in the interactions between the pieces.
评论 #32802942 未加载
评论 #32802760 未加载
评论 #32803027 未加载
评论 #32803129 未加载
评论 #32802766 未加载
评论 #32807647 未加载
CHY872超过 2 年前
There are many excellent problem solving techniques in software engineering. Taken as religion, to extremes, most of these will lead the zealot to destruction. Microservices have their place, as do monoliths.<p>The author&#x27;s most valuable point is roughly &#x27;don&#x27;t believe the hype&#x27; - and that&#x27;s timeless. On the specifics, they&#x27;re certainly right on each point, but they missed the (imo main) one of &#x27;by forcing a conceptual boundary between different pieces of the application, one can build true silos around competences and so scale their org more effectively&#x27;. Put simply, a 200 person monolith will usually feel like it has 200 people working on it. That same org split into 5 groups of 40 can be more nimble. In some cases this is due to infra (&#x27;we need to get off Java 8&#x27; is easier if the software can be run in 5 pieces). In some cases this is due to problem scope (less intertwining of concepts possible).
评论 #32803435 未加载
yonixw超过 2 年前
&gt; Fallacy #5: Better for Scalability<p>&gt; [The assumption: only by - ] .. packaging your services as discrete units .. [you can] via .. Docker .. [achieve] horizontal scalability.<p>&gt; However, it’s incorrect ... [to assume it can] only .. [with a] microservice.<p>Interesting, how monolith can do the same?<p>&gt; You can create logical clusters of your monolith<p>&gt; which only handle a certain subset of your traffic.<p>Oh... so MS... but with extra steps. lol. not to mention we usually care about the DB scale also, which is harder to scale as a monolith with segmented traffic.
评论 #32802894 未加载
评论 #32802884 未加载
wjossey超过 2 年前
Sean Kelly (aka Stabby), is one of the most talented engineers I’ve ever worked with, and is someone who understands the challenges and pitfalls of architecture ahead of his time, as this article highlights so well. To this day, I try to channel Sean’s approaches to design, coding, and architecture, in my own work.<p>Sean is a treasure in the Boston and Golang community, and folks should seek out his wisdom and guidance.
brad0超过 2 年前
I reacted to this headline quite negatively. Reading the article, it’s actually quite reasonable. It’s trying to cut through all the incorrect reasons microservices&#x2F;service oriented architecture is adopted. Kudos to that!<p>IMO service oriented architectures should be adopted when your engineering organisation has gotten too large to manage a monolith.<p>The service interface generally can’t be modified after it’s available. You can do the same with a monolith but it’s harder to enforce.
评论 #32804505 未加载
dvfjsdhgfv超过 2 年前
This is part of the problem: people say &quot;do&quot; or &quot;don&#x27;t&quot; or &quot;considered harmful&quot; and suddenly this becomes a fashion everybody seems to follow no matter what. I saw the same with OOP, at some point it was almost a heresy to say there are many cases when OO design is inefficient or problematic. You would be labelled as uneducated or ignorant. For the same reason I&#x27;d never use a goto at work even though I know it has some limited valid uses. Etc. etc.<p>One would think that by know everybody understood that each technology has its own advantages and limitations and it makes zero sense to follow current trends but rather to examine the project well and use the tech that fits best, regardless what current &quot;evangelists&quot; say.
revskill超过 2 年前
The issue with these articles, is, they assumed, bad architect divided wrong domains into &quot;wrong microservices&quot;, then concluded, &quot;microservice&quot; is bad strategy.<p>Step 1: Understand the domain first.<p>Step 2: Use microservice for each domain.<p>If you failed at step 1, step 2 is wrong.<p>Monothlich architecture just &quot;skips&quot; step 1, and use one big fat service for all.
评论 #32803035 未加载
评论 #32803300 未加载
评论 #32803200 未加载
fibonacc超过 2 年前
I would recommend just using SAM or Chalice for MS on AWS and layering on Step Functions&#x2F;Fargate&#x2F;ECS Anywhere for hybrid setups if you are not using Kubernetes. The only difference is that you are coupled to AWS but if you are already have been using AWS for everything else, its very natural and easy to just learn a new product and integrate it to your existing infra setup on AWS.<p>CDK is also another interesting tool in that you can create classes that handles existing series of scaffolding and automation and it feels naturally code like but drift detection still requires improvement vs Terraform&#x27;s.<p>If you work for a large company where they have mandated Kubernetes then obviously its gonna be difficult but I am seeing a trend where companies are starting to &quot;hedge&quot; their bets as K8 projects take far longer to get to market and requires more experts to keep it going so I&#x27;m half heartedly learning Kubernetes, especially on the back of my mind the existing AWS solutions offer far quicker time to market and accomplishes the same thing.
oneplane超过 2 年前
My advice: there is no universal services advice, therefore, don&#x27;t adopt (or un-adopt) things just because someone wrote about it. At the same time: don&#x27;t ignore pain, regardless if it&#x27;s because you&#x27;re too big, too small, too segregated or too monolithical.
dang超过 2 年前
Related:<p><i>Microservices? Please Don&#x27;t</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=13167188" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=13167188</a> - Dec 2016 (122 comments)<p><i>Microservices – Please, don’t</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=12572859" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=12572859</a> - Sept 2016 (93 comments)<p><i>Microservices</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=12508655" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=12508655</a> - Sept 2016 (146 comments)
Noumenon72超过 2 年前
I spent years reading on here about how microservices are bad, but I don&#x27;t understand how you can avoid them when everything has to be in a container network to run. Airflow workers, containers that wrap GPL licensed code, little FastAPI interfaces to Bokeh functions, a customized Keycloak. Everything has its own dependencies and deploy process. We have like eight developers and seventeen git repos and I have no idea how to keep it from getting worse.
atomflunder超过 2 年前
Interestingly, I think that almost all of the downsides listed in the article and in the comments go away if you use a good framework for creating microservices (example for this: [0]):<p>No internal glue code, no overhead by writing network interfaces, no slow HTTP calls (faster gRPC instead), no manual handling of asynchronous tasks.<p>[0]: <a href="https:&#x2F;&#x2F;github.com&#x2F;jina-ai&#x2F;jina" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jina-ai&#x2F;jina</a>
amelius超过 2 年前
&gt; Microservices – Please, Don’t<p>Sadly, most OSes, Linux included, are built as a bunch of microservices. Systemd is effectively a management system for microservices.
TrianguloY超过 2 年前
Moved from a monolith to a microservices project. The main and almost only benefit (and the reason I asked to move) is that startup time is now practically non-existent (from 8-10 minutes to 30-40 seconds). This allows for faster testing and iterative-programming approach, which is the type of programming I do.
wintorez超过 2 年前
Also, micro-frontends
beders超过 2 年前
Approaches like Polylith allow you to delay any decision on how or if to split up your services until you are ready. In the meantime you can gradually stake out your boundaries by defining suitable interfaces.
jschrf超过 2 年前
Every time the monolith&#x2F;microservices debate comes up, there&#x27;s a git submodule fan out there (somewhere?) with a single tear rolling down their face.
lr4444lr超过 2 年前
Gotta keep the &quot;devops&quot; teams employed, though!
hsuduebc2超过 2 年前
I love how these paradigmas change every two years.
tacitusarc超过 2 年前
I find the hackernews obsession with bashing micro services tiresome. We get it, your organization didn’t need the scale&#x2F;had a relatively simple problem&#x2F;couldn’t solve bad code by doing microservices.<p>Sometimes it’s the wrong call. Sometimes it’s the right one. It’s not a panacea, obviously. Can’t we just use our expertise and judgement to determine the correct architecture? There are always trade-offs. Our job is to rigorously evaluate them and make a good decision, not blindly follow or dismiss any particular implementation.
评论 #32803142 未加载