Live data from Hacker News

Choosing Go to implement the new GOV.UK router

gdstechnology.blog.gov.uk

61–70 of 98 posts

Re: Choosing Go to implement the new GOV.UK router

#61
post #58
post #13

Earlier quoted context omitted.

It does not look that bad actually. Your list lacks Oracle, Microsoft technologies to really complain about inefficient usage of public money. I would love if my country used open source more.

Sadly UK local and national government projects are very much rotten with Oracle and MS solutions. source: I used to work for local government

New legislation means local councils have to justify their requirement for Oracle/MS licencing costs over open-source/free software. They can still buy the licences if they can show they really need it, but loads of councils are now properly evaluating solutions like Canonical's OS/Cloud stack.

Re: Choosing Go to implement the new GOV.UK router

#62
post #42

Earlier quoted context omitted.

No we're just handling that 60 million people's mortgages, insurance, financial status, financial history, legal and personal data instead...

Are you a price comparison site? Or Experian or Equifax perhaps? Unless you clearly say you're not just some enterprise business that aren't exactly known for their technical competence this comment is totally ambiguous. Do you just think you know what you're talking about, or do you actually?

None of them although close.

You don't have to take my opinion seriously. I could work in Tescos and be splurging false information out on the Internet. I could be an elaborate hoax!

However, please don't write off people as "just some enterprise business that isn't exactly known for its technical competence" because we all know that startups get it right all the time as well...

As for do I know versus do I think, there is the third option do others know and that is all that is important when it comes to getting paid...

Re: Choosing Go to implement the new GOV.UK router

#63
post #25
post #22

Earlier quoted context omitted.

Dynamic route updating with nginx is not fun.

No but updating static routes via puppet/ansible and reloading is a piece of piss. If your site is volatile enough that the routing needs to change that often then there is something wrong either with your information architecture or your development process.

The back-end to GOV.UK is designed to be very configurable by non-technical users, and many of their routes are dynamic. While Puppet could be used, the process of automating those edits, then rolling them out to all the servers, but in batches so that no downtime is experienced with restarts, configuring load balancers to be aware of this, etc, etc, the whole process has lots of points that could fail.

It really sounds like a dynamic front-end that is aware of the routes would be a much better idea, far less that can go wrong.

Re: Choosing Go to implement the new GOV.UK router

#64
post #23

Earlier quoted context omitted.

Presumably by having a list of different technologies they are taking the approach of right tool for the job. The obvious side affect also being that engineers who work on this need to be polyglot as opposed to any specific tech. I certainly categorise this as a good thing, a developer and as a stakeholder (UK resident and user of the site).

Actually they're using the wrong tools for the job because they're having to rewrite bits regularly in different tech. There is obviously no evaluation taking place. Establishing technical standards and homogenity is important on projects of this scale.

I think they established the reasons for it fairly well in the blog post, and even better in the comments elsewhere. I'd say they are the right tools for the job.

Re: Choosing Go to implement the new GOV.UK router

#65
post #53

"Erlang, Go, Scala, and Clojure are all good fits and represent the current state of the art." - why is the choice so limited? It seems to be quite JVM-focused as well, I would consider F#/Nemerle as well. Erlang was invented in 1986 by the way - so a safe bet rather than "state of the art".

F# and Nemerle are both based on the CLR, and unfortunately the performance of Mono is pretty bad, and not really suitable yet for high performance use-cases like this. Also I'd Erlang is state of the art, even though it is so old (Haskell too), but I wouldn't call it an entirely safe bet because it requires quite a different style of programming and experience, so might not work well for certain developers.

Isn't Erlang just a (semi-)functional language with Actor Model baked in? I might be wrong but it seems that you just need any dev familiar with message queues and functional style.

Re: Choosing Go to implement the new GOV.UK router

#66
post #14
post #13

Earlier quoted context omitted.

It does not look that bad actually. Your list lacks Oracle, Microsoft technologies to really complain about inefficient usage of public money. I would love if my country used open source more.

Agree entirely there! However it doesn't excuse people working on a web site funded by the taxpayer using it as a technology playground.

Having worked along side a number of government projects, I can confidently say that all the projects based on "off the shelf" products end up becoming vastly more expensive because you usually end up with hugely expensive support contracts with BT / IBM / MS / Oracle / etc and often the solutions need some bespoke tuning to work the way needed, so you add on expensive consultancy costs to have the software adapted to fit.

Where as developing stuff in house means that you're employing significantly cheaper labour (namely, the rubbish salaries that most get in the public sector vs the private sector) and as a bonus the cost is more likely going to stay within the UK (ie you're not paying multinational companies nor their overseas consultants (Oracle was particularly bad for this as they dumped our stuff in a US data centre and our support contacts were all living somewhere in eastern Europe. So very little - if anything - provided was UK based).

Sadly our government doesn't seem to understand about doing anything in between - or at least not that I observed when I used to work there. It was either entirely bespoke or entirely bought, developed and set up by some overpriced conglomerate (or worse yet, outsourced completely). So going by the trends that I've witnessed, I'd rather the technology playgrounds just so long as they remain developed in house.

Re: Choosing Go to implement the new GOV.UK router

#67
post #25

Earlier quoted context omitted.

No but updating static routes via puppet/ansible and reloading is a piece of piss. If your site is volatile enough that the routing needs to change that often then there is something wrong either with your information architecture or your development process.

The back-end to GOV.UK is designed to be very configurable by non-technical users, and many of their routes are dynamic. While Puppet could be used, the process of automating those edits, then rolling them out to all the servers, but in batches so that no downtime is experienced with restarts, configuring load balancers to be aware of this, etc, etc, the whole process has lots of points that could fail. It really sou…

Allowing non-technical users access to routes is a disaster waiting to happen. The whole thing should have a QA process around it. I'm genuinely surprised it's being run like this.

The biggest point of failure is always humans and you're basically handing them a gun there.

Re: Choosing Go to implement the new GOV.UK router

#68
post #55
post #3

Not impressed. I have nothing against Go (in fact I like it) but they seem to have built GOV.UK with every damn bit of technology there is available. I've seen Varnish, Go, Ruby, Python, Scala, Java, Mongo, MySQL, nginx, rails, sinatra, Django and PILES of Not Invented Here. Also I'm not sure it's a great use of public money to build stuff like this when they should have nginx/apache up front and some configuration.…

I wonder if the technology churn is more of an issue with the structure and organisation of GOV.UK rather than a technical one. In the post he states that the previous router was unmaintainable as there was no-one with a deep knowledge of Scala in the team and that this was the main reason for the re-write. Why was this allowed to happen? Is there a rapid/high turn over of staff or are teams moved around without rega…

Possible. Some good thoughts there.

Re: Choosing Go to implement the new GOV.UK router

#69
post #3

Not impressed. I have nothing against Go (in fact I like it) but they seem to have built GOV.UK with every damn bit of technology there is available. I've seen Varnish, Go, Ruby, Python, Scala, Java, Mongo, MySQL, nginx, rails, sinatra, Django and PILES of Not Invented Here. Also I'm not sure it's a great use of public money to build stuff like this when they should have nginx/apache up front and some configuration.…

Yes, but this time they have really found the silver bullet (honestly!).

... something something blub something something agile rockstar ...

Re: Choosing Go to implement the new GOV.UK router

#70
post #49

Earlier quoted context omitted.

It will come with proportionately less cost initially and over time though which is the issue. Efficiency is a major problem in government. Government should have a low financial impact on society where possible. A government entering a market with an already solved problem is wasteful at best. If they'd contributed time to Nginx or mod_proxy then they would have a net positive social effect. But they didn't. They bu…

A government entering a market with an already solved problem is wasteful at best. If they'd contributed time to Nginx or mod_proxy then they would have a net positive social effect. Is this some sort of Markov-chained free-market/El-Reg-at-its-most-prolix/libertarian experiment in satire? Well played!

That made me laugh and I've upvoted you for that, but no, it's serious.

Various governments are already throwing money at Open Document Foundation (France, Germany come to mind) to support LibreOffice so why shouldn't we throw a few quid at nginx/apache?

Or should we go and write our own office suite?

Post reply on HN