Live data from Hacker News

“It's The Future”

circleci.com

371–380 of 536 posts

Re: “It's The Future”

#371

The article perfectly summarizes my frustration and sentiment. These days I hear these buzzwords all time. I work as a consultant for an enterprise product and most people whom I meet they somehow catch these buzzwords and blurt it out in front of everyone during meetings and discussions to either showoff that they know technology and things that are in the market these days(also latest iphone, apple news, tesla, spa…

Micro-services are the current-year deity of the cargo-cult that is Silicon Valley. Unlike the natives, however, who simply wasted some time building extraneous fake runways, in the Valley people are royally screwing up their own core architecture. I'm old enough to find this more humorous than frustrating.

It should give anyone with a better grip on core technologies a competitive edge.

The Valley is ripe for disruption. ;)

Re: “It's The Future”

#372

Earlier quoted context omitted.

Everything must be in XML. Except the SoapAction header. Which has no defined standard. Yeah I remember all that madness.

remember? Thomson Reuters on demand APIs are still largely SOAP based.

I'm working with a very well-known American company with over $4b annual revenue that shall remain nameless and is currently developing a new SOAP API to replace the existing "dump a CSV on an FTP server" integration.

Re: “It's The Future”

#373

I wonder if the original HN "Heroku is Dead..." title will cost Heroku money / market share in indirect ways. When I see titles like that (despite the fact that it was intended as sarcasm), I think to myself, e.g., "I bet at least hundreds of people who scrolled past it thought it was sincere, and now they will have this subconscious 'Heroku is Dead... Docker...' thought at times when deploying projects. Maybe they'l…

> I wonder if the original HN "Heroku is Dead..." title will cost Heroku money / market share in indirect ways.

This would be true for an average BuzzFeed-consuming-crowd, which -to my knowledge- isn't the case here.

Re: “It's The Future”

#374
post #363

Earlier quoted context omitted.

IME that comes with: Sure, the new tool looks cool, but is it battle-tested? How many tools end up being relied on heavily while they're still in beta? And does it solve any of our current problems? or is it just neat? As a grumpy SA, I see way too many people try to push for new tools because they "seem cool", instead of "Do they solve a problem we have?"

It took me years to realize the reason programmers do this is because the tools that "seem cool" make their lives easier at the expense of everything else. This is where the popular traits of "laziness and hubris" become a liability instead of an asset. More programmers need to embrace the suck.

> tools that "seem cool" make their lives easier at the expense of everything else.

I'd argue the opposite. Instead of spending time reflecting on how cool and useful their code is, or hardening it up, devs spend too much time reinventing the wheel. All this work to learn the next new fad is killing productivity.

Re: “It's The Future”

#375

Earlier quoted context omitted.

I never thought I would appreciate Java...but the industry has really made me. Take your .war file, drop it onto JBoss. It deploys across the cluster in a zero downtime manner, isolates configuration, provides consistent log structure, cert management, deployment. You can deploy dozens of small war's to the same server and they can talk to each other. Load balance across the cluster automatically based on actual load…

Can you do similar stuff with clojure or Scala? Maybe there's a way to avoid the bad parts

Actually for many of us it isn't bad.

I have come to the point where I only look at other languages once in a while and it serves me well.

A few years ago when I was still in farming we had the ostrich craze: ostriches were crazy profitable (or so the ostrich sellers said) and every farm needed to consider it.

Eggs where $300 a piece etc etc.

Of course the first to get one made great money by selling eggs, chicken and consulting hours to all the rest.

The rest where not so lucky and today I don't know a single ostrich farm.

Same goes for latest tech: if you want to you can try to be first and make a good living on the hype stream.

Re: “It's The Future”

#376

Earlier quoted context omitted.

Can you do similar stuff with clojure or Scala? Maybe there's a way to avoid the bad parts

These days there are workarounds to avoiding a lot of xml configuration in the java ecosystem (although you end up with a decent amount of annotations). Spring boot is a great example of this.

> These days there are workarounds to avoiding a lot of xml configuration in the java ecosystem

As is, believe it or not JavaEE.

Re: “It's The Future”

#377

Earlier quoted context omitted.

I pine for the days of yore when the Unix Philosophy was strong and pure, and every program did one thing well, and only one. Like the way the shell would fork off an "expr" sub-process to parse a mathematical expression to add two numbers, then write the result to a pipe via stdout, then terminate the process, clean up all its resources, and switch context back to the shell, which then read the serialized sum back i…

> I pine for the days of yore when the Unix Philosophy was strong and pure, and every program did one thing well, and only one. Unless you are over fifty years old, you never experienced this. Rob Pike said it best: "Those days are dead and gone and the eulogy was delivered by Perl." Perl being a thing in 1995...

Now "expr" has finally been rewritten as a jQuery plug-in.

[1] https://github.com/baphomet-berlin/jQuery-basic-arithmetic-p...

Re: “It's The Future”

#378

Earlier quoted context omitted.

positive experience with microservices: identify discrete functions that can considered "stateless" (i.e. no side effects, deterministic output for given input) and factor those out into stand-alone microservices. a good example of this that I've used in production at my current $dayjob: dynamic PDF generation. user makes request from our website, request data is used to fill out a pdf template context which is then…

Does it connect to the database to fill in some values in the template? Does it keep connection pool of let's say 5 connection always open (as libraries like to do)? Does it have authentication? Is it public or private API? Who is managing security? Is it running behind it's own nginx or other proxy? Does it have DoS protection (PDF generation can be CPU intense)? What about the schema for request? How do you manage…

> Does it connect to the database to fill in some values in the template?

the template has values that are related to database models. the main app (still mostly monolithic) fills out the template context. the context itself is what's passed to the microservice. the microservice does not connect to a database at all.

> Does it keep connection pool of let's say 5 connection always open (as libraries like to do)?

no. the service probably handles a few hundred requests per day, it is not in constant use. communication is over HTTPS. it opens a new connection on each request. this does impact throughput, but its a low throughput use case, and pdf rendering itself is much slower and that time totally dominates the overhead of opening and closing connections anyway.

> Does it have authentication?

yes, it auths with a bearer token that is borne only by our own internal server. this is backend technology so we don't have to auth an arbitrary user. we know in advance which users are authorized.

> Is it public or private API?

private

> Who is managing security?

we are, with a lot of assistance from the built-in security model of AWS.

> Is it running behind it's own nginx or other proxy?

the main app is behind nginx. the microservice is running in a docker container that exposes itself over a dedicated port. there's no proxy for the microservice, again, because of the low throughput/low load on the service. no need to have a load balancer for this so the most obvious benefit of a proxy wasn't applicable.

> Does it have DoS protection (PDF generation can be CPU intense)?

yes, it's an internal service and our entire infrastructure is deployed behind a gatekeeper server and firewall. the service is inaccessible by outside requests. the internal requests are queue'd up and processed 1 at a time.

> What about the schema for request?

request payload validation handled on both ends. the user input is validated by the main app to form a valid template context. the pdf generator validates the template context before attempting to generate one also. its possible to have a valid schema that has data that can't be handled correctly though. errors are just returned as a 500 response though. happens infrequently.

> They need to be deployed together with changes in other services, right?

nope. the microservice is fully stand alone.

> What about changes to database schema - you need to remember to update that service as well and redeploy it at the right time as well - just after successful db migrations - which live in another project.

the microservice doesn't interact with a database at all. schema changes in the main app database could potentially influence the pdf template context generation, but there are unit tests for that, so if it does happen we'll get visibility in a test failure and update the template context generation code as needed. none of this impacts the microservice itself though. it is fully stand alone. that's the point.

> All of that and much more needs to be replicated for each microservice, right?

in principle yes, and these are good guidelines for determining what is or is not suitable to be a microservice. if it would need to auth an arbitrary user, or have direct database access, or be exposed to public requests, it might not be a good candidate for a microservice. things that can stand alone and have limited functional dependencies are much better candidates.

> Why not just have a module in your monolithic app that does it.

because the monolithic app is Python/django and the PDF generation tool is Java. one of the main advantages of microservices architecture is much greater flexibility in technology selection. A previous solution used Python subprocesses to call out to PDF generation software. It's actually easier and cleaner for us to use a microservice instead.

Re: “It's The Future”

#379
post #321

The article perfectly summarizes my frustration and sentiment. These days I hear these buzzwords all time. I work as a consultant for an enterprise product and most people whom I meet they somehow catch these buzzwords and blurt it out in front of everyone during meetings and discussions to either showoff that they know technology and things that are in the market these days(also latest iphone, apple news, tesla, spa…

This is how we manage this problem at the times when Visual Basic was the king and we use instead Visual FoxPro. People want theirs apps to be made with Visual Studio (BTW, FoxPro was part of the package). So they ask: "In what is the app made"? "In Visual, Sir." Done. End of story (like most of the time, obviously some times people are more dangerous and press it ;) ). ---- The point is not focus in the exact word b…

Elegant summary and recommendation. If NumPeopleWhoUnderstandBuzzwords If they don't accept your answer and ask a followup, then they're probably a person worth actually having a conversation about the pro's and con's with.

Re: “It's The Future”

#380

Earlier quoted context omitted.

> I am frustrated by the industry as a whole. I feel industry is simply following marketing trends. My work lands me in a number of different conferences in non-software industries. This is true for all industries. Its just that ours has a faster revolving door. That, in addition to a low barrier to entry (anyone can claim they're a web developer), leads to a higher degree of this madness. Its just part of human beha…

Another way to signal others that you, too, are an insider is by calling a current trend a hype.

To make a clarification, I was not calling Docker hype, nor specifically remarking on any particular item. I use docker religiously. I even use dokku for about 30+ toy projects.

My remark was to highlight that buzzwords are often used for "me-too" ankle-deep conversations/articles. Whether someone calls it Devops, or Systems Engineering, makes no difference to me. However, I favor pragmatic conversations about the topic, rather than buzzword bingo.

Examples include: "MongoDB sucks.", "Everyone should use Docker", and "What? You mean you're not using Kubernetes for your CRUD app?"

Basically, blanket statements that accomplish nothing more than to send social signals.

Post reply on HN