Show notes:
Podcast:
- William Henry [MP3 - 31:49]
Transcript:
Gordon
Haff: I'm very happy today to have with me a co‑author of mine, a
frequent collaborator in many things, open source. That is, William Henry,
senior distinguished engineer at Red Hat. Why don't we start with some
background in your part? How did you get involved with open source?
William
Henry: It was probably two different areas going on at the time. It
would have been late '90s and then early 2000 when I was working in the whole
distributed computing space and CORBA and JEE.
I
was on one side obviously experimenting with Linux. I had downloaded Slackware
probably in '97 and was playing with this at home on an old IBM Aptiva.
At
the same time at work, I was seeing a lot of open source initiatives in the
CORBA space for example and also in JEE or J2EE at the time or JBoss. Then of
course there was a lot of other projects like Fuse and Camel that were coming
out on the SOA side for things like messaging and Web services.
I
was getting involved somewhat with those but not maybe as much hands‑on but
more as a user and a person who was advising folks the new upstream community
from companies I worked with.
Then
of course, I joined Red Hat in 2008 and that was a completely different level
of experience with open source, complete explosion. It was like drinking from
the firehose. Because I'd been working so far up the stack, on the SOA side you
almost assumed that a lot of thing were already done in operating system.
We
had lots of cool things like Solaris, IBM AIX, and HP‑UX, those sort of things
on the Unix side surely, all the real innovation was kind of done.
Perhaps
Linux was trying to catch up, in some ways, to some of the innovations on those
platforms, but there wasn't any real innovation going on.
Of
course, I discovered very quickly there was
massive innovation in terms of real time, then containers come along, and we
still see that we're innovating quite a lot of Linux platforms while there's an
explosion of technologies on top of that, as well.
Gordon:
That seems to be one of the watershed changes that's happened with open
source over the last, maybe 10, 15 years. But, even more so recently is that
open source software, Linux, various message buses, and things like that.
Really, what their "innovation" was, initially, much lower cost. That
was really a disruptive factor of open source.
The
big change that we've been seeing over the last 10 years, and I'd argue it's
accelerated in the last 5, is open source has become where much of the
innovation in the tech industry is happening.
William:
Yeah, I think it's still a combination though. In other words, yes,
there's an explosion of innovation, particularly if you look at gravitating
around the Linux platform. In many ways, some of the innovation has already
been invented before, and we've just come up with different flavors of it. Less
expensive flavors of it.
The
whole Linux‑based platform, be that everything up front, the Linux kernel to
things like containers or virtualization of the cloud, it's almost like a
reinvention of technology we were doing in the '60s and '70s, just at a much
greater scale. We've reinvented the mainframe.
At
the same time, you're right. Some of the innovation is around the scale. It is
a massive scale that we can do now because of the cheapness, and because of the
availability of infrastructure as a service, where the access to the time
sharing of a platform is much broader. It's very simple for me to go to the
cloud today, just for a simple demo. I don't have to go out and acquire
anything or do anything.
I
can get that resource in Sydney or in Ireland on the cloud there. It doesn't
really matter. The scale and the amount of technology out there provides a
huge, layered platform for innovation on top of that. At the same time, we're
still doing things we did 20 or 30 years ago, just cooler in color with video
and streaming and everything else.
Gordon:
In a way, I think the meme that everything has been done before is a
little bit tired. Of course, there's many echoes and many instantiations of concepts
which may go back decades and decades. For instance, to say, "Oh, public
Clouds are just like timesharing." Well, they're really not.
William:
Right. We've got the type of multi‑tenancy that you're seeing on clouds
today. Almost certainly to the user, the opaqueness of the geographical
distribution of those assets is incredible. The types of tools and innovation
and availability of software and services on top of that are a lot different.
Gordon:
We just talked about, I'm not sure if it's a tension, but certainly
there's these two faces of open source about easy to acquire, low cost, very
accessible on the one hand, and this engine for innovation on the other hand.
I'd
like to take us into some of the other dual aspects that we see around open
source today. We just touched on one of them, which is also relevant to your
work with container tools like Podman, Buildah, and so forth.
That
is, when do you standardize and when you innovate, and how does standardization
and innovation play against each other?
William:
This is a tough one because you can see certain innovations out there
thriving because of standards. Yet, you can see other innovations out there
dying despite standards. Not so much dying but perhaps not delivering where
people thought they would deliver.
Then
the de facto standards, for example, you could look at things like container
area for a start, where that was driven by an open source, but very non‑standard
technology called Docker. Docker then moved with the rest of the community that
were developing it into an open source standard OCI.
That
has obviously become very successful. You can see other things like Kafka which
comes out of the Apache Software Foundation. They came out with essentially
another messaging type system which was living in Apache alongside things like
Qpid.
Qpid
became perhaps less interesting despite the fact that it was based on the AMQP
standard. Less interesting from a commercial perspective than something like
Kafka which, as we know, exploded.
Just
because you build a standard, it needs a huge community behind it. In some
ways, a large community can drive the standards. You have projects like
Kubernetes which obviously came out of Google and open source.It wasn't like a
standard, but companies like Red Hat and others saw how powerful it was going
to be. We jumped in on that project. Now Kubernetes has become the de facto
standard. Of course, the whole Cloud Native Computing Foundation which is part
of the Linux Foundation has essentially grown up out of that.
It's
a complex area where you have communities. You have commercial. You have
standards. It's about trying to find a perfect storm of bringing those three
things together that really drive the popularity or the success of open source
project.
Gordon:
It's not universal, and there certainly are areas that are standards
first. I think you are highlighting an important way in which standardization
has evolved in many cases. You talked about some of your work in the
middleware, in the eventing space.
If
you look at the first iteration of that SOA 1.0 if you would, that was very
much standardized in principle, but it was very heavy weight, very big vendor‑driven
type of standardization. Whereas what we're seeing with the OCI container
specs, obviously what we're seeing with Kubernetes.
What
we're seeing with many many of the projects in cloud‑native space, is some
company, some individual is going out and writing software that scratches some
edge.
Other
people are using that. Other people participating in the community. People are
going, "Hey, this works. Let's make it a standard now." There's code‑first
approach to standardization.
William:
It's really fascinating because when you look at it the whole...When you
talk about SOA 1.0 and you talk about things like CORBA for example, there was
a massive consortium, a huge standards effort with CORBA with massive
commercial backing, with banks and telecommunication companies etc.
Perhaps
it slowed down because of that. It didn't have a clear vision and scale‑level
approach to it. Also, you can look at the W3C around standards as well. That
was almost dead on arrival. Lots of lesson learned.
I
was involved with the WS policy work. You can see again massive collaboration,
huge organizations, massive money behind it. Folks like IBM and Microsoft and
others, but they never really took off.
What
had happened instead was the free market and innovation in the industry to
solve problems first. For example, REST‑based approaches won. Standards doesn't
always solve the problem. What I tell you what it will do though is what
standard will help figure out is whether something will last.
When
you look at the lessons learned from things like CORBA or things like W3C, it's
very easy to get a cool "hello world" demonstration up and going in
the space. When it comes to massive scale and transactions and security and all
those other things, you pull in from all these standards bodies and industry
experts and all that.
That's
where the drag comes in, the lag comes. In many ways, the innovation today
benefits from those early standards not because they were successful, [laughs]
but in many ways because they were successful for a time and there were these
lessons learned from them.
When
you look at some of the hugely scalable architectures we have today, they are ‑‑
as you say ‑‑ built on the backs of the knowledge we gained from those quite
frankly successful standards from the past.
It's
not that they were all closed‑sourced sided because you had things in the CORBA
space and other areas there. Obviously, we still got things like JBoss around
today in the JEE.
Essentially
lots of lesson learned there, but not exactly a lot of open source products
that you will regard as massively successful in today's enterprise computing
deployment.
Gordon:
OSI [Open Systems Interconnection, in this context] was another one I was
involved with back in the day somewhat. The network model, people use it. It's
a pretty good model, but the products that came out of it… There was an awful
lot of money wasted on that.
William:
We still learned the lesson though. We still talk about L3 or whatever
level layer 3 on today when we talk or whatever layer.
We
still use that as a standard way of talking about how we're going to
communicate in a distributed way and whether a piece of open‑sourced software
you used in today's speaking at one of those layers etc. They are not OSI
projects as you say.
Gordon:
Let's talk about some of the other trade‑offs or challenges or conflicts
that we see in the space. You've mentioned community a number of times, what
are some of the challenges you see with communities around factors like
standardization, innovation, stability and trading off all of those things?
William:
Again, it's a tough one because I tell you that one of the areas that a
lot of community people don't understand fully is the marketability of the
technology they are using and how they are bringing it to market.
An
example of that that I would use would be on the Qpid side. Here you had open
source projects with a huge backing from the many of the banks out there
because of AMQP, the standard.
You
had an AMQP standard, you had an open‑sourced project called Qpid. When you
take that to market, it was a very long sale cycle. There were people who would
understand it. The low latency nature, all that coolness, it's open source,
super‑fast, scalable, had a fault tolerance and all that stuff built in.
Unless
you know how to sell that and sell it at scale, it comes hard to take it to
market. You have a salesforce that's selling lots of different products and
some of them are easier to sell than others and maybe are bigger price point.
Maybe
your Qpid‑based product is less interesting. Something on the other hand like
Kafka comes out and not so much geared towards a massive commercial product
sale but more as a service, when it comes to thing like cloud or how to build
it into a platform.
Suddenly
it becomes a hugely more popular way of doing things because the way it's
brought to market was different.
Gordon:
Maybe this would serve a good segue to talk about business models and
some of the trade‑offs there a bit. We'll hear an argument with some of my
colleagues about whether open source is a business model or not.
It's
certainly fair to say that whether or not software's is open source or more
broadly how software is licensed enables and forecloses certain pass in a
business model.
That
said, I still find it's useful to separate the open sourceness and the business
modelish because while they interact with each other, they are not the same
thing. Open source is not a business model by itself.
William:
No, it is not. The other thing I would say is just because your open
source project isn't able to be directly marketed doesn't mean that there's not
a market for it within something else. For example, Qpid, it's still got a
market there as something that's deployed within other larger platforms.
For
example, the Proton Project there can be used extensively for a non‑brokered,
more distributed messaging pattern. It's very good. What you have to understand
is that when you're taking things to market in the open‑source world you're
competing with a lot of other different stories. Particularly, you as a
community, in terms of how successful this will be commercially, you're very
dependent on the people who are taking it to market for you.
A
lot of communities will build really wonderful technology. You're sending a guy
off to the bazaar. He's taking his rugs, his baskets, or whatever it is to it.
How is he presenting those in the bazaar at his stall? How is he showing them?
Is
your product sitting down on a back shelf because he looks at it and goes,
"I don't know how to sell it. If somebody asks me for it, I'll sell it to
them, but really I don't want it up front on my countertop. What I want up on
front of my countertop are the things that sell maybe easily or maybe bring me
a lot of markup." Whatever it might be.
How
you're taking your open source project from the community, and how you expect
that to be delivered in the market is super important. Sometimes it may be that
you're not selling it direct. You're selling it as part of platform or
something else that you're doing.
Messaging
becomes an example of that where people really don't want to handle the
complexity of setting up and managing complex messaging systems, but they may
certainly consume a messaging service because it's easy, and they don't have to
worry about it.
Gordon:
We've been seeing things play out in the Hadoop space, for example, about
this recently. That seems to be a difficult stand‑alone sale. In a way, this
doesn't even have that much to do directly with open source because I can look
up other areas of software, like developer tools for example, that have
historically been very difficult to sell for the most part.
Another
trade‑off that we frequently see is between the speed of innovation ‑‑ rapid
change, come out with a new incompatible build every day ‑‑ and stability,
particularly for enterprise customers who just want something that works.
It
doesn't necessarily need to be the latest and greatest. Fairly or not, open
source communities' projects have sometimes gotten a little bit of a bad rap
for being, maybe, a little too focused on the change ‑‑ early change, often,
rule of development. What are some of your experiences with those trade‑offs?
William:
Obviously, there's a thirst, particularly the bleeding edge curve of that
innovation, where people want newer features faster. They want to be able to
turn around and consume. We want to do fault tolerance. It needs to be multi‑tenant
or it needs to be more secure.
They're
hungry for these new features but they also are struggling with how they're
going to consume it now. There's two aspects of that too. There's the cloud‑native
world or whatever, and your traditional apps, where you want more stability.
You
still want more stability but at the same time you want to innovate. You want
to be able to consume these newer technologies faster. One of the things I
would say that's changed is that, in the past, communities would want people to
catch up. The consumer would say, "No. We wanna slow down."
That's
why companies like Red Hat were so successful because we were able to provide
stability for 10 years. For example, on Linux, when Red Hat opened Red Hat
Enterprise Linux. We're able to provide that stability for them.
At
the same time you had innovation on the cloud space which has accelerated including
DevOps and, as you say, the break it early, fix it and deploy often ‑‑ all that
good stuff or whatever. Anyway, what I'm seeing now is a very different trend.
We've
gone through three stages. One is the stability side with a, "We want the
innovation but we can't really handle this in our infrastructure," to the
world of DevOps and CICD where it was more of a, "Yes, we want to consume
it and we can consume it. Give it to us faster."
To
now, almost a situation where it has become, "Yes, we want to consume it
faster, but we don't want to own it anymore. We just want to consume it as a
service."
We're
almost at this third phase of...It's like this comedian that I heard who was
talking about a joke...his name is Gary Coleman, I believe. He's talking about
how this generation will say "I want all of my music on my phone
now," and they're going "What do you mean all of the music on your
phone?"
He
says, "Sorry, what I meant was all the music on my phone, right now,
this moment." "How much are you willing to pay for it?"
"Pay for it? Nothing."
That's
the joke. My final offer is nothing. If people want everything now to be
consumable as a service for free. It's a struggle on the...It's great in some
ways for the upstream communities, but it also means they have to be innovating
faster. It's interesting for customers like Red Hat as they have to try to
pivot to perhaps more of a services‑based model.
Software
as a service, providing messaging as a service, for example, or container build
as a service, or whatever that might be. It obviously fits nicely into some of
the cloud vendors, but also puts a challenge on the consumers as to "How
do we want to standardize all this?" If we want to innovate fast and
consume these things as a service what are they tradeoffs?
Do
we expect a standardized consumption model across all of this or do we expect
that we're going to have different pipelines into these different deployment
platforms.
Gordon:
That's why the critical tradeoffs you have here is we went into near the
end of our book that I'll put a free download link in the show notes. You have
this ease of consumption in public clouds and software as a service, but in
order to get that ease of consumption you are in many ways locking yourself
into that single provider.
One
of the great both opportunities and challenges for open source broadly is how
do you get those attractive experiences to customers in a way that has a
sustainable business model while allowing the end users the ability to move
their work loads, move their data, move their intellectual property to wherever
they want to run it.
William:
I think that's going to be a challenge for a while. That's where the
industry is in a waiting mode a little bit. Obviously they're not waiting for
it in terms of business. They're expecting someone to solve that for them.
Whether
that's their open source vendor or someone like Red Hat or whether it's the
cloud provider themselves, but as they rushed to the cloud and as they're
embracing open‑hybrid cloud and multi‑cloud approaches. They are hitting that
whole, just how portable is this container stuff, for example? How easy is it
for me to move my instances across these various clouds and to bring them back
on‑prem?
We've
done a very good job, people like you and me, of talking about the benefits of
open hyper‑cloud and multi‑cloud but the industry itself is still trying to
catch up with that model. Things like OpenShift can provide a single
consolidated platform across public clouds and private clouds, etc. The
question is whether in this approach how will these developers and operators
and essentially CIO offices respond to that?
They're
trying to look at a consumption model. Other things like OpenShift Dedicated
and other things like Azure OpenShift or Red Hat OpenShift also help with that
model. I still think it's a, "Hurry up with my business." "Keep
going everybody." "Go fast." "Do things quickly." But
really, are you all making the right decision here?
Because
there seems to be, "I don't want to own all this stuff anymore, I want
somebody else to own it." Are we doing it right? I think that a lot of the
people I've been talking to are struggling with that decision.
Gordon:
Well, there's really been this fundamental shift with Cloud, with
software as a service. To provide a different way of consuming software and for
that matter, really consuming services to your music example earlier. That
changed environment. I'm not sure...In fact, I am sure it really hasn't been
internalized by everyone.
We
run software differently than we used to. Even when we do it on premise and a
lot of those implications are still being thrashed out there.
William,
anything that you'd like to add before we close? There's a couple of topics I
would love to dive down to but I think those are entire podcast by themselves.
So let's hit those another day.
William:
I would just say that what's exciting is that open source is running
strong. Never before have we seen such validation of open sources we do today.
In terms of the innovation, there's enterprise‑type projects for almost
everything and they continue to improve. You're seeing things like Federation
getting added to things like Kubernetes.
We're
seeing some good collaboration around these open source projects with
companies. With a view to moving more and more of these community‑led projects
into a standards approach. All that has been wonderful.
On
the other hand, we have this consumption model that there's some hesitation in.
Because despite the appetite for all of this innovation there is still
struggles, as there always has been with open source world of how people are
going to consume this. How they want to consume it and who do they want to own
the problem.
Before
it was, "Can you own this from an upstream management perspective?"
Now it's, "Yes, can I have it on‑prem but can you also own it off‑prem in
the cloud so I don't have to do anything up there to play it because I really
don't want to be in this mess of complicated IT business."
On
the other hand, you’ve got small practitioners and consumers out there that are
just quite happy to roll up their sleeves, deploy a bunch of servers and build
all the cool stuff on top of it. It's really an exciting place to be. There's
all sorts of different people in the marketplace consuming this. There's some
super smart people in the communities upstream.
Of
course, there's some excellent standards been driven out of these projects that
everyone's going to benefit from and continue to make money in the market on.
No comments:
Post a Comment