News for hackers. Stuff that matters.
Re:Spinnaker: Global Continuous Delivery by Netflix by zobzu on Tuesday November 17, 2015 @12:17AM (#10579296)
Looks cool albeit i've a rant:

It's "funny" that for a deployment system, its own deployment follows all this crappy standards people have been running by lately.

Config in $HOME, startup with a random shell script, install is a compilation of python/bash/etc scripts that do magic, ... I mean look at this: https://github.com/spinnaker/spinnaker/blob/master/gradlew#L... (or actually, read the whole script, be scared)

Software nowadays.. a bunch of shell scripts with hacks all over which few actually knows how to write :/ (writing bash scripts well does take quite a bit of knowledge)

/rant over, send me your downvotes.

Re:Spinnaker: Global Continuous Delivery by Netflix by predakanga on Tuesday November 17, 2015 @01:01AM (#10579422)
While I agree with you generally, the linked script isn't really a fair criticism of Spinnaker.

The linked script is just a standard bootstrap script, used by Gradle - I won't defend the logic behind it (they have a page for that themselves: https://docs.gradle.org/current/userguide/gradle_wrapper.htm...), but you can see the same thing in just about any project's Autotools files (see https://github.com/ruby/ruby/blob/trunk/aclocal.m4)

Re:Spinnaker: Global Continuous Delivery by Netflix by fs111 on Tuesday November 17, 2015 @02:04AM (#10579596)
That comes from the build tool and is auto generated: https://docs.gradle.org/current/userguide/gradle_wrapper.htm...
Re:Spinnaker: Global Continuous Delivery by Netflix by techdragon on Tuesday November 17, 2015 @01:46AM (#10579536)
You get my comment and up vote instead.

I'm increasingly frustrated by the discovery of major projects where this sort of "spaghetti code" is considered acceptable. Few of them deem it a priority to remediate or even just document the mess. Of particular note is the lineage of build system scripts used by first Gentoo then mutated by the chromeos team, finally used by and dramatically simplified by the coreos team who forked off from the chromeos fully and are cleaning up the mess left by the chromeos team hacking away on these bash scripts. There are dozens of places where simple hash bang python scripts would have cleaned up hundreds of lines of bash boilerplate.

I'm incredibly frustrated by the lack of willingness to decide that the outcome is key and the build scripts should be a testable part of the release process and a growing number of places I find have wound up considering the build scripts part of their release tests therefore they should change as infrequently as possible.

Not even going to start talking about programs that don't have stand alone build/install instructions because they always generate builds inside some kind of harness like a Debian or RPM source package.

Re:Spinnaker: Global Continuous Delivery by Netflix by annnnd on Tuesday November 17, 2015 @02:05AM (#10579598)
Lines 140-149... I have mixed feelings about that. On one hand, the software developer in me keeps screaming "DRY! DRY! DRY!". On the other hand I find it really concise and understandable. I mean, can you look at this code and NOT know what it does? Now try to make the code better - do you still get the same effect? Probably not.

(disclaimer: I am arguing about this specific case, not about such code smells in general)

UPDATE: ...and if I missed something besides that the code is repeated, please correct me. Bash is not my strong point.

Re:Spinnaker: Global Continuous Delivery by Netflix by optimusclimb on Tuesday November 17, 2015 @02:01AM (#10579588)
While I certainly wouldn't let it be the thing I judge the project on, to your point, why is step 3 here:

http://spinnaker.io/documentation/getting_started.html

install the thing that's going to manage your whole deployment pipeline by curling a bash script from the 'net?

Re:Spinnaker: Global Continuous Delivery by Netflix by tomaslin on Tuesday November 17, 2015 @04:25AM (#10580010)
This is not the way it is deployed inside of Netflix. The scripts were collaborated by Kenzan and Google to make it easy to try and install Spinnaker. There is also a docker-compose configuration to make it easy to try. Internally, we deploy each microservice to a separate aws intance that is heavily monitored.
Re:Spinnaker: Global Continuous Delivery by Netflix by andyfleming on Tuesday November 17, 2015 @02:28AM (#10579671)
Re:Spinnaker: Global Continuous Delivery by Netflix by mgreg on Tuesday November 17, 2015 @01:33AM (#10579496)
Anyone know why this wasn't published in github.com/neflix as the rest of the NetFlix OSS tools are but rather in a new account at github.com/spinnaker? They've also gone through the trouble of doing more PR and setting up spinnaker.io for this.
Re:Spinnaker: Global Continuous Delivery by Netflix by andyfleming on Tuesday November 17, 2015 @02:28AM (#10579670)
There was mention of partnering with Google, Microsoft, and Pivotal (in their blog post http://techblog.netflix.com/2015/11/global-continuous-delive... ). Maybe they wanted to have a separate github organization for easier management, etc.
Re:Spinnaker: Global Continuous Delivery by Netflix by parasubvert on Tuesday November 17, 2015 @12:45AM (#10579373)
This is Netflix's replacement for their Asgard platform: http://techblog.netflix.com/2015/09/moving-from-asgard-to-sp...

Also largely written in Groovy / Spring Boot. http://www.groovy-lang.org

Re:Spinnaker: Global Continuous Delivery by Netflix by mikecb on Tuesday November 17, 2015 @01:00PM (#10582811)
I'm interested in what this says about Netflix's plans to stay on AWS, move off of it, or simply diversify their infrastructure. Maybe' we'll see a Chaos (Whatever's bigger than Kong), that models knocking out an entire provider: i.e., don't have to rely on Amazon's WAN anymore because they also have Cloud Platform/Azure to supply things.
Re:Spinnaker: Global Continuous Delivery by Netflix by d2xdy2 on Tuesday November 17, 2015 @12:41AM (#10579365)
Jeeze; for a second I thought Netflix had somehow made a sentient CD platform...

> http://www.artificialbrains.com/spinnaker

Re:Spinnaker: Global Continuous Delivery by Netflix by trextrex on Tuesday November 17, 2015 @12:00PM (#10582379)
There is also a SpiNNaker computer platform [1]

[1] http://apt.cs.manchester.ac.uk/projects/SpiNNaker/

Re:Spinnaker: Global Continuous Delivery by Netflix by jguimont on Tuesday November 17, 2015 @08:38AM (#10580898)
A Spinnaker is a type sail first and foremost.
Re:Spinnaker: Global Continuous Delivery by Netflix by js2 on Tuesday November 17, 2015 @10:39AM (#10581715)
And also the first and foremost sail. :-)
Re:Spinnaker: Global Continuous Delivery by Netflix by randomsearch on Tuesday November 17, 2015 @04:30AM (#10580029)
Indeed. It's not a good sign that Netflix weren't aware of this very high-profile long-standing project with the same name. It suggests that they aren't much in touch with the academic CS community.
Re:Spinnaker: Global Continuous Delivery by Netflix by biot on Tuesday November 17, 2015 @05:16AM (#10580175)
Should names be globally unique? Spinnaker Software [0] was around in the early 1980s and can claim the throne for longest use of the name in the computer space.

[0] https://en.wikipedia.org/wiki/Spinnaker_Software

Re:Spinnaker: Global Continuous Delivery by Netflix by randomsearch on Tuesday November 17, 2015 @08:50AM (#10580963)
> Should names be globally unique?

I didn't say that.

I just think it's unlikely they would have chosen the name if they were aware of Manchester's project, which means they didn't know about it, which means they don't read much about CS research.

Re:Spinnaker: Global Continuous Delivery by Netflix by stephen on Tuesday November 17, 2015 @07:45AM (#10580681)
We had looked at Asgard, but didn't use it because it used dedicated load balancers (e.g. separate ec2 instances) instead of ELBs (IIRC).

Our deployments were already using ELBs and we wanted to stay with that.

Does anyone know if this has changed with Spinnaker?

I would not be surprised if Spinnaker's canary/etc. features require finer-grained control over the traffic than an ELB with just course-grained "add/remove instance" gives you, so it probably makes sense.

Re:Spinnaker: Global Continuous Delivery by Netflix by stuff4ben on Tuesday November 17, 2015 @07:52AM (#10580705)
Curious how this compares to Jenkins Workflow plugin suite. At first glance Spinnaker seems to be simpler and has a prettier UI. Workflow has a lot more customization possible and the crappy Jenkins UI to go along with it. I might look at Spinnaker anyways just to keep from gouging my eyes out on the Jenkins "UI".
Re:Spinnaker: Global Continuous Delivery by Netflix by merb on Tuesday November 17, 2015 @02:56AM (#10579738)
I have a mixed feeling about this. I mean how do you Deliver Spinnaker. The project is fucking complex, if everything goes wrong you are pretty much done..
Re:Spinnaker: Global Continuous Delivery by Netflix by mrbonner on Tuesday November 17, 2015 @12:35PM (#10582651)
Is this mainly written in Groovy? I tried to look at the github repo source but only saw a bunch of install shell scripts.
Re:Spinnaker: Global Continuous Delivery by Netflix by fletcherr on Tuesday November 17, 2015 @01:51PM (#10583136)
It's a bunch of microservices, look at the other projects in the org.
Re:Spinnaker: Global Continuous Delivery by Netflix by catshirt on Tuesday November 17, 2015 @12:28AM (#10579330)
at a glance... seems nearly identical to OpsWorks. am i right? why would i use one or the other?

that said, and maybe i can answer my own question... OpsWorks has been a grand pain in the ass, so new options even built on AWS come welcome.

Re:Spinnaker: Global Continuous Delivery by Netflix by yeukhon on Tuesday November 17, 2015 @12:36AM (#10579358)
My reading is that this project aims to do more than just OpsWork. It basically manages your deployment and release cycle, including releasing your infrastructure changes, if you make it so.

You can basically do all of this in Jenkins today, but you don't have the fancy GUI, that's my impression so far.

http://spinnaker.io/online_docs/overview/overview.html

Re:Spinnaker: Global Continuous Delivery by Netflix by daviddumenil on Tuesday November 17, 2015 @01:15AM (#10579453)
A replacement for Jenkins as the CI Pipeline management tool is my understanding.

It now makes sense why they stepped away from the Job DSL Jenkins plugin that they helped create a while back (though there's still support for Jenkins steps in there which'll be a great help with porting existing pipelines).

Re:Spinnaker: Global Continuous Delivery by Netflix by stuff4ben on Tuesday November 17, 2015 @07:54AM (#10580711)
JobDSL was more along the lines of a templating engine with groovy customization that tends to break Jenkins masters. The Workflow plugin would be more akin to Spinnaker than JobDSL.
Re:Spinnaker: Global Continuous Delivery by Netflix by daviddumenil on Tuesday November 17, 2015 @10:24AM (#10581570)
I'm not saying it's a like for like replacement, I'm saying they stopped working on JobDSL because they were working on Spinnaker.

This feels like a Jenkins replacement rather than a Jenkins plugin replacement or at least something that sits atop Jenkins in driving your build and deployment activities (it's got support to call and watch Jenkins jobs so it's sensible to assume they use both).

I'm interested to hear that JobDSL is painful for Jenkins masters do you know what the pain points are?

Re:Spinnaker: Global Continuous Delivery by Netflix by stuff4ben on Tuesday November 17, 2015 @11:08AM (#10581955)
>I'm interested to hear that JobDSL is painful for Jenkins masters do you know what the pain points are?

In a multi-tenant environment that we run using Enterprise Jenkins from CloudBees, the default option for JobDSL is to create jobs at the root level which is problematic if you don't allow teams at that level. We've also had issues with jobs just getting "stuck" which even after a restart of the master doesn't clear it out. Plus the fact that it encourages bad behavior among teams by allowing them to create thousands of jobs that never get cleaned up is just another reason we've banned it from other installations we've setup. Jenkins itself is pretty terrible and even the proposed 2.0 changes don't appear to do anything to change things for the better. If Spinnaker can replace Jenkins, more power to them. But I don't think that's the initial aim.

Regarding your other comment about "something that sits atop Jenkins in driving your build and deployment activities" that's just about exactly what the Workflow plugin ecosystem does. However you're still stuck with Jenkins and its baggage.

Re:Spinnaker: Global Continuous Delivery by Netflix by bmoyles on Tuesday November 17, 2015 @12:52PM (#10582760)
JobDSL came from an engineer who collaborated with some others at a conference. It's not anything we own or drive the development of. It's used in some places internally but is not pervasive. The Spinnaker guys were not responsible for JobDSL, totally unrelated.
Re:Spinnaker: Global Continuous Delivery by Netflix by cfieber on Tuesday November 17, 2015 @06:32AM (#10580414)
Spinnaker is pretty focussed on deployments and as such has those operations as first class citizens (deploy, resize, manage traffic, destroy, etc)

Jenkins is also a first class stage type - it is the way we run the build and test side of our deployments

Re:Spinnaker: Global Continuous Delivery by Netflix by catshirt on Tuesday November 17, 2015 @05:15AM (#10580170)
yeah sorry, perhaps i was too broad. not OpsWorks specifically, but i'm wondering if it provides anything AWS services in general don't provide. like CodePipeline/CodeDeploy. think i just need to read a bit more or try it out.
Re:Spinnaker: Global Continuous Delivery by Netflix by odiroot on Tuesday November 17, 2015 @02:32AM (#10579676)
I really like they used Python for this sort of "system tool". Didn't know Netflix actually uses Python at all, I was expecting all of it to be Java.
Re:Spinnaker: Global Continuous Delivery by Netflix by fletcherr on Tuesday November 17, 2015 @02:59AM (#10579752)
Er. It is almost all Java (well, mostly Groovy). Netflix uses a lot of Python but there's virtually none in this project.
Re:Spinnaker: Global Continuous Delivery by Netflix by pluma on Tuesday November 17, 2015 @10:06AM (#10581459)
odiroot was likely talking about this: https://github.com/spinnaker/spinnaker/search?l=python
Re:Spinnaker: Global Continuous Delivery by Netflix by odiroot on Wednesday November 18, 2015 @09:53AM (#10587978)
Exactly, Github says 84.1% Python.