As we are at the start of a New Year and it is traditional to gather your thoughts and put in place New Year resolutions and plans, I thought I would share with our Community and Customers the plans for Payara in 2018.
Principles for Payara Server and Payara Micro
When we started the Payara project back at the end of 2014 we had few goals for the project. Back then, I ran a consulting company and we were fixing a few bugs in GlassFish 4.x for a customer. When the customer asked how we would further support these bug fixes in their production environments, Payara Server and Payara Services Ltd the company was born. After taking that monumental step, we set ourselves a number of principles for the Payara projects and I thought it best to review and reiterate these principles for 2018.
First and foremost, Payara Server and Payara Micro are open source. All the software is open source and follows on from the upstream GlassFish project by dual licensing CDDL and GPL with Classpath Exception. All development is carried out, in the open, on GitHub and our source code is donated to the Payara Foundation - a UK not-for-profit. All bug fixes for customers are merged into GitHub before they hit customer support streams.
Being open source has advantages and disadvantages. The advantage is that everybody can get access to the software, which means it is distributed and used widely - which is a sense of pride for the team. The disadvantage...our developers have to eat, so in order to drive development we offer support services including more frequent patch releases and a stability stream to customers.
Best Runtime for Production
We want Payara Server and Payara Micro to be the best open source application platform for production workloads. This means we do not follow an open core philosophy with some parts of the server open source and some parts proprietary, typically those parts needed in production or enterprise environments. We also don't follow a philosophy of community product for "innovation" and a very different supported product for production. With Payara, you can use community releases of Payara Server and Payara Micro in production and then purchase a support contract for those servers. Following this principle, we have a single code base and have built, and are building, many features for hard-core operational environments including: Data Grid integration, Request Tracing, Health Check, Slow SQL detection and many more already released or in the pipeline.
Payara Server and Payara Micro are not software islands. They exist in an heterogeneous ecosystem of cloud infrastructure, security infrastructure and well deployed open source and proprietary technologies. With this in mind, we want our software to work with all the major cloud platforms; security infrastructure; databases; messaging systems; container infrastructure etc.
Our aim is not to drive you to some single vendor ecosystem or cloud. We want to enable you to use Payara Server and Payara Micro wherever and with whatever makes sense to you. We have created projects like Cloud Connectors for integration with non-JMS messaging providers and are building IDE, Arquillian and Maven integrations. Similarly, we want to implement the latest APIs as they arrive from cross-industry collaborations like MicroProfile and as Java EE moves into the Eclipse Foundation, EE4J.
Support customers provide all the funding for the developers working on Payara projects and our MicroProfile and EE4J efforts, therefore our support services are best in class. Our customers drive the roadmap for development and customer bug fixes - enhancement requests and assistance is our top priority. We provide rapid, highly skilled response times to customer tickets and our engineering team is always on hand to debug any troublesome issues. First and foremost we are a support company and customers come first.
Small, Simple and Powerful
Our philosophy is to make Payara Server and Payara Micro have the smallest footprint and resource usage as possible; be powerful enough for large production workloads and be simple and easy to use. We seek out ways to simplify using and configuring the server and want to make it easy for beginners to get up and running rapidly. We aim to give Java EE developers the tools to bring Java EE applications to new runtime environments like Cloud and IOT while at the same time maintaining a powerful platform for standard Java EE applications used in traditional server environments and deployed in traditional domains.
Roadmap for 2018
Payara Server and Payara Micro follow a quarterly feature release cadence with customers receiving additional monthly stability and patch releases. This means in 2018 we are planning 4 feature releases. This year, we have split our feature releases into themes to target certain areas of functionality and compatibility. The theme for each feature release is outlined below. As in all software development the exact contents of these releases will change depending on customer demands, progress and the alignment of the stars.
Running across all themes, we are developing further capabilities to support cloud and containerized deployments. We are also focusing on reducing resource usage; increasing performance and simplifying configuration and usage. As always, there will be more and more production diagnostics and functionality to support operations teams.
181 (Standards Theme)
The 181 release due in February will focus on API standards. The goal will be to release to community a 4.181 and a 5.181 download.
The goal of the 4.181 release will be to support applications using MicroProfile 1.2 APIs. MicroProfile 1.2 introduces APIs for Fault Tolerance; JWT; Metrics and Health checks along with a minor revision upgrade of the Config API.
For the community 4.181 will be the terminal release of the 4.x line. Master on GitHub will be switched to 5.x development and further community releases will be switched to 5.x.
For customers 4.181 will be the root of the 2018 stability stream with monthly patch only releases and further feature releases will continue in the feature stream throughout 2018 as usual.
The 5.181 release will be the first release of the 5.x line. The goal is to synch this release up to GlassFish 5.x incorporating all the Java EE 8 APIs and reference implementations. We will also, like 4.x, support the MicroProfile 1.2 APIs. In addition, breaking changes to clustering will be incorporated, introducing a domain wide data grid and deployment groups. This will simplify clustering and ensure that configuration is transparent on a wide range of environments including cloud and container infrastructure.
For customers, 5.181 will be the root of the 5.x 2018 stability stream with monthly patch only releases and further feature releases will continue in the feature stream throughout 2018 as usual.
182 (Security Theme)
For the 182 release due in May we are focusing on Security. We are looking to incorporate and expand our support for a number of different security providers including; OAuth, TOTP, FIDO U2F and SNI along with simplification of the creation and management of SSL certificates. In addition to security we will look to upgrade our MicroProfile support to 1.3 which introduces APIs for Open API, Open Tracing and REST Client.
5.182 will be released to both the community and customers.
4.182 will be a customer only release on the 4.x Feature Stream
183 (Reactive / Asynch Theme)
For the 183 release due August we are focusing on expanding our support for reactive and asynchronous programming styles. Ideas at the moment are;
- Ensuring Java EE APIs can be used from Lambdas, Completable Futures, Collections parallel stream operations
- Support Lambdas as Message Listeners
- Support CDI beans as Message Listeners
- Add enhanced CDI support with @Asynch; @Pooled; @ClusterScoped; @ServerScoped
- Deployable Concurrency Resources
In addition we are targeting MicroProfile 2.0 for the 5.183 release although depending on what the MicroProfile project does this may come earlier.
5.183 will be released to both the community and customers.
4.183 will be a customer only release on the 4.x Feature Stream
184 (Developer Tooling)
For our final release of 184 we will be focusing on Developer Tooling. Ideas we have at the moment are:
- Developer plugin to give detailed visibility of the internals of a deployed application
- Special Spring deployment mode
- WAR Edition
- Faster deployment
- Hot reload
- IDE tooling
5.184 will be released to both the community and customers.
4.184 will be a customer only release on the 4.x Feature Stream
As you all know, Payara is an open source company - if you are a Payara Server or Payara Micro user and your organization can't help by becoming a support customer, please help by providing bug reports on GitHub, coding and raising pull requests, offering ideas for enhancement requests or helping out the community on the forums or by updating documentation.