#WorldInnovationDay In Review

#CommunityMatters #ItTakesAVillage #ReshapeTheFuture

What started on April 16th and finished on April 19th was the #WorldInnovationDay Hackathon. ~4000 people in attendance in Slack (organisers, mentors, participants and observers). At the time of writing this, there was the overpowering feeling of exhaustion and contentment with what has just transpired. (I will write another blog about some of the technology used). Let’s review some of what I saw as a Lead Mentor.

Continue reading “#WorldInnovationDay In Review”

Free WordPress on OCI

GOT EASIER … with Oracle Resource Manager

I’ll keep this short … I recently came across an update to one of the Oracle Cloud Infrastructure Quick Starts for WordPress. The specific addition that caught my eye was a micro deployment of WordPress – 1 x VM and 2 x Docker images (check out the repo here). I looked at that and thought:

This Terraform package would be good for Always Free Tier

Which it was, downloading the repository and created an Oracle Resource Manager Stack (learn more here) and applied the stack. And within minutes, I had a working instance of WordPress.

Yes – it is a single instance.
Yes – I could have built something that was more secured.
Yes – I could have built something that was more scalable – using MySQL Database Service or Oracle Kubernetes Engine.

But putting this altogether, I spent less than 10 mins on this and I can get going. And it is Always Free. The nice this is that I know that this model can expand as it requires (and only when I need to).

I thought about this for the upcoming hackathon too #WorldInnovationDay (https://hackmakers.com) where people are wanting a site to display their solutions. This is a way of doing it and keep it as part of their portfolio.

If you need an environment to try this out – head to the following link and sign-up. https://www.oracle.com/au/cloud/free/. If you are part of the hackathon, we are giving participants a promotion with $500USD credits into a new tenancy and no credit card. Try this out for yourself.

Ansible Playbook for the OCI Arcade

The OCI Arcade with Kafka Streaming

I’m ever fine tuning this for the purpose of getting things done. For this I’m purposefully looking at the DevOps side of the picture. There are resources and a lifecycle that is better suited with Ansible or other CI/CD frameworks / pipelines.

I’ve extended the existing Oracle Resource Manager (ORM) automation. Have a look (here) about what I’ve done with ORM such that I used Ansible to do a couple of things.

Continue reading “Ansible Playbook for the OCI Arcade”

Free In-Memory Data Grid

Here’s the architecture of the OCI Arcade extended with Coherence-CE

I was talking to Tim Middleton who works in the Coherence Development team the other day about different scenarios that we can work on some areas that demonstrate the scale out – two scenarios were obvious (to me) – Apache Spark was one and the other was Coherence – an In-Memory Data Grid.

And with that I built out the OCI Arcade to bring Coherence-CE (Community Edition) into the mix. There’s some lots of cool stuff that you can do with Coherence-CE and the bulk of the content is (here).

To get access to the OCI Arcade with Coherence – you can find these on a git branch in the repositories.

The simple use-case that we used Coherence-CE for was a simple identity key for the instance id (ie each game plays has a unique identifier). The nice thing was that it was all in Javascript. This following fragment was the only thing that I needed to do to integrate Coherence-CE into the app itself.

const opts = new Options()
opts.address = 'oci-cache:1408'

app.get('/id', (req, res) => {
  var game_id = req.query.game_id;
  var session = new Session(opts)
  var map = session.getMap('oci-id')
  setImmediate(async () => {
    console.log('Map size is ' + (await map.size))
    if ((await map.has(game_id)) == false) {
      await map.set(game_id, { id : 1 })
      res.send('{ "id" : 1 }');
    } else {
      res.send('{ "id" : '+(await map.invoke(game_id,Processors.increment('id',1)))+' }')
    }
    await session.close()
  })
});

From the Coherence-CE cluster perspective – there’s docker images from docker hub already (here) that I could use for it. So replacing what I did previously with Kafka in the deployment architecture and putting Coherence-CE in its place was simple. (NB: There were some changes in terms of stopping events being fired to Kafka and also creating the instance id from this method instead of a Date.now() method. Simple things).

There’s plenty of different directions that we can go from here – session-based cache scenarios, high-availability scenarios, in-memory data processing scenarios. There are plenty to extend and learn from.

If you want to try this out yourselves, you can get an Always Free Tier environment – head to the following link and sign-up. https://www.oracle.com/au/cloud/free/.

To get the whole thing up and running, then head to this previous blog to see how to get the OCI Arcade up and running (and playing) – https://redthunder.blog/2021/02/12/automating-with-oci-oracle-resource-manager/. Remember – use the coherence-ce branch.

I acknowledge Mason Borda for their contribution in building this game.

Have fun learning, experimenting and if you want to contribute to any of these things – reach out. #CommunityMatters #ItTakesAVillage