Red Hat, Inc. (RHT)
August 10, 2011 12:00 pm ET
Kerri Catallozzi -
Issac Roth -
Bryan Che -
Mark Little - CEO of Spire Medical.
Hello. It's been just over 90 days since we launched OpenShift at the Red Hat Summit. Our goal then and to this day remains really simple: remove all the complexity that developers have to deal with in developing, deploying and managing applications.
Developers should be writing code, not dealing with the complexities of infrastructure, monitoring software, configuration software and application management, and they certainly shouldn't have to become skilled in the art and voodoos of database administration or the varied nuances of each and every infrastructure cloud.
Removing the complexity, we made great progress in that goal. Today, a developer can develop and deploy an application on the OpenShift cloud in under 10 seconds. And if the need arises, the auto scaling built in to OpenShift enables the application to take advantage of the elastic scalability offered by the cloud.
For the last 15 years, Red Hat has been developing the open source infrastructure and middleware that powers most major clouds and tens of thousands of enterprises globally. So building and running the OpenShift service draws right from Red Hat's core strengths of scalable, secure, reliable enterprise architecture, and it's been fun as well.
Our industry is going through an inflection point, with applications no longer being solely written for deployment on private networks and desktops. Today's developers need to be skilled in development, deployment, security, multi-tenancy and management of applications on the public cloud. By taking advantage of OpenShift, they'll leverage Platform-as-a-Service capabilities that solve these very problems, and they will have a partner in Red Hat who holds dearly collaborative development of open source and all the freedoms it affords as a core corporate tenet.
Removing complexity, the speed to deploy apps in seconds, developers are also very passionate about their preferred language, which is why at launch, we supported PHP, Ruby and Python, all very popular languages for web applications. Since launch, we also added Perl to improve our support for LAMP development. But some of the most demanding enterprise applications are written in Java, with one of the powerful aspects of Java being its adherence to a uniform standard for application interoperability and platform independence.
Today, Red Hat has reached another milestone in OpenShift with a full support for the JBoss Application Server, and not just JBoss but the next generation built around the Java EE 6 standard, an industry first in bringing standards to the public cloud, making it easier for enterprises to migrate their Java applications to the cloud and giving developers even more choice. Now developers can choose their language: Ruby, PHP, Python, Perl or Java.
Mark Little leads the JBoss engineering team for Red Hat, and he's now going to take you through more of the details.
Thanks, Bryan. So I'm going to, as Bryan said, talk about the integration that we've been doing with AS 7.0 and OpenShift, Express and Flex. I'm going to start though by laying some groundwork on what AS 7 really is, at least in terms of Java Enterprise Edition 6.
So if we go to my first slide. So enterprise middleware is not a new thing. It's not like it suddenly came on the scene when Java was introduced back in 1996. Enterprise middleware can trace its heritage back at least 4 decades through the likes of DCE and CORBA and beyond that into bespoke vendor-specific implementations.
However, as Bryan pointed out, a lot of critical applications today are built on Java and are built on the Java EE standard. And EE 6 is the latest version of that standard. It was ratified by the open standard group, the Java community process late last year, and it's an important milestone. It's taken pretty much 11 years to get to EE 6. As I said, it is an open standard amongst a range of middleware vendors and obviously ourselves included.
It includes a lot of solid improvements in the core standard, building on EE 5 and previous versions of J2EE, but it also adds lots of nice new capabilities that are very critical, we believe, to improving developer productivity and as we'll see, critical to our offering in the cloud. And these include things like JAX-RS, which is the standard now for developing REST-based services in Java; CDI, which is Context and Dependency Injection; and Bean Validation. EE 6 has had very wide input from larger open source communities, not just ourselves, and the whole EE effort has been improving in terms of seeking much, much wider input than has been the case in previous versions. And in fact, several JSRs, predominately the ones that we ourselves have been running, have been worked entirely in the open, so not behind-closed-doors as was once the case.
Now EE 6 introduces something that we should spend a little bit of time just talking about, which is the concept of profiles, and this is a standard approach to what's often called the slimming problem. So if we go to the next slide. The reason I need to talk briefly about slimming is because, as you'll see in a couple of slides time, we've actually used this in our integration with OpenShift.
So one of the common perceived problems with Java EE in the past has been what's sometimes referred to as bloating, where there are an awful lot of capabilities that are needed by a certain set of enterprise applications like transactions, messaging security, et cetera, that may not be needed by other applications. Some apps may only be interested in messaging. They may only be interested in messaging and transactions and not security. But unfortunately, the way in which the J2EE standard was developed, you really -- if you wanted to be compliant with that standard, you have to provide everything to an end user, and this ended up with many people finding that they were being asked to use or deploy things that they really did not need.
So what EE 6 does is introduce this concept of profiles, which allows us to, in a standard way, slim down the deployment, and we can now provide a number of profiles to users that are targeted to their specific deployment needs. And the one that has been developed within EE 6 is termed the Web Profile and this is a subset of the other profile, the main profile, which is the full profile. And the Web Profile, as its name implies, is really just meant for web development and it doesn't include various specs that are included in the full profile. And it allows for a slimmer deployment.
Now, other profiles may be defined in future EE releases, and they may include specific profiles for the cloud or other deployment environments. And as you'll see in a couple of slides time, profiles are used within our OpenShift integration.
We go to the next slide. So as I mentioned, we think that EE 6 has a number of improvements, but probably the most important theme throughout EE 6 has been on improving developer productivity and leveraging new features in the Java language. EE 6 builds on improvements that EE 5 started, and uses Java annotations throughout or at least a lot more, and there are many more extension points, and in fact, EE 6 removes the need entirely for XML deployment descriptors. So you no longer have to worry about XML, which is a very, very significant improvement as XML tends to be one of the areas where you get a lot of problems, at least in maintenance.
Now we think, and so do other members of the Java community process, that probably the single biggest improvement in EE 6 is Context and Dependency Injection or CDI. So CDI uses annotations. It's used by and for a range of components within EE 6, including the REST, API, persistence transactions, et cetera. It is a type-safe approach to dependency injection, so there's no more writing your injection code in XML for saying, "This object needs to be transactional, or I want it to be secure, or I want to identify access control lists, for instance." It's all done through annotations now.
So because of this, there's no more -- again, no more writing your injection code in XML and finding out at runtime that you mistyped a class name or that someone changed one of the libraries you were using and removed the class. It's all done at compilation time.
CDI also includes a loosely coupled object-interaction bus through the definition of publishers and observers for arbitrary event types, which again builds on annotations and again is therefore type-safe. And, as it says here, there are also simpler, more flexible approaches to binding interceptors to objects. So interceptors are first-class objects, again defined in annotations, and again, as a result are now a very powerful language-level construct.
Next slide. So before moving on to what the integration with OpenShift and AS 7 actually means, I wanted to just spend 30 seconds just to give you an indication that EE 6, it's not a standard that we have simply followed. It's a standard that we have led in many respects. So we were specification leads on CDI. We were specification leads on the Bean Validation JSR, and we've been active in a number of other JSRs that formed part of the EE 6 standard. And I've listed just 4 here, but there are others.
Next slide. So that's EE 6 pretty much in a nutshell. So what have we implemented? Well, last month, we announced the release of JBoss AS 7.0 This is our EE 6 implementation. 7.0 is a fully compliant Web Profile implementation. The full profile will be coming soon with the 7.1 release and that full profile will form part of JBoss Enterprise Application Platform, EAP 6.
If any of you have looked at AS 7 or read anything about it since we did the release, you will have heard myself and others talk quite a bit about the rest of these bullets, but we have spent a lot of time, the best part of 2 years, re-architecting some significant components within AS 7. We now have the fastest boot time of any application server around. You can boot the app server in under 3 seconds.
We re-implemented our kernel, if you like. We now have something called the Modular Services Container, which is extremely lightweight and dynamic, and actually forms a perfect substrate for profiles such as the Web Profile and much more. Cloud is the obvious example.
AS 7 has been developed with testability in mind from the start and not trying to retrofit that. So we have spent a lot of time on testable projects such as Arquillian and Byteman. And because of the JAX-RS component in EE 6, we have our own REST implementation, RESTEasy, and many of our components within EE 6 support REST as a result.
We also have OSGi within AS 7 so we can import and export OSGi bundles. And one of the major changes that was made in the Java space several years ago was to allow the Java Virtual Machine, the JVM, to support more than just Java. You can now support a range of languages, one of which is Ruby through the JRuby implementation. And AS 7 supports Ruby through a separate project called TorqueBox. Now we believe -- and I'll point you out our community website, www.jboss.org, where you can find more information, but we believe that AS 7 forms the perfect substrate for ubiquitous computing, cloud, mobile and much more.
Next slide. So what about the AS 7 and OpenShift integration? Well, Isaac's going to talk a bit more about that in the next slide, but AS 7.0 has been integrated with both OpenShift Express and Flex. Now I mentioned the profiles earlier. What we have done -- because Express is a more constrained profile than Flex, we have put the Web Profile onto Express. So that is the version of AS 7.0 that we certified against the Web Profile and announced, as I said last month, that is available in Express.
What we have put onto Flex because we have more scope to add more features is the full profile or what I've termed here "full profile--." It's not quite the EE 6 profile because we have not implemented all of the components yet, or at least we have not integrated them all, and we certainly haven't passed the EE 6 full profile certification at this point. But it's more than the Web Profile and it kind of straddles the Web Profile and the full profile. So that is on Flex.
Both of our integrations of Express and Flex have been done in what we think is a very developer-friendly manner. So on Express, you interact with AS 7 through Git and it literally is pushing your app into Git and Express will deploy it automatically onto the application server. And in Flex, it's a very rich, web-based UI.
So in conclusion, really what we've done with our integration of AS 7 and OpenShift is provide JBoss at -- AS as a service. It's running there continually. You don't need to worry about the configuration options. It's deployed and you interact with it as though it was a service, and you just push your apps into it, as I said, through Git on Express or through a web UI on Flex.
So I'll now hand onto Issac who has other slides to go into a little bit more detail on the integration.
Okay, thanks, Mark. This is Issac Roth, and we can go to the first slide. I just want to talk a little bit about OpenShift itself and I'm pretty excited today because we've got EE 6 in there, and in particular, CDI, which allows Java developers to get going in the cloud and do it in a really fast and agile manner. And I feel like this development model for Java is going to power the next generation of mobile and social and cloud-scale applications. It's a great way to develop applications, and combined with OpenShift, it leaves all of the scaling and management and operational aspects to a service, so that you don't have to worry about that stuff so you can just go off, create the next Angry Birds, create the next wonderful social platform and leave the scaling to us.
So a little bit about OpenShift. It's for developers who would like to build on open source. Let me go into that a little bit. I'll show you what the language is, frameworks and clouds supported are. Talk about Express and Flex, which Mark and Bryan have both talked about, and I just want to go into a little of what those are for people who are not familiar and the partner ecosystem and then the integration and how we made this work, which I think is really unique, because Red Hat was able to do something special that not many people could do to bring this new standard, EE 6, onto a Platform-as-a-Service.
So let's go to the next slide. Here we have the idea of Platform-as-a-Service. As a developer, you build your code, and as Mark said, you can use Git, you can use a web UI, you can use your existing IDE. We have integrations with certain IDEs now. You can use even a plain text editor, and you simply push your code to the cloud, and everything else is taken care off for you.
You also create a specifier which will say what databases, what NoSQL back-ends, what services you want to talk to and the Platform-as-a-Service will auto-configure all of this for you and take care of the monitoring, the scaling, the operations. And as a developer, you just don't have to worry about patching, backups, server configuration, stacks. Leave the stacks to us.
Let's go to the next slide. So the value that you get as a developer is that you can focus on your application and not the stack. So focus on the apps, not the stack. Leave the stack to the service.
And the other thing is that it scales as you grow. So if you're in development mode, you don't have to pay, and you don't have to consume a lot of resources. And as you scale up, the Platform-as-a-Service will scale with you, and you only have to pay for what you use, and you get the technical resources that you need in order to make your application scale. So that's the fun part about Platform-as-a-Service.
Let's go to the next slide. Here is a list of currently what we're supporting in OpenShift. And as Bryan mentioned, it's Java, Python, Perl, Ruby and PHP. We're quite rich in the back-end, supporting both SQL and NoSQL options. We have a wonderful set of partners providing industry-leading NoSQL stores. We are supporting various open source projects that gives access to cloud storage without lock-in so if you use one of these open source APIs such as Deltacloud, then you can keep your application portable. So let's say you write your application with CDI and some of the EE 6 APIs and you use Deltacloud, then your application is completely portable, not only from our PaaS to another PaaS, from cloud to cloud, but even to an internal data center and back out into the cloud, totally portable and totally open.
So that's what we're supporting today. The frameworks is an exhaustive and long list. This allows people to choose the frameworks that they want, but we are really excited about CDI and EE because the development model in CDI is really picking up where previous frameworks left off and making life so much simpler, modular, extensible and easy. So it's a nice way to work.
Let's go to the next slide. I don't know if anyone remembers this world but it was a great time. Stick that Van Halen cartridge right in there. And the way that OpenShift works is you -- we can plug in new cartridges and even our partners can plug in new cartridges to provide middleware in the Platform-as-a-Service. And when we do this or when a partner does this, the middleware that's plugged in, such as Membase was recently plugged in, benefits from all of the capabilities of the Platform-as-a-Service: scaling, monitoring, log management, patching, updates.
And this leverages infrastructure that Red Hat has built out in the cloud. So we have an update infrastructure that powers Red Hat Enterprise Linux that's being leveraged here. We have clustering mechanisms that are leveraged for the scaling, all taking advantage of Red Hat Enterprise Linux and JBoss infrastructure so that really, you just plug in new stuff and just like in the 8-track player, you just put that cartridge in and the equalizer, the volume controls, the auto leveling -- everything's done for you by the machine. And that's kind of the same way with OpenShift.
Let's go to the next slide. OpenShift today comes in 2 editions. We call them Express and Flex. Express is a shared hosting, multi-tenant environment. As a developer, you don't have to worry about that. You just push your code and we'll give you a URL and that's where your application is. As Bryan mentioned, it's 10 seconds, literally, and you're there. But it's more simple. You don't have to worry about really anything, and you can get going quickly and for free.
Flex is a dedicated hosting environment. If your application wants to be multi-tenant at the hypervisor level instead of at the OS level, then you can use Flex. Both provide a complete level of isolation and security so that applications don't run into each other. Flex provides a little more operational control. So for people who are doing DevOps and want to affect their scaling policies, want to see rich monitoring user interfaces, want to have deep ability to dive into log management and some database policy configuration, this is what Flex is for.
And you can move applications seamlessly from Express to Flex, so as you go, you can transition from one to the other. And what we find, most developers start on Express because it's simple and eventually move to Flex when they want a little more control and isolation.
Let's go to the next slide. In both Express and Flex, you get started for free, entirely free. Your web hosting, cloud charges, as well as the complete stack, is all provided for free to get started. And our business model, as with many PaaSes, is that you pay as you scale.
We remain committed that there will always be a free level, so that you can run a small application in development mode for free indefinitely. And on Express, you can run for free, and you can keep that going as long as it doesn't need to scale up. And then when you scale up, we will have scaling options available.
Today, OpenShift is in developer preview, and that means that everything remains free until we go into general availability. And so we don't have our scaling levels -- or our pay levels for scaling. You can scale up today without having to pay. But our plan is that, like other Platforms-as-a-Service, you will have a service plan as you scale up.
And we'll go to the next slide. To point out that OpenShift, just 3 months old, already has a wonderful ecosystem of partners that have integrated with it to really bring value to the developer. So if you're building a mobile application, you can use the Appcelerator Titanium IDE and you can develop the front end of your mobile application and the back end on OpenShift in the same IDE in Windows, right next to each other. If you would like to have a cloud IDE, one hosted in the cloud, you can use the one that eXo makes called Cloud IDE.
And then we have plugged in NoSQL databases and frameworks from other partners like Membase from Couchbase and MongoDB from 10gen so that developers have access to the latest and coolest data stores and services like DNS acceleration and mail delivery from Dyn. So we're building out things that Red Hat doesn't support but that our partners do, so that developers have a fully supported and rich set of capabilities that they can use to build applications in the cloud for all kinds of uses.
Let's go to the next slide, and this will be the last one, where I just want to talk about how we put together the EE 6-in-OpenShift combination because this is really unique. And one reason that you haven't seen this from anyone else yet is because it requires a complete full stack integration. So Red Hat, by having expertise, competency and product in hypervisor, operating system, middleware and our leadership in the frameworks, allowed us to go behind the scenes and we literally have engineers from all the different pieces working next to each other so that we could optimize the different levels in the stack, so that we could actually put EE 6 in a Platform-as-a-Service.
Some people know that Java is a little bit difficult to run in a multi-tenant environment. It's got a fairly heavy footprint compared to something like PHP. And so we did optimizations. We did integrations. We took advantage of the fact that we're working through all levels of the stack and leveraged Red Hat Enterprise Linux and various technologies that we've been pushing into the kernel and into JBoss, so that everything could work together seamlessly and so that we could deliver a multi-tenant, free hosting environment for EE 6 with PaaS capabilities like auto scaling.
And that's something that's really unique to Red Hat and something that's really fun to work on because to get something like that to work, it's a joy and it's really going to make developers happy and it just isn't easy. So there's a fun challenge there that we were able to tackle and be the first to market with this capability.
So with that, I'll wrap up. Excited about EE 6 and CDI Platform-as-a-Service. It means that the world of Java developers who are looking for the next development model or Java developers who are coming from EE can transfer into the cloud, write cloud-scale applications and have a great time doing it.
So with that, we'll enter into the Q&A portion of the webcast. [Operator Instructions] The first question for you, Issac is, is OpenShift compatible or interoperable with OpenStack? And if not, is that a problem?
Okay. So OpenShift is a hosted service at openshift.redhat.com, and so it runs on Red Hat-certified cloud providers. And today, we run on Amazon, AWS, but our intention is to run on additional cloud providers. And in doing that, yes, we do support the OpenStack APIs, and so we are working with some cloud providers that are based on OpenStack, and as long as these providers are Red Hat certified, we'll be able to run OpenStack -- sorry, we'll be able to run the combination of OpenStack and OpenShift. But in general, yes, OpenShift is able to run on OpenStack-powered clouds and -- keeping in mind that it is a service today.
Great, thanks. The next question is, can I buy OpenShift as a subscription including all the RHEL and JBoss servers that I might need?
So OpenShift today is in developer preview and, as such, it's entirely free. We don't have our subscription models in place yet. So when you use OpenShift, indeed, you are benefiting from the full Red Hat stack, including Enterprise Linux, JBoss, the clouds, technologies that are incorporated into OpenShift and a full Platform-as-a-Service configuration. It is our intention that when we have the subscription model, that yes, you will pay a single subscription that will include the complete stack offering so that you can run with a fully supported Platform-as-a-Service.
The next question is, should customers use Flex only when they need full profile?
Mark, do you want to...
Yes, I'll take that. Yes, if anybody wants the full profile for EE 6 when it is available, it will be available only on Flex. The Web Profile, we'll continue to make available on Express, but the full profile and obviously, the Web Profile as well, will be on Flex only.
Thanks. The next question is, how does this compare with something like Google App Engine?
I'll take that one again. So what we have, as I pointed out and as Issac pointed out as well, we have the full stack, and we have all of the -- all the standards in EE 6, again, in 2 profiles. Google App Engine is not EE 6-compliant. It therefore makes it difficult to move apps out of GAE and also possibly even to move existing applications into it, whereas at least if you work in the EE 6 standard space, we fully support that bidirectional movement of applications.
So to add to that, OpenShift includes a SQL database, which is something that is important for developers and is not available in other platforms -- certain other Platforms-as-a-Service.
Next is, what is the open source status of OpenShift at this point?
Okay, so OpenShift is built entirely on open source components, and we do push changes like we do with all other Red Hat products. We push changes into the upstream. So we've been making changes in things like Deltacloud; Apache HTTP Server; JBoss, of course; Linux kernel; et cetera. We've been making lots of changes to support Platform-as-a-Service and we push all those into the upstream projects, commit them back. So OpenShift is really in open source already today. We just haven't created a packaging of it that is sort of an easy distro for people to install. And we do intend to do that as with all Red Hat things. Some of the technology for OpenShift was part of an acquisition and so it just takes us a while to get there and clear licenses and do all the things we need to do to get into open source. But we will have the full open source project come out when we're able to get there.
Next is, is there some tooling support available that would help with monitoring and controlling the Platform-as-a-Service instances?
Yes. If you log in to OpenShift and use it, there's both the command line interface, which is very easily integrated into an IDE. There's also a REST API, and there's also a beautiful web console, which has really rich interactions for things like controlling the scaling, looking at monitoring data. OpenShift is really unique in this capability. When you deploy an application in OpenShift, you've got a rich monitoring console that shows you an end-to-end breakdown. You can even see things like, for a given web request, how much processing time was spent in the web proxy, in JBoss, in the database, how much time was spent to deliver the PH [ph] down the network to the web browser. This is all available in this console. You won't find any other Platform-as-a-Service with such a beautiful and rich console there. And I think it's a fun thing for people to use. Our users give us really positive feedback on it.
Great. And the last question is, do we have a timeline for OpenShift coming out of developer preview?
We don't. Our goal is to make OpenShift the most compelling platform for developers to build on. Today, with EE 6 and CDI, we've taken another giant step towards making it super compelling. And when we feel like we've gotten to that point and developers are happy with the interaction and with the level of capability and productivity, then we will, at that point, make available commercial versions and supported versions of OpenShift. But we really want to get the developer experience to be excellent, and we're keeping in mind, of course, building all this on supportable technologies, so that we know that we can stand behind the full stack with our partners and have end-to-end support for OpenShift in the cloud.
Okay, and actually one more question. When will JBoss Enterprise Application Platform be available on OpenShift?
I'll take that. So EAP 6 will be based on JBoss AS 7.1, as I mentioned before, which will have the full EE 6 profile in it. That's due out towards the end of this year and our intention is to put that onto Flex pretty soon after we released it. So realistically, 2012.
Okay. So we're out of questions here. So thanks everyone for joining. If you do have anything else we can help to answer, please send your questions to email@example.com. Thanks.