EclipseCon EU: Let’s talk open source

EclipseCon EU: Let’s celebrate open!

EclipseCon EU is almost here – October 21-24 in Ludwigsburg, Germany. We’re excited to sponsors both the main and co-located OSGi Community 20th anniversary events this year, but mostly we’re looking forward to connecting with you around ways to accelerate your journey to cloud.

From fun hands-on coding challenges to incredible speakers, we know it’s going to be a great event. We hope you’ll stop by the IBM Developer booth to connect.

Test your coding skills: Cloud-native workshop and QuickLabs

Workshop: Build-a-bike Tuesday, October 22 – 09:00 to 12:00 in Seminarraum 5
Liberty Bikes is a four player, elimination game built using the latest technologies of Jakarta EE 8 and MicroProfile 3.0. Come build your first (or 100th) microservice as you create an AI to compete in a battle royale against your fellow attendees. In this workshop, you will develop a complete microservice, leveraging a MicroProfile Rest Client to seamlessly integrate and communicate with an existing application. Can you become champion of the grid?

Code for Swag QuickLabs: We challenge you to use your coding skills for . . . some cool swag. In 15 minutes or less, with a few lines of code, explore some of the latest in Java, open source, frameworks, and more. You can then claim victory and a special prize.

Your open source journey to the cloud starts at the IBM booth

In addition to great speakers, here are a few of the topics we’re most excited to chat with you about:

Book signing: Wednesday, October 23 from 14:30 – 16:00
Meet the authors and get a free “Developing Open Cloud Native Microservices: Your Java Code in Action” ebook.

Code for Swag QuickLabs: Get your hands on the code and add to your swag collection with one or more of our labs featuring Kabanero, Open Liberty, Kubernetes and more.

Build cloud-native apps and microservices: Experience the power of the Open Liberty cloud runtime for building cloud native apps in a fun, interactive game, Liberty Bikes. Open Liberty provides fully compatible implementations of Jakarta EE and Eclipse MicroProfile.

Modernize existing apps for cloud and containers: Explore tooling, skills, and recommendations for getting the most out of your existing applications as you move to the cloud. Join IBMers who are actively working with customers on modernizing their apps using open technologies including Open Liberty, Eclipse OpenJ9, Jakarata EE, Eclipse MicroProfile, Spring, Reactive and more.

Kabanero: Find out about this new open source project that brings together Knative, Istio, and Tekton with new open projects Codewind, Appsody, and Razee into an end-to-end solution to architect, build, deploy, and manage the lifecycle of Kubernetes-based applications.

** Hear from IBMers on topics covering app modernization, cloud native development, new open source projects, machine learning, Eclipse projects, communities, and more.

Eclipsecon image

Session Date/Time Session Title Speaker Name
22 Oct: 09:00 – 12:00 Build-A-Bike Workshop Ryan Esch Andrew Guibert
22 Oct: 14:30 – 15:05 How Java9+ helps you React- Reactive Programming? Jayashree S Kumar
22 Oct: 14:30 – 15:05 Jakarta for dummEEs Kevin Sutter
22 Oct: 14:30 – 15:05 Intro to Eclipse Codewind – simplified app development for the cloud! Tim deBoer
22 Oct: 17:00 – 17:35 Mastering your Eclipse IDE – Java tooling, Tips & Tricks! Noopur Gupta
23 Oct: 09:30 – 10:05 Modern Development — How Containers are Changing Everything Steve Poole
23 Oct: 09:30 – 10:05 Make testing Enterprise Java more joyful Sebastian Daschner
23 Oct: 10:15 – 10:50 OSGi in Action: How we use OSGi to build Open Liberty Alasdair Nottingham
23 Oct: 15:10 – 15:45 Thirst-quenching streams for the reactive mind – A comparison of OSGi Push Stream API and implementations of Reactive Streams Mary Grygleski
23 Oct: 15:10 – 15:45 Evolve Java APIs and keep them compatible using API Tools Vikas Chandra
23 Oct: 15:10 – 15:45 Test Dockerization Mamatha J V
23 Oct: 15:10 – 15:45 OpenJ9 a Lean, Mean, Java Virtual Machine for the Cloud Billy Korando
23 Oct: 16:15 – 16:50 EGit Essentials, Tips and Tricks Lakshmi Shanmugam
23 Oct: 16:15 – 16:50 Migrating Beyond Java 8 Dalia Abo Sheasha
23 Oct: 16:15 – 16:50 Java EE, Jakarta EE, MicroProfile, Or Maybe All Of Them? Sebastian Daschner
23 Oct: 16:15 – 16:50 Promises in Java: Using Promises to Recover from Failure BJ Hargrave
24 Oct: 10:15 – 10:50 Java and Containers – Make it Awesome! Dinakar Guniguntala
24 Oct: 13:00 – 13:35 Streamline Integration Testing with Testcontainers Andrew Guibert Kevin Sutter

Let’s talk modern development at SpringOne Platform

SpringOne Platform, 7 – 10 October 2019 in Austin, TX, is right around the corner, and it’s shaping up to be an exciting conference. From a fun, hands-on quicklab, to all the incredible speakers discussing Spring, Java, Reactive, .NET, Kotlin, and cloud, covering the latest in technology — we’re excited to connect with you.

Test your coding skills: Automate and accelerate cloud-native Spring with Appsody and Codewind

Moving workloads to the cloud introduces a steep learning curve for developers accustomed to traditional web application development. In a hands-on quicklab, take a look at Appsody and Codewind, two technologies that simplify development of containerized cloud-native applications. In 15 minutes or less, with a few lines of code, you’ll be able to start building cloud-native applications like an expert without having to be an expert in all the cloud-native technologies. You can then claim victory and a special Austin-themed prize.

Join us at IBM booth #P10!

Hear from IBMers about their work in cloud-native

Session date/time Session title Speaker and location
Wednesday, 9 October
4:20pm – 5:30pm
Metrics for the win: Using Micrometer to understand application behavior Erin Schnabel
Ballroom D
Wednesday, 9 October
5:40pm – 6:10pm
Modern development: How containers are changing everything Steve Poole, Pratik Patel
Ballroom F
Thursday, 10 October
10:30am – 11:40am
Collaborative contract-driven development Billy Korando
15AB

Explore cloud-native at the IBM booth #P10

Quicklab: Cloud-native Spring featuring Appsody and Codewind: Get your hands on the code and kickstart your day with a lab that will get you building cloud-native applications like an expert, featuring Austin-themed merch and more.

Kabanero: Find out about this new open source project that brings together Knative, Istio, and Tekton with new open projects Eclipse Codewind, Appsody, and Razee into an end-to-end solution to architect, build, deploy, and manage the lifecycle of Kubernetes-based applications.

Java: Hang out with IBMers who are actively contributing to the open Java communities, including Spring, Open Liberty, OpenJ9, Jakarata EE, MicroProfile, and more.

Open source @ IBM: IBM continues to deliver innovative ideas as open source projects. Find out about the latest and greatest directly from key contributors to Kabanero, Appsody, Eclipse Codewind, Razee, and more.

Oracle Code One: Let’s talk open source, Java, cloud, and . . . cool socks

Code One 2019 is almost here! Join us September 16-19 in San Francisco. We’re excited to be sponsors this year, but mostly we’re looking forward to connecting with developers around Java, open source, cloud modernization and cloud-native app development.

From fun hands-on coding challenges to incredible speakers, we think it’s going to be a great event. We hope you’ll stop by booth 3101 to meet us.

Test your coding skills: Cloud-native workshop and QuickLabs

Workshop: Hands-on, open cloud-native development with Kabanero and Java [HOL6624]

Monday, 16 September, Room 3024A

Choose the time that works best for you! 12:30-2:30 PM or 2:45-4:45 PM or 5:00–7:00 PM

Explore modern, cloud-native app development that uses Java and the latest open technologies in this deep dive hands-on workshop. The workshop lets you use Kabanero, a new open source project that integrates popular open source projects (Tekton, Kubernetes, Appsody, etc) and delivers a simplified, seamless development experience.

Code for Socks QuickLabs: Booth 3101 We challenge you to use your coding skills for . . . cool socks. In 15 minutes or less, with a few lines of code, explore some of the latest in Java, open source, frameworks, and more. You can then claim victory and a special pair of socks.

Challenges include:

  • Cloud-native development with Kabanero
  • Getting started with Open Liberty
  • Akka and Kubernetes: a symbiotic love story
  • Intro to Kabanero and Spring

Come talk open source Java

Join us at Booth 3101 to talk about the newest cloud-native, Java open source projects at IBM, including:

  • Kabanero: Find out about this new open source project that brings together Knative, Istio, and Tekton with new open projects Codewind, Appsody, and Razee into an end-to-end solution to architect, build, deploy, and manage the lifecycle of Kubernetes-based applications.
  • Open Liberty: Experience the power of this cloud runtime for building cloud native apps in a fun, interactive game, Liberty Bikes. Open Liberty provides fully compatible implementations of Jakarta EE and Eclipse MicroProfile.
  • Cloud-native Java: Talk to IBMers who are actively contributing to the open Java communities including: Open Liberty, Eclipse OpenJ9, Jakarata EE, Eclipse MicroProfile, Spring, Reactive and more.

Socialize with other Java developers and get your books signed

Cloud-native Java networking evening: IBM is excited to co-sponsor the first networking evening at Code One. The event brings the Jakarta EE and Eclipse MicroProfile communities together for a time of celebration around the significant achievements of the past year.

Book signing: Meet the authors and get a free “Developing Open Cloud Native Microservices: Your Java Code in Action” ebook. Tuesday, September 17 from 2:30 – 4:00 PM.

IBM sessions at Code One

Hear from IBMers on topics covering cloud native development, new open source projects, machine learning, communities, and more.

Session Date/Time Session Title Speaker Name
16 Sept 12:30-2:30 PM Hands-on Lab: Open Cloud Native Development with Kabanero and Java [HOL6624] Steve Poole, Graham Charters
16 Sept 2:45-4:45 PM Hands-on Lab: Open Cloud Native Development with Kabanero and Java [HOL6624] Steve Poole, Graham Charters
16 Sept 5:00-7:00 PM Hands-on Lab: Open Cloud Native Development with Kabanero and Java [HOL6624] Steve Poole, Graham Charters
16 Sept 5:00 PM Seven Principles of Productive Software Developers [DEV2118] Sebastian Daschner
16 Sept 5:00 PM Creating a Cloud Native Microservice: Which Programming Model Should I Use? [DEV1573] Emily Jiang
16 Sept 5:00 PM FaaS Meets Java EE: Developing Cloud Native Applications at Speed [DEV3080] Chris Bailey
16 Sept 5:00 PM Ignite Session [IGN6313] Grace Jansen
16 Sept 6:00 PM Your Java Code Just Needs a Little Injection: It Won’t Hurt! [DEV3631] Gordon Hutchinson
17 Sept 8:45 AM Java Application Security the Hard Way: A Workshop for the Serious Developer [TUT2851] Steve Poole
17 Sept 12:30 PM Let’s Talk About Communities [BOF3992] Billy Korando
17 Sept 1:30 PM Beyond Jakarta EE 8 [DEV1391] Ian Robinson
17 Sept 1:30 PM Overcoming Obstacles: Using Next-Gen Tools to Streamline Your Move to the Cloud [DEV6686] Erin Schnabel
17 Sept 2:00 PM Machine Learning and Artificial Intelligence: Myths and Reality [DEV6005] James Weaver
18 Sept 11:30 AM Configuration: JSR 382 [DEV2207] Emily Jiang
18 Sept 11:30 AM Condy? NestMates? Constable? Understanding JDK11 and JDK12’s JVM Features [DEV3407] Dan Heidinga
18 Sept 11:30 AM Breaking Stereotypes [BOF3757] Mary Grygleski
18 Sept 11:30 AM Fast, Efficient Jakarta EE for the Cloud [DEV4576] Alasdair Nottingham
18 Sept 12:30 PM Hands-on Java EE with Docker and Kubernetes – BYOL [HOL1138] Ahmad Gohar
18 Sept 1:30 PM Bulletproof Java Enterprise Applications for the Hard Production Life [DEV2122] Sebastian Daschner
18 Sept 4:00 PM Fantastic Data Consistency Techniques and Where to Find Them [DEV3922] Gordon Hutchinson
18 Sept 6:00 PM Streamline Integration Testing with Testcontainers [DEV3744] Kevin Sutter
18 Sept 6:00 PM Streamline Integration Testing with Testcontainers [DEV3744] Andrew Guibert
18 Sept 6:00 PM Share What You Know, Become a Speaker, and Get Accepted at Events [DEV5993] Mary Grygleski
19 Sept 9:00 AM Eclipse MicroProfile: The Present and the Future [BOF2200] Emily Jiang
19 Sept 9:00 AM Modern Development: How Containers Are Changing Everything [DEV2849] Steve Poole
19 Sept 9:00 AM Modern Development: How Containers Are Changing Everything [DEV2849] Andy Watson
19 Sept 9:00 AM You Have Nothing to Say? Let Us Help You! [BOF3734] Mary Grygleski
19 Sept 10:00 AM Striving for More-Productive Development Workflows [DEV2115] Sebastian Daschner
19 Sept 10:00 AM Reactive Microservices in Action [DEV4322] Emily Jiang
19 Sept 10:00 AM Stop Feeling Stuck! Design Your Career and Overcome the Plateau [DEV6010] Kevin Sutter
19 Sept 10:00 AM Stop Feeling Stuck! Design Your Career and Overcome the Plateau [DEV6010] James Weaver
19 Sept 12:15 PM Data Visualization, Processing, and ML (on the JVM!) with Apache Zeppelin [DEV2237] Pratik Patel
19 Sept 12:15 PM Data Visualization, Processing, and ML (on the JVM!) with Apache Zeppelin [DEV2237] Mo Haghighi
19 Sept 12:15 PM Making Java a First-Class Citizen with Machine Learning [DEV1306] Dan Heidinga
19 Sept 12:15 PM How to Get Along with HATEOS Without Letting the Bad Guys Steal Your Lunch [DEV2850] Steve Poole
19 Sept 12:15 PM How to Get Along with HATEOS Without Letting the Bad Guys Steal Your Lunch [DEV2850] Graham Charters
19 Sept 2:15 PM Microservices with Docker and Kubernetes: Best Practices for Java Developers [DEV2043] Ahmad Gohar
19 Sept 2:15 PM Migrating Beyond Java 8 [DEV2100] Dalia Abo Sheasha
19 Sept 2:15 PM Team Diversity the Successful Way [DEV6012] Mary Grygleski

Get your enterprise apps ready for the cloud

APIs, microservices, and containers are becoming standard for running enterprise applications in the cloud, but many companies have existing monolithic applications running in their data centers. It’s difficult to figure out what to move, where to move it, and when. In the coming weeks of September, IBM is hosting two free conferences that will include a range of developer-focused talks and labs about refactoring or moving your enterprise Java applications to containers with Kubernetes in the cloud:

Here is a selection of what you can learn…

Best practices for writing microservices (Emily Jiang)

If you create microservices, you might be wondering whether there are best practices. Yes, the Twelve-Factor App is the widely adopted methodology. The Twelve-Factor App aims to clarify the boundary between application and infrastructure; minimize divergence between development and production; and enable your microservices to scale up or down without significant changes to tooling, architecture, or development practices.

But the Twelve-Factor App methodology just defines the theory; there is no known implementation. Emily will demonstrate how MicroProfile and Kubernetes can implement the 12 factors.

For example, one of the 12 factors is to externalize the configuration of microservices. MicroProfile Config enables you to externalize configuration so that when you change the configuration of a microservice, you don’t need to repackage it. Similarly, MicroProfile Config can help with port binding (another of the 12 factors) so that microservices can communicate with each other when deployed to the cloud. You can specify new port numbers in Kubernetes ConfigMap, and MicroProfile Config gives the correct information to the deployed microservices.

To find out more, come to Emily’s talk “On-stage hacking: Build 12-Factor microservices in an hour” on Sep. 24, at 11am, at the Application Modernization Technology Conference, in which she will create two microservices and deploy them to Minikube, and demonstrate the 12 factors. She will also present “A modern & smart way to build cloud-native microservices” on Sep. 9, at 3:45pm, at the European Application, Platform & Modernization Hursley Summit.

Build cloud-native applications with Eclipse Codewind (Tim Deboer)

As enterprises move toward microservices and cloud-native development, there are a host of new technologies and skills that developers need to learn. Eclipse Codewind helps bridge this gap by providing support for building cloud-native applications directly in the developer’s IDE of choice. There’s no learning curve because the tools work just like the local development tools that they’re used to using. Codewind supports Visual Studio Code (VS Code) and Eclipse, and also provides a fully hosted development environment through the Eclipse Che IDE.

Codewind provides integrated support for Appsody and Kabanero collections, which enable developers to rapidly create applications in several languages based on predefined stacks that meet corporate standards. These applications are always run within containers, so that you know exactly how it’ll behave in production. But the behaviors that developers expect haven’t changed: code changes take immediate effect; debugging and console output work. Further along in the lifecycle, Codewind includes comprehensive tools for performance testing and benchmarking, and OpenAPI code generation for defining well-behaved REST interfaces.

To find out more, come to Tim’s talk “IBM Cloud Pak for Applications: Introducing Eclipse Codewind” on Sep. 9, at 4:40pm, at the European Application, Platform & Modernization Hursley Summit, or on Sep. 24, at 4:10pm, at the Application Modernization Technology Conference.

Get the latest on Jakarta EE 8 (Kevin Sutter)

We did it! As of 8:44pm on August 26, the ballot for the Jakarta EE 8 Full Platform Specification was submitted for approval! This milestone was the culmination of months of work by many people throughout the Community to prepare the specifications, APIs, Javadocs, and TCKs for the Jakarta EE 8 release.

Over the next couple of weeks, all of these specification ballots will conclude, and the various artifacts will be promoted for public consumption. The goal is to have all of Jakarta EE 8 ready to be announced at the JakartaOne Livestream Conference on Sep 10. Monitoring the progress of this effort is easy. Once the ballots are completed, the various artifacts will be promoted to their respective homes.

If you want to learn more about Jakarta EE (past, present, and future), come to Kevin’s “Jakarta for DummEEs!” session on Sep. 24, at 3:10pm, at the Application Modernization Technology Conference.

Register

Learn more, or register now:

The events are free, but seating is limited. We look forward to meeting you!

Cloud native and MicroProfile: Five ways to profit

At Oracle Code One 2018, Emily Jiang (IBM) will present five sessions focused on Cloud native and MicroProfile:

Building a fault-tolerant microservice in an hour

Details

Monday, October 22, 1:30p.m. Moscone West – Room 2008

Overview

Microservices need to be resilient. How do you achieve resilience? Do you have to use some third-party libraries, such as Hysterix or Failsafe? No, you don’t have to. With MicroProfile Fault Tolerance, all you need is to annotate your methods. Emily and Antoine Sabot-Durand (Redhat) will explain how important it is to build a fault-tolerant microservice and how MicroProfile can help to build one. Emily and Antoine will showcase the microservice deployed to both Open Liberty and Thorntail, and see the services working. You can even look at the metrics of how MicroProfile Fault Tolerance helps to improve the service reliability.

Hands-on cloud-native Java microservices with Eclipse MicroProfile

Details

Monday, October 22, 2:45p.m. Moscone West – Overlook 2B

Overview

In this lab, Graham Charters and Emily will demonstrate how to create a cloud-native microservice, and you will learn all the MicroProfile specifications, including Config, Fault Tolerance, Metrics, Health Check, Open API, JWT, Open Tracing, and Rest Client. After this lab, you can utilize the MicroProfile programming model to write your microservices.

Eclipse MicroProfile: What’s next?

Details

Tuesday, October 23, 8:30p.m. Moscone West – Room 2018

Overview

Do you wonder where MicroProfile is heading toward? In this session, talk to Emily, Ken Finnigan (Redhat), and Reza Rahman (AxonIQ) to find and get involved in MicroProfile activities. This is a free-flow session, and you can have your questions answered there.

Build a 12-factor microservice with MicroProfile

Details

Wednesday, Oct 24, 1:30 PM Moscone West – Room 2003

Overview

The 12-factor app is a methodology to design a cloud-native microservice. It has been around for a while. However, it does not tell you how to design a 12-factor application. In this session, Emily will explain 12-factor methodology and how MicroProfile specifications can help you write your microservices based on the 12-factor methodology. It is followed by a live code demo of how to use Open Liberty, a leading implementation of MicroProfile, and then how to create a docker image with Open Liberty installed and a 12-factor microservice deployed on it. After this session, you should learn 12-factor, MicroProfile specifications, Open Liberty, and Kuberneters.

JSR 382: Configuration

Details

Wednesday, Oct 24, 2:30 PM Moscone West – Room 2003

Overview

Configuring applications is not a new concept, having been around for a decade. However, there is no standard around it. MicroProfile Config came up with a proposal and successfully released the Config APIs. The specification received very good feedback. MicroProfile Config was widely utilized by many other MicroProfile specifications, such as Fault Tolerance and JWT. Due to the success of the MicroProfile Config specification, Eclipse Foundation proposed this specification to JCP last year, with Emily and Mark Struberg as co-Spec leads, and Config JSR382 was accepted by JCP. Emily will showcase the full set of capability of ConfigJSR. Come to this session to understand the APIs and their usage, as well as the future of this specification. Most importantly, it is a good time to file your request and provide feedback.

Is crossing the streams considered harmful?

Details

Oracle Code One 2018 talk

Wednesday, October 24, 11:30 a.m. Moscone West – Room 2003

Overview

In Gordon Hutchison’s talk at Oracle Code One 2018 on the MicroProfile Reactive Streams implementation, learn what Reactive Streams means from an enterprise Java developer’s point of view. He will touch on the background motivation for developing the specification for stream operators in MicroProfile, the current state of the work,= and likely future developments.

The rise of microservice architectures means that applications are frequently composed of a number of cooperating services. Each service may be provided by one of a cluster of service instances with little request affinity. A desire for distributed but responsive applications in the face of traffic surges, individual service engine failures, scaling out, recovery, rerouting and more has led to increased use of asynchronous operations, particularly across microservices. How can we retain business data consistency across such components without the “ACID properties” that monoliths or distributed transactions gave us?

An architectural model that works in this world is to switch from a common, lock-stepped, view of a global “current” state to one where components can agree on a set of events that have occurred up to a particular point. Such “event-driven” architectures do not mean that every component has always caught up to the very latest event, but that they are continually converging on some “eventual consistency” that would only really occur if incoming work quiesced and all components process the remaining in-flight events.

A great abstraction for composing different event-handling components is that of “reactive streams.” These are constructed using an interface that allows for a “Publisher-Subscriber” model for observing events. As well as stream life-cycle and event error handling, the interface allows for each individual subscriber to have flow control, resulting in what is often called “backpressure.” But the reactive type of interface has its roots in the observer pattern of the reactive extensions for .net, and the backpressure mechanism wasn’t added until issue #1000.

Of course, backpressure stops where you “break the chain” and step out of the reactive world, so there is an advantage in connecting AtoBtoC and so on, reactively.

All the reactive streams interfaces are generic over the domain objects, say Publisher<Customers>. And the interfaces do not care if the stream being plugged in is coming from a web-endpoint or being subscribed to by a database driver. This allows for “plumbing” together different technologies with very few lines of code using a fluent, functional, composition that looks like:

orders.via(analytics).to(database)

The above code gets error handling and flow control thrown in. Furthermore, it is easy to use one of a common set of operators, like mapping functions and filters that can be composed onto any event publisher to decorate it that works by using the generic typing of the interfaces and domain-specific callbacks, where needed.

Business functions may occur at a higher level of abstraction still; one that does not need to concern itself with aspects like flow control or the intricacies of the stream’s lifecycle. But a great platform to build these higher layers (like in the MicroProfile Messaging Specification) are reactive streams.

Come for the eventual consistency and stay for the boost in developer productivity – the use of reactive streams is a great design tool that is increasing in popularity, as microservices proliferate and developers get more comfortable with functional composition. This talk will fill you in on what is happening with Reactive Streams in MicroProfile and where the work is going.