I studied for Oracle Cloud Infrastructure Foundation Certified Associate and took the exam today. I passed it!
This is a basic knowledge check for Oracle Cloud Infrastructure, so it wasn’t too hard. I did spend time to study for it though. There were some information I wish I had known a while ago… Oracle offers good study resources on their site.
Certification doesn’t determine your skill level but it’s good to go over it because there are pieces of information that you never come across through your daily work.
I will continue to go for a few more certifications as time allows.
AWS has a feature called Workspaces. You can have Windows desktop on AWS cloud for relatively cheap price. I just provisioned one that says “Free Eligible” so I don’t know exactly how much it costs (AWS always has something to charge…) so I will see how it goes in the next few weeks and I’ll report the cost here.
It’s really nice to have a desktop on Cloud in a sense that I don’t have to manage hardware. That said, I am not sure if it can be used as my development machine because the free tier spec is quite weak.
I attempted to use Certbot by Let’s Encrypt for free SSL certificate for my subdomain using a Docker container but it was never successful, so I left it alone for a while. The DNS service that I use provides SSL certs but it charges me extra for subdomain. There are other services such as SSL for Free but they either limit the number of certificates or they charge for subdomains or they want me to pay like $10 per month for wildcard certificate. That’s pretty steep considering the host is being used only privately. The alternative is to create your own private CA authority and issue SSL cert and have the root CA cert on the machines that you use the hosts.
But this morning, I figured out a way to generate the free SSL cert for my subdomain using Certbot. I will write about what worked for me.
I had my Surface Pro 7 being repaired (replaced) and it had been away from me for about a month. It had come back to me in about 2 weeks when I first sent it back to Microsoft but the one that came back to me was a faulty one. I had to send it back to Microsoft again to get a replacement again. Not having my personal laptop made me feel somewhat crippled but it finally came back to me yesterday.
This time, things are working as expected. It will take some time for me to get back the software I usually use and set it up to the usable state.
Now that Windows 11 has been released officially, I have upgraded the OS to Windows 11.
I wrote an article on creating a Jenkins slave on Linux. The method was to just create a bash script file that requires to be executed by hand. And it wouldn’t survive restarting the host, so what I need to do is to make the script a daemon (service).
Here is what I did before configuring the daemon.
Provision a Ubuntu host on Azure (it doesn’t matter where you provision the host as long as your Jenkins master on the public Internet and secured).
Update the system. (sudo apt update && sudo apt upgrade)
Open port 50000 (Inboud and Outbound) to the host. I am opening all protocols.
Creating a Daemon
We will create a script at home directory first. To contain everything for Jenkins slave, I am creating /home/azureuser/jenkins-slave directory. You can create jenkins-slave or whatever the directory name you would like anywhere.
Then create slave.sh in /home/azureuser/jenkins-slave directory with the following content. Change the URL and the secret acccording to the Jenkins node you have created on Jenkins master. Make the script executable by executing chmod +x slave.sh.
Also make sure you download agent.jar from Jenkins master to /home/azureuser/jenkins-slave directory. Also user opessl and keytool to trust the SSL cert. You can refer to the previous blog article on how to use keytool.
Now create /etc/systemd/system/jenkins-slave.service file with the following content. sudo vim /etc/systemd/system/jenkins-slave.service
Most of the articles I find on creating a permanent Jenkins slave on Linux requires the slave node to be exposed to public Internet. I want the Linux slave to be pinging Jenkins master just like Windows service. Here is the way I came up with.
Java (sudo dnf install java-11-openjdk.x86_64)
Check if the Java has been installed. (java -version) Result:
openjdk version "11.0.12" 2021-07-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.12+7-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.12+7-LTS, mixed mode, sharing)
Add a Permanent Node
Login to Jenkins master and click Manage Jenkins -> Manage Nodes and Clouds. Click New Node. And then give the node a name (like linux-node), select Permanent Agent and click OK.
And then, click Save button. If you navigate to the node that you just created, you should see something like…
There are some Cloud providers out there. AWS by Amazon being one of the most famous one. There is Azure by Microsoft and there is OCI (Oracle Cloud Infrastructure) by Oracle. Cloud is nothing but computers on the other side of the Internet is what I used to think, but it’s a lot more.
I mean imagine a situation where you want to run a high demanded service? You would have to hire bunch of experienced engineers, invest in infrastructure, compute resources and then you have to design networking, how applications can be deployed, and how they can be monitored… It is not hard to imagine the amount of money that you would have to spend up front is big.
And the service your company have may experience big spike by holiday season demand but other times, not so much. If you host your application on-premise, the money you need to invest is big throughout the year.
However, if you do it on Cloud, you spend pretty much nothing up front. You can scale up your infrastructure depending on the load but you can terminate the resources that you don’t use other times. I think Cloud can save you so much.
Plus, Cloud providers does hardware maintenance for you. If an SSD fails, they replace it for you at no cost. They are specialized in it. And they keep adding services so that you can use them.
When you think about the infrastructure that they have, it could cost you hundreds of millions of dollars if not a billion. I heard that the initial investment that Larry Ellison did for Oracle Cloud Infrastructure was around 2 billion dollars.
Imagine your company has to pay that much money up front to create your own Cloud? I mean, paying 2 billion dollars doesn’t mean you are gonna get good scalable Cloud. You have to have the right engineers at the right place.
The more I learn about Cloud, the more I believe in it and it amazes me how it can change the IT world.