from Hacker News

“It's The Future”

by knowbody on 8/17/16, 7:53 AM with 521 comments

  • by rajeshp1986 on 8/17/16, 11:34 AM

    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, space exploration and what not) or I feel they are somewhat trying to hide their insecurities.

    Anyway long story short, most of these people do not really understand why they need all this rocket science to manage < 500 internal users. One of the new buzzwords I am hearing these days is mostly related to bigdata and machine learning. One of my managers came to me and asked me why dont we integrate our product with hadoop it will solve the performance problems as it can handle lot of data.

    I am frustrated by the industry as a whole. I feel industry is simply following marketing trends. Imagine the no. of man-hours are put into investigating technologies and projects dropped mid-way realizing the technology stack is still immature or not suitable for at all.

  • by mrhektor on 8/17/16, 10:29 AM

    "-No, look into microservices. It’s the future. It’s how we do everything now. You take your monolithic app and you split it into like 12 services. One for each job you do.

    That seems excessive"

    A 100 times yes. We tried to split our monolithic Rails app into micro-services built in Go. 2 years and many fires later, we decided to abandon the project. It was mostly because the monitoring and alerting were now split into many different pieces. Also, the team spent too much time debating standards etc. I think micro-services can be valuable, but we definitely didn't do it right, and I think a lot of companies get it wrong. Any positive experiences with micro-services here?

  • by pbiggar on 8/17/16, 2:27 PM

    Author here.

    To answer some questions: yes this is obviously poking fun at Docker, but I also do really believe in Docker. See the follow-up for more on that: https://circleci.com/blog/it-really-is-the-future/

    In a self-indulgent moment I made a "making of" podcast about this blog post, which is kinda interesting (more about business than tech): http://www.heavybit.com/library/podcasts/to-be-continuous/ep...

    And if you like this post you'll probably like the rest of the podcast: http://www.heavybit.com/library/podcasts/to-be-continuous/

  • by rjvir on 8/17/16, 2:07 PM

    There was a time when Heroku seemed just as foreign to me as Docker does in this article.

    - So shared webhosting is dead, apparently Heroku is the future?

    - Why Ruby, why not just PHP?

    - Wait, what's Rails? Is that different from Ruby?

    - What's MVC, why do I need that for my simple website?

    - Ok, so I need to install RubyGems? What's a Gemfile.lock? None of these commands work on Windows.

    - I don't like this new text editor. Why can't I just use Dreamweaver?

    - You keep talking about Git. Do I need that even if I'm working alone?

    - I have to use command line to update my site? Why can't I just use FTP?

    - So Github is separate from Git? And my code is stored on Github, not Heroku?

    - Wait, I need to install both PGSql and SQLite? Why is this better than MySQL?

    - Migrations? Huh?

  • by nathell on 8/17/16, 10:12 AM

    Obligatory link to "The S stands for simple", a SOAP-bashing classic: http://harmful.cat-v.org/software/xml/soap/simple
  • by chukye on 8/17/16, 11:35 AM

    Man, I dont think this is the future at all. OK, Docker is good and has its propose, and is very good on what its do: "Run only one process in one brand new kernel", but beyond than that, its just a daemon that uses and abuses of linux containers, you can easily scale, but is a pain in the ass to upgrade apps, also you need to run only one process on that. Does not looks like the future for me to have 30 different linux containers running just only one process in each of them, dude, you have a kernel in your hand, why the hell you will run only one process on it? (what the heck, you can protect yourself and scale without be the bitch of a daemon, you just need to know your best friend kernel), you dont need to make micro services for everything, its good ok, but its not the solution for everything like the people are saying...

    I really dont have any idea why the people are are so excited about "docker" all the things.

  • by epalmer on 8/17/16, 5:44 PM

    I am going to ramble. Just move on if you don't care to hear the ramblings of a 62 year old development manager.

    I'm pretty docker ignorant. I think I get it in concept. I manage >150 web sites (~15,000 pages total) that are php based with eXist-db and oracle (overkill but forced to use it) for database backends. My team develops on mac os x and pushes code to RHEL. We have never had a compatability problem between os x and RHEL except for some mgmt scripts in bash that were easily coded around.

    Big data to me is a 400 MB apache log file.

    I go home grateful I don't have to be in the buzz word mix.

    I do read a lot about technology and over time that informs some changes like using apache camel for middleware, splunk for log file analysis yada dada...

    I have had bosses that brought me buzz word solutions that don't ever match the problems we have. I hate that but right now I am not in that position. My boss leaves technology decisions to us.

    Least you think we are not modern at all we do use a CDN, git and more.

    Some days I get anxiety from reading HN, feeling stupid. Some days I get a lift from HN from reading articles like this one and the comments.

    I am so glad I'm not in the business of chasing technology.

  • by hoechst on 8/17/16, 11:08 AM

    Please also read the followup (https://circleci.com/blog/it-really-is-the-future/).

    I read both articles a year ago and it really helped me grasp the whole container movement.

  • by robteix on 8/17/16, 10:51 AM

    "Why don’t I just use Google’s thing?

    "-You think that’s going to be around in 6 months?"

    Isn't reputation a thing of beauty?

  • by TickleSteve on 8/17/16, 10:03 AM

    Sometimes it seems the webdev world is unaware of the complexity its creating simply to execute instructions....
  • by lambdacomplete on 8/17/16, 10:45 AM

    There are 2 major issues with this:

    1) Small teams (~1-5 people) trying to seem "big" by working at Google's scale.

    2) Heroku's prices. We are currently (successfully so far) migrating a small Django project from bare Amazon EC2 instances to ECS with Docker. Even using 3 EC2 micro instances (1 vCPU, 1 GB RAM) for the Docker cluster we would spend ~8 USD/month/instance. With Heroku the minimum would be 25 USD/month/dyno. That's a 3x increase in expenses.

    It's very possible to take advantage of technologies like containers without getting too caught in the hype.

  • by LukeB_UK on 8/17/16, 9:43 AM

    Previous discussion from 434 days ago: https://news.ycombinator.com/item?id=9688383
  • by xchaotic on 8/17/16, 10:32 AM

    I think I will be fine, thanks. I'll stick to my shell scripts, so far they've outlived any other devops fad.
  • by nickjj on 8/17/16, 11:00 AM

    Or just put your app(s) into containers and run them through docker compose on a single VPS. That bypasses about 99% of the things listed in this article.

    You can still easily set things up so it's a git based deploy which is hands free after the initial push.

    Now you have a single $5-10/month server that runs your app's stack without a big fuss. Of course it's not "web scale" with massive resiliency but when you're just starting out, 1 server instance is totally fine and exactly what you want.

    I've ran many projects for years on 1 server that did "business mission critical" tasks like accepting payments, etc..

  • by mangeletti on 8/17/16, 3:04 PM

    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'll even check out Docker. Maybe these hundreds of people will represent a tipping point of sorts for Heroku->Docker migrations, because one of them will write a really great blog post about it, and it will receive thousands of views..." (alternate endings of the same thought continue to be brute-forced for a few moments).

    Along the same vein of thinking, back in 2008 I had this "realization" that Google could control the world by simply showing results based on headline titles (e.g., a search for "Obama" during the election could have resulted in articles / results whose titles have words/phrases whose presences are positively correlated to lower or higher stress levels, assumptions, other emotions, etc., resulting in a net positive or negative sentiment, respectively, about the subject of the search query, all while simply scanning the results to determine which one to click).

  • by oneplane on 8/17/16, 1:32 PM

    This pretty much sums it up. New stuff, stacked on existing stuff, with the theory that older stuff was hard, and new stuff is better, but you still needs the old stuff, so you basically end up doing exactly what you did, but now with more stuff in between, adding cost, complexity and additional failure modes while solving nothing.

    Any of the proposed problems that containerization was supposed to fix are already fixed by using proper configuration management. In almost all cases so far, people yammering on about docker and containers (and CoreOS), it ended up being their idea of configuration management, because they didn't have any in the first place.

    Say you want to fix your 'problems' with setting up servers, how about doing it the right way. You will need deployment services, regardless of containers, VMs or bare metal. You will also need configuration management services, and monitoring. Containers and special distributions solve none of it, knowledge to run systems is still required and not actually fixing your problems and layering stuff on top of it doesn't actually help.

    Get something like SaltStack or Chef, and configure the out of everything. It doesn't care what you're running on, and actually solves the problems that need fixing.

  • by nathan_f77 on 8/17/16, 11:01 AM

    I've spun up a lot of kubernetes clusters to test it out. A few months ago I also tested out Flynn, Deis, Deis Workflow, Openstack, and a lot of other options. I still haven't found a simple bootstrap script that gets everything set up on AWS and lets me simply deploy my application. And it's true that storage still seems to be an unsolved problem with kubernetes.

    Heroku is great, and free for small services. On the other hand, a highly-available kubernetes cluster is going to set you back at least $100 per month, which is just too much for small startups and side projects before they take off.

    I think I'm going to forget everything and head towards http://serverless.com/. No Heroku, no Docker, no micro-services, no servers. Just everything running on AWS Lambda and DynamoDB. And everything static in S3 behind Cloudfront.

    Or maybe just Firebase. But I really am tired of managing servers.

  • by jakozaur on 8/17/16, 11:51 AM

    Thumb rule: Divide number of backend engineers by 5 you get optimal number of micro-services.
  • by lopatin on 8/17/16, 12:08 PM

    I got a genuine laugh out of this quote "Yeah, BDSM. It’s San Francisco. Everyone’s into distributed systems and BDSM.".
  • by eddd on 8/17/16, 12:09 PM

    Making sort of funny articles about Docker doesn't change the fact that circleci's support for docker is horrible. I don't use it on prod (and I probably won't) but since circleci forces me to use ubuntu 12.04 which is not something I use on prod I want a docker container which looks like my production host. Having said that - circle really tries to support docker, but It doesn't.

    I have to use ECS for caching (I am not happy about it)

    Builds might fail due to the custom docker version/compilation

    You can mock docker, but people are using it in one way or another and you should support it properly.

  • by seanhandley on 8/17/16, 10:35 AM

    This needs a "(2015)" adding to the title.
  • by room271 on 8/17/16, 1:34 PM

    Most commenters don't seem to realise that this is satirical, and that the author actually thinks Docker is 'the future':

    https://circleci.com/blog/it-really-is-the-future/

    But there is, as the author notes, truth in the satire.

  • by hellofunk on 8/17/16, 10:13 AM

    I assume this entire article is one piece of sarcasm. Because after reading it, how could any sane person not prefer Heroku?
  • by sandGorgon on 8/17/16, 10:05 AM

    show me an easy way to push a rails application to aws (with docker) that uses RDS ?

    is there ANY way i can spin up a server, add the ssh keys to some configuration file somewhere and just "docker-magic push" and have my rails application running ?

    or do "docker-magic bundle exec db:migrate" and have that command run on the server.

    Or push a Procfile with worker definitions and have the PAAS automatically pick it up, add it to supervisord/systemd and run it ?

  • by cocktailpeanuts on 8/17/16, 1:42 PM

    Glad to know there's the same kind of hipsterism going on in the backend world as much as in the frontend world.

    You could basically substitute all these backend buzzwords with "Webpack", "Grunt", "Gulp", "Requirejs", "React", "Angular", "Ember", "Backbone", etc. and it would have same effect on the readers--they think you're an annoying hipster.

  • by joeblau on 8/17/16, 10:16 AM

    https://www.gitignore.io runs on Heroku and it gets 40k+ visitors a month on a free Dyno. I use Heroku because I don't want an IAAS solution, I want a PAAS solution. If I wasn't using Heroku, I would probably find another PAAS, before switching to Docker (even though I do love Docker).
  • by djhworld on 8/17/16, 10:01 AM

    One thing that I liked about Heroku was the ease of deployment for Java applications (or any language for that matter as long as you had the right build pack)

    Since they upped the cost of their small tier, I moved to Digital Ocean and installed Dokku, which gives me that Heroku-like deployment experience so managing my (admittedly very small) website isn't that much of a hassle.

  • by dredmorbius on 8/17/16, 9:53 AM

    In an earlier age, all we had to hate were frameworks.

    http://discuss.joelonsoftware.com/?joel.3.219431.12

    (Factory factory factory factory.)

  • by nicolas_t on 8/17/16, 10:31 AM

    Out of topic but, man, is coreos not ready for prime time. I've been using it following the stable channel and ended up having to turn off automated updates because it would break docker (docker would just hang with the last 4 updates)... Not a very convincing test of coreos :)
  • by jondubois on 8/17/16, 10:35 AM

    Kubernetes/Docker will become increasingly accessible to developers and it will loosen the reliance on lock-in PaaS like Heroku - This is the future; I'm betting everything on it.

    With tools like Rancher http://rancher.com, you can already see things moving in that direction. Next step is rancher-as-a-service.

    When it comes to developers, I think open systems will always prevail in the end (it's just more flexible).

  • by qwertyuiop924 on 8/17/16, 2:33 PM

    Don't listen to hype. Look at the problems you need to solve. If you need a big, complex, distributed system, than maybe microservices are a good idea. If you're building a simple webapp... not so much. Things that work in the large don't necessarily work in the small.

    I write stuff in Scheme. I'm a hobbyist, there's no reason for me not to, and I love the language. The apps I write are sometimes single-threaded (or coroutine-based) monoliths. But I only have one machine available for me, and the things I'm writing are fairly simple. It's good ENOUGH. And Worse really is Better[1].

    1:and I truly mean that in the Gabriel sense. As in the New Jersey model. Not any other way.

  • by cerebellum42 on 8/17/16, 1:25 PM

    This definitely reflects some of my experiences when trying out Docker and some of the other stuff associated with it.

    Serious question though: I would absolutely love to have an introduction on how to use Docker to deploy one or two web applications that use a typical amount of backend services, say some sort of database and a redis server. All of this would probably run on a single VM (whether Amazon, DigitalOcean, Linode, ...) and you mainly use Docker to isolate the applications from each other in terms of the environment/dependencies that they need.

    How do I do this with Docker in a way that gets me an easy deploy process? (Or maybe the question is actually, should I even do this with Docker?)

  • by joryhatton on 8/17/16, 1:58 PM

    > No, look into microservices. It’s the future. It’s how we do everything now. You take your monolithic app and you split it into like 12 services. One for each job you do.

    reader implements and gets massive bill for personal blog hosting

    "Am I doing this right?"

  • by tedmiston on 8/17/16, 1:24 PM

    I guess this is meant to be hyperbolic but honestly it's true.

    > So I just need to split my simple CRUD app into 12 microservices, each with their own APIs which call each others’ APIs but handle failure resiliently, put them into Docker containers, launch a fleet of 8 machines which are Docker hosts running CoreOS, “orchestrate” them using a small Kubernetes cluster running etcd, figure out the “open questions” of networking and storage, and then I continuously deliver multiple redundant copies of each microservice to my fleet. Is that it?

    > -Yes! Isn’t it glorious?

    > I’m going back to Heroku.

  • by StreamBright on 8/17/16, 10:45 AM

    What a nice clickbait title. A is better than B, even though A is an apple while B is an orange, and we use them for entirely different purposes. Some functionality provided by Heroku can be replaced with Docker, and some missing features of Heroku are in the Docker infra, that can be added to Heroku using software (like service discovery: https://blog.heroku.com/managing_your_microservices_on_herok...)
  • by linkregister on 8/17/16, 6:28 PM

    I actually learned a couple of things from this article even though it's satire. I struggled through the de-monolithing of an application into microservices and then into Docker containers. Do people actually do this without having pressing issues that haven't lead them to this path? Is there any reason to spread into microservices unless the monolith is not keeping up with requests?

    I would have never considered Docker containers unless artifact preservation/isolation and deployment issues hadn't forced me to look toward a solution.

  • by golergka on 8/17/16, 11:00 AM

    Look, if you're a one man shop doing a small project — do LAMP. Do perl. Do cgi. Do whatever you're comfortable with; if you try to switch to the latest silver bullet tech, you'll just get disappointed.

    But if you're a CTO with a startup with 10+ server-side developers and plan to hire at least as much in near future, suddenly all these dockers and microservices actually make sense.

    So, unless you'll start conversations with _who_ you are and _what problem_ are you trying to solve, of course the other side will seem stupid.

  • by QuantumRoar on 8/17/16, 11:17 AM

    I'm not a web developer but I sometimes put some programs on the web for me and my friends. I use FreeBSD Jails for that.

    Can someone explain to me the advantages of Docker compared to Jails?

  • by jwmoz on 8/17/16, 10:40 AM

  • by raverbashing on 8/17/16, 10:14 AM

  • by imtringued on 8/17/16, 11:51 AM

    Since we are seeing so many "ads" here in this discussion. Does the average HN reader prefer this type of advertising to regular adsense ads? There is no violation of privacy, no autoplaying video, they are actually relevant to the discussion and it's obvious that they are trying to sell you something. Oh and probably the most important thing si you can downvote them.
  • by h8x0rd on 8/17/16, 5:27 PM

    He slowly caressed his docker image while tenderly inserting it in the continuous delivery pipeline. The slow throbbing of the Jenkins service increased in intensity as the automated tests started firing off in a crescendo of etcd writes leaving a quivering micro-service that lay panting in its pod. That was a memorable deployment. The first of many that night...
  • by geggam on 8/17/16, 2:37 PM

    See .... microservices are where you take a process using IPC and force it to go over a network and use TCP ...then you pretend it will run better and scale more but avoid the whole 10x infrastructure growth and the fact the devops team has tripled in size to manage the frankenstein ... dont forget to add in the whole SDN layer the network guys absolutely love
  • by forgottenacc56 on 8/17/16, 9:43 AM

    I'm not sure I get the message.
  • by discordianfish on 8/17/16, 2:40 PM

    Hype is as bad as seeing a promising technology just as hype without trying understand the problems it might solve.

    This is quite frustrating for both people who are aware of those issues and trying to fix them as well as the people missing out on the real advantages of such technologies.

    This reminds me of similar sentiment around virtualization and cloud computing later in my peer group:

    Some sold VMs as security feature and people focused their criticism on that, without understanding other advantages like quick/self-service provisioning of systems. Later one, cloud computing was trivialized as "it now just somebody elses computer" which completely ignored advantages like no ramp up costs and the ability to problematically manage your systems life cycle.

    PS: Considering every new thing a fad probably also makes you consider 'hadoop' the latest shit in big data processing and assume today's tech companies hipster are fighting over wordpress plugins. (Like, really?)

  • by beweinreich on 8/21/16, 7:01 PM

    As someone who recently drove down the path of learning all the new "hotness" in the DevOps world, I can safely say I came out of it with two learnings:

    1. I have a much better understanding of what's happening behind-the-scenes

    2. For most small startups, you should seriously consider the time (and therefore, cost) of investing in your own infrastructure.

    For point #1, I think understanding your options and how they benefit your company is essential for you transition from a small -> medium -> large size company. The paradigms you learn by virtue of researching the new technologies might end up being applicable in other parts of your development process.

    On point #2, I partially regret not deploying to Heroku, seeing where our system became stressed, and optimizing. Attempting to scale for things you don't know about yet is tough, and can lead you down a path of wasted time and money.

  • by farorm on 8/17/16, 2:07 PM

    Well I think that people and developers in particular needs to start realising that companies like docker has gotten really good at marketing them selfs towards them. Most of the stuff you hear about a technology is just marketing stuff that makes you sound smart when telling your peer about a new technology.
  • by jfoutz on 8/17/16, 10:26 AM

    > So I just need to split my simple CRUD app into 12 microservices, each with their own APIs which call each others’ APIs but handle failure resiliently, put them into Docker containers, launch a fleet of 8 machines which are Docker hosts running CoreOS, “orchestrate” them using a small Kubernetes cluster running etcd, figure out the “open questions” of networking and storage, and then I continuously deliver multiple redundant copies of each microservice to my fleet. Is that it?

    exactly. I mean look, if you have a lifestyle business that's only going to support 5-10 people, it's totally a waste of time. if you have some hope of scaling this is the way to go. I get it, just use Heroku. It's easy and convenient. If you're planning on a billion dollar exit, this way is way better.

    > I need to decide if i believe my own hype?

    yeah. sorry.

  • by EGreg on 8/17/16, 12:41 PM

    You know what's better than microservices? Nodes. Nodes running open source software that can power a distributed network.

    Microservices often hit the same database. You want to be able to split up the database. Not just into shards, but into distributed nodes.

    And by doing this, you split up the whole stack.

  • by laithshadeed on 8/17/16, 1:22 PM

    I believe microservice is the wrong term used to describe SOA. The word 'micro' make it looks simple & applicable for tiny apps 10-50K SLOC. I believe you should start chopping off your monolithic app only when it reach > 100K SLOC. Still you can split it up by well defined modules with clear interface, without necessarily using SOA if it is running on same box.

    Having monolithic app does not make it bad. What makes it bad is not having proper modules with proper interfaces.

    SOA comes handy when you want to distribute your workload, so now we have proper modules but those modules needs more computing power, so split them up into boxes and pay the pain for managing that, because you have no option.

  • by brightball on 8/17/16, 1:30 PM

    As the author of that "Docker is the Heroku Killer" post that was popular a couple of years ago I have to say that I agree with this.

    When I wrote that article it was largely focused on the potential for Docker to create a bunch of Heroku competitors as well as a simplified development experience across multiple languages.

    The businesses aren't there yet although a ton are trying. The local dev experience has not materialized yet either outside of native Linux due to performance issues with volumes that only a 3rd party rsync plugin have come close to fixing.

    I still use and advocate for Heroku pretty heavily for just about any non-enterprise environment.

  • by jpalomaki on 8/17/16, 1:15 PM

    When it comes to micro services and containers, we are are missing fairly detailed descriptions of real world architectures from successful projects. And actually that applies to many other technologies as well.

    When it comes to micro service, it would be interesting to know simple things like what kind of services were created, how large are, how communiction is handled, how large team(s) behind the service etc.

    For some companies these are of course trade secrets, but sometimes opening things up might be good marketing. An example is Backblaze with their very detailed descriptions of their storage pods.

  • by mtrycz on 8/17/16, 10:03 AM

    Is there a computer-voice teddy-bear version of this?

    I find them much better than walls of text.

  • by spriggan3 on 8/17/16, 1:04 PM

    Clickbait titles like that don't make me want to do business with circleci , it feels like a business full of immature kids yelling at each others. Not even going to click on the link.
  • by atulatul on 8/18/16, 8:06 AM

    Not exact but somewhat similar feelings expressed here: Let Me Just Code: http://www.drdobbs.com/tools/just-let-me-code/240168735

    Getting Back To Coding http://www.drdobbs.com/architecture-and-design/getting-back-...

  • by nickbauman on 8/17/16, 1:21 PM

    What containers do for you is two and only two coarse-grained things. 1. Make you more productive rolling out validated infra 2. Better utilize your hardware. Both of these things imply that you were using VM/AMIs before and you were hand-crafting your entire stack using things like Chef and Ansible. If you weren't doing that before (like, if you were using Google App Engine or Elastic Beanstalk or Lambda), Docker will make you less productive than you are today.
  • by Almaviva on 8/17/16, 11:11 PM

    I think words are very powerful, in particular "microservices" vs "monolith". By accepting those words, we imply the conclusion: microservices sound sexy and lean and elegant - who can argue with separation of concerns? And a monolith is a big unchangeable rock.

    I think we need a better word for apps that are single tight self-contained systems than "monolith". You can design elegant interfaces, and avoid creating a sloppy mess, with function calls or objects too.

  • by josh_carterPDX on 8/17/16, 1:27 PM

    It's amazing that an article from a year ago can still create a buzz on HN like this. Goes to show there are still a lot of people talking about this.
  • by DonHopkins on 8/17/16, 11:32 AM

    Where do Beowulf Clusters fit into all of this?
  • by oelmekki on 8/17/16, 11:02 AM

    "Hi, my name is dokku, and I have no idea what you're talking about" :)

    This rant sounds just like any rant from old dev mocking a new tech. "This is less efficient, this is too complicated, this can't be taken seriously, this won't last".

    Creating a character obsessed with "this is dead" hardly dissimulate the obsession with "this won't work". Do whatever you please, we don't care. But don't mock others about what they please.

    Passing through that, let's address the critics.

    Microservices and docker are not necessarily tied. I write only monolithic apps, and use them with docker through dokku.

    Etcd is a microservice problem, not a docker one.

    You don't need coreos or kubernetes to use docker in production. You need them if you want massively scaled applications, just like you would have many servers running the same app with replication without docker. Most of us don't need that (and those who need it probably won't find it more complicated than what is needed to do that without docker).

    If you don't want to manage servers, well, don't manage them. That's what cloud services are made for. But please tolerate some people love devops and not spending much direct money into infrastructure.

  • by wyldfire on 8/17/16, 1:11 PM

    I must've missed a tech cycle (or two) - I had heard of Heroku but didn't know what it did. I've used lxc and Docker and read bits about CoreOS/rkt/appc/kubernetes/etcd.

    I know it's tongue-in-cheek but few if any of these new fangled things are critically dependent on one another.

  • by colemannerd on 8/17/16, 7:21 PM

    This comment is over simplistic and reads like it was written by someone who doesn't know what they're talking about. All of these technologies have their place, but they should be adopted incrementally and where it makes sense. Posting a frenetic conversation benefits no one.
  • by a-priori on 8/17/16, 2:54 PM

    There's a theory in economics about the optimal size of a firm. How big should a company be? The optimal size could be infinite, where all of society acts as one firm. Think Communist-style command economy. Or it could be one, where everyone acts as networks of individual contractors or single-owner businesses. Think anarcho-capitalism. But in reality it's neither extreme and falls somewhere in the middle; why?

    It turns out that the optimal size depends on the balance between the overhead costs associated with allocating resources within one firm and the transaction costs associated with two firms doing business with each other. The overhead costs are higher with large firms because there's more internal resources, including people, to allocate. On the other hand, transaction costs are higher with small firms because each firm does less themselves so they need to transact more with others to accomplish their goals.

    As the relative costs vary over time, the optimal size varies too, and firms in an industry will grow and shrink. If it increases, then you'll see mergers and acquisitions produce larger firms. If it decreases then you'll see firms start splitting or small startups disrupting their lumbering competition.

    I suspect a similar thing happens in software, where there's an optimal service size. It could be infinite, where it makes sense to build large monoliths to reduce the cost of two systems communicating. Or it could be one, where it's optimal to break the system at as fine a granularity as possible (function level?).

    The optimal size depends on the balance of costs. All else being equal, by drawing a service boundary between two bits of functionality you shrink the services on either side but you increase the number of services and add communication costs for them to exchange data and commands.

    How these costs balance out depends on the technology, and there are competing forces at work. As languages, libraries and frameworks improve, we can manage larger systems at lower costs. That tends to increase the optimal service size. As platforms, protocols and infrastructure tools improve, the costs to run large numbers of services decreases. That tends to decrease the optimal service size.

    The microservices movement, and to an extent the serverless movement, assume that in the medium- and long-term the technological improvements are going to tip the scales sharply in favour of small services. I agree that's likely the case. But we're not there yet, except in some specialized cases such as large distributed organizations (Conway's law). But it's going to be at least a few years before it's worthwhile to build most software systems in a microservice architecture.

  • by thearn4 on 8/17/16, 10:52 AM

    This is structured like one of those Xtranormal do-it-yourself cartoons from a few years back.
  • by partycoder on 8/17/16, 6:49 PM

    Well, repeating buzzwords and pushing for early technology adoption for the sake of early technology adoption seems to be dumb, as the article implies.

    But new technology is necessary and early adopters are necessary. Iteration is necessary. Don't punish it.

  • by wjd2030 on 8/17/16, 12:29 PM

    I love everything about this.
  • by reledi on 8/17/16, 6:34 PM

    The post got one critical detail wrong. The microservices won't have their own API. APIs are dead. They'll use Kafka for messaging. That's the future.
  • by cdnsteve on 8/17/16, 11:28 AM

  • by samhunta on 8/17/16, 6:59 PM

    This reminds me of React state. Sagas, selectors, constants, components, containers, routes, reducers, actions, connectors, shoot me.
  • by daveheq on 8/17/16, 1:11 PM

    Check back next year for Docker is dead article.
  • by vpol on 8/17/16, 10:21 AM

    Yet another comparison of hot and soft.
  • by krisgenre on 8/17/16, 5:15 PM

    Is there really something called "Ew" ? Its hard to Google something thats just two chars.
  • by jgalt212 on 8/17/16, 10:38 AM

    Question:

    Is there an advantage to using docker when it takes 3 hours to rebuild our relatively small database?

  • by rendambathu on 8/17/16, 11:19 AM

    this old gem is back trending now!
  • by rjcrystal on 8/17/16, 12:13 PM

    doesn't anyone think about performance anymore? I mean just add more vms or increase their config, no one talks about efficient resource utilization asfaik. And there might be times where you containerizing everything is an over overkill.
  • by snambi on 8/17/16, 9:41 PM

    Really Hilarious and Reality. Lot of noise about docker, kubernates, microservices etc.
  • by saynsedit on 8/17/16, 12:10 PM

    Wow, what a strawman. Seems like someone was blowing off some steam.
  • by SurrealSoul on 8/17/16, 6:10 PM

    "I thought Mongo was web scale?"

    This joke will never get old to me

  • by audessuscest on 8/17/16, 9:47 AM

    Is it a blank page ? I don't see any text.
  • by mrich on 8/17/16, 10:49 AM

    Lovin' it!
  • by _pmf_ on 8/17/16, 10:23 AM

    Did you just tell me to go containerize myself?
  • by trevyn on 8/17/16, 1:33 PM

    (2015)
  • by marknadal on 8/17/16, 8:04 PM

    Self admittedly, I am one of the P2P psychotic pundits. This is a good reminder that we need to tone our language down.

    That said, if you can get your system to work with a single Heroku box, you really truly can simplify your life. That is what we're trying to do with http://gun.js.org/ , be able to start with a single machine and no configuration/setup/complexity. Then grow out.

    We just had a discussion on the WebPlatform Podcast about all of this P2P stuff (https://www.youtube.com/watch?v=NYiArgkAklE) although, like I said, I probably got too jargony.

    But props to circleci for calling out the elephant in the room. Great marketing actually.

  • by clifanatic on 8/17/16, 1:49 PM

    I'm sure I could go back 5 years and see an almost identical complaint about Heroku.
  • by bbcbasic on 8/17/16, 12:56 PM

    Solution: .NET
  • by jondubois on 8/17/16, 9:56 AM

    That's why we started https://baasil.io/.

    The idea is you can deploy any app to any infrastructure of your choice (inside Docker containers). This means that you are not locked into Heroku and it gives you much more flexibility.

    It's basically a hosted Rancher http://rancher.com/ service with a focus on a specific stack.

    I think in the future, there will be a lot of services like Baasil.io (specializing in various stacks/frameworks) and managed by various open source communities.

    Docker and Kubernetes WILL become more accessible to developers - I would bet my life on it.

    I'm currently building a CLI tool to allow deploying in a single command - So you can get the simplicity of Heroku while not losing any flexibility/control over your architecture.