Archive for Microsoft

Cloud Vendors Release CI/CD Tools

Cloud CI/CD Tools

This was also released under a slightly different name on Amalgam Insights.

Development organization continue to feel increasing pressure to produce better code more quickly. To help accomplish that faster-better philosophy, a number of methodologies have emerged that that help organizations quickly merge individual code, test it, and deploy to production. While DevOps is actually a management methodology, it is predicated on an integrated pipeline that drives code from development to production deployment smoothly. In order to achieve these goals, companies have adopted continuous integration and continuous deployment (CI/CD) tool sets. These tools, from companies such as Atlassian and GitLab, help developers to merge individual code into the deployable code bases that make up an application and then push them out to test and production environments.

Cloud vendors have lately been releasing their own CI/CD tools to their customers. In some cases, these are extensions of existing tools, such as Microsoft Visual Team Studio on Azure. Google’s recently announced Cloud Build as well as AWS CodeDeploy and CodePipeline are CI/CD tools developed specifically for their cloud environments. Cloud CI/CD tools are rarely all-encompassing and often rely on other open source or commercial products, such as Jenkins or Git, to achieve a full CI/CD pipeline.

These products represent more than just new entries into an increasingly crowded CI/CD market. They are clearly part of a longer-term strategy by cloud service providers to become so integrated into the DevOps pipeline that moving to a new vendor or adopting a multi-cloud strategy would be much more difficult. Many developers start with a single cloud service provider in order to explore cloud computing and deploy their initial applications. Adopting the cloud vendor’s CI/CD tools embeds the cloud vendor deeply in the development process. The cloud service provider is no longer sitting at the end of the development pipeline; They are integrated and vital to the development process itself. Even in the case where the cloud service provider CI/CD tools support hybrid cloud deployments, they are always designed for the cloud vendors own offerings. Google Cloud Build and Microsoft Visual Studio certainly follow this model.

There is danger for commercial vendors of CI/CD products outside these cloud vendors. They are now competing with native products, integrated into the sales and technical environment of the cloud vendor. Purchasing products from a cloud vendor is as easy as buying anything else from the cloud portal and they are immediately aware of the services the cloud vendor offers.  No fuss, no muss.

This isn’t a problem for companies committed to a particular cloud service provider. Using native tools designed for the primary environment offers better integration, less work, and ease of use that is hard to achieve with external tools. The cost of these tools is often utility-based and, hence, elastic based on the amount of work product flowing through the pipeline. The trend toward native cloud CI/CD tools also helps explain Microsoft’s purchase of GitHub. GitHub, while cloud agnostic, will be much for powerful when completely integrated into Azure – for Microsoft customers anyway.

Building tools that strongly embed a particular cloud vendor into the DevOps pipeline is clearly strategic even if it promotes monoculture. There will be advantages for customers as well as cloud vendors. It remains to be seen if the advantages to customers overcome the inevitable vendor lock-in that the CI/CD tools are meant to create.

Why Linux Desktops Haven’t Taken Over the World

KDE Plasma Splash Screen

There’s no doubt that Linux has taken over the datacenter. Walk into any major datacenter in the world and there will be racks of Linux servers with only a handful of Windows Servers. Most cloud services are based on Linux as well. Some big banks still have ancient mainframes but many of those are using Linux. Even Microsoft has embraced Linux! To older technologists that’s like hearing the Pope has embraced Satanism. What began as a hobby more than 25 years ago is now the dominant server operating system. So why then do we see so few Linux desktops?

To answer that question, some myths need to be dispensed with immediately. They are:

  • Linux Desktops are Hard to Use. Not at all. Sure, 25 years ago when Linux was a DYI sort of operating system and everything had to be configured by hand it was damn hard to install and maintain. Now? Not so much. Linux desktops have a host of utilities that make installation, maintenance, updates, and acquiring new software easy. Snap and Flatpak are making the bundling and installation of software, well, a snap. Most major distributions* have, for years, come with utilities to find and install third party software in an application store. This was long before the Microsoft Store and Android application stores existed.
  • Linux Desktops Are Primitive and Ugly. Right away, we need to get something out of the way – aesthetics matter. If someone is going to stare at a desktop for hours on end it had better be decent enough to look at. Functionality is important too. A clunky user experience (UX) becomes a drag on productivity over time. This is why Microsoft has put so much effort into the Windows 10 UX and aesthetics over the past few years and why Apple’s macOS is still around at all.
    This criticism of the Linux desktop UX is outdated. Distributions such as Ubuntu by Canonical, Elementary OS, and Linux Mint have complete and rich user experiences. Most use a variation of Gnome or KDE Plasma desktops but, as is the beauty of Linux, they can be replaced with something that suits individual styles. Gnome appeals to a more minimalist approach, while KDE Plasma is fond of Widgets. Elementary OS uses its own variation on Gnome that makes it much more macOS-like. All use modern motifs that are instantly recognizable to the average consumer.
  • Nothing Runs on Linux. Actually, a lot of software runs on Linux, most importantly browsers. As more software is consumed through the browser, it has become the single most important piece of software for any computer to have. The two most common browsers, Mozilla’s Firefox and Google Chrome, run on Linux. In addition, there are many other browsers, such as Midori, that run on Linux including some specialized browsers that only run on Linux. A lot of software common on Windows or macOS desktops is also available for Linux including Spotify and Skype. Most open source software, such as LibreOffice and GIMP, have their roots in Linux and are also cross-platform.

Linux desktops have two obvious advantages. First, they tend to have lower resource needs. There are distributions that can run on computers with as low as 256MB of RAM, although they are very limited in what they can do. Linux can run comfortably on a computer with only 2GB of RAM and a rather tiny hard drive. A Linux desktop can run on a single board computer such as a Raspberry PI. This is why modern Linux desktops are a great way to keep using an old computer that can’t upgrade to new versions Windows anymore.

The second advantage is that it is often free. Most major Linux desktops can be downloaded and installed for free. There are also thousands of useful applications that are equally free. Unlike software from individuals which can get old and stale if the author gets bored or distracted, most free Linux software is supported by open source communities and foundations that work to keep the software fresh and modern.

Given the advantages of Linux and having debunked the myths, here are five reasons why Linux has not taken over the desktop as it has the server:

  • Free Software Comes at A Price – Support Is Not Included. Yes, there is support from the “community” but that is different than having someone to call and get guided assistance. There are paid support plans for many distributions and, while it’s still not very expensive for commercial users, paid support is relatively expensive for consumers. This is especially the case when a paid operating system, such as Windows or macOS, comes pre-installed on a computer and includes support.
  • Old Software. Everyone has legacy software. For a consumer, it might mean an old game that they love or that greeting card builder from 2001. Companies have lots of homegrown or purchased software that only run on Windows or macOS. In either case, this software is too expensive or difficult to replace even if it is only used occasionally.
  • Inertia. Whether it’s companies or individuals, it’s often easier to stick with the familiar. Investments in knowledge and support, not to mention software, are preserved. This dynamic can change when the familiar OS changes radically, such as the case of moving from Windows 7 to Window 8.
  • It’s Not What Is Used at Work. What is used at work often dictates what happens in the home. Early in personal computing, Microsoft was able to get a foothold in the workplace while Apple was looking to win over the consumer. Look how that turned out. It’s much easier to know one operating system for both work and home.
  • Microsoft Office. All of the other reasons for the lack of traction of Linux desktops can be overcome in a number of ways. One can use a switch to Linux as an opportunity to upgrade other software, learn new things, or come to the realization what home and work are different spheres of life. The one thing that Linux desktops cannot overcome on its own is that Microsoft Office for Linux simply doesn’t exist and everyone uses Microsoft Office. The open source community can push LibreOffice or any other alternatives until the Sun burns out, but it won’t change the fact that the mass of companies and individual consumers use Microsoft Office. The browser version of Office is okay, but everyone needs a desktop version either for the features or because they don’t have a decent Internet connection. Using a Linux desktop laptop on an airplane means not using Microsoft Office and having to rely on software that has a different user experience and imperfect compatibility.

There will always be individuals and companies that will adopt Linux desktops for philosophical or cost reasons. Linux is great for reviving an old computer that would otherwise be useless. It is also possible to use only Free and Open Source (FOSS) software with a Linux computer, which some people value. The same cannot be said for Microsoft Windows or macOS from Apple. Developers also adopt Linux desktops since they sync up well with the server environments they are working with. The masses of computer users, on the other hand, are unlikely to switch until Microsoft Office is available for Linux and there is a decent Windows compatibility layer. Until then Windows owns the desktop, with macOs the alternative for Microsoft haters.

* A Linux Distribution is a bundle of software that runs on top of the basic Linux system. desktop distributions include a desktop environment and a series of free applications including a browser and usually the LibreOffice office productivity suite.