Search

Donnerstag, 28. November 2019

Docker deployment into Microsoft Azure

Microsoft Azure

Date when this services were used: 10.02.2020

1.   How much does it costs to run the small webapp in the cloud?


But you need to review following:  subscription agreement     prices   privacy statements

Registration experience:

Microsoft requires valid mobile phone and credit card for the registration and it checks if you already registered, so in my case no free subscription stuff , because i previously used Azure services ;)

Lets create costs control


Budget Control
In my case I have cost management base on usage



Ok so basically for my subscription plan there  no budget control, well this kind of odd, pretty average experience i can only say, remember I don’t use free plan, strange, oh well lets proceed further.

2. How fast your app can be deployed into the  cloud?


First look at standard view which you see at your azure home, there I type registry in search input field.
Lets create private registry in Azure


because I don’t have luck with free subscription stuff  I would try to use minimum one, which is “basic sku”.
The registry was created pretty fast, now fun stuff is deployment of my Docker container into the registry.

this what I got before the container deployment.



Now let's look at quick start docu which cool and great and easy accessible, at the azure container registry page.
There, note the access keys and generate password simply by activating the admin user in access key, there you see your credential for working with azure registry.
Here the result of my login which is successful (this actually a proof that its pretty easy to access Microsoft private registry if this admin option activated)


finally my docker image was deployed to private Microsoft azure registry, by the way my docker image only 840 mbs ;)
So how much space left on my container registry then ?

3. How easy the configuration for the deployment in the cloud?


Now lets deploy the docker container into eks ;)


 , so this is what you see first when you search for Kubernetes

Click on kubernetes services


Here you need to specify your cluster name and dns name prefix.
Kubernetes version well I prefer to use default.

Now lets look at more interesting stuff running nodes I picked b2s and I hope its pretty sufficient for my docker container.


so I decide to use  b2s and 1 node

Autoscale? No ;)



next options I leaved as default, then the azure monitor I say I don’t need it.
No tags and then just after review click create.

From this point Azure creates a Kubernetes Cluster with one node .

By the way did you notice the notifications which Azure produced the whole time, I think its pretty cool feature, because its not in your face but still make aware that something happens.

After the Kubernetes cluster was create its time to deploy the docker container to kubernetes
So there exist a kubernetes dashboard here is explanation how to activate it!

in console type: az aks browse --resource-group resourcename  --name kubernetesclustername
or just: kubectl proxy

so log into your kubernetes console

(FOLKS ATTENTION IMPORTANT TUTORIALS BELOW)



Create token trough this tutorial in order to access the kubernetes dashboard


So I finally i get to the dashboard!

Please notice, here is the part how to obtain the address of your private azure private registry?!
Go to your registry click on repository and look for box where yourimagename:latest
Now you need to generate a secret key which you can then you must use during the deployment its described on kubernetes  tutorial how to create a password

Without creating this password and using it in kubernetes dashboard , you wont be “allowed” to deploy into kubernetes

In my opinion its not so great to have such granularity, my experience was kind of average,  again learned a new trick how to deploy into kubernetes so the experience was quite great! ;)

AND IT WORKS!!!! , simply  put ! Was it hard for you? For me it took a while to figure it out (like the whole process less then 1 hour).


4. How can you scale resources in the cloud for your application?

I would recommend to use the kubernetes dashboard its very simple and obvious, well
and there in the Azure exist Node Pools feature (in Kubernetes service) and 
using it a lot of fun. ;)

5. Which additional services provide the cloud provider for extending your app?As usual more storage, security stuff, I say there exist enough of feature to expand and monitor your app


6. How easy it would be to move the webapp to another cloud provider if you find better prices, which other cloud provider offers you?

If you stay truly to “kubernetes way” , there actually only small amount of work (thinking about secret password for private registry) , but overall if you don’t keep yourself to much dependent on external Azure services , you wouldn’t have any pain to change the cloud provider, having said that switching the cloud provider can be very costly even if you don’t depend too much, but you have a lot of data like petabytes and moving all those bits trough secure vpn tunnel cost not only money but the time and I always say to business you should always pick your cloud provider with common sense and understand, that is a strategic decision which should be taken not lightly.

7. What kind of tools you need to know to be able to deploy into the cloud?

As usual CLI and web console, personally I prefer to use web, yeah some old folks say CLI all the way , but having too much devops work couldn’t be the main goal, my main goal is to be productive and spent less time on administrative site and more on development site, anyway Microsoft done good job with Azure I can recommend it.


8. Is there any additional maintenance for you app?


It depends , if you use a lot of databases , there you need to calculate how much it will cost to migrate all your dbs into cloud, its very difficult to decide you need to do performance checks and make sure you have backup plans if failures happens, I say use common sense.

9. What kind of tools does cloud provider give you to analyze the performance of your app?  



For my small project it would be too much, but it looks nice, if I compare of google tools I must say google per default provides monitoring tools , Azure have different monitoring tools, which in my opinion can offer even more clear picture then default google monitoring tools.

10. How secure the cloud environment where i run my app?

In my opinion security will be a blade with both edges with witch you can cut yourself. ;)
So what did Microsoft in Azure security wise, they offer a lot things like authorization and authentication  and if its not enough you can add additionally firewall rules.


One thing people should consider security is very flexible domain, you can do outside protection as long as you wish, but you can be owned indirectly trough bugs or exploits in your web application.

In my short time I wasn’t able to do a lot of security wise tests, but I am sure in enterprise environment with enough security specialist it's possible to make very secure Azure based Webapp, security must be maintained on 24x7 base and even then 0 day exploits will be really a danger. Here I can only think about IAM security policies in AWS, which can be very difficult to understand.


Conclusion:

Microsoft Azure really one of many great cloud providers, great tools and great documentation and even better pricing strategy if you compare my experience with AWS , where I was quite surprised by the invoice which AWS produced, one thing which I think Azure must improve is a Pay-As-You-Go subscription , I was actually able to create the budget , but It did happened only after I started to use kubernetes service its quite interesting observation, but I am not surprised, the price of nodes were quite obvious at the beginning. Here is my page currently online  on azure, i hope when you access it , it will work , if not then just write me the comment or send a message to my twitter 



1 Kommentar:

  1. Your blog is in a convincing manner, thanks for sharing such an information with lots of your effort and time
    Kubernetes online training
    Kubernetes online course

    AntwortenLöschen

All comments are pre moderated be polite and respectful!

Blog-Archiv

Blog readers favorites