Slashdot Mirror


Should Your Company Switch To Microservices? (cio.com)

Walmart Canada claims that it was microservices that allowed them to replace hardware with virtual servers, reducing costs by somewhere between 20 and 50 percent. Now Slashdot reader snydeq shares an article by a senior systems automation engineer arguing that a microservices approach "offers increased modularity, making applications easier to develop, test, deploy, and, more importantly, change and maintain."

The article touts things like cost savings and flexibility for multiple device types, suggesting microservices offer increased resilience and improved scalabiity (not to mention easier debugging and a faster time to market with an incremental development model). But it also warns that organizations need the resources to deploy the new microservices quicky (and the necessary server) -- along with the ability to test and monitor them for database errors, network latency, caching issues and ongoing availability. "You must embrace devops culture," argues the article, adding that "designing for failure is essential... In a traditional setting, developers are focused on features and functionalities, and the operations team is on the hook for production challenges. In devops, everyone is responsible for service provisioning -- and failure."

The original submission ends with a question for Slashdot reader. "What cautions do you have to offer for folks considering tapping microservices for their next application?"

118 comments

  1. Re:Should Fuck Fuck Shitfuck Fuck? by Anonymous Coward · · Score: 0

    Devops is for high-fivin mother fuckers?

  2. Just makes reporting hell by Anonymous Coward · · Score: 5, Interesting

    For example, we moved personal info, HR, benefits, and payroll into separate microservices. What used to be a single join now takes dozens of REST calls. It's slow to run and hard to write and verify. We regret our decision.

    1. Re:Just makes reporting hell by Anonymous Coward · · Score: 0

      I work for a large payroll company, and our solution was to put all of the tables in the same database, but only one microservice is allowed to write to any given table. Yes, the old joke that sharing databases is like sharing needles is true, but it's a hell of a lot easier to write an SQL statement with a few joins than to call several backends and do joins with code.

    2. Re:Just makes reporting hell by Anonymous Coward · · Score: 0

      You can always add API calls to do the joins you always need... so why are you complaining?

    3. Re: Just makes reporting hell by Anonymous Coward · · Score: 0

      Yes, he can, because all of his services share a database. That's his point.

    4. Re: Just makes reporting hell by Anonymous Coward · · Score: 0

      If you don't like REST calls why don't you just put the libs together and make normal method calls? It should be no problem unless all services are written in different languages.

    5. Re:Just makes reporting hell by davester666 · · Score: 1

      But you have a whole string of the latest buzzwords and acronyms to put on your resume for your next job!

      It's what your CEO approved the project.

      --
      Sleep your way to a whiter smile...date a dentist!
    6. Re: Just makes reporting hell by Anonymous Coward · · Score: 0

      Ouch. I'm currently fixing a "microservice" like that. Well slightly worse since my example also writes to other tables. But please don't misuse words. If the data is shared then it is a monolith no matter how many processes you have running. And if data is shared there is no point trying to separate code. You are just taking the worst of both.

    7. Re:Just makes reporting hell by angel'o'sphere · · Score: 1

      Then you are not running Microservices, but Micrononsense.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    8. Re:Just makes reporting hell by Anonymous Coward · · Score: 0

      The major downside comes from outsourcing data handling and services to multiple micro services. Now your reliability profile is a matrix and five-9s reliability falls quickly when you have 100 datacenter operations serving one query.

      In literature distributed systems are a way to gain reliability. In reality unless you design in the reliability a distributed system is more unreliable than the alternative.

      Not to mention that if we move the institutional knowledge of operations outside the company then within a couple of "generations" (i.e. staff turnovers) we'll lose that institutional knowledge and infrastructure. At this point the micro services have us by the balls and will ratchet up the prices accordingly.

      Very risky.

    9. Re: Just makes reporting hell by Anonymous Coward · · Score: 0

      Exactly what i have seen everywhere. What used to be simple joins in sql has become long series of rest calls. Exercise in inefficiency.

    10. Re: Just makes reporting hell by Anonymous Coward · · Score: 0

      I think BA found this out at Heathrow recently. They needed 300 different servers in order to run their operation.

    11. Re:Just makes reporting hell by zifn4b · · Score: 1

      For example, we moved personal info, HR, benefits, and payroll into separate microservices. What used to be a single join now takes dozens of REST calls. It's slow to run and hard to write and verify. We regret our decision.

      And now we should all recall Fred Brook's wisdom "there is no silver bullet". The answer is: it depends. I work at company where we did exactly as you suggest and we have gigantic monolithic algorithms that have reached a level of complexity that no amount of unit test or continuous integration testing can manage the software complexity. In this case, yes we should switch to micro services. Why? Because what good is software that has high performance if it's not stable and doesn't do anything customers are willing to pay for?

      --
      We'll make great pets
    12. Re:Just makes reporting hell by Anonymous Coward · · Score: 0

      "we moved personal info, HR, benefits, and payroll into separate microservices..."

      Unless your business is building HR software, why are you building HR software? There's a whole class of "solved problems" in the world, and this is most definitely one of them. I'm sure there's a good reason around here somewhere, but paychex, ADP, HRos, and even peoplesoft commoditized this one a long time ago.

    13. Re: Just makes reporting hell by Anonymous Coward · · Score: 0

      "fixing". Ha!

    14. Re:Just makes reporting hell by Anonymous Coward · · Score: 0

      Peoplesoft? Are you a masochist? Next you'll be recommending SAP!

  3. Could it be a bit slow? by sholdowa · · Score: 1

    Apart from the required developers skillset, I'd look closely at the performance hit that all those TCP stacks will cause.

    1. Re:Could it be a bit slow? by Anonymous Coward · · Score: 0

      At my previous project we went with micro-services from the beginning but we ended up merging some of them into a monolith to save time on network hops.

    2. Re: Could it be a bit slow? by Anonymous Coward · · Score: 0

      1 call is about 6 ms when servers are close enough. This is from Java server and includes DB query. Obviously you should prototype and test it yourself to get accurate results and obviously bad implementation can be a lot slower. I have even seen seevices that take 100 seconds to respond but it is not the REST that is costing time.

    3. Re: Could it be a bit slow? by Anonymous Coward · · Score: 0

      6 ms? I am guessing your stack is not particularly optimised. I guess a lot of those 6 ms is about waiting for interrupts and the like.
      But lets say you have an optimised stack where most interrupt latency has been removed, we are still talking about 6 us round trip for a call.

      That is still 6 us of processing for what could have been a simple function call taking mere nanoseconds. I am very worried about the amount of overhead here.

  4. Jeffrey Richter's answer was pretty good by malxau · · Score: 4, Interesting

    https://www.youtube.com/watch?...
    He discusses the pros and cons fairly well.

  5. Beware of strangers bearing buzzwords. by Anonymous Coward · · Score: 1, Insightful

    What is the problem? What technology should we use to solve it?
    NOT!
    What cool new technology! We should use it!

    1. Re:Beware of strangers bearing buzzwords. by Aighearach · · Score: 2

      All I heard was, "XML Thin Client Push Services XML Java Workstation Structured NoSQL XML New Free Blah Blah XML Blah"

      If none of it is new, it doesn't even need a new word. That just proves it is snake oil bullshit and you really just need to upgrade the BOFH.

    2. Re:Beware of strangers bearing buzzwords. by Anonymous Coward · · Score: 0

      Microservices, or (as any developer of experience calls them) 'services' have been around for decades. Someone has decided a new buzzword was required to sell more consultancy time.

      There really is nothing new here.

    3. Re:Beware of strangers bearing buzzwords. by 0100010001010011 · · Score: 1

      The problem is large, monolithic programs.

      The technology you should use to solve it is small atomic programs.

      Rather than one large program you make a lot of small programs and pipe them through to each other.

    4. Re:Beware of strangers bearing buzzwords. by PolygamousRanchKid+ · · Score: 1

      What cool new technology! We should use it!

      Questions are no longer necessary in the post-paradigm innovative DeadOps things connected to other things world.

      You just proceed directly to the answer.

      It is best to combine microservices with fuzzing technologies, so when folks ask you what you are working on, you can say with straight face:

      "Micro-Fuzzing!"

      --
      Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    5. Re:Beware of strangers bearing buzzwords. by turbidostato · · Score: 4, Insightful

      "The problem is large, monolithic programs."

      No. The problem is that, with time, the company has built a large, unmaintenable ball of hair.

      And then, the proposed solution has been: "hey, let's forget that large, unmaintenable ball of hair and let's substitute it with a myriad of not so big, unmaintenable (and unmaintained) balls of hair. Oh, and now that we are at it, let's add the complexity of a myriad of unmaintenable network calls!"

      You can bet this is new people about to fall in all the old mistakes.

    6. Re:Beware of strangers bearing buzzwords. by ArchieBunker · · Score: 1

      Rather than one large program you make a lot of small programs and pipe them through to each other.

      Oh you mean the opposite of systemd?

      --
      Only the State obtains its revenue by coercion. - Murray Rothbard
    7. Re:Beware of strangers bearing buzzwords. by Anonymous Coward · · Score: 0

      systemd is that. It's a bunch of modules that work together.

    8. Re:Beware of strangers bearing buzzwords. by Anonymous Coward · · Score: 0

      You can add to that the code duplication required to maintain the loose coupling between the various micro-services, which results in a bigger ball of hair full of redundancies.

    9. Re:Beware of strangers bearing buzzwords. by zifn4b · · Score: 1

      All I heard was, "XML Thin Client Push Services XML Java Workstation Structured NoSQL XML New Free Blah Blah XML Blah"

      If none of it is new, it doesn't even need a new word. That just proves it is snake oil bullshit and you really just need to upgrade the BOFH.

      If you listen to someone talk about something you are unfamiliar with or don't understand, it will all sound like bullshit and/or gibberish.

      --
      We'll make great pets
    10. Re:Beware of strangers bearing buzzwords. by zifn4b · · Score: 1

      No. The problem is that, with time, the company has built a large, unmaintenable ball of hair.

      It's called Big Ball of Mud actually. How Big Ball of Mud emerges as an anti-pattern is that most people are unqualified to architect software systems even ones who claim to be architects. When management doesn't have people qualified to build a system but the system must be built anyway, you get... Big Ball of Mud. If the same re-write Big Ball of Mud, you keep getting the same thing over and over again. Very few people can avoid the anti-pattern without very careful thought.

      --
      We'll make great pets
    11. Re:Beware of strangers bearing buzzwords. by Aighearach · · Score: 1

      What if you are familiar with it, and it sounds like bullshit that is similar to past bullshit you already analyzed?

      Oh, yeah, that would be exactly this situation. Seriously, you just walk up to somebody and assume they don't know about the subject that they made an insightful comment about? What does that say about your knowledge? It tells me you probably don't understand the words I used, or how any of them relate to the words used in summary.

      Just fucking google "microservices" and find out it is literally a new word for existing things. There is nothing new, and it isn't even a specific thing, just a new word for a style of doing things that goes back to the dawn of computing. It says right in the fucking wiki page that the word was coined in 2011 by a bunch of morons to describe the different things that they were all already doing. It isn't something specific that differs in any way from anything that came before. There is no new technique or philosophy. Only a new fucking word. Talk about not understanding gibberish; you read some gibberish and ran out to tell the world what it means!

    12. Re:Beware of strangers bearing buzzwords. by Anonymous Coward · · Score: 0

      This is the difference between an engineer and a developer/programmer/coder.

    13. Re:Beware of strangers bearing buzzwords. by gtall · · Score: 1

      This sounds perfect for Agile, just use some bubble gum and stick that new thingy here as a micro-service. What, no one understands the overall structure? Ah Grasshopper, you have not imbibed enough of the kool-aid, now go back to your corner and think up a new sprint deliverable. And if we must understand how it fits into the entire system, you've done it wrong. Get ready....Sprint, Scrum, Scrum, .... , Scrum, Sprint, Scrum, Scrum, ... , Sprint, Scrum, Scrum....hey, I didn't get a harrrumph outta that guy.

  6. Fads, fads, fads by Anonymous Coward · · Score: 5, Insightful

    A long time ago, management consultants figured out that changing IT architecture fads every 8-10 years and frightening VPs that they might be "left behind" created a nice stream of growing revenue. Marketing twerps cast words like "monolithic" and "legacy" into repulsive pejoratives that no cool-kid exec wants to be associated with. It's a gigantic mind-fuck designed to cause cash to fill coffers for McKinsey, Ass-Enter, PWC, Toilet-Douche, Infosyphilis, etc. Do what works for you. If it stops working, do something else.

    1. Re:Fads, fads, fads by scamper_22 · · Score: 3, Informative

      Well, fads are what make the corporations go.

      After much time in R&D, I now work at a Bank. When I joined, it was a slow 'legacy' environment... and not in a way that ensured amazing quality :P We tried changing things, but we could never get approvals.

      Then the 'fads' came out. Agile, DevOps, MicroServices, The Cloud...

      Sure laugh at the consultants all you like and call them fads.

      What I'll say is that we've gotten the benefits.
      Git = check
      Jira/Confluence = check
      Some Agile = check
      Cloudify = check

      What works to get big corporations to move are the management consultancy firms. It works. Sure, it's wasteful and if they would take 2 minutes to listen to an engineer, they could save a whole bunch...but as you say... do what works.

      And fads work.

    2. Re:Fads, fads, fads by Desler · · Score: 1

      So it sounds like you've reorganized the deck chairs and not much else.

    3. Re:Fads, fads, fads by Anonymous Coward · · Score: 0
      Plastic Java deck chairs beat the pants off wooden Cobol deckchairs - in a chair throwing contest.

      As seats for actually sitting on, not so much!

      --
      Thats not my lawn - sit where the hell you like, but give me a toke of the spliff!

    4. Re:Fads, fads, fads by zifn4b · · Score: 1

      A long time ago, management consultants figured out that changing IT architecture fads every 8-10 years and frightening VPs that they might be "left behind" created a nice stream of growing revenue.

      Bingo and what you end up realizing is, writing commercial software isn't about writing good software, it's about making money. So... you shift your goals. If you want to write great software, you write software to make money first, amass wealth, then write whatever software you fancy in whatever way you want. You will never be able to do that working for any company.

      --
      We'll make great pets
    5. Re:Fads, fads, fads by zifn4b · · Score: 1

      And fads work.

      You're only describing the fads that stuck. Many have disappeared. You've not been in the business long enough to be able to calculate the ratio and as such are engaged in youthful, wishful thinking. When enough time goes by and you're in this field, you'll see. You might want to label me an old grumpy curmudgeon but I was just like you once, exactly like you and was trying to convince old grumpy curmudgeons the same things you are until I became one myself. Remember this 10-20 years down the read and reflect on where you ended up. :) One thing I would advise don't take too long because otherwise you won't realize what is truly important in life and if you don't see it soon enough, you might miss out. Good luck!

      --
      We'll make great pets
    6. Re:Fads, fads, fads by Anonymous Coward · · Score: 0

      The problem is that the engineer doesn't have the political clout or seniority over a tech lead or manager who doesn't specialize in that field. We're writing a 3D visualization application and the tech lead wants to keep everything in the central database and only give out the data when required to the GPU renderer because to him, that's what the database is for, and doesn't like things being "squirreled away" into memory he can't access. The 3D programmer wants to load everything into the GPU since it has more than enough memory to store and update all the data using whatever visualisation is needed. It takes the consultant minutes to talk to the team leader and project manager to tell them to do things properly by getting the data uploaded onto the GPU first.

      The same happens with computer networks. We have a comms room where there are several rows of racks of telephone exchange, terminal servers, routers, bridges and gateways. Whenever a new office desk is requested, it's a three day job pulling cables through "the snake pit" of cables under the floor tiles for telephone and network access. Engineers knew it would be common sense to do the hard graft up front. But the director couldn't authorize that amount of time to be spent on non-urgent requests. But the service time for each request was getting longer and longer. So they hire a consultant. The consultant comes along and says "Well, you should wire everything together with bundles of cables color coded according to purpose and length all in one go. Then when you add a new desk, you just need to make two connections". A new desk is then connected in minutes not days.

  7. Re:Should Fuck Fuck Shitfuck Fuck? by Anonymous Coward · · Score: 0

    We really need to teach English to our H1-B visa holders. Not just the dirty talk.

  8. Decision was not faulty;but design definitely was by CraigCruden · · Score: 5, Insightful

    Sounds like you had some nutter that decided to just convert the system into microservices without much thought other than ... hey lets put them in different micro services. There are lots of ways to implement microservices, and there are a large number of ways to implement it wrong.... sounds like you fell into the second part.

    And yes, you can always store the data from the the entire system on a common database or a multiple databases that you can run SQL queries across to do reporting. You can also implement a inquiry/reporting to consolidate common queries across the database -- for things like searches and reporting.

    You can also implement specific domain level microservices for your business logic which collaborate with other microservices to complete the task. e.g. an order microservice for order processing which has to collaborate with the account microservice to make sure the account is allowed to do it, and a account ledger microservice where the transactions are posted when orders are completed -- all done through async messaging.

    And of course all of the microservices could be hidden behind a public API service layer which routes requests etc. so that the customer does not have to know where to go.

    The microservice architecture is about moving things into as small of domain specific functionality -- which should facilitate with code maintainability etc.

    I would be worried about the people that got you into the mess by doing the whole thing first without first working on a subset of things and making sure that the design/architecture was correct before continuing down the road. When picking up a new paradigm -- we all tend to make lots of mistakes before actually getting it right. There are a few "right ways", and many "wrong ways" to do everything. Same with microservices.

  9. No by El_Muerte_TDS · · Score: 2

    Microservices are not _the_ solution. It is a possible solution for some problems. Microservices solve various problems, but make other problems way more complicated. There simply is no silver bullet.

  10. Sounds vaguely UNIX. by Gravis+Zero · · Score: 2

    Unless I'm misunderstanding the article, it sounds like they want people to split their monolithic applications into smaller components that "just do one thing". However, the most important part of this process is designing the whole thing and splitting it into sets of stable APIs. If your APIs are unstable then you are just going to have an undocumented and difficult to understand system that is impossible to debug for anyone but the fools that built it.

    --
    Anons need not reply. Questions end with a question mark.
    1. Re:Sounds vaguely UNIX. by JustAnotherOldGuy · · Score: 1

      Unless I'm misunderstanding the article, it sounds like they want people to split their monolithic applications into smaller components that "just do one thing".

      Yes, and if it's done properly it's pretty damn slick. And a lot of companies aren't just trying it, they're driving it. They're leveraging other services and supplementing it with their own stuff, and in places where it's done right it shines.

      --
      Just cruising through this digital world at 33 1/3 rpm...
    2. Re:Sounds vaguely UNIX. by 0100010001010011 · · Score: 5, Interesting

      Sounds exactly like UNIX:

      • Rule of Modularity

        Developers should build a program out of simple parts connected by well defined interfaces, so problems are local, and parts of the program can be replaced in future versions to support new features. This rule aims to save time on debugging code that is complex, long, and unreadable.

      • Rule of Clarity

        Developers should write programs as if the most important communication is to the developer who will read and maintain the program, rather than the computer. This rule aims to make code as readable and comprehensible as possible for whoever works on the code in the future.

      • Rule of Composition

        Developers should write programs that can communicate easily with other programs. This rule aims to allow developers to break down projects into small, simple programs rather than overly complex monolithic programs.

      • Rule of Separation

        Developers should separate the mechanisms of the programs from the policies of the programs; one method is to divide a program into a front-end interface and a back-end engine with which that interface communicates. This rule aims to prevent bug introduction by allowing policies to be changed with minimum likelihood of destabilizing operational mechanisms.

      • Rule of Simplicity

        Developers should design for simplicity by looking for ways to break up program systems into small, straightforward cooperating pieces. This rule aims to discourage developers’ affection for writing “intricate and beautiful complexities” that are in reality bug prone programs.

      • Rule of Parsimony

        Developers should avoid writing big programs. This rule aims to prevent overinvestment of development time in failed or suboptimal approaches caused by the owners of the program’s reluctance to throw away visibly large pieces of work. Smaller programs are not only easier to write, optimize, and maintain; they are easier to delete when deprecated.

      • Rule of Transparency

        Developers should design for visibility and discoverability by writing in a way that their thought process can lucidly be seen by future developers working on the project and using input and output formats that make it easy to identify valid input and correct output. This rule aims to reduce debugging time and extend the lifespan of programs.

      • Rule of Robustness

        Developers should design robust programs by designing for transparency and discoverability, because code that is easy to understand is easier to stress test for unexpected conditions that may not be foreseeable in complex programs. This rule aims to help developers build robust, reliable products.

      • Rule of Representation

        Developers should choose to make data more complicated rather than the procedural logic of the program when faced with the choice, because it is easier for humans to understand complex data compared with complex logic. This rule aims to make programs more readable for any developer working on the project, which allows the program to be maintained.

      • Rule of Least Surprise

        Developers should design programs that build on top of the potential users' expected knowledge; for example, ‘+’ in a calculator program should always mean 'addition'. This rule aims to encourage developers to build intuitive products that are easy to use.

      • Rule of Silence

        Developers should design programs so that they do not print unnecessary output. This rule aims to allow other programs and developers to pick out the information they need from a program's output without having to parse verbosity.

      • Rule of Repair

        Developers should design programs that fail in a manner that is easy to localize and diagnose or in other words “fail noisily”. This rule aims to prevent incorrect output from a program from becoming an input and corrupting the output of other code undetected.

      • Rule of Economy

        Developers should value developer time over machine time, because machine cycles today are

    3. Re:Sounds vaguely UNIX. by turbidostato · · Score: 1

      "Sounds exactly like UNIX"

      Because it is.

      And just like the old saying goes, they are reinventing it because they forgot of it, so they are doomed to reinvent it... poorly.

      For the most part, the described "advantages" come not because of microservices but because they understand better *now* what's the realm of the problem at hand. They could have done it better even with sticks and carrots for ones and zeroes and the fact that they need to invent "a new paradigm" for that, is a heavy hint that they will bring their whole own set of big problems and since the system is bigger now, they will be bigger, bigger problems too.

    4. Re:Sounds vaguely UNIX. by techno-vampire · · Score: 1

      If your APIs are unstable then you are just going to have an undocumented and difficult to understand system that is impossible to debug for anyone but the fools that built it.

      Correction: it will be impossible for anybody to debug including the fools that built it because even they won't understand what they did wrong.

      --
      Good, inexpensive web hosting
    5. Re:Sounds vaguely UNIX. by Anonymous Coward · · Score: 0

      Those rules are all superseded by the one rule:

      Rule of Bottom Line Optimization
      Do the minimum it takes to get the product out the door. If it compiles, ship it. It is better financially to have offshored support reps handle the complaints with a non functioning program than it is to lose money and position in the release race. This applies to anything in the computer industry, even "sacred cows" like nuclear or medical equipment.

    6. Re:Sounds vaguely UNIX. by zifn4b · · Score: 1

      Unless I'm misunderstanding the article, it sounds like they want people to split their monolithic applications into smaller components that "just do one thing". However, the most important part of this process is designing the whole thing and splitting it into sets of stable APIs. If your APIs are unstable then you are just going to have an undocumented and difficult to understand system that is impossible to debug for anyone but the fools that built it.

      Does a graphics card not do one thing but then when combined with a motherboard, CPU, case, etc. becomes a PC? Composition of smaller components to form a bigger component that works. What it requires is people who can zoom into the details and zoom out to see the big picture. Those people who can do that very well are very rare. Usually most people focus on one or the other too much or exclusively.

      --
      We'll make great pets
    7. Re:Sounds vaguely UNIX. by gtall · · Score: 1

      This is reminiscent of a discussion I once took part in regarding security and threats. One bright spark said we could solve the problem by going back to every machine only doing one thing. Wonderful idea...except that it is difficult to get the fighter plane off the deck and ship out of port if it a hodgepodge of single purpose, but damn secure, systems. Oh, and those communication lines? Piffle, those are easy to secure just as they did in the old days, ran dedicated wires. Ah, the good old days, it was always better back then...errr..unless you we're talking dentistry and weapon systems understandable by a garage mechanic.

  11. I see your buzzword and raise you by Anonymous Coward · · Score: 0

    No because it will lack synergy

  12. Micro-post. by Anonymous Coward · · Score: 0

    https://thenewstack.io/year-ahead-stateless-computing/

    Serverless architecture.

    http://www.infoworld.com/article/2682502/application-development/application-development-what-microservices-architecture-really-means.html

    Microservices.

    1. Re:Micro-post. by Anonymous Coward · · Score: 0

      https://thenewstack.io/year-ahead-stateless-computing/

      Serverless architecture.

      http://www.infoworld.com/article/2682502/application-development/application-development-what-microservices-architecture-really-means.html

      Microservices.

      Server-less architecure. Because developers don't know how to deal with servers whatsoever and think they can program their way around the complete lack of domain knowledge of what their code is actually running on or how they operate.

      See also: Containers, and the reinvention of static binaries.

  13. Dominos you don't control. by Anonymous Coward · · Score: 0

    If you use 5 micro services to run your business process that's 5 possible places for failure and an outage or significant change in just one service you don't control could knock you out.

    Too risky for my blood unless it's non critical and super expensive to do yourself.

    1. Re:Dominos you don't control. by Anonymous Coward · · Score: 0

      If it allows a company to fire the ops guys and just have devs, it is a win.

  14. Micro anything dosent work by Anonymous Coward · · Score: 0

    Microsoft, Microkernels and now Microservices. Just stick with the penguin, he's fat for a reason.

  15. Never use microservices. by Anonymous Coward · · Score: 0

    Maybe there's a framework that allows for composition of microservice operations akin to a transaction in a SQL database. I've not heard of one. In its absence, you have a spurious layer of IPC stuff (HTTP, CORBA, whatever) where you'd actually just need libraries and a database connection, and you gain a stilted architecture that's harder to write interdependent stuff for than a SQL database.

    1. Re:Never use microservices. by Anonymous Coward · · Score: 0

      Nope, never heard of that

      https://en.wikipedia.org/wiki/X/Open_XA

      Enter the 1980s once again.....all that was old is new again...

  16. Re:Should Fuck Fuck Shitfuck Fuck? by Anonymous Coward · · Score: 0

    No we don't. They should return home and fill those jobs with Americans who already speak it.

  17. Hardware is cheap. Internet access is unreliable. by NineNine · · Score: 2

    Unless you buy brand new hardware, hardware is absurdly cheap. Our hardware costs are somewhere around 1/20 of our software costs. It might even be less. I don't see any costs savings on hardware.

    What I do see with "microservices" is crossing your fingers that whoever you're buying from knows what they're doing (ie: backups, non-faulty hardware, non-faulty sysadmins, etc.)

    The other thing is that you have to rely on Internet access, which, in most of the US, is spotty at best. We're in a major metropolitan, high-tech area, and neither of the ISP's can provide us with reliable service. Hence, all of our software is built to run off-line during our very regular Internet outages. With "microservices", we'd just be stopped from doing any business at all every time the Internet dropped out.

  18. It's the data stupid by WaffleMonster · · Score: 1

    Data is what actually matters. Everything else is noise.

  19. It's the future by JustAnotherOldGuy · · Score: 1

    The whole-abstracted "run your services and stuff in the cloud" thing will eventually be the norm, Cloud services like Azure and Amazon Web Services are basically exploding right now as they find that there are tons of advantages to it.

    Even though I've turned my nose up at the whole "cloud cloud cloud" thing in the past, I'm seeing it used firsthand right now. I'm doing a contract for a healthcare services processing company (who has to meet HIPAA and PCI requirements, BTW) and all their stuff is in the cloud. All. Of. It.

    Everything is done via headless servers and AWS Lambda calls customized Kubenetes containers, etc etc etc, and the only PCs they use are on their desks so they have a place to write the reams of python code that makes the whole thing go. And it does go, I gotta admit.

    They save a ton of money and don't have to fiddle with any heavy hardware on the back end. They also benefit from the massive, massive AWS infrastructure that's available. (Azure is probably similar in that respect.)

    Like it or not, it's the future. Heavy-weight computing power (including the infrastructure to support it) has become a commodity for all intents and purposes.

    --
    Just cruising through this digital world at 33 1/3 rpm...
    1. Re:It's the future by Anonymous Coward · · Score: 0

      Heavy-weight computing power (including the infrastructure to support it) has become a commodity for all intents and purposes.

      Just like it was in the 70s!

    2. Re: It's the future by guruevi · · Score: 1

      You're a bit late. The public cloud fad is over. It's all about in-house private "clouds" that integrate with customers' "cloud services" (think Twitter and Dropbox) without exposing the proprietary data outside of your own Software Defined Network.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    3. Re: It's the future by AHuxley · · Score: 1

      The US bands and US clouds are a huge legal risk wrt any US federal court.
      A nation has data, trusts a US cloud to store and encrypt their data. The US brand states it will store and fully protect the data in that nation and only for that nation.
      A US court then produces US court documents for the USA brand and that nations cloud data is presented in full an US open court setting?
      A big, cheap, fast US cloud product is a big legal risk.
      A lot of nations now have to pay in full for their own in-house options just to avoid US brands and their legal global obligations to the US gov.

      --
      Domestic spying is now "Benign Information Gathering"
    4. Re: It's the future by jon3k · · Score: 1

      Those exceptions are so rare people are still writing about how unusual it is that Dropbox left the public cloud with headlines like "THE EPIC STORY OF DROPBOX'S EXODUS FROM THE AMAZON CLOUD EMPIRE". This is only worth doing at extremely large scale. And, as the competition between providers (AWS, Azure, Google Cloud) continues and their scale increase, prices continue to be driven down which means fewer and fewer customers are large enough to build these platforms themselves less expensively.

      I think we'll continue to see lots of hybrid clouds because right now the big providers aren't worried about building for unusual edge-case workloads. Right now their best return is focusing on moving generalized workloads as quickly into public clouds to drive growth and ultimately their scale to reduce their cost. Once we see that growth slow down we'll start to see more specialized offerings. Which is why you'll still see hybrid clouds being very popular in the short to mid-term.

    5. Re: It's the future by guruevi · · Score: 1

      It's not just about cost and convenience, most companies are finding that between the high costs, the downtime, the poor legal protections from any EULA or SLA and the US governments (as well as Amazon and Google's) invasion into privacy affects their product and/or customers.

      This isn't about a Dropbox-sized entity moving from AWS to something else (which cutting out the middle man would make sense given their scale) but smaller customers that moved to the "cloud" and have experienced too many failures, legal issues or increased scrutiny are scaling back what is effectively "shared hosting" back to self-hosting or at least colocating their own 'cloud'.

      Has anyone honestly ever been happy with the headaches of moving to Office365 or AWS (beyond the higher ups)?

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    6. Re: It's the future by jon3k · · Score: 1

      but smaller customers that moved to the "cloud" and have experienced too many failures, legal issues or increased scrutiny are scaling back what is effectively "shared hosting" back to self-hosting or at least colocating their own 'cloud'.

      I don't think the numbers back up the claim. If you look at the massive growth I think you find exactly the opposite. I'm sure there are anecdotal stories but the stats just don't bear that out.

      Has anyone honestly ever been happy with the headaches of moving to Office365 or AWS (beyond the higher ups)?

      No point giving you anecdotal examples, I think we just have to look at the numbers.

      Do you have a source to back up your assertion that these customers are leaving these platforms in any significant numbers?

  20. Another dumb idea to distract the ignorant. by CAOgdin · · Score: 1

    Whether you use a phalanx of servers, or a bunch of old XP systems on a LAN is irrelevant. It's the QUALITY of the software that makes a difference, and quality costs money. Unless and until business executives understand that design is not a whiteboard exercise, and coding is not programming, and programming is not design, and start to develop LIFETIME budgets, they will sow these seeds of failure. Taking the lowest bid is like gambling; Looking for the most comprehensive solution IS more expansive, and it pays dividends.

    Good design is focused on measurable outcomes, not how many lines of code need to be written. Outcomes like profitability, and customer satisfaction, and employee retention are not arbitrary; they are quantifiable, and lack of quantification of every milestone to the outcome is the source of most catastrophes, in my experience. I don't know how many projects I've salvaged from the "coders" by introducing the novel (it was originated in 1960!) PERT/CPM model to force the answering of "how much," "how many" and "how high" questions BEFORE a lick of code is written. Then after they've instituted some rigor, they can start forecasting resources required. SWAGs are NOT design!

    It's cheap companies that contract the losers. It's those focused on the business benefits and outcomes that make it to the F500 (until they hire "quicky solution" executives).

    Walmart is hardly a leader in the annals of robust development of the technology-driven enterprises.

  21. What is a microservice? by Anonymous Coward · · Score: 0

    Can anyone enlighten me as to what "microservices" are? Is this just a new buzzword for an idea that was thought of 20 years ago?

    1. Re: What is a microservice? by Anonymous Coward · · Score: 0

      It's a new service from microsoft that copies all your files to their servers, for better security.

    2. Re:What is a microservice? by Anonymous Coward · · Score: 0

      Instead of having one large application that does many things on an expensive server, you have many smaller applications that do one thing on baby servers. This is both cheaper and, in most cases, faster.

      It is a fucking nightmare to convert to though, because most applications will join tables and have calls in transactions that can rollback on failure.

    3. Re: What is a microservice? by Anonymous Coward · · Score: 0

      And the new part of this is?

    4. Re: What is a microservice? by E-Rock · · Score: 1

      Nothing really. You can put the microservices into containers and VMs, or have some of them be from cloud services. That part is new(ish).

    5. Re: What is a microservice? by Anonymous Coward · · Score: 0

      Oh god more layers of overhead. Is Poettering behind this bullshit?

    6. Re:What is a microservice? by Anonymous Coward · · Score: 0

      Think of it this way: you take half the number of .c or .java files in your server project and convert each of them into a process (aka microprocess). It's the perfect recipe for the corporate developer that wants job security through complexity. Yes, modularization decreases complexity, but over-modularization increases it tremendously (along with a lot of boiler-plate that enterprise programmers crave).

    7. Re:What is a microservice? by Anonymous Coward · · Score: 0

      It's where you take an application running on a single server which is a sunk cost for your business, and break it up into smaller "services", causing some increase in complexity for portions of the application that now need to merge multiple JSON responses instead of using an SQL JOIN, and deploying those services on multiple rented cloud instances.

    8. Re: What is a microservice? by Anonymous Coward · · Score: 0

      No no no no. It is not about the code it is about the data. E.g if you have database with table like sw company. You can split that so that one service takes care of employees. One takes care of orders and most likely you need one to combine both together. The problems are in linking the data, rolling back changes and still keeping things separated. Can I replace humans with monkeys and only change employee service to do so?

    9. Re: What is a microservice? by tigersha · · Score: 1

      Where the hate comes for SQL joins I never got. You are throwing away evey optimization and advantage of database research over 50 years cause the young'uns wanted something more hip.

      Finally the NoSQL cancer has spread to networks and architectures.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    10. Re: What is a microservice? by K.+S.+Kyosuke · · Score: 1

      So it's like a distributed object system, only terribly complicated and cumbersome?

      --
      Ezekiel 23:20
    11. Re: What is a microservice? by Anonymous Coward · · Score: 0

      A lot of people don't understand joins, 3NF and how the database engines generally work but the main hate for SQL joins is rooted in the fact that relational databases are expensive to scale vertically up and very hard to scale horizontally. If you need 1K+ QPS with the complex joins on the schema where you have a lot of data and you can't effectively shard you are screwed, if you can't find the box big enough.

      Microservices are supposed to prevent these kind of DB schema from appearing but that is another discussion.

  22. My micro services are obsolete by Anonymous Coward · · Score: 1

    Nano services are the next big thing. It will be game changing.

    1. Re:My micro services are obsolete by tigersha · · Score: 1

      We are already at picoservices. Our engineering team have started looking at attoservices too. Your company is doomed, maybe you should polish that resume again.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
  23. Re:Decision was not faulty;but design definitely w by WaffleMonster · · Score: 2

    The microservice architecture is about moving things into as small of domain specific functionality -- which should facilitate with code maintainability etc.

    This is standard operating principal of meme machines. They say obvious things well known and understood since before most of us were born and then assert themselves as the only best path to achievement.

    When picking up a new paradigm

    What new paradigm? I dare you to name one new concept.

  24. Prerequisites by prefec2 · · Score: 3, Interesting

    Before you can switch to microservices, you have to modularize your software along domain aspects not technical aspects. For example, do not split the system up in X-tier/layer. Instead separate the catalogue, cart, payment, adverts etc.,

  25. Right tool for some jobs by Carcass666 · · Score: 4, Informative

    If you have a task that is quick running, and has very few interdepencies, microservices may be a fit. In our case, we have file processing that needs to take place when a user uploads a file. There are a number of different websites (internal and external) from which this can happen, and implementing/updated that file processing into each of these is not very attractive.

    I could use a back end service (REST or SOAP) running on a server, but to scale that up and down with demand I have to do it at the server level. Containers are an option, but I still have to provision a big enough server, or set up an auto-scaling cluster, to handle extreme scaling cases.

    The microsservice solution fits nicely in this instance. In AWS Land, I can trigger a Lambda micro-server when anything is written to an S3 bucket (S3 is AWS's storage platform). As long as the processing is quick and not super-intensive, the solution is very cost effective. AWS has similar hooks all over the place, like their document database (DynammoDb).

    Microservices get less attractive when you have long-running processes with lots of interdependencies. You are also at the mercy of versions of libraries and supporting utilities (like Ghostscript and ImageMagick) that are installed on the back-end. In our case, AWS took a while to update their version of Ghostscript available to Lambda which caused us some headaches.

    It's also a hassle if you have big chunks of code for things like a data access layer or business logic layer. There is some overhead with an initial load of a Lambda package, and you don't have much control of when AWS decides to deallocate a package (if it goes unused, AWS frees up the resources for other things). For really big packages, this can lead to situations where you will have random performance hits. There are workarounds, like setting up a CRON to call the microservice every minute or so. If you are loading lots of supporting code, libraries or utilities, you are probably better off with containers.

    At any rate, scaling at the server level (even VM) is getting less cost-attractive. Most of our new stuff is either in containers or, where it makes sense, microservices.

  26. Come on guys by Anonymous Coward · · Score: 0

    Explain what you mean by this "microservices" in the summary........ or stop using new bullshit terms.
    fuck.............

  27. You change tech so you can get employees by rsilvergun · · Score: 1

    based on what they're trained in; and they're trained in whatever's cheapest. That's why mainframes are dying. It's expensive to train, especially if you're doing it in India. That's the same reason Java took off.

    The tech is only part of the cost. It's not even the biggest part. Employees are always the big cost and anything that drives down those costs will be weighted heavily.

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
    1. Re:You change tech so you can get employees by ArchieBunker · · Score: 1

      Mainframes aren't dying. IBM's mainframe division is doing well and they producing new models.

      --
      Only the State obtains its revenue by coercion. - Murray Rothbard
    2. Re:You change tech so you can get employees by Anonymous Coward · · Score: 1

      Mainframes aren't dying. IBM's mainframe division is doing well and they producing new models.

      Correct. Mainframes aren't dying, mainframers are ... literally. At my org we're having a hell of a time staffing the maintenance of mainframe stuff we've built over decades. That's not going to get better because literally NO ONE wants to learn the mainframe since it is seen as a dead end career wise.

  28. Slashdot Paradox by Anonymous Coward · · Score: 0

    If your company is so shitty you find Slashshit more stimulating than actually trying, then their technology is undoubtedly ancient and long obsolete, so just about anything must be an improvement.

    However, if it is technology being discussed on Slashshit, it must be inferior to just about any other solution.

    It's like an unstoppable force meeting an immovable object.

  29. Betteridge law says... by guruevi · · Score: 1

    No. You shouldn't. Devops is for companies that want to automate pushing dev-branch to stable without as much as a code review. Microservices are great to preview a piece of software or develop against a consistent reusable base but I've never seen good things from Docker and co in production.

    --
    Custom electronics and digital signage for your business: www.evcircuits.com
    1. Re:Betteridge law says... by Anonymous Coward · · Score: 0

      Do not confuse DevOps with the tools associated with DevOps.

      DevOps deals with the compartmentisation that comes with ITIL and similar organisational structures.

      Automating delivery and monitoring is a must, if you have several testing stages for your applications. Docker is just one of the tools that can be used to do the trick. Configuration engines (f.i. Ansible) are, in my view, the more important ones. And I've never heard complaints from anyone implementing those.

  30. Re: by Anonymous Coward · · Score: 0

    You should use Erlang then.

  31. Re:Should Fuck Fuck Shitfuck Fuck? by Anonymous Coward · · Score: 0

    leave the women here though. the women are hot

  32. Re: Decision was not faulty;but design definitely by Anonymous Coward · · Score: 0

    Are you in marketing?

  33. Meh by Anonymous Coward · · Score: 0

    The way i understand it, microservices is simply an attack on large enterprisr suites like SAP, Oracle, etc. It makes sense from the decoupling perspective but it probably creates enormous integration clusterfucks if microservices are not using shared master data.

  34. Re: Hardware is cheap. Internet access is unrelia by Anonymous Coward · · Score: 0

    Microservice doesn't require putting them on other side of Internet ... you can host them anywhere you want to. If you had 1 box in a room you can put the microservices on the same box.

    If you don't know how to keep that 1 box up and running you won't be able to do it any better with microservices.

  35. Simple really by Anonymous Coward · · Score: 0

    The short answer: No
    The long answer: Hell no. Are you a fucking moron? Are you just enticed by shiny things with buzzwords that arouse you?

  36. Re:Decision was not faulty;but design definitely w by Frobnicator · · Score: 3, Insightful

    Sounds like you had some nutter that decided to just convert the system into microservices without much thought other than ...

    That is the thing that misleads so many people, both the non-technical bosses AND many of the technical people. We want this because it is hip and trendy, and we want it because the large companies are using it so it must be good.

    Think about the headline. Walmart -- the world's largest retailer that spends more money on IT infrastructure in a single day than most companies make in annual revenue -- has switched to a product that saves their specific enormous needs a bit of resources. There are other headlines like it. Redis let's Twitter handle a million requests per second. Some large organization publishes how their enormous tech problems only experienced by the world's largest companies get some benefit. Hadoop clusters, Kubernetes, Hazelcast, memcached, Cassandra, Kafka, and more. They're great solutions if you actually have those problems the tools help with. If you're in an organization that spends a million on infrastructure then the costs of having a few of the programmers spend a few months implementing the solution can be cost effective.

    Very few companies in the world have those needs, yet headlines like this make CEOs and CTOs and beancounters think they save money, and everyday tech guys want to jump in to the latest high-end technology. It doesn't matter if the database rarely hits 100 requests per minute and runs easily on a single machine, the groups decide the organization must bring in the same high-capacity infrastructure because it scales up to support the world's largest organizations. Hadoop clusters, Kubernetes, Hazelcast, memcached, Cassandra, Kafka, and more. They're great solutions if you actually have those problems the tools help with.

    While some solutions are good solutions for specific needs, far too often the solutions brought in are completely wrong for the organization's actual problems.

    A few companies back they had a huge internal developer group, everything was built around microservices, tiered architectures where every service , autoscaling groups, and multiple database arrays, all connected through distributed memory tools. All that for a roughly 4TB database where nearly all transactions were single-row reads; the peak was around 10,000 requests per minute (166/sec) serving out roughly 150 megabytes per minute (2.5MBps). There performance was slow, and a bit of profiling (part of my job to make things faster) revealed abysmal practices. Warnings from Sonar said strings shouldn't be reused, so in less than a second there were a million copies of the string "true". Carefully composed SQL commands were placed in interned strings, then had copies made, and copies of copies made. In several cases I found the overhead was enormous; some simple requests to generate a 50KB response would allocate 5+ MB of memory. All of it because tools suggested something might be more secure, and new-and-shiny saved massive organizations like Amazon or Twitter or Walmart a bunch of money.

    When I was newly brought on and looked at the numbers, I asked my boss about it, who said they wanted to scale big just in case. A while later I had some chats with the CTO, and that was his reason as well; bring in all the latest high-end technology because when they used smaller technologies they were too slow. At that point they were looking at even bigger technologies, adding even more memory caches and renting even more expensive VM systems with terabytes of memory. As mentioned, that was one of my former employers. As the poster says: If you're not a part of the solution, there's good money to be made in prolonging the problem.

    --
    //TODO: Think of witty sig statement
  37. Re:Decision was not faulty;but design definitely w by roman_mir · · Score: 1

    You know, there is an actual name for things that access a database (any database, shared or not) and implement some domain specific logic. They are called programs.

    'Micro service' is yet another silver bullet and it solves precisely dick if it is used as part of a push towards it rather than being used once in a while when it makes sense (and would always make sense whenever people decide to write a new program).

    Here is the actual reason people jump from one silver bullet to another cyclically: programs grow, the developers move on, time passes, requirements grow and change, documentation gets stale, nobody remembers what it is anymore, management changes and developers move on into architecture and feel the need to differentiate themselves with something buzzwordy.

    Any 'micro' service will eventually do more and more to manage requirements, the communications between 'micro' services is just like communications between any services within a monolith, only more expensive to maintain.

    All of this follows normal rules of entropy, there are no silver bullets and everything new is repackaged old.

    Something to consider: if evolution of our bodies used micro services, would we have eyes running separately from our heads with their own tiny feet?

  38. Re:Decision was not faulty;but design definitely w by zifn4b · · Score: 1

    Sounds like you had some nutter that decided to just convert the system into microservices without much thought other than ... hey lets put them in different micro services.

    Bingo. This is the problem with discussing patterns. Many developers (even architects), even incredibly highly educated and intelligent ones are still stuck in the mindset of the "the one pattern/architecture to rule them all". That, in and of itself, is evidence of lack of sufficient experience and that the person has not achieved seasoned Journeyman status. There is no one magic pattern to rule them all that if we practice it religiously we will always write highly scalable, performant, easy to maintain code. Anyone who says otherwise is a fool and if someone made that statement in a job interview with me, they would not get the job because I know their wishful thinking will generate crappy software most likely. How do I know that? Because when I was younger I did the same thing and I watch people do it all the time.

    After I learned from all those mistakes I progressed to Journeyman status and architected a highly available (99.999% update) system that achieved all of the things I mentioned above. Was there any one single pattern or practice followed that achieved that? Well, yes, if you consider using your brain to use the right tools/patterns/etc. for each part of the town map. Otherwise, no.

    I've been on job interviews where I didn't progress because of things like "you didn't use enough interfaces". Really? I've written real deployed enterprise level code that processes millions of transactions per day without crashing and processes each transaction in milliseconds and you're going to tell me this? You've never achieved anything in your life. Yes my system used interfaces but it used them where appropriate. In that case, where I wanted polymorphic behavior and wanted to allow a third party to provide an entire implementation if they so chose. You don't use something for the sake of using something as if you get points every time you use [insert thingie here]. That's not how good software is written that stands the test of time.

    --
    We'll make great pets
  39. As always, context matters - good for them may... by Assmasher · · Score: 1

    ...not be good for you.

    If this type of separation of concerns works for you, then use it. I would argue that your architecture was poorly designing in the first place if you find yourself having to do this.

    The biggest caveat? Be careful that you don't microservice and simply scale up your single points of failure.
    We had an engineering group break up a monolithic worker, not because they couldn't scale workers, because the lead read a book/article (I forget) from 2006 talking about how microservices are the answer to everything.

    The only problem was that each of his microservices depended upon a previous service (not feeding off a queue) and when one went down, they all went down. Usually in the one not well instrumented ;). Ops wasn't particular happy about this either as it made deployment, maintenance, testing, and other issues more difficult/complicated when there was no discernible benefit (it didn't let us change our instance sizes like in the article.)

    Again, it may be exactly what you need - it may not. Make sure it's right for you.

    --
    Loading...
  40. Re:Decision was not faulty;but design definitely w by GreyWolf3000 · · Score: 1

    I agree, and I am a big proponent of service architectures, and yes, I force myself to use the term "microservices" because it seems to be the popular one these days.

    There isn't anything new about service architecture. You put a network call in between two pieces of code and suddenly you need a queue for the interface to be robust. Once you put a queue in front of code, you're handling messages, and in particular, you're handling messages that can arrive more than once. So you need to ensure your handlers are idempotent. Then you need to stitch together a reporting database of some kind to serve queries that supply the data for the UI. Which should mean that your services publish events -- pub sub is another pattern that has been around for a while. All of that work wins you the ability to compose a large, complex system out of very loosely coupled, autonomous pieces. When it works, it's great. It usually doesn't, however, because teams don't have the maturity, habits, or expertise on hand to see such a project through to completion.

    Nothing about it is "new," except to the inexperienced web programmers I coach who don't really understand service architecture -- who also usually believe that you can achieve microservices just by taking parts of your existing system and putting a web interface around them. Sigh.

    All that to say, there are some definite benefits to service architecture that shouldn't be discounted just because "microservices" is yet another tech trend to have been fed through the meme machine.

    --
    Slashdot: Where people pretend to be twice as smart as they really are by behaving like children.
  41. Re:Decision was not faulty;but design definitely w by Anonymous Coward · · Score: 0

    Yes my system used interfaces but it used them where appropriate. In that case, where I wanted polymorphic behavior and wanted to allow a third party to provide an entire implementation if they so chose. You don't use something for the sake of using something as if you get points every time you use [insert thingie here]. That's not how good software is written that stands the test of time.

    Your rant seems to completely neglect the small matter of code maintenance and extension. So yeah, there is a good reason for using interfaces and abstraction even if during your tenure you only expect to have one implementation of a specific thing.

  42. The question is wrong by Casandro · · Score: 1

    One cannot say if a certain technique is good for a company without knowing what problems it should solve.

    If you consider something, learn about it, think about it, make a primitive prototype. If you still think it's suitable for your needs, use it. If your prototype ends up as a complex mess of code, look somewhere else.

    The company I work with deals with a rather large >100 million dataset database. It's the portability database of Germany and contains the carrier for every phone number in Germany. Lookups happen via a small program coming with Kamailio. (probably the best part of that) Updates, however, happen via a very simple shell script utilizing standard Unix tools, or faster alternatives to it. (uniq can be very slow) Data is kept in a plain text file, and a complete update takes much less than half an hour.

  43. Should your company switch To microservices? by najajomo · · Score: 1

    Yet more of the Cloud .. the Cloud .. the Cloud, instead of paying the one off for your own servers, you pay a yearly rent, in the cloud .. in the cloud ...

  44. Re:Hardware is cheap. Internet access is unreliabl by Anonymous Coward · · Score: 0

    True 'dat. A single big $20k server can handle many millions of web pages per day - few applications need more than that.

  45. Re:Hardware is cheap. Internet access is unreliabl by Anonymous Coward · · Score: 0

    Microservices are about designing around failure, designing around failed (or no backups), designing around faulty hardware, designing around faulty sysadmins.

    Microservices are also hideously complicated to implement properly. The enterprise "microservice" setups I've seen are really just single coupled services split into multiple processes with hideous dependencies between them, and with horrific cost for simple things that could have better been performed in a database join or single process in-memory processing as the ultimate end-goal was a single client with no requirement for decomposition and APIs for everything else (oh, hello public vs private debate).

    Microservices come with massive costs at many levels, not least of which is complexity. Most teams will not have the maturity or experience in such an environment to make it work right. Nor will they be working in an environment with scale comparable to Spotify, Netflix, etc. where the problems that microservices generally solve (and the new ones they introduce) manifest themselves.

    I once heard a great quote in a tech talk, something like "None of the giants, Google, Spotify, eBay, started off with microservices - they started with monoliths and evolved them as the need arose". Sound advice... Figure out what it is you want to do, then figure out how to do it, then figure out how to scale it or make it fault tolerant it to a specific set of demands once you have evidence of those demands.

  46. Re:Decision was not faulty;but design definitely w by Anonymous Coward · · Score: 0

    None of the concepts are new on the development front. We've been trying and failing at distributed computing for at least 2 decades now ... JMS/EJB/SOA and so forth. The difference that most people miss in this whole "microservices" thing is dumb pipes and devops are what make the whole thing worthwhile. Dumb pipes mean I could give a flip if you're calling me from a mainframe, a phone or a JavaEE server ... you're calling me over http/s and I'm sending you JSON (probably). DevOps means actual time to market is much faster. No more sending a ticket to 15 teams to get your tables/server/networking stuff updated before you can launch. DevOps also neatly enforces having a bunch of unit tests by requiring a CI/CD pipeline.

    It really isn't new ... just more generic (dumb pipes) and gets all the boilerplate infrastructure stuff out of the way so it is faster.

    Just my $0.02

  47. Beware some risks by atcclears · · Score: 1

    In theory doing microservices is OK, but there are some huge risks (I'm seeing it in real-time with a couple of big customers). Beware isolated copies of data behind the microservices. There is too much "academic pontification" here coming from some Architects. Is your organization really ready to keep data in sync between a microservice's representation of that data and the System of Record's (SoR) representation of that data? How good is the code? This gets messy quickly. What are you going to do when (not if, but when...) the data gets out of sync between the multiple representations? If you're doing a financial system then how will you achieve compliance? Dependencies. Micro means more things. Who needs what? How do you manage change? One customer is testing a tool called 8folios to help with this.

  48. Re:Decision was not faulty;but design definitely w by psyclone · · Score: 1

    Using interfaces with a single implementation is MORE code maintenance!

    If you have multiple implementations, then refactor into an interface (which is trivial with the right tools), but until then keep it simple, stupid.

  49. Re:Decision was not faulty;but design definitely w by zifn4b · · Score: 1

    Your rant seems to completely neglect the small matter of code maintenance and extension. So yeah, there is a good reason for using interfaces and abstraction even if during your tenure you only expect to have one implementation of a specific thing.

    You can say what you want, my system has been running, easy to maintain and has a proven track record of 15 years. What do you have? A bunch of theoretical nonsense. That's what you have. Look when you have a hammer, everything looks like a nail. And that's your problem. Some of us never learn. I hope you do.

    --
    We'll make great pets
  50. Re:Decision was not faulty;but design definitely w by zifn4b · · Score: 1

    Using interfaces with a single implementation is MORE code maintenance!

    If you have multiple implementations, then refactor into an interface (which is trivial with the right tools), but until then keep it simple, stupid.

    Correct! You sir are obviously a seasoned programmer. Cheers! FWIW - back in ye olden days we didn't have refactor tools that allowed us to do it in a few clicks. We had to do this all meticulously by hand but we still did it anyway. And we also had to walk uphill in the snow both ways to school too. :P

    --
    We'll make great pets