The single server in Pentaho 7.0 #topology

Morning

Just a quick one this on the move to a single server configuration in Pentaho 7.  This resolved a long running quirk with the Pentaho server stack, but don’t take that as a recommendation for installation in production!  It’s still very important to separate your DI and front end analytic workloads and I doubt we’ll see any other than the very smallest installations using the single server for both tasks simultaneously.

Separating the workload gives several important advantages:

  • independent scaling (reduced cost and no wasted resources)
  • security
  • protecting either side from over ambitious processing

Of course! Don’t take my word for it – Pedro said the same in the release announcement:

Screen Shot 2017-05-16 at 06.58.35

And luckily the Pentaho docs on the website give clear instructions for adding/removing plugins from the server – Key thing being don’t install PDD or PAZ on your DI server.

Final point – You can of course choose whether to extend the logical separation to the repository itself.  By separating the repository as well it gives you ultimate control over your system, even if for now it is hosted on the same database.

Serverless PDI in AWS – Building the jar

So, following on from the first post in this series, here’s all the technical gubbins.

Firstly, how do you build PDI as an engine?  Well simple – you need to create a pom.xml and use maven.

The key parts of that file are:

  1. Adding the Pentaho repository
  2. Defining pentaho.kettle.version
  3. Adding the core lambda java libraries
  4. Figuring out that the vfs library version needs to be this weird thing: 20050307052300
  5. And then the key point – using the “Maven shade” plugin, which basically gathers up the whole lot and dumps it into a jar suitable for uploading directly to AWS.

What next? Well topics for next few weeks include:

  • The java code wrapper to launch PDI
  • Logging/Monitoring
  • Triggering
  • Persistence (S3 / redshift)

Upcoming Pentaho events – Summer 2017

As we’re heading into crazy event season for the Pentaho community there wont be another PLUG (Pentaho London Usergroup) until around December time.

So, keep an eye on social media and your inboxes for the latest news on when and where PCM17 will be.  Hint: It’ll be November time again.

Also – Don’t forget the official Pentaho world conference is on again this year in Orlando – that’s one not to miss. Find that on the Pentaho website.

Finally – Mark hall – Creator of Weka is in town in early June and there’s a meetup with him where you can find out about “The future of machine learning”:

http://events.pentaho.com/pe-2017-mark-hall-roadshow-master-emea_01.Landingpage.html

(Think cyberdine..)

If anyone wants to talk in December then put your hands up and let me know, otherwise have a great summer.  In a similar vein – any feedback about the group, content, location or timings – send that too.

#Serverless #AWS PDI

Hmm, what what?  Serverless PDI?

Yes, so serverless is *the* thing at the moment.  Partly driven by amazing advances in the devops space – Fundamentally we’ve all had enough of managing servers, patching etc. You know the story.

“Run code not computers”

Why to do this? – Simple – Integration. If you need to hook up 2 APIs of separate systems it’s actually pretty expensive to have a server sitting there running 24×7.  So what we want is to literally pay for the time we use and nothing more – We don’t want to have to startup and shutdown a whole server either!

Why Pentaho? The single most important argument is visual programming.  It’s faster to get started with PDI than it is with a scripted solution.  It’s more maintainable and it allows you to capitalise on general ETL skills.  (Experience of any ETL tool is enough to work with PDI) .  PDI has also done the boring input/output/API stuff, so all you need to focus on is your business logic. Simple!

So, how to do this? Well Amazon AWS Lambda is where to start.  I assume google cloud has a similar function, but I’ve already got stuff running in AWS so this was a no brainer.

The stats sound good. Upload your app and you only pay for run time, everything else is handled. There’s even something called API connect so you can trigger your ‘Functions’.  And finally – My favourite automation service Skeddly can also trigger AWS Lambda functions. Great!

There is one issue. The jar has to be less than 100mb. What! PDI is 1GB, how can that possibly make sense. Sure enough some googling shows lots of other people trying to use PDI in lamdba and finding this limit is far too low.

But; Matt Casters pointed out to me the kettle engine is only 6mb. What?  Really?  I took a look – and sure enough with a few dependencies thrown in you can build a PDI engine archive which only uses 22MB. We’re on.

To start, read these two pages:

Java programming model

Java packaging with Maven

Then:

  1. Create a pom.xml
  2. Add in your example java code
  3. Build the jar (mvn package).
  4. Remove any signed files: cd target; zip -d <file>.jar META-INF/*.RSA META-INF/*.DSA META-INF/*.SF
  5. Upload as a lambda function
  6. Set an environment variable KETTLE_HOME=/tmp (If you dont PDI will crash as the default home dir in lambda isn’t writable)
  7. TEST!

And here’s the proof:

Screen Shot 2017-04-25 at 12.53.39

Slightly disconcerting that it took 5.7s to run. On my laptop the same executed in 0.5s. I guess the lambda physical boxes are busy and low spec!

What’s next?

  1. Find a better way to package the ktr
  2. Hook the input file into PDI parameters
  3. Provide better output than “Done”!
  4. Setup with the API connect
  5. Schedule via Skeddly

I will be releasing all the code for this soon – In the mean time if anyone is particularly interested in this right now please do contact me. I think it’s a very interesting area and this simple integration opens up a vast amount of power.

#DevOpsManc Feb 2017

This evening I attended a dev ops meetup in Manchester. Why? Well interesting story, but primarily because:

  • I was in Manchester anyway
  • Tom was presenting his Nasa stuff
  • I’m working on a project with heavy dev ops requirements, so I dragged some of the geeks down with me!

So how did it work? Well they are lucky, they seem to have some great sponsors, and the venue was brilliant.

First up was Tom, showing off what they get up to catching organised criminals at NASA.   (UK Police interested in the memex programme)  Not just that but there’s a huge genomics project too.  They are trying to improve overall standards, and for them it’s vital they can test and deploy in different envs around the world seamlessly.

(He sadly pointed out that not being a US citizen means he’s not allowed near any cool space tech!)

There’s this I/O based monster with 3k cores called wrangler too – and they have very little privileges, so it’s all ansible based here.

Good points about pro/cons of containers…  (Issues with patching etc). And of course, a quick mandatory demo of juju.  One key thing about juju that I hadn’t appreciated was you can save your “project” as a bundle and then do a one line install of that bundle. How cool is that!

Next up was Matt Skelton – Slides here. This was all about designing teams for software development, with a view on how devops fits in.

He talked about business agility – and how quite a lot of people have never experienced working in a high performant team.  I agree with this – once you’ve experienced it, it’s quite a thing, and you don’t want to go back!

There are some fundmental rules, teams work best in 6-9 people, and a lot of this stuff is only applicable in a large enterprise environment. Most importantly is that the team must be stable (albeit slowly changing) and no gathered, and thrown away for every project (which is a model i’ve seen previously).

Anyway another key point is this:

  • Organisation architecture always wins out

What does this mean? It’s been shown that the software architecture always ends up mirroring the organisation setup. Thats crazy! But when you think about it, we’ve all seen it right? so fix the TEAM FIRST before doing your software architecture.

Finally he finished with a point that generated much discussion about cognitive load. Essentially you need to ensure the team is not overloaded. This can be best achieved by simply asking them if they’re confident to manage the running of their current project(s). (e.g. think, do they have sufficient knowledge and time to deal with a P1 incident?) . This is all because stress impacts the ability for a team to be performant.  It seems to me this is very close to “velocity”.  Discussion ongoing there!

Other comments – well I think the comment about google being way above everyone else on the tech front was a bit misleading, it’s not all roses over there..

Finally, there was some talk of “the cost of collaboration”.

Many thanks to the organisers who did a great job, and the sponsors of course!  A genuinely interesting group with a good vibe going on (barring the mandatory dissing of London – Qudos to the guy brave enough to mention that they also host meetups there!)

 

Sent from my phone

 

Pentaho London Usergroup (#PLUG17)

So, on 19th January we met for our first Pentaho London Usergroup of 2017. We struggled to get an agenda together, but thankfully Diethard and Nelson came up trumps and we had two excellent talks.

Additionally we decided to re-visit our free consulting thing again.  This was great fun, i think we did a whole of night of it about a year ago. The format is simple – bring your problems, issues etc and ask questions! We’ll then propose a solution as a group.

Last time we did this, it took a little bit to got going, but by the end of the session the questions were pouring in!  This time – we didn’t just suggest a solution, we actually implemented a POC solution, showing how it would be done, on Nigels laptop!  Keep an eye on Nigels feed – He’ll be reporting progress soon – I’ve already heard good things.

Even better – this issue had only come to Nigels attention that very day!  So what a great story that was, and what an AMAZING response time.

So, the talks. Well Diethard started with an excellent summary of the history of Pentaho, in a quiz style way.  Great fun, and many positive comments afterwards – It’s worth understanding and seeking out this story as it explains a lot about how we got to where we are now!  Diethard then presented

https://skillsmatter.com/skillscasts/9273-pentaho-london

Nelson then proceeded to show off CBF2 – which compared to the old CBF looks pretty amazing. An essential tool for anyone who is working with multiple clients, or multiple environments.

https://skillsmatter.com/skillscasts/9649-nelson-sousa-pentaho-london

The next meetup will be on 4th May – A starwars special  Let me know if you have something for the agenda!  We will be broadcasting this one live too – So no swearing!

#PCM16 – 9th community meetup!

So, a few weeks ago was PCM16 – A 3 day blur of beer, tech talk, beer and sight seeing in Antwerp, Belgium.

Before I give my view – do make sure you read others, there were 2 streams and so it was not possible to see everything!  So, the others I’m aware of:

http://www.bizcubed.com.au/pcm-16/

Happy to add others!  Actually I can’t even find the live blog link right now, but you’ll find it on Know.bi somewhere!

So how was the event? Well as always every year has a different theme. This year it was clearly all about the product.  And it’s not just webspoon! There have been a slew of product upgrades in the last year, all very interesting.

And now the talks:

Pedro – Pentaho 7

  • Released in time for the event!
  • Analytics anywhere
  • This is a progression along that path
  • Hadoop security improvements (only CDH for now)
  • Single server in technology – now to make the product singular to the users.

Tom – Devops

  • Well we already saw this at PLUG!
  • Mentioned use of bigtop distro.
  • How is it nagios still looks as shite now as it did when it came out 10+ years ago? 🙂
  • PDI Charms available, BA being worked on (Juju)

Nelson/Miguel – Snapshots in hadoop

  • Definition discussion on “in” and “out” labels.
  • The approach only works if you can identify your “last” event in a chain – Unfortunately that’s not always possible.

Duarte – Viz API

  • v3 of API is nearly done
  • Lots of very interesting tech details – But the gist of it is it will become easier to just “plug in” your own visualisations
  • Not clear how many people *do* build their own visualisations though!
  • Probably be in the platform in 7.1, analyzer will switch shortly after
  • Good to see improvement and hard work going into the visualisation part of the product

Joao – CBF2

  • now shell script. (hmm!)
  • usual benefits of cbf – quick switching etc.
  • Deploys all your code – not sure if the JUJU charm does this?
  • CE and EE

Jens – PDI7

  • Metadata injection!
  • 11 more steps to be supported in 7.1
  • Filter rows uses the same xml from the KTR to define the condition to inject. Cunning workaround to a tricky problem!
  • 3 phases of metadata injection
    • Simple bog standard example
    • Data flow
    • 2 phase
  • :8080/pentaho/kettle/listServices
  • JSON performance has improved again – you dont have to pass the massive blob of json onto the next step
  • COPY AND PASTE BUG FIXED!!!!!!  This got a huge cheer
  • Labs – team are working with hitachi labs too. Exciting times

Matt Casters

  • In just 2-3 weeks since unit testing was shown at PLUG it’s moved on massively and is now fully usable!
  • 300+ team / community using pdi at hitachi
  • PDI Spreading wildly.

Hiromu Mota – Webspoon

  • Hurrah, web based spoon is here
  • Amazing architecture solution – Essentially just run spoon on the server, then you don’t have to maintain another UI

Julien + gang

  • Showed a handy SSO solution for embedded analytics.

Wael – data science!

  • Same as PLUG
  • Everything we do as ETL guys, will be for the data scientists in the future!

Bart / @rvanbruggen

  • Great talk showcasing neo4j, and beer