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.
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/.
We are providing to each participant access to Oracle Cloud Infrastructure (OCI) for the hackathon. The following resources are to make you effective with OCI.
Oracle Cloud Infrastructure
From past hackathons, we noticed a trend of what technologies and services are being used by the winning teams. Here are the top resources with some additional references.
For a single platform to store JSON, Graph & Spatial, perform ML or deliver Low-Code Apps, use Autonomous Database (here)
For establishing infrastructure with your OS of choice, use OCI Compute (here)
For Jupyter notebooks and ML packages, use Data Science Cloud (here)
For quick self-service and data visualisation, use Analytics Cloud (here)
For making sure everything is secured, use Oracle Security (here)
For most things you need for #AppDev, use Oracle AppDev (here)
Live Labs
You will need to learn quickly. These hands-on workshops will help you learn more about the services available.
For those who are interested in a single platform to store data (here)
There will be a series of workshops where we will be present on different OCI topics in the week leading up to the hackathon. Make sure you have these in your calendar so you don’t miss out.
And reach out on the #WorldInnovationDay Hack 2021 Slack workspace if you need anything from the team.
If you had come here because of the link in the information pack, great. If you have come here because you found this page through other means – read on and if you are inspired to contribute (on April 16-19) – head to the Hackmakers site (here) to register for this event.
Adding security over the APIs across multiple layers was something that we considered when putting this project together. This perspective was reinforced at the #DigitalDefence hackathon in Nov 2020. Check out what happened (here).
We focus on the score and event APIs exposed by Autonomous Data Warehouse.
Here we will focus on the different REST APIs exposing the data hosted by Autonomous Data Warehouse. We started off with HTTP Basic Authentication but quickly turned to using OAuth. Here we’ll explore more about the OAuth side and how to get that started.
After building out the OCI Arcade on Oracle Always Free Tier (check out a recent blog here), I was on a roll. What was next? The inspiration came after a virtual session with some other mentors that I was working with. The need to share code, have an environment that was easy to use as well as provide a method of multiples users developing in the same workspace.
I remembered back in 2016, that I used Cloud9 which was a development environment that I could plug into with a full Java environment. We used to for our Developer Experience workshop for some client-side dev (with the client-side installation issues). Cloud9 which since got bought by AWS. And then a few years ago, Eclipse Che and Codenvy surfaced as a potential alternative. It’s still around and going strong from what I see. And I dug a little deeper into Che and found that Che’s browser-based development environment is based upon a project called Theia – a Cloud and Desktop IDE. … So bingo … here it is Theia-IDE deployed into Oracle Always Free Tier for cloud-based / browser development environment. Check out more about what we did.
(Update – 3 December 2021 – There’s been some changes to the docker hub images that were originally used. They are no longer available and hence this is currently broken if you try it. I’ve been investigating the use of the Theia-Blueprint repository to build the cloud environment which seems to be going ok. More to come).
I’ve started posting articles related to the project that @stantanev and a few of us are working on. This is snapshot of the puzzle that is to build out a APIs on the Oracle Always Free Tier.
As a demonstration of capability, we built a few different APIs using fnproject (https://fnproject.io/) – an open-source container-native serverless platform. As part of Oracle Cloud Infrastructure, there’s Oracle Functions which is the managed Function-as-a-Service based upon this same project.
Let’s take a look at it here and see what it took to get going. Also, this is being deployed into VM.Standard.E2.1.Micro compute shapes (which is 1 OCPU and 1GB of memory) and hence there are some considerations to make sure we get the most out of the kit we have access to (for free).
Effective first, then efficient and then elegant …
Peter Laurie – mate and mentor.
I’ve been doing some collaboration with @stantanev around a project and part of the contribution that I was doing was getting some stuff setup / configured and deployed into Oracle Cloud Infrastructure. This wasn’t a standard copy-and-paste scenario. I was building it up as we went. And then I was done … But it felt unfinished because I didn’t want to just leave it there. I wanted to share what I have without me getting sucked into other work standing up new environments (noting in the last article – I am lazy). And in the first instance, I only had dev (where I was working) and I needed to create a new one so people can start experiencing what we delivered (quickly).
What I invested in was using Oracle Resource Manager “ORM” to help me take what I built in Oracle Cloud Infrastructure and turn that into something that I could hand-over. Let’s have a look.
This is true. After doing something that is repetitive because either I’m testing or incrementally improving what is happen, I get frustrated. So, I automate. In this scenario, here I have an application that I’ve been working with a few people (like @stantanev), and as such spending a little bit of time automating the provisioning of the stack made sense. I value my time as I value other people’s time.
Oracle Resource Manager (ORM) is part of Oracle Cloud Infrastructure and is available in all tiers – Trials, Always Free Tier, Pay-As-You-Go or with Universal Credits. In short – EVERYONE gets it. The easiest way that I think of ORM, is that its a managed Terraform service within the Oracle Cloud Infrastructure environment. Let’s talk a look at it.
In closing out 2020 and before going on leave, I was given an opportunity (never a challenge). And it came in the form of these Oracle Code Cards. For those that haven’t seen them, this is what they look like and here is a git repository of some code explaining more about the cards themselves that I’m revamping – https://github.com/jlowe000/codecard.
An trial using the Oracle Code Card before the workshop.
The outcome required was as open as I could get.
There were no boundaries and there were no specific rules.