This is my ninth #DaysOfArm article that tracks some of the experiences that I’ve had so far. And just to recap from the first post (here) on June 12 2021.
It’s been just over 2 weeks since the launch of Ampere Arm deployed in Oracle Cloud Infrastructure (OCI). Check this article out to learn more (here). And it’s been about one week since I started looking into the new architecture and deployment, since I started provisioning the VM.Standard.A1.Flex Compute Shape on OCI and since I started migrating a specific application that has many different variations to it to test it all out.
This is my next learning which I focuses on NodeJS and Python.
Learning: There are many layers. And it all needs to line up.
I’ve been working on standing up OpenRouter Service (here) which is based upon OpenStreetMap (here). And what I found was that there are dependencies upon dependencies. Having this kind of architecture is common with NodeJS and Python.
The issue that I’m facing is that the ability to trace / track issues based upon the architectural differences. I’ve been finding issues at installation (of these packages) and is also serial (eg. find an issue, fix an issue, find an issue, fix an issue). Figuring out what the issue is and whether it can be fixed takes time – research and experimentation.
In this stack, I’ve been looking at PhantomJS which is a scriptable headless web browser. And the compilation fails. And digging into it there, are dependencies on g++ version. The documentation isn’t clear that there are minimum requirements. This isn’t specific to Arm but the OS version that I used to build the stack. @TODO – look at an upgraded version of the OS.
(Update 23rd June 2021) Since writing this and a little longer to investigate. It all came together. I did find a build of PhantomJS on aarch64 (built and compiled) that I installed (ie put into my local path) and there were issues with node-gyp that needed python2 installed and referenced explicitly. Once, I did this, then the whole stack came up fine.
This is why programs like the OCI Arm Accelerator (here) is important and is a way that Oracle Cloud is supporting the research and development on this platform. This program is open for anyone – corporates and individuals.
If you want to try this out yourself or work on your own application, sign-up (here) for the free Oracle Cloud Trial. I’d be interested to hear your experiences and learn from others as well. Leave a comment or contact me at firstname.lastname@example.org if you want to collaborate.
There’s plenty of work to make this more achievable for everyone. And hence sharing this knowledge is the reason why I’m writing this series – #XDaysOfArm. I’ll keep documenting as long as I keep learning.