Cloud Deployment

Introduction

The final annex of the Cloud Services learning goal is the actual deployment on a Cloud platform. A successfully integration into AWS/Azure, etc. ensures the application communication function on an online platform. This implies that every external component is reachable through the internet.

Implementation

I did a lot of research about which platform I was going to deploy my Ramses back-end. Here are my conclusions:

  • AWS: Required a creditcard (even to use it as a student)

  • Azure: Very convoluted dashboard, guides that are older than 1 year usually not relevant

  • Google Cloud: Same as AWS.

Thus, I decided to deploy my application on Azure.

AKS: Azure Kubernetes Services would be the perfect and ideal solution, as within this kubernetes engine I can set up auto scaling, etc. as I’ve done in my Rancher deployment. But alas, the accounts provided to us by college has various restraints. That’s logical of course, as I believe it was never the purpose of having students use Azure in the way we are trying to use it. As such, my account has no special privileges required in order to deploy the cluster. Either those rights are appended to my account (which realistically will never happen if my college has implemented ITIL correctly and realize that the use case will require other students to getting that privilege too and so forth) or I’m given certain credentials required in order to connect the AKS to my own Rancher cluster (such as customerId, tennantId etc.)

So instead, I decided to deploy single containers onto Azure in order to prove that the former would also work.

And here are the steps in order to do that(30/05/2022).

https://i.imgur.com/YIMT8d6.png

Then open Containers -> and create Web App for Containers.

https://i.imgur.com/zPQDq0f.png

Then select the right resource group: note never do this in an actual business. It’ll confuse your cost management.

Doing this enables you to select a App Service Plan. But first, lets fill out all of the information like so.

https://i.imgur.com/gJeKeqp.png

Then when selecting the App Service Plan, I chose custom plan(can’t see it on the dahsboard anymore to show you?) and selected the Free F1 service plan which includes 60min/daily free usage + 1GB of memory.

The rest of the options in the Basics tab I left default. Same goes for Deployment, as I don’t use GitHub Actions and do my CD through Jenkins.

https://i.imgur.com/F2jWxF8.png

Then open the image source & selected Docker Hub because Ramses is using Docker Hub as registry.

https://i.imgur.com/6rybVcY.png

I didn’t change any other options from here and created my container. After starting the container, I discovered errors in the Log Stream.

https://i.imgur.com/AiF4Gu3.png

Uh-oh! The database isn’t reachable. After changing this & testing locally if my database was reachable through the internet, I re-deployed and discovered the following:

https://i.imgur.com/JTsg91i.png

It’s working?

https://i.imgur.com/xW4uVSM.png

But wait, it’s a 401! Then I grabbed the token from my front-end, put it in and…

https://i.imgur.com/IPw2lCE.png

It works! Ramses is now officially in the cloud(when it’s because it’s only free for 60minutes every day so I manually have to turn it on to showcase it.)