Skip to content

Instantly share code, notes, and snippets.

@passcod
Last active May 24, 2016 02:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save passcod/fe17a117be19d5a5f7578f1ea77dc42d to your computer and use it in GitHub Desktop.
Save passcod/fe17a117be19d5a5f7578f1ea77dc42d to your computer and use it in GitHub Desktop.
Docker Cloud rant

I ranted about this on Twitter, @ah3rz advised me about these forums, so here goes, hoping the team sees it. Strong language ahead, I was (and still am) fairly upset.

Browser is Firefox, latest, on Arch Linux. Flash is not available, JS runs fine (I don't have noscript), I do have uBlock enabled with the default lists. Firefox's Tracking Protection doesn't detect (and block) anything. In the console, I see a bunch of HSTS errors, but it doesn't seem to be be affecting behaviour:

Strict-Transport-Security: The site specified a header that could not be parsed successfully.

Background: I use Docker Cloud both for managing my personal services (blog, various websites, irc bouncer, etc) and at work, for production and staging services, as well as a few ops tools. We have several dozen services across three nodes total, and probably will be doubling that in the next year. Not big, but not tiny, either.

First, links to the the two tweet chains:

The tweets are quoted and replicated with context and details below, but for reference:

I'll synthesise and attempt to bring more details:

(I've included each tweet's text in quotes below each link.)


https://twitter.com/passcod/status/732923966159880192

  • Notifications appear OVER the menu that contains "Edit". So when containers fail repeatedly, you can't edit them to fix.

That's talking about the toast notifcations in the top right corner, and the "three dots" menus on services, stacks, and containers, as well as the user account drop down menu. If I mess up the configuration of a service, like a typo in the command, and the container is set to restart always, there will be several notifications a minute, stacking up and making it essentially impossible to get to the edit menu, as even when closing a toast, another will take its place. I had to go back to the old UI to fix this.

This is also annoying when there is a single toast, because you have to close it before getting access to the menus, but it's not as critical.


https://twitter.com/passcod/status/732924265402499072

  • They commit the deadly (for users) sin of having gray text on… guess what… lightgray background!

Here's what I'm talking about (the values of env vars):

Using Lea Verou's trusty contrast ratio tool, this particular combination of colours gets a 2.6 contrast score. This is abysmal. In my office, I can read it but have to strain a bit. On my laptop, in less ideal lighting conditions, when working remotely (most often because things are breaking while I'm home), I tried adjusting the screen to even be able to read it, before giving up and opening my dev tools to change the text colour. I have 20/20 vision nowadays, but was less fortunate until a few months ago; this would have been unreadable at all times then.


https://twitter.com/passcod/status/732924588506521600

  • "Container Update (die) Success" is probably my favourite message so far. "Success! Your container died!" Gee, thanks.

This is a minor issue. When a container dies unexpectedly (with error code > 0), it may be useful to not have the notification say it was "a success". This is also present in the old version, though, so no biggie.


https://twitter.com/passcod/status/732925142263697409

  • The environment variables edit section doesn't actually allow you to edit variables. It duplicates displays, and you can't edit them. Woo!

This is the edit screen. Not quite sure why there is duplication here. The bottom one seems editable, but attempting to actually type anything fails. Tbh, this feels like a mistaken React value={} instead of defaultValue={}, or not handling onChange properly on controlled form components. Obviously this prevents me from editing env vars. I had to go back to Classic UI to fix this. (Or alternatively, use the docker-cloud CLI.)


https://twitter.com/passcod/status/732925618736652288

  • Speaking of envvar editing, the grouping of similar-looking vars is kinda cool? Except it collapses groups of one, so I have to click them [to see what the value is].

I don't like clicking more than necessary. This seems to have been fixed already, though, so I'll skip it.


https://twitter.com/passcod/status/732926402492653568

  • The new UI displays less information for the same screen size. I mean, sure, but I run dozens of services, and having them on 5 pages is ☹

Minor. Pretty straightforward. When managing dozens of services, I don't like have to page through them, and I don't like that I can now only see 8 at a time on a 22" screen, especially given there's only 6 bits of information per line (name, stack, # of containers, status, image, age). I frequently use the Services view as a kind of dashboard to see the overall, but detailed, status; maybe having a separate Dashboard view where the same information is displayed more densely and obviously (see next point) would fill that need?

Otherwise, I'd really like be able to quick-search everything. Think Sublime Text / Atom Cmd-P palettes, or Gmail search box: being able to type a few letters to get where and what I want would be ace. I realise this is not a trivial feature, though!


https://twitter.com/passcod/status/732927605326766081

  • My favourite so far! "Running" is a turquoisy kind of blue green. "Not running" is a light blue. No way to see the difference at a glance.

Minor. I don't have a screenshot for that one, sorry. Having only a slight visual difference, at a glance, between two very different statuses is confusing.


https://twitter.com/passcod/status/732928500303200256

  • Finally, there's no loading indicator or spinner when changing pages, so I get zero feedback that my click actually did something.

This is especially frustrating when, either because of the network, or because of a bug, the next page doesn't actually load.


https://twitter.com/passcod/status/734880958810193920

Ok, really pissed off at @docker Cloud's new UI. Again. Yesterday I used it to do a production deploy change and IT DIDN'T SAVE MY CHANGES.

This was changing the version/tag of a service. I just tried it now, same behaviour. Went to edit, could change the tag. Then I hit "Save changes". I got the little spinny thing. It punted me back to the read-only view. It even gave me the "Success: Service updated" toast, and the Slack notification. But the change hadn't actually been made. Refreshing the page confirmed that it wasn't just a case of the page not updating.

When I did it yesterday, I didn't check that. I redeployed the service, believing I had it all done, and went off. Only several hours later, after confused debugging, did we realise nothing had actually changed. I had to go back to Classic UI to fix it.


I like the new UI. It's cleaner, it looks more in-line with the rest of Docker's websites. It feels a bit faster, probably because there's less page reloading going on. But after using it and being very frustrated, as the above illustrates, I feel like it is alpha-quality. There's serious bugs. I feel like I can't trust it to do its job.

https://twitter.com/passcod/status/732929197283250176

And hey, alpha-quality software is great! Just don't make it the default UI out of the blue for everyone, maybe?

Firstly, the optout is per-browser, not per-account. And it's done via cookie. So I have to switch back to Classic every time I open it on a new device, or whenever the cookie expires or is deleted. When I often open the UI to do something quickly, often on different machines, often on browsers I do dev work with. The incident that prompted this post, yesterday, was caused by this UI appearing and me not bothering to switch back to Classic for a 30 second task, and then trusting it would work.

Second, there was no message to tell me a new UI was available, how to switch back, what was better/different, and where I should report bugs. It just became the default. Which would have been okay if it worked well from the get go. As it is, I don't trust Docker Cloud anymore. When I would have, and did, recommend it to friends and colleagues in the past, I feel I cannot, in good conscience, do that now.

I still like Docker Cloud a lot. It's going to continue being a big part of our infrastructure, going and growing. I know it's going to get better. It's software! But it's been very frustrating with this new UI being the broken new default. It also doesn't inspire confidence when I'm trying to showcase the cool new ops tooling.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment