Helidon and the embracing of micro services


, , , , , , , , , , , , , ,

XEYO9H51_400x400Oracle have announced another Open Source project called Helidon (Helidon.io) as a microservices platform built on top of Netty (which is built around a contemporary async model). If you look at the literature you’ll note two flavours one called SE which aligns to the programming characteristics or Node.js – asynchronous. The other is MP which aligns to the rapidly evolving J2EE MicroProfile which essentially follows a coding style along the lines of J2EE annotations.

Whilst it is perfectly possible to run Helidon based solutions in either profile natively, it is clearly geared up for running in any Docker+Kubernetes style environments such as Oracle Kubernetes Cloud (OKE) or even ACCS. Helidon website provides the means to quickly package your solution into Docker.

In both SE and MP forms the dependencies are hugely stripped back compared to the giants of WebLogic, GlassFish (now EE4J with the handover of J2EE to the Eclipse Foundation.

It does raise a number of questions what are the futures of WebLogic and Oracle support of EE4J (some answers here, but no Oracle specific)? WebLogic has never been the fastest to align to the latest J2EE standards (EE8 standard released last year should be become available sometime this year for WLS – see here), but today it is so central to many Oracle products it isn’t going to disappear, will it just end up slowly ebbing away? Which would be a shame, I have heard it said by Oracle insiders that if the removing the end of one component could be sorted then WebLogic could be easily be configured to have a small lightweight foot print.

The other interesting thing is what is happening to Open Source and what it might mean for the future.  Up until perhaps 3 or 4 years ago the use of open source you would think of software made available on of a small group of key sponsored organisations such as Apache, Linux Foundation, Eclipse which through its governance framework, provided levels of equality and process. As result, levels of quality, trust crucially married to strong level of use and contribution that meant that to extrapolate Linus’ Law – bugs could be weeded out quickly and easily.  However with the advent of services like GitHub, whilst it has become easier to contribute and fulfill Linus’ Law. It also means that it is very easy to offer a solution that is Open Source. But, doesn’t necessarily garner the benefits of Linus’ Law and the other preconceptions we often have about Open Source such as it is/can be as good as a commercial solution. After all, throwing code into GitHub does not guarantee the many eyes/contributors. Nor does it assure the governance, checks and balances that an Apache project for example will assure.

It is important to say that I am not against github, in fact I am very much pro, and use GitHub myself to host utilities I make freely available (here). The important point is we have to be more aware of what open source actually means, in each context and can’t assume it is likely to have a strong community driving things forward, and critically dealing with bugs, and ensuring quality assurance processes are realized.

Helidon joins a number of other offerings in this space such as Micronaut (also built on Netty). Micronaut takes a different approach to Helidon by adopting a strong inversion of control / injection approach. In and in some respects feels a bit like the earlier versions of JBoss Application Server (now known as WildFly) which had a small footprint and made good use of Spring. This is in addition to Spark and Javalin. There is a good illustration of the different servers from Dmitry Kornilov  shown below and the associated article can be seen here (who also happens to the Lead Engineer for Helidon).


Unlike Spark, Micronaut and a couple of others, Helidon only supports Java today rather than JDK based languages such as Kotlin and Groovy for example, but is the only solution that can cover both the Micro Profile and Framework domains. It also has a challenge in terms of getting established, Spark has been around since 2015. Javalin appeared in May 2017. The J2EE Micro Profile standard is also driving a lot forward progress, so getting established will continue to get harder. Liberty, another Micro Profile solution is based on IBM WebSphere and Thorntail has links to WildFly (more here). We hope that it will make good headway with a Reactive engine in the form of Netty and avoiding IoC or introspection from the core should mean it will be very quick (particularly during startup) but it needs to show its value differentiation and importantly build a strong community contributing to it.

We hopefully will get the chance to further experiment with Helidon and write more about it here.

ODC Appreciation Day : ODC Podcasts


, , ,

So I’m probably up bending the spirit of the ODC Appreciation Day, as the focus should be on tech. But this year I’d like to flag the podcasts put together by Bob Rhubart. These are as at-least diverse in subject as the Oracle technology portfolio. One month the podcast will be about API and the next AI, from Women in Technology to NoOps. Even if the subject is not an area that maybe of interest to you technically, the podcasts are still worth a listen you’ll encounter at-least one nugget of interesting information.

I have been fortunate enough to participate in the recording of a couple of podcasts. That combined with having In a previous roles been involved in recording and editing audio and video together means I can appreciate the effort that goes into producing the podcast. From gathering a group of different people together, often from around the world into a call isn’t always easy. Then editing the conversation to smooth out the introductions, pauses that can occur as all those non verbal cues are lost, shed any background noise to give a cohesive podcast takes time and practise.

Bob and Javed might make it look easy when recording Periscope videos at Open World and other events, but that comes from being able to control the environment – something you can’t do when participants are so far apart.

Analytics and Stats for APIs


, , , , , , , ,

The Oracle API Platform provides the means to examine statistics and slice and dice the numbers by application, gateway, duration and so on resulting in visually appealing graphical representations.  The way the analytics works means you can book mark specific views, so you can return the same report view with the relevant features as often as you like.  However, presently there is no data export option.

The question why would I want to export the information comes down to several possible use cases, all of which relate to cost management.  The API Platform will eventually have all the desired data views, but now something to help address the following:

  • money-tization, we can see which consumer has been using the services by how much and then send the data to a companies accounting systems to invoice the users
  • Ability to examine demand and workload over time to create a projection of the likely infrastructure – to achieve this the API statistics need to be overlaid with infrastructure and performance details so we can extrapolate API growth against server workload.

To address these kinds of requirements, we have taken advantage of the fact the API Platform has drunk its own Champagne as they say and made many of the analytics querying APIs publicly available.  As with the other API Platform tools, the logic has been written in Groovy, and freely available for use – we’ve covered the code through a Create Common license.

Tool includes a range of parameters to allow the data retrieved into a CSV file having filtered in a number of different ways – which logical gateways to examine, which API or Application(s) to report on.  Finally, just to help some basic stats are produced with a count of logical gateways, API calls, APIs defined and Application definitions. The first three factors inform your cloud costs. Together the stats can help Oracle understand your use case. Note that the parameters which impact the CSV generation can also materially impact the reporting numbers.


The 1st three values must always be provided and in the order shown here

  1. user name to access the source management cloud
  2. password for the source management cloud
  3. The server address without any attributes e.g.

All the following values are optional

  • -h or -help – provides this information
  • -g – Logical gateway to retrieve numbers from e.g. production or development. using ALL with this parameter will result in ALL gateways being examined
  • -f – the file to target the CSV data should be written to. If not set then the default of
  • -t – indicates whether the data provided should be taken from an APPS perspective or from an API view by passing either APPS | API
  • -d – will get script to report more information about what is happening
  • -p – reporting period which is defined by a number as follows:
    • 0 – Last 365 days – data is given as per month
    • 1 – Last 30 days – this is the default if no information is provided – data is given as per day
    • 2 – Last 7 days – data is given as per day
    • 3 – Last day – data is given as per hour

NB – still testing the utility at this moment – will remove this comment once happy

Oracle Developer Meetup London – September 2018


, , , , , , , , , ,

#OracleDevMeetup in London - GraphQL

Last night we ran the latest of the Oracle Developer Meetups in London. This time Luis Weir presented on GraphQL, which got an very engaged discussion about the strengths and weaknesses of GraphQL, in-depth points about how the error paths should be handled among many other things.

The presentation material Luis used is based upon his Devoxx session earlier this year and can be seen here:

The links to Luis’ examples can be found on his GitHub account – https://github.com/luisw19/graphql-samples

After a insightful and thought provoking presentation on GraphQL the Drones with APIs project had its latest update.  Providing a lot of laughter to the evening’s proceedings. Including demonstration of flying the drone using REST APIs published via a gateway and Go back-end.  This included the DroneDash presenting a visual presentation of the commands being issues via REST, as seen here:

All the code, API definitions and documentation for people to add or extend can be found in the meetup’s GITHub – https://github.com/oracledeveloperslondon/.

A few of the useful links used or mentioned last night are:


The next meetup is planned for Monday November 19th.  Topics  will be published soon.


#OracleDevMeetup in London - GraphQL

Oracle Developer Podcast – Developer Evolution


, ,

podcast-356-dev-evolutionLast month I was fortunate enough to have been invited to participate in another Oracle Developer Podcast.  Rather than focusing on specific technologies, this focused on more how the thew job market is changing for IT and what might be driving change, and how things may change in the future. Check it out here.

As ever thanks to Bob Rhubart of the invitation, and putting together these excellent recordings.

Blue Notebooks


, , , , ,

Whilst Sonos might be great for convenience, and Spotify for freedom and trying music out you still can’t beat well produced physical media (those round silver or black things) on some separates HiFi. I don’t have an extravagant setup, but what I can do with Max Richter’s The Blue Notebooks Anniversary Edition makes the hairs on your arms standup.

Take On The Nature Of Daylight and the violins float over the Cellos and eventually resolve together. It sounds so elegiac and so sad it can take you to tears. Then Iconography sounds almost other worldly with a base notes so deep that you physically feel as much as hear them.

The piano of Vladimir’s Blues each note is distinct and you can hear the decay of each and every note, so very blue.

Old Song comes on incredibly cinematic, as if you are sat listening to someone in another room playing the piano with your window open. You hear ambient background of a plane flying past and a train in the distance, a wood pigeon in the garden cooing.

The Trees brings together strings and piano, a wonderfully written and performed piece as the melody seems to move between the different instruments he other parts take terms to propel the music along or provide notes emphasising the melody. As the piece progresses the momentum gains and the the dynamic range expands with greater deeper notes and the experience becomes ever more physical as an experience.

The album closes with Written In The Sky, which whilst still in a minor key, seems to evoke a small sense of hope. When it comes to an end, you sit wanting more, but routed to your seat not wanting to move away from centre of an amazing performance.

If you go to a proper separates HiFi shop, which has listening rooms to try out audio setups, I think this would apart from the musical beauty would help show you see if the kit being tried magic of the kit being tried.

GraalVM – why a different VM?


, , , ,

If you read press around Java you’ll have come across references to GraalVM. So what is it and why would I use it?

There is an excellent podcast from Software Engineering Daily that digs into the subject and can be found here and here. But let draw out some of the reasons as to why GraalVM is interesting.

Whilst multiple languages on top of the JVM is nothing new, such as Scala , Kotlin, and Groovy to name a few, GraalVM through the use of its Truffle framework takes it a new level. Truffle provides an Abstract Syntax Tree (AST) which describes the language syntax (more here about AST). The net result is any language can be described and therefore executed using the GraalVM. To this end the GraalVM team have got Node and JavaScript ported in addition to defining existing languages using this approach. Not all of this is proven robustly in production, but some of the languages VM certainly is, for example Twitter have been using the Scala port.

Because the languages are described through the same framework this means the work to optimise the VM performance becomes a lot easier.

It would be easy to assume that using the framework would mean the execution of languages using this mechanism would slow be slower. But, Truffle works by translating the code to standard byte code before execution, so ‘ported’ languages are now no less efficient than Java come runtime.

There is an interesting bi-product of this model, that at runtime with the right object exposures it is possible for multiple languages to interact with the same object easily, no JNI or dropping to the lowest common denominator such as a JSON+REST. This does raise interesting possibilities for thick client solutions or polyglot monoliths!

Probably one of the biggest pay offs for using GraalVM and its ability to run multiple languages is that the base Container images can be simplified as you don’t need different container images. This makes the work of patching and testing configurations of these container a lot simpler as the permutations will drop, particularly for organisations that have wholehearted embraced polyglot micro-service ideas.

One common reason for changing implementations of the JVM particularly at the more performance sensitive use cases (checkout Azul as an example) is how the JVM is optimised and the JIT algorithms and processes particularly the Garbage Collector work (checkout this list of JVMs. For example GraalVM will provide better performance for processes that less heap hungry than Oracle’s JVM.

It is interesting that Oracle are investing in a new VM when it wasn’t that long ago that JRockit was wound down. Given the legal dispute between Oracle and Google (see here) the new VM would give Google a means to escape from the copyright breaches and retain support for Java.

Could RedHat’s absolute commitment to OpenShift put them into difficult waters?


, , , , , , ,

As a middleware (to use a fading term) or technical architect, I preferred not to get too involved in the detailed OS layer considerations when it can be helped (my Infrastructure Architect colleagues will always know more about NICs, port bonding, kernel versions etc etc than I ever will) and why I prefer to work with PaaS over IaaS.

But there is an undeniable trend where having a greater understanding of the OS is necessary, this is because we’re seeing PaaS expanding to cover code abstracted solutions such as Oracle’s Integration Cloud, Mulesoft, Dell’s Boomi etc. down to every things as code in the form of Terraform, Kubernetes, Docker and of course  microservices.

So what does this have to do with OpenShift?  Well to apply those heady aspirations we’ve had with middleware of “I can build my solution and run it on my platform anywhere” means in the world of microservices I need to find a common denominator on which I can be portable.  This comes in the form of Kubernetes and Docker and we’ll probably see service meshs in due course (Istio, Linkerd etc). Docker obviously brings the need to understand the OS albeit not at the level of bonding network connections, but still a good level of OS knowledge to do things properly. Over the last couple of years there has been a fair bit of work to achieve this with the inertia of Cloud Native Computing Foundation (CNCF), Open Container Initiative (OCI).

Continue reading

Podding the Tunes


, , , , , , , , ,

I track a lot of podcasts as I find that they can be can be a great way to catch up with news and ideas or listen to interesting discussions. This is great when travelling (if you can block out the ambient noise with some good earphones) when sitting and working isn’t so easy (standing on a commuter train for example).

My podcasts come in a couple of categories, tech related, business / thought leadership – think Freakonomics, Malcolm Gladwell’s Outliers, Harvard Business Review, BBC Radio 4 documentaries and so on, and then music. The music podcasts are great fun because you can relate to what is being said in so many ways, the insight into the music you love, discovery of artists you’d not heard or considered, and a reminder of a song or album you’d not listened to for a while and get that jolt of ‘oh, yes I remember how wonderful that song is’ and you you end up roaming through (your) music from a different perspective.

I thought this would be something to share. Some of these are well known to any music fan, other less obvious …

  • Sound of Cinema – one of a couple of BBC programmes about music for film, this is the more ‘high brow’
  • Soundtracking with Edith Bowman – BBC Radio presenter and more interview based and more influenced by film promo circuit
  • Classic Album Sundays – Primarily recordings of the introductions to Classic Album Sunday events where an album is introduced. The ones I’ve heard are well researched and provide some interesting insights. Worth listening to then, playing the album afterwards
  • Life of a Song – A Financial Times podcast (yes FT does cover the arts). The presentation comes across as an attempt to be rather academic and high brow (which for me can irritate), but the content can be pretty interesting. This are fairly short podcasts
  • Mastertapes – An intermittent podcast, but really good. This takes the musician and really gets into the details of an album, the context in which it was recorded as a conversation. ~You could think of this as Radio version of the Classic Albums programmes.
  • Radio 4 on Music – A grouping for documentaries that Radio 4 make available. As a result the subject matter can be very diverse. But as you would expect from the BBC, production quality is very high and typically well researched.
  • Sound Opinions – A couple of well known music journals chat about news of the day, maybe recent releases and then a segment of the show focusing on a theme, such as the top 50 albums of the year.
  • Deezer Trailblazers – Interview with people that have had strong influence in the dance music scene from the founder of Mute Daniel Miller to Gary Numan.  If you know about the artist already, you’re not going to get nuggets of gold in terms of new insights, but the love of music and references to songs will get you spinning off into your collection at interesting tangents. The podcasts made available so far I think where first recorded about 2 years ago.
  • Cover Stories – this pod cast is relatively short and kind of takes its idea from a 7″ single (remember the vinyl 45?). Two halves with each half a chat about a song and the various cover versions. There is a cleverness in the simplicity of this podcast as this feels like you’re sat hanging out with friends chatting about a song.
  • Twenty Thousand Hertz – Not so much music in the conventional sense,  more about sound. The two parts of the THX Deep Note is fascinating (yes film again, but it is an iconic sound)

In addition to these some artists such as Counting Crows have their own podcasts. Perhaps another story for another day.