4 ms·
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 late
by zobzu 11y ago
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#L149 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.
- predakanga 11y agoWhile 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.html 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 https://github.com/ruby/ruby/blob/trunk/aclocal.m4)
- techdragon 11y agoYou 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.
- optimusclimb 11y agoWhile 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 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?
- tomaslin 11y agoThis 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.
- fs111 11y agoThat comes from the build tool and is auto generated: https://docs.gradle.org/current/userguide/gradle_wrapper.html https://docs.gradle.org/current/userguide/gradle_wrapper.htm...
- annnnd 11y agoLines 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.