IBM promotes microservice architectures as key way to "Make Java Great Again"

What’s IBM doing to forward the Java technology cause? John Duimovich showed off his Java chops and his sense of humor during his JavaOne keynote by donning a ball cap with the statement, “Making Java Great Again” printed across the front. After the chuckles died down, IBM’s Java CTO and Distinguished Engineer settled into a presentation about the many ways IBM is partnering with the Java community to drive technology forward. He pointed to several key drivers for innovation including business needs, digital services, the API economy, device proliferation, open source, and unstructured data. Duimovich also had some valuable insights for the enterprise crowd.

Speeding up isn’t for everyone all the time

One current trend John mentioned was multi-speed IT. Also called bimodal IT, multi-speed IT focuses on both stability and agility depending on business needs. This approach to technology can involve extending the existing infrastructure and application portfolio to handle new models of consumption and deployment including microservices. However, it doesn’t mean rebuilding everything to be more agile.

Much of the existing enterprise portfolio, especially core internal business applications, don’t really need to be broken down and redesigned using microservices. Many applications with predictable workloads don’t even need to be cloud deployed. But IT must be able to split its focus between keeping existing infrastructure and apps running at their usual speed while taking a much more rapid and creative approach to new products and services that can provide a market advantage.

IBM tries out microservices

By now, everyone knows about the touted benefits of microservices including flexibility, agility, scalability, resiliency, and flexibility. But there is a difference between hypothetical benefits and real world outcomes. Experimentation is the only way to determine whether a concept works in the business world. Like many enterprises approaching microservices for the first time, IBM started by taking an existing app and converting it to use microservices. They chose ACME Air as the guinea pig in the scenario Duimovich outlined during his talk. With microservices, the application was redesigned to scale instances of each function independently, from booking flights, to calculating fares, locating seats or adjusting inventory.

With so many users all wanting to access different services within the larger application, the microservices architecture made a lot of sense. But John warned that microservices do introduce new complexities and provide a larger attack surface with so many more instances running. “You’d better have, as part of your cloud, app monitoring with analytics built in.” Apps need to be intelligent so that they can auto-scale. They should also have good security and authentication and rate limiting to stop DOS attacks.

Consumer driven development requires open source

Perhaps the most challenging impetus for change in Java software development comes from consumers who now base their expectations on the last app they interacted with to decide whether an experience is satisfactory. Companies aren’t just faced with keeping up with their competitors these days. It’s not enough to have the best mobile banking app, a financial institution might be expected to provide users with the glitzy, feel-good experience of the latest mobile gaming app. This is a high bar, and enterprises are scrambling to keep up.

John issued a challenge to enterprises that think doing something well is good enough. “If you wrote a modern app that scales and doesn’t go down but you haven’t considered what it takes to do the next generation of applications, how to wow your customers and show them something that has never been done before, then you’re not actually pushing the limits—and your customers will expect it.” Open source is a critical piece of this innovation puzzle. “You can’t write anything from scratch anymore.”

It is developers who are driving adoption of open source in the enterprise, and with good reason. They are being pressed harder and harder to deliver fast in an environment where market velocity favors the swift. John remarked that this is actually a smart move. “You should learn from people who have been successful, and most of them open source their stuff.” As long as big business is taking steps to ensure good code hygiene, making use of open source has more pros than cons.

IBM bringing more innovation to Java

John covered many of IBM’s contributions during his keynote, including the organization’s OpenWhisk serverless event-based programming service. He mentioned his own team’s efforts as VM engineers to help get virtual machines running at optimal speed in a world where application instances are turned on and off in minutes rather than running for months. Docker got a hat tip as well with the IBM SDK for Java. This stripped down version of Java8 features a 100% compliant runtime with a footprint one third the size of traditional Java making it ideal for containerization. Finally, he touched on cognitive computing with a great demonstration from the Devoxx team complete with talking robots.

While IBM may not be single-handedly “making Java great again”, as John’s hat proclaimed, the presentation certainly demonstrated many of the ways the company is owning its place as a strong ally to the Java community in making Java better than ever.

App Architecture
Software Quality
Cloud Computing