Live data from Hacker News

Microsoft’s Azure DevOps: An Unsatisfying Adventure

toxicbakery.github.io

101–110 of 197 posts

Re: Microsoft’s Azure DevOps: An Unsatisfying Adventure

#101
post #84

Earlier quoted context omitted.

Here's my experience with Microsoft. I believe their feedback mechanisms are placebo, pacifiers for loud people. Microsoft pesters you to give feedback and works hard to ignore them. And then goes ahead with what they initially planned. At the end, they'll announce - "We had delivered what you wanted. Based on feedback..." And then you start wondering if you're in the minority and other people are simply crazy until…

I've never seen an answer on the weird social.microsoft site that had anything resembling a remotely usable technical response.

These large cut and paste answers with completely irrelevant instructions and a lot of begging for points. Totally useless and infuriating if you've spent a lot of time writing a good report.

Re: Microsoft’s Azure DevOps: An Unsatisfying Adventure

#103
I've had similar issues with Microsofts CI implementation. I'll describe some of the problems I've had here, note that the last time I've used it is about half a year ago, maybe things have changed though I doubt it. This was with VisualStudio TeamServices on an instance hosted by Microsoft itself. I deployed self-hosted build agents as they were orders of magnitude faster.

Probably the biggest problem I've had was that build agents are stateful. The agent checksout a repository when the build starts, and removes the directory when it's done. It doesn't however clean up other changes made on the system, such as cache directories for tooling and other data you might move out of your build directory. I believe that builds must be reproducible, and therefore must start with a clean and consistent environment. You don't want builds to fail down the line because a precious job broke the agents environment, or even worse, having jobs succeed only on the agent because some dependent files are left on the agent. Other CI solutions use Docker containers for this to build in, which is great, as they are immutable (or stateless, rather) by default. This is in my opinion the single worst 'feature', making these CI builds distrustful.

Secondly, automating these agents is hard. If you want to automatically scale these self-hosted build agents horizontally based on demand, good luck! When starting an agent for the first time, you've to go through some cumbersome configuration wizard to set it up. There is no simple static configuration file available to use instead, or at least, I wasn't able to find it at the time. To mitigate the previous problem with stateful agents I created a Docker container having an agent in it, which was in fact quite difficult to properly achieve. I automatically restarted these agent containers multiple times a day in order to clean-up any garbage that was unintentionally left by a job. This is a horrible hack to slightly improve their (in my opinion) broken system, but it had the bonus of making these agents more easily scalable.

Another thing is the build configuration. I prefer having a configuration in a simple YAML file in the same repository, to have it as _close_ to the code as possible. Although Microsoft does provide such functionality it doesn't seem to be common to do it this way, and if I remember correctly it's much more difficult to properly set-up and use than for example, a Travis CI configuration. They do provide a graphical interface to configure these build steps though, which is useful when getting started with the system so you can get a feel of what is possible. It provides some graphical blocks/steps to achieve various thighs, such as doing an FTP upload or running a CLI command, with all kinds of weird properties. Maybe that's because Microsofts things are generally less scriptable. But yet again, I prefer a simple script in an in-repository configuration file, because it feels somewhat constrained and limited.

Sadly, it doesn't stop here:

- sometimes jobs just didn't want to stop, and no, bashing the abort button a million times didn't fix things. In some situations it took an hour before jobs were properly killed.

- the interface (VisualStudo TeamServices) is horrible to navigate, have had to wild-click many times to find what I need. I'm sure this will improve once you use it for a longer period though.

- and there are many other inconsistencies and little problems, such as build logs loading half of the time.

Maybe I'm grumpy. Maybe I'm ranting about nothing. I don't know. Maybe things have changed, or will change, at least I hope it will. I didn't have a great time with their CI system, my experience was horrible as you can probably tell by now. It feels like an unfinished product, that was released to quickly just to satisfy customers, so they didn't have to switch to some other platform not owned by Microsoft for their CI needs. What amazes me is that there are quite a few free alternatives available which are much simpler and more elegant, such as GitLab, Travis and Circle CI. They are easier to navigate, are usually quite quick, don't have the issues I've (and the article have) described. And greatest of all, you can get it up and running in minutes without having to worry about it afterwards.

Re: Microsoft’s Azure DevOps: An Unsatisfying Adventure

#104
post #51

PM for Azure DevOps here. We've been investing heavily in our user experience and our CI/CD experience, so I'm sad to see that we've disappointed here. Some of these complaints I would agree with - in particularly, we're not (yet) caching build resources - though we're working on this now. But most of these complaints I was quite surprised to hear; not an experience I would want someone to have or what I see from the…

We use Azure DevOps extensively at my work and, after having used GitHub, Gitlab, self hosted solutions, Jenkins, TeamCity... DevOps ranks dead last. It's the entire experience. The UI is terribly clunky everywhere. The worst for me are pull requests. Incredibly tough to work with people on a pull request. I can't even point you to "a" particular problem - for us it's broken everywhere. From the weird file comparison…

Same here. Azure has a killer feature in India that neither AWS or Google have - multiple data centres. Because of Indian data residency guidelines, that becomes critical for business continuity planning.

But the Azure UI is so bad that people are willing to forego stuff like that just to avoid being on Azure.

The Azure product teams have asked for feedback from startup multiple times with consistent answers on UI - I'm no longer willing to believe that this isn't the consequence of some global UI mandate to make things look "windows-y"

Re: Microsoft’s Azure DevOps: An Unsatisfying Adventure

#105
post #69

Earlier quoted context omitted.

pretty much it, also azure is slightly better at pricing in asia

This mimics the mac vs windows argument I had with my brother-in-law where it boiled down to the fact that you could run windows on something cheaper than a macbook. Even though in order to remap caps lock to something reasonable you have to edit the registry. In 2019. The best answer I think involves windows server 2003 resource kit and its UI, which is so old it could get a driver's license. You save money but what…

It's not even about the price. I have no problem tweaking my Linux desktop to use an international Dvorak layout (useful for those European languages with ä's and é's) and switching the caps and ctrl keys. Say what you want about Gnome 3, but this works just fine.

On Windows.. I get a US only bare bone Dvorak layout and few ways to remap the caps/ctrl keys. Messing with the registry is at best annoying on my gaming (only) PC but impossible on a corporate locked down desktop. Then I'm lucky if the corporate package repo comes with AutoHotkey that can remap keys in a very hacky way.

A lot of Windows 98 still shines through in the basic usability suite even on the newest versions of Windows. Even the on-screen keyboard on a (Android) phone is more fun than the HID mess in Windows.

Re: Microsoft’s Azure DevOps: An Unsatisfying Adventure

#106
Interesting post. I feel for him using this tool. Had my own experience with team foundation server on premise. Although a different tool, many of the problems seem quite similar.

A little rant:

To the cloud infrastructure of MS: I don't know if anyone uses it for anything serious and doesn't complain about severe performance issues not only related to builds, but everything. From administrative sites to hosted environments. I read a lot of excuses mainly saying I should adjust my expectations regarding speed for cloud solutions... Problem is that there are other providers that don't have these issues.

Seriously, you need only to use office 365 if you want to get an impression of bad performance. Because everything is slow.

This is from a location in Europe, but I really doubt there are significantly more performant locations.

Re: Microsoft’s Azure DevOps: An Unsatisfying Adventure

#107

How do all of you people get on this broken stuff on Azure with GCP and AWS (I think) being so good? Is it like free credits?

I don’t see the relation between Azure DevOps (an issue management and build system competing with Jira, Gitlab and others) and GCP/AWS?

Even if I run on some other cloud than Azure, I still need the software. I could even run Azure DevOps on Amazon’s cloud I guess (If I choose the self hosted option) but the UX complaints would apply there as well...

Re: Microsoft’s Azure DevOps: An Unsatisfying Adventure

#108
I don't have much complains about DevOps UX, the only problems that sometimes impact me are the caching/random broken builds.

But Azure Portal UX is another story, the Blade UI is one of the worst things I've ever used, I hate scrolling horizontally, I can't open things in a new tab, it's really frustrating.

Re: Microsoft’s Azure DevOps: An Unsatisfying Adventure

#109
Makes me really appreciate my setup of:

- GitHub for source control

- AppVeyor for CI

- BlazeMeter for Load Testing

- Google Cloud for Cloud Hosting

- Slack for Team Chat

- MyGet for private NuGet feeds

- Trello for task management

- ELK cloud for log management

Yes it is many different services, but as a small team I like that we can pick the best tool for the job instead of trying to find a hammer for all nails which doesn't exist.

It also makes us less worried about changes, because we are not invested in any vendor so much that if they do something which makes our lives too difficult that we couldn't easily move on elsewhere.

Also it forces us to design our software in such a way that we don't lock ourselves into a specific vendor. For example we would have all our builds scripted instead of configured via some GUIs with the configuration stored on some vendor's cloud. The build script runs from anywhere. We can run our builds on Azure DevOps, TravisCI, CircleCi or anywhere. We just prefer to use AppVeyor because it's the smoothest CI server IMHO, but the transition elsewhere is just a matter of invoking a single build script.

I genuinely also prefer to work with a product which is doing one thing really good instead of having one product which does everything mediocre. From an operations POV it is just as simple as having everything in one place. We have one browser tab open for each service and it makes us actually a lot more productive. I am always only 1-2 clicks max away from what I need.

Teams/Companies who choose an all-in-one solution (e.g. everything in Azure + Azure DevOps) don't care about the productivity of their teams IMHO. They care more about the one person who has to do the accounting for their subscriptions or something like that :/

Post reply on HN