jay's old blog

this blog will be deleted soon - please visit my new blog - https://thesanguinetechtrainer.com

Project TD - Day 55 update – A Word About Microsoft Azure

[Ongoing series of blog posts to inform potential developers, users and (hopefully investors) about this new app ecosystem I am architecting, designing, developing and deploying. More details at this page]

I have been working on Project TD for about 55 days now. It has been an interesting experience because of what came before Project TD, and the incredible potential TD holds, if it should be fully realized as per its original vision.

Day 55 is also significant in many ways because, till now, most of the blog posts have been about explaining the concept, the design and the work process. All this is good, and obviously essential. If one were to compare this to a vacation, then, till now, I have been mostly planning the vacation. Deciding on the places to hit, the modes of travel, the clothes to pack, accessories being purchased and so on. It’s all happening in the drawing room. It’s like the first half of a heist movie.

Now, things are getting real. The vacation is planned. The places chosen. It’s time to step out of the comfort of the home and go outside. Time to carry out the heist, and I guess, I am stealing knowledge, to complete the metaphor.

For the last couple of months, I have spent a small fortune (to be honest, it’s a lot of money for a small time businessman such as myself) in setting up all the necessary hardware. I have got the computers, power supply, mobile devices, tablets, office space and everything else. In each case, I also had to invest in a backup system, which simply multiplied the cost by 2. All this is the ‘planning part’.

Now, all these ideas must become real, and the services must run on the cloud. The cloud is the backbone. The cloud is where Project TD will live. I have been using Microsoft Azure for a little over 5 years now. However, I have only been using it in bits and pieces. To host a website here, run a mobile data service there, setup a notification center here, host a virtual machine to test an application and so on. None of them were related to each other, so it wasn’t a complicated system. Project TD though, by any measure, a complicated system. It will push my ability to harness the power of the cloud to levels I have never done before. Almost every part of this system can be automated, post deployment. I will taking advantage of that too and see how far ahead automation has come.

And the monetary cost! Man, I have going to be paying huge bills for at least the next 2 years!

While the cost – time and money – is huge, I am convinced that the cloud thing is pretty much in place now. As the amount of data people consume is only going to increase, the requirement for cloud services will only increase. Project TD will help me figure out how to make multiple cloud components work with each other in a rather complicated system. By extension,  this should provide me insight into what is best fit for the cloud and what are not.

I will be the first to admit that Microsoft Azure is expensive when compared to Amazon and Google. However, I find that Azure has a lot better support to Visual Studio, which is a deal maker for me. Microsoft is one of the big dogs (if not the biggest dog) in the cloud business, and they are constantly adding new stuff to their cloud services.

So yeah, Dear Mr. Azure, don’t let me down man.

Follow me on twitterfacebook and instagram for more updates. Thanks    

Choice of Cloud Platform

[Ongoing series of blog posts to inform potential developers, users and (hopefully investors) about this new app ecosystem I am architecting, designing, developing and deploying. More details at this page]

The app ecosystem has many components but it can be broken down into two essential parts. There are the user apps (all types of users) and the API engine (which also includes the data storage system). The user apps live on the web, android and iOS. The API engine and the data storage system live on the cloud.

For almost a decade now, we have been hearing about this cloud. We hearing about it so much, sometimes, it’s almost funny to talk about it. However, the cloud is very real, and it really does make life simpler. For a developer, the cloud technology is a god send. It reduces costs, allows new features to become immediately available and mostly makes life better for end users as a consequence. It is only obvious that my app ecosystem runs all its processing in the cloud.

For cloud, I can only think of two choices – Azure and Amazon Web Services. I understand that Google also provides cloud services, and there are a lot of many smaller companies that provide cloud services. It is also possible to utilize cloud software to build our cloud services.

For those who are unclear about this concept of cloud, I will put a simple definition here. Cloud is about a service that can be scaled up and down as per requirements. Almost instantly. That is the cloud. For instance, I am running a server on a VM and I realize that I need additional 16 GB of RAM instantly. With a conventional VM, I will have to go through a series of steps and wait till it gets provisioned. This is just for RAM increase. What if I only needed the processing power increase for one day (perhaps I was launching some huge sale which only lasts one day) and no more. What if I wanted a bigger hard drive for a week only. Or perhaps, I don’t know what I need, and I wish to increase or decrease or perhaps I just wish to experiment and find the ideal combination. All this will lead to a flexible solution that will allow reduction of cost.

In a non-cloud scenario, there are people who have to do things manually. I am all for working with people (one cannot get anything done without people) but sometimes, they can be a hindrance rather than help. It is in human nature to make mistakes. That is why, when possible, we use machines. Cloud removes that human factor almost entirely. Without going through the IT team (or not have an IT team at all) I can provision stuff that are required to allow my service to work.

Now that I have discussed what the cloud is, time to decide the choice of cloud provider. For extremely obvious reasons, I will go with Microsoft, with the only alternative I would recommend being Amazon Web Services. Compared to Amazon, Microsoft services are expensive, and they have reduced trial periods. For instance, Microsoft is generous enough to give a month or at most 3 months of trial services. Amazon though, can give a year worth of free services in some cases. Clearly Microsoft is expensive.

However, for one thing, I have been using Azure for almost 5 years now and so far, it has not disappointed me. Their service is excellent, and Azure keeps getting better with new services being added constantly. They met my needs 5 years ago, and I am sure they will meet all my IT needs for years to come. It is possible I am a little biased here, but I am yet to come across a simple reason (other than low price, which is not really a priority for me) why I must explore Amazon Web Services, or some other cloud service.

So yes, the app ecosystem Project TD will be powered by Azure cloud.

Follow me on twitter, facebook and instagram for more updates. Thanks!

Getting started with Amazon Web Services

There was a time when I, and by extension our club, study nildana, was a full on Microsoft house. All of us used windows phones, windows 10 desktops, visual studio for development and Microsoft Azure for cloud and site hosting. However, times change and study nildana has to move on with times. Hence, we made some changes to adapt other service providers as well.

One of those decisions was to explore what Amazon Web Services has to offer. Of course, while a decision was made to use other service providers, there is always a trigger point that leads into actual action. Over the last few weeks, I have been thinking about servers. I know my way around Microsoft SQL servers, but my knowledge about MySQL is extremely limited. Back when I was Microsoft only, and Azure only, I had jump through a lot of hoops to get MySQL.

In fact, I still do not know why Microsoft won’t give a native cloud solution for MySQL. As of today, there are two ways to get your own MySQL solution running.

·         Buy from a vendor. Microsoft has a marketplace which is extremely useful. One of those vendors is ClearDB who provides instances of MySQL databases. This is good for most use cases but the problem is, this is no different than buying database from a local provider. You get none of the obvious benefits of Azure. Heck, if you have Azure credits, it won’t work in the marketplace, at least not with ClearDB. Further, ClearDB has some extreme limitations which makes it next to useless for most scenarios. I have used ClearDB and it was insanely expensive and it was extremely not productive at all.

·         Build your own MySQL server. This is something that I eventually decided to do. You see, MySQL is open source. That means, you can install it wherever you want. That’s one piece of the puzzle. Then, there is the fact that Microsoft provides windows server as a virtual machine, at fairly low prices. So, you simply commission yourself a windows server virtual machine, and install MySQL on top of it. Open up the ports and you have an almost native solution.

The second option – using the windows sever with MySQL running on top of it – is good. Still, it is still not as cool as the native azure service. For instance, look at the MS Server databases that Azure provides. All the scalability in the world, cheap prices and incredible backup and security. You get none of that flexibility with MySQL related.

That is when, it occurred to me, Amazon provides native MySQL services. I have been itching to try that service out. Here are some of the stuff that impressed me.

·         I was able to use my existing amazon account. Made sign up easy.

·         Amazon is giving a year of free cloud usage, which is good enough for my practicing and blogging.

·         They of course have native MySQL solutions.

First impressions though, the Amazon ‘console’ is simply not as good looking as the Azure management site or the management portal. Also, it looks like everything is bare bones on Amazon, in terms of user friendliness. I will blog as and when I do more on it right here.

Mapping Azure site to Godaddy domain

One of the many things that I find myself doing a lot is domain mapping. This is essential and something that happens a lot when you are experimenting with lots of web content. Here is how it normally works.

  1.          You build your site on your computer.
  2.          You then push your site files from your computer to your site on azure web sites.
  3.          Then, you buy the domain from Godaddy.
  4.          Now, you need to connect that domain from Godaddy and the site on your azure web sites.

In this post, I am talking about the last step, connecting domain with azure web site. In order to do this, you will need some information from Azure, and also from Godday.

On the Azure, side of things, you need to be ready with the following.

  1.          Login to your Azure management site (not the azure portal, which is frankly a big mess and I don’t use it right now).
  2.          Select your website, and head over to the dashboard.
  3.          At the bottom of the webpage, you will see ‘manage domains’.
  4.          Here, you will fill in some stuff, but later. Right now, simply make a note of the IP address provided over there.

On the Godaddy side of things, you need to.

  1.          Login, of course.
  2.          Then, head over to your domain details and select your domain. If you don’t see something complicated (you will know it when you see it) ensure that you are using ‘list view’. DO NOT USE ‘card view’.
  3.          Once you are in your domain, you will see something called ‘DNS Zone File’. Yup, go into that.
  4.          Here, there two things that bother you – A (HOST) and CNAME (Alias).
  5.          Under A, you have two things ‘*’ and ‘@’. For both, put that IP address that you got from Azure (the top steps of Azure). Save the changes.
  6.          Under CNAME, you need to add two entries.
  7.          First entry will be ‘awverify’ (Host) and ‘awverify.<yourazurewebsiteaddress>’ (Points To)
  8.          Second entry will be ‘awverify.www’ (Host) and ‘awverify.<yourazurewebsiteaddress>’ (Points To)
  9.          Your azure website address will be something like hello123.azurewebsites.net. Here ‘hello123’ is the name you may have used when creating the website on Azure management window.
  10.          After adding both, save.
  11.      Now, come back to that Azure page, where you found the IP address (Manage Domains).
  12.          Enter your domain name, without ‘www’. Azure will find it, and give you a green check mark.
  13.          Enter your domain name, with ‘www’. Azure will find it, and give you a green check mark.

That’s it! Now, your azure site and domain on Godaddy are both connected. Of course, these steps will work for not just Godaddy but any domain company from which you purchased your domain from.

June 2nd update – and the Exam 483 book and the cloud and the future

I thought it was time to provide update to my interns who are being groomed by me to achieve the Exam 70483 certification.  

This notes will help them and future interns who are becoming part of the certification paradigm. The code for Unit 1 and Unit 3 should be up on our bitbucket repository soon enough. As always, the code is extensively documented so that you will be able to understand what is going on. Further, blog posts will accompany each topic. The blog posts are currently being written and should be live progressively. Once the blog posts and code goes live, our Exam 483 collection would have covered 3 out of the 4 topics. Personally, that makes me very happy. 

I also anticipate my interns to join me in posting their own take on the topics, so the amount of blogging on each topic should rise exponentially in the coming months. 

I also wanted to take this opportunity to praise the book that I am using to serve our purpose. The Book is Exam Ref 70-483 by Wouter de Kort. Each of interns have received a free copy (physical copy and brand new!) of this book from study nildana, and I personally am using the same as well. The book is not elaborate, allowing developers to learn mostly on their own. It's not a thorough guide and that is good because it covers the entire gamut of programming. I love the book and strongly would recommend the book to anybody who is pursuing a career in .NET.  

Many of these blogs and code is inspired by what Mr. Kort's book. For that we are truly thankful. In fact, if you are reading this and you are a future intern of study nildana, do let us know. We will ship you a free copy of this book (brand new, of course. We don’t want any of that second hand business when it comes to books) to your home.  

I fully expect my own blogs and code repository to be complete by end of June. Of course, my interns and I will keep fine turning the blog posts as well as the code over time, making it better and better. Meanwhile, once I am done with c sharp, I will be beginning with the following two exams.  

Exam 480 - Programming in HTML5 with JavaScript and CSS3 

Exam 532 - Developing Microsoft Azure Solutions  

I will be blogging simultaneously about this. As usual, code will become available at our code repository. There are specific reasons why these are the exams study nildana is pursuing 

Exam 480 is obvious. It's possible today to call yourself a programmer without knowing about web programming. I am a .NET developer but I find myself constantly working on web technologies. Further, with the whole world moving (or already there) to a service based model, the browser is the center of the universe. Any developer who thinks he can survive with just one programming skill is a fool. In fact, such fools are not welcome at all at study nildana. The only way to survive in this complicated world is with multi-skills and I am not just talking about technical skills here.  

Exam 532, is a bit of a higher order. I don’t expect any of my interns to dig deep into anytime soon. However, I like to be prepared. The 532 is about study nildana becoming prepared for the cloud. The service based model implies that we will use applications that are constantly consuming data. Mobile device usage has exploded, but the service usage is still minimal. The usage part is where the cloud comes in. So, study nildana wants to be prepared.  

Of course, the cloud is one big place and there are so many players. Although study nildana has been burned with the windows phone and Microsoft Mobile in general, we haven't gone extinct. God no. On the contrary, thanks to the very same Microsoft, I am in a very good place in my life, and so are my students. Which is why, we have chosen to side with Microsoft's cloud offering. All this and more is why Exam 532 becomes important to us.  

At the same time, I have come to realize that embracing other platforms is part of the game. Remember when I talked about multi-skills? Yes, and that means, study nildana will wholeheartedly embrace other cloud solutions, especially Amazon and Google. Its just that we want to take our baby steps by holding Azure's hand because we already know how to use Azure. Hopefully, with more and more study nildana members becoming active, we will have folks working on all of these.  

With that, I will bid goodbye for now.