Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Interviews Jason McGee of IBM Talks about Open Source Projects and the Interactions at the Collaboration Summit

Jason McGee of IBM Talks about Open Source Projects and the Interactions at the Collaboration Summit


1. [...]Why don't you take a moment to introduce yourself to the infoQ audience.

Rags's full question: Hello and welcome, InfoQ audience. With me, I have Jason McGee from IBM. Jason, why don't you take a moment to introduce yourself to the infoQ audience.

Sure. I'm Jason McGee. I currently am in the role of VP and CTO for IBM Cloud Platform. So it means I own architecture and engineering for IBM's entire Cloud portfolio. So infrastructure with Softlayer Bluemix on premise and off.


2. [...]How does open source influence the Cloud and vice versa?

Rags's full question: Okay, great. So we are here at the Collaboration Summit where everything open source is being discussed, right? How does open source influence the Cloud and vice versa?

So I think the Cloud has been kind of an interesting space with open source. I think the kind of initial phase of Cloud was more heavily weighted towards proprietary solutions, the initial kind of big Cloud players with Amazon and Microsoft and Google to a large extent are built on top of proprietary software platforms. But over the last let's say five years probably really starting with the rise of OpenStack. Open source has become fundamental to how a lot of Cloud technologies are built, to varying degrees. You know, some of the -- some players are using open source and parts of their portfolio. From an IBM perspective, we think open technologies should form the foundation on which Cloud is built. That open source gives customers freedom of choice and gives them mobility and eliminates fears of lock in and things like that and therefore our Cloud Platform is built at all layers on in open technology foundation.


3. [...]How do I kind of pick these, how do I kind of make it work in a way -- works as one thing, right?

Rags's full question: Okay. That brings me to the next question which is a lot of these open source projects have overlaps and you talked about that, right? As somebody who is supposed to build a platform that developers should use and developers are going to base their solutions around, it's not easy to kind of mix and match these, right? So talk about the challenges here and from a developer perspective, if I'm picking and choosing these different technologies, how do I kind of pick these, how do I kind of make it work in a way -- works as one thing, right?

Yes. It's a real challenge to be honest. It's not an unexpected challenge. I mean open source communities are vibrant. They grow and change over time as communities evolve. They expand their scope and they try to kind of take an inclusive perspective where they solve more and more tangential or related problems around the core problem they started with. So whether it's OpenStack moving up in the containers or containers moving down into networking and storage, there is a kind of a natural evolution that happens within these different communities.

And I think, one of the things that have been driving out in the Cloud is an evolution and thinking about Cloud itself. I think historically and I talk about this a little bit in my talk. Historically, I think people thought about Infrastructure as a Service, as one domain. They thought of Platform as a Service as a different domain. Open source projects kind of started within those domains but then domains kind of crossed and blend together. So now we have a situation where we really have kind of a view of Cloud which is a more of spectrum of capabilities from infrastructure through applications and platforms up into high level services and therefore the projects that kind of underpin these open technologies are starting to overlap.

I think -- you know I'm pragmatic. I don't think we ever get to okay, let's look at the landscape and pick one of everything and we'll all focus on one.There is always going to be some overlap. I think as a developer, it’s particularly challenging right now because to some extent, you have to fit yourself into or make a choice about kind of what technology is to leverage because those technologies represent APIs that you actually program against. They control how you package your applications. Take the container space. Do you create a Docker image with a Docker file and do Docker run to start it or do you create a project with Cloud Foundry and do a cf push? I mean at the end, that might be the same app but it's two different approaches and you have to pick which one do you use and that’s I think problematic.

So what I would like to see is just more acknowledgement in these projects, more acknowledgement in the open source community as a community that we are creating this overlap and how can we work together, collaborate together to either allow the integration to be more seamless or to minimize overlap. Maybe solving networking isn't core to a given project and they can adopt some existing approach that another project is to find. So I think there is a real opportunity here for everyone to try to work together. If they view that these technologies are actually going to get used together in Cloud.


4. Got, okay. Let's dwell a little bit more on the container ecosystem, right?


Rags: I don't think a lot of developers understand what is CNCF and what is OCI and what is the difference between the two. Should they even care? For example, Docker, I don't think came up with a standard and then started implementing and then kind of try to standardize it so to say, right?



5. Should developers really pay attention to the different initiatives that are happening in the Linux Foundation?

I think they should pay attention absolutely. I mean they should recognize that they are in a formative stage. I mean I think it was happening with OCI and CNCF is what often happens with open source which is you get -- you know there is open source and there is open governance around an open source project and there are many technologies that people use with open source technologies that fundamentally do not have an open governance model meaning they are primarily controlled by a single entity, a corporation and the roadmap of that project, what's a priority to implement in that project to maintain as their project are controlled by one entity. Certainly in IBM, we would like to see projects that are both open from a software licensing perspective and open from a governance perspective so we can all collaborate together on what the roadmap of those technologies should be.

That's really what's happening with OCI and CNCF. We're taking incredibly popular technologies like Docker that are open sourced and have frankly vibrant ecosystems around them and lots of contributors from other companies. Its starting to put them in a structure where the governance model around them is more open as well, where more people can collaborate on that project, lead that project, guide its future direction. That's important for developers because ultimately what we hope happens in those communities is they set the technology direction for container space going forward. Now they are both very early. They both got launched in summer. They both really only got organized towards the end of last year. So we're months in to the process.

They are different in scope. OCI is pretty focused. OCI is when we say a container runtime, and when we say container image, we should all have a common definition of what that means. So we need -- that's a pretty fundamental construct and something that many of us believe will form the foundation for how apps are built for the next 10 plus years. We should all agree on what that means. And so the goal of OCI is simple, to find the spec and reference implementation for what a container is and what a container image is. But if you look at what's happening in the container space, just the raw container is not enough. What people are really doing is building Cloud native apps. They have containers.

Their app is a collection of containers working together. There is networking assumptions between those containers. There is orchestration that has to happen around those containers. There is logging and monitoring and service discovery and routing and all of those concerns have to work together to actually build an app and that's really the domain of CNCF. It's how do we all collaborate on those higher level ideas that will define how you build Cloud native apps going forward. So a developer should care. Maybe what's actually there today is pretty either base stuff or still emerging like CNCF is frankly still emerging and defining itself. But they should pay attention because I think over the next 12, 18, 24 months, you'll see some really important things happening in those communities.


7. [...]What are the low-hanging here where there are other opportunities to collaborate between these different initiatives I guess?

Rags's full question: So there is really no need to kind of there. What are the low-hanging here where there are other opportunities to collaborate between these different initiatives I guess?

Yes. So that service is example I think was a good one to show that sometimes in one related community, there is other ideas that are good ideas that if you really think about the roadmap of containers for example, that idea of how you connect to something, connect to a service is going to show up because this is just logical for it show up. But I don't want it to show up in a way where that community invents their own model for how to do that like let's adopt the model that exists. Let's improve the model that exist if we don't like it and adopt it so that we can all get to a common base.

So I think service is a good example. I think I talked about authorization. That's another one like we need some common view of how to do authorization and how to define groups of resources that rules on those groups of resources and every project is kind of defining their own ideas about what those things look like and that's really problematic when you bring everything together, right? So authorization would be another one where I'd love to see people kind of collaborate on a common model we could all extend and use.

I also talked about networking. I mean networking is like the opposite side of the problem. Networking is hard. It's really hard to build software networking in a way that's easy to use that's feature rich and that scales and we should not be all solving that problem multiple times. And so networking is a place where it feels like the community should get together because it's actually in their long-term best interest. You have to have a common model for how we do networking that we can all just use and extend into these new platforms because doing it well is very hard.


8. [...]How do I make this journey? How do I start this journey because I don't quite know where to start?

Rags's full question: Okay. Now obviously you come from more of an enterprise Java background. So if I'm an enterprise Java developer in an enterprise and I hear these terms being thrown around microservices, cloud native and all that. How do I make this journey? How do I start this journey because I don't quite know where to start?

Yes. So it's actually a really common question which is how do I take advantage of new ideas? I think there is always a couple of ways. I mean the one thing I think people should avoid is this mentality that I'm going to take a bunch of existing things, existing applications and I'm going to do a big transformation project and re-architect or re-write those projects. I don't see very many of those that either work or that worked well enough to pay dividends, the cost of that transformation usually exceeds the benefit.

Usually the place to start is in something new that you're doing which could be a new app or it could be an extension to an existing app or could be some function you are building around some new app that try to leverage the new ideas like microservices, like cloud native for new things that you're doing. In every enterprise I talk to is doing new things. None of them are static. None of them has changed their apps in 20 years. There is a set of core apps that maybe are their rate of change is now low and there is a set of new things they're building where the rate of change is very high and things like microservices are optimized for high rate of change collaboration.

And so first and foremost, use these new ideas on new stuff. The second area which falls out of that then is when you often find is new apps that you are building with new approaches have to connect to and use the existing applications. They never run an isolation and so what you do is you want to build a kind of new connections back to these existing applications. Those new connections will drive new usage patterns on those existing applications and what you will find is opportunities to selectively transform pieces of your existing state in ways that benefit the new things you are doing. So you don't look at that 800 apps you could have and say oh, I'm going to transfer all 800 apps, you will end up saying well these new things mean those five apps are really getting hit in any way and it would make sense to maybe I should re-architect that and pull a piece of that application closer to the new world.

And so I see this kind of evolution of like targeted transformation that's informed by the new things that we're doing. And I think patterns like that make a lot of sense and platforms like Cloud that we're building have in them all the capabilities you need to deal with that. It has the platforms to build the new things. It has the integration capabilities you need to connect the existing things and it has the features like support for Java and support for existing programming models that allow you to more easily pull the old things forward, re-architect the existing platform.


9. [...]Any closing thoughts about the summit or anything along the same lines, feel free to jump in.

Rags's full question: Okay, cool. I know that this is still day one of the Collaboration Summit. Any closing thoughts about the summit or anything along the same lines, feel free to jump in.

I mean my only closing thought is the whole point of all these leaders being here. I mean here you have a conference relatively small in size but populated by a lot of the leaders and thought leaders in the Industry and around all these projects. The purpose of us being here is to meet and talk and to find ways to work together and collaborate through these problems. So I'm hopeful on day one that through some of the conversations we have on the keynotes today, we have really laid out not only all the amazing innovation that's happening but where those innovations can connect to each other and I'm looking forward to the conversations that'll follow about how we can bring the world together.

Rags: Okay. Thank you, Jason. Thanks, everyone.

Thank you.

May 15, 2016

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p