Pardon my ignorance, but I never understood what Azure actually is. All I hear is some buzzwords. And this makes it even more confusing.
Can some smart people of HackerNews explain that? Is Azure similar to Amazon EC2? Or is it just some lightweight Windows installation on Microsoft-hosted VPS?
Windows Azure is a collection of services managed by Microsoft that, together with software development tools and SDKs (for popular languages such as C#, Java, Ruby, Python, Node.js, or over plain REST), comprise a computing platform.
It includes services for on-demand computing, storage (in No-SQL form and Blob form), message queueing, service bus, secure connection, identity management, horizontably-scalable relational database, big data computing (Hadoop), media encoding and streaming, content distribution network, reporting, business intelligence, a data marketplace.
The list goes on and on and is increasing rapidly. The gist is, you consume those services, Microsoft hosts and manages them (with high availability, geographic redundancy, etc.) and you pay for what you use.
- It's speed is very unpredictable. Sometimes it'll be lighting fast, other times requests will hang for up to 8 seconds. We've used nodes in data centers across the world to measure this and have confirmed 100% that the delay is happening at App Engine and not our machines :)
- There's been several times where I have used Google Python libraries (for other Google products) and found them incompatible with the version of Python on app engine. I've had to write several dummy modules that replace googles ones that attempt to open a file on the disk in write mode (not allowed) when they're not even writing to the file! I cant be specific, under NDA. I have contributed the fixes back to the Google API team.
- The last 3 SDK upgrades has broken something in the core modules, or Django. App Engine SDK upgrades are now a running joke at my workplace
- It's insanely expensive for the CPU / DB power that you get
Part of Python [removed] core module on App Engine has a bug in it. Including this module will terminate your application with an exception.
Nobody notices it in development or testing, because the dev system was including the python distributions [removed] module, which is apparently different to the one on App Engine.
Site makes it through testing. push live and crunch, falls over.
Now we have a test app engine account, and have to deploy to that first, because we cant rely on the installation of Python on App Engine matching the installation of python on our dev machines, even though the versions are exactly the same
I'm not following. Why is the name of the module "[removed]". Was that an edit? Why? Surely a bug in a core python module (whether it be AppEngine-specific or not) is a matter worthy of public discussion.
That's good practice. You test locally, then test on a real deployment environment, then deploy to production. You should also use app versions and test new ideas on new versions and always plan for rolling back.
PaaS is a tough thing to do. You have to automatically deploy new instances of your applications, distribute those instances according to the load on individual nodes of its clusters. Also, they have to do more or less the same with the datastore. If you have loads that experience sharp peaks, new instances will have to be spun up and that may take some time. Some seemingly random variations on response time are to be expected when you consider it's not only your application that's running there. You can somehow mitigate that by setting up warmup requests (https://developers.google.com/appengine/docs/python/config/a...) and tuning the minimum pending latency (https://developers.google.com/appengine/docs/adminconsole/pe...). If you build a fixed size cluster to run a single application, you'll experience much more predictable response times.
As for the price, you should consider what would it cost running your application on IaaS, rented or co-lo hardware. As always, YMMV.
Yes, Windows Azure is very similar to Amazon Web Services, but with Microsoft's technology stack. You're supposed to use SQL Azure (the 'managed' version of SQL Server with some cool features like Federations and Data Sync) as your main database system, for example. There's Blob Storage which is like S3 and Table Storage which is more like Cassandra but you can ignore it (no indexes is a huge handicap). The main difference between EC2 and Azure Compute is that Microsoft auto-updates Windows and IIS on Azure whereas you have to do the updates yourself on EC2. Otherwise it's basically the same at the same price.
For a one-man project, nothing beats Google App Engine. Azure and AWS require more work.
I'd argue, the platform that is easiest depends on your skill set/background. Azure is going to be significantly easier and more productive for someone with a .NET background, for instance over any of the others mentioned.
What facorreia said, and I'll add for simplicity that Azure is to Microsoft what AWS is to Amazon (as opposed to your question of Azure being like EC2).
Plus Google AppEngine (yes, Azure has more than 1 flavour: AWS style, GAE style, and the following that I'm about to mention) and also an environment where you can drop your pre-configured Windows 2008 Server VM as well (not sure if it is limited to Windows 2008 VM only).
I think the main difference, according to what I got from a friend who used it, is that the Azure PaaS offering is billed by uptime while Google's App Engine is billed by actual usage (because it can shut down unused instances).
"... I never understood what Azure actually is. All I hear is some buzzwords."
A common problem in the software world, not limited to MS.
The question is whether this is intentional or whether the company lacks the ability to actually tell you. Communication with the customer might be handled solely by marketing executives who may not understand what Azure actually is. The code might be so needlessly complicated that even few developers have a wholistic understanding of it.
One of the great things about open source is that if the need arises the customer can find out what something actually is. The system can be disassembled into smaller parts for a better understanding. The source code for individual programs can be read. The code for the compiler is also open for inspection. This has great benefits.
This is great, but you can't actually configure virtual machines unless you're one of the "select members of the community". So, if you sign up today, on the three month trial, you can't just configure a linux machine and test it.
If you even manage to get to the correct place, which is a Silverlight powered management console - when HTML5 / AJAX would do.
Lots of bloat and lots of cruft and no actual functionality.
They made a new portal in HTML5 and JavaScript. When you access the former one (that was in Silverlight), there's a link at the bottom inviting you to change.
IE9 was optimized for rich HTML5 and JavaScript applications and IE10 on Windows 8 won't even run Silverlight.
I should clarify that it's Internet Explorer _on Metro_ that won't run Silverlight (as far as is known). And, in consequence, ARM tablets won't either (because there will be no desktop mode, just Metro).
On the other hand, the new XAML-based API will be a somewhat easy upgrade path from Silverlight app to native app.
Hey, I work on Azure. I'd love to help you get past this problem. Can you email me at bilal dot aslam at microsoft dot com with the LiveID you were trying to sign up with?
Why do I get the feeling that every article about MS is posted with the tone "Hey look guys, MS is doing something stoopid". The same tone seems to be missing when other tech companies are concerned.
I've thought a lot about this over the past few years. I believe there are a couple of cultural factors which contribute to it. On the large scale, Apple's "I'm a Mac. I'm a PC," made Microsoft bashing socially acceptable in the general culture. The second is more subtle, but more applicable to HN.
Microsoft is not a Silicon Valley company and it never was. One source of animosity that this has created is that it has been a powerful competitor to a great number of Silicon Valley startups. More deeply, as a bootstrapped company, it goes against the economic model upon which Silicon Valley's entire capital structure depends...YC cannot produce another Microsoft because YC companies take outside investment at day one. A startup which emulates Microsoft doesn't offer an opportunity to make early stage investors rich.
I would add a third point to that: we've watched MS use their size and position to stifle and destroy good companies. Now, when MS does something that could cause them problems, we react with glee.
People don't bear Apple animosity for what they have done to RIM, or Google for what they have done to Nokia for the same reasons nobody hated Sun for what they did to DEC.
Maybe it's not just the "what" but the "how"? The perception is that Apple stomped RIM into the ground fair and square, while Microsoft mortally wounded (then beloved) Netscape through anti-competitive bundling and partner manipulation?
Google is every bit as much an existential threat to most small software companies now as Microsoft was at the height of its power, but we don't have any resonant stories of Google competitors being taken out unfairly.
Lest we forget, Netscape was acquired by AOL for more than $4 billion. One can blame Microsoft for it's demise, but both the acquisition and the anti-trust suit occurred in the same year. In other words, despite Microsoft's actions, there was a solid exit on paper.
Microsoft also doesn't do much that is interesting. They tend to imitate and their imitations are seldom better, and are often worse, than the originals. The only moderately recent exception I can think of offhand is Kinect. Are there other innovations they've brought to market over recent years? Microsoft's research division does amazing things, of course, but I'm talking about products.
I think Windows Phone is a pretty solid innovation on the smartphone front. It's UI isn't iPhone UI++ like Android, WebOS, and others. It's new and interesting.
A lot of their living room entertainment stuff they've done with Xbox and Windows Media Center has been pretty cool. Not necessarily groundbreaking, but still neat.
In addition to the other examples mentioned, I would definitely call the F# and C# languages "interesting." I would also call their new approach to async "interesting." There are quite a few interesting things going on, but you don't find microsoft "interesting" you probably rarely hear about it.
On a pure technical level C# is better than Java, and F# is one of the most interesting languages in recent years. (SQL server really does have nothing going for it).
But the pure technical level isn't all that matters for a programming language. There's not the same library community around .net, because it came five years later and not enough better than java. And there's no migration path, because - which is worse - none of the MS stack interoperates with anything else.
I would, quite genuinely, like to do parts of my current job in F#. But there's no eclipse support for it. Even if I wanted to use visual studio, which I don't, it doesn't run on linux (and that's to say nothing of deployment - our ops team has been burned enough times trying to run windows servers). If I'm going to write things in F# there has to be a way for the rest of my code to use it, but F# doesn't run on the JVM so I can't write a library in it (or call JVM libraries), and when I looked for protocol buffers support all I can see is some third-party google code project.
I wouldn't want MS to give up on .net as it's actually a really good VM, so I guess that part makes sense, but windows is useless on the workstation and the server - and it seems like all the cool MS technology only runs on windows.
I disagree with the 2nd paragraph. Amazon is not a SV company but the are loved by SV. I think the problem goes waayy back to the original ideological differences of Steve Jobs and Bill Gates.
However one thing that might make SV loyalists tick is that the largest software company in the world is not in SV.
But lets be honest, Steve wasn't a paragon of virtue himself. Actually the more I read about him (just read the June Fast company article) the more I think he lets his emotions dictate his corporate actions. I mean, who ever publicly announces that they're starting a rival company in revenge for being kicked out?
I like (todays) Bill Gates as a human being. I like (the last current build of ) Steve Jobs purely because of his marketing skills.
Most of the hacker animosity stems from MS' history of using underhand tactics to destroy FOSS and the web. Not compete with, but destroy at all costs. The ill-will this engendered in the community will probably never go away, and rightly so. It arguably set our industry back decades.
The Microsoft of 1998 is not the Microsoft of 2012. Today's MS releases a tremendous amount of code under open source licenses - most recently, their entire web development stack (ASP.NET MVC, etc):
Yes, the Microsoft of 2012 does release a fair amount of code under Free Software licenses.
It's even contributing directly to the Linux kernel.
That said, substantial members of senior executive management, including specifically Steve Ballmer, were key in leading the dirty tricks campaigns against all competitors, from DR DOS to Novell to WordPerfect to Linux to Netscape to Sun to Google.
Some of us have long memories.
Microsoft have fallen long and hard from their late 1990s heyday, but they still haven't exhibited the cathartic rebirth of, say, IBM in the early 1990s. There is a reason the first Macintosh ad featured the hammer thrower smashing Big Brother's image on the screen (1984), and I can distinctly recall it feeling very odd to note ~1997-99 that IBM were positioning themselves as very, very strong champions of both Linux and Open Source (they liked the OS mantra better than Free Software).
They did so, however, on the basis of a very detailed, high-level, senior-executive endorsed study into the competitive advantages of pursing just this course of action (Tim O'Reilly references this in Open Sources, it's sometimes known as the "Earthquake Document", as it literally shook the earth IBM was standing on), specifically targeting its perceived major competition from Sun (since neutralized entirely) and Microsoft (a looming and large threat, now largely castrated).
Until such a time as Microsoft comes to a similar conclusion, and changes its fundamental business practices (from embrace, extend, and destroy) in a similar way, I'll continue to keep them on my enemies watchlist, if not necessarily at the top of that list. There are most definitely other entities I consider to be bigger threats, both inside and outside the tech landscape, today.
"Some of us have long memories", but some of us have also moved on. I say this as someone that has been through the System 5 days, PC Dos 1.0, CPM, DR DOS, Novell, Borland, Word Perfect, etc.
In mobile, gaming, and SAAS/PAAS, Microsoft has been open and experimenting. As others have mentioned, they've contributed to the Linux kernel, after some stumbles on Kinnect they embraced the hacker community, etc. Microsoft, for all its failings, is still willing to try developing and creating new products and services. Not all succeed, Zune was just retired (for instance).
That said, comparing them to IBM? Really? The IBM that has basically gone out of it's way to cut research labs, decommission most projects, and become a purely services company that is in the process of outsourcing as much as it can? I will take one that is still trying to innovate and create products from consumer to the enterprise over a company hell bent on becoming mostly an outsourced enterprise services company (we already have EDS and others for that).
Personally, I am not a huge MSFT fan. My house runs pretty much all Apple (or Linux). Windows is confined to VMs (or the wife's corporate laptop). The two things that were "aha" for me with MSFT and how they were Windows Phone 7/Metro and Azure -- specifically the original post on anodjs.org with the title "We work at Microsoft and we use node.js". Five years ago, we would not have seen that.
Returning to my original gripe - yes, MSFT has lots of the old guard around; yes, parts of MSFT still think like they used to (or are in the Redmond cacoon) - overall the company is doing a lot to foster innovation and new platforms, you'd benefit by letting go of old grudges. The industry is small enough where some of the "bad people" have moved to "good companies" as well as the reverse.
That said, it is certainly useful to be watchful and see what future moves are made.
Among the more interesting articles I've seen on the company and its practices was in the short-lived Brill's Content magazine of the late 1990s, titled "Making Bill". As I said above: there are very profound reasons to distrust Microsoft, and they haven't changed.
I certainly don't trust IBM in all things. What's significant for it in terms of its relationship with Open Source and Linux is that IBM has determined that its fundamental business interests are inextricably aligned with Open Source and Linux systems.
Microsoft have shown themselves to be adaptable over time, but it also frequently acts in limited ways that are clearly in its interests. And while, yes, Microsoft are contributing directly to the Linux kernel, the contributions are largely drivers related to Microsoft technologies -- mostly the Hyper-V virtualization system, where the enhancements allow Linux to run within Windows Server instances. Hardly generalized kernel code improvements, though still useful to some (notably, Microsoft). (http://techie-buzz.com/foss/microsoft-linux-3-0.html).
I don't have a source tree handy to check myself, but I suspect that this is still the case.
Their position was much stronger in 1998. But over time MS has lost the war on open source. The idea of trying to stop the spread of FOSS and licenses like GNU is no longer a realistic strategy for them.
The documents filed in Comes v. MS detail MS's own admissions internally that MS lost its way. Apple uses open source. Google uses open source. It has been very successful for them. The same open source code is available to anyone to use, including MS.
But MS still has the same motives with regard to open source code. Embrace, extend and extinguish. Extinguish. That is not good for the consumer. MS for whatever reasons does not like the idea of open source.
MS is just a large copy machine these days. They just copy Apple and Google; they buy Facebook users. MS are not leaders anymore. They are followers. They have the cash to copy or acquire any competitor for many years to come.
I don't think that "stoopid" is the word. It's more like "strange". Also probably you want to read more about M$ history (and software history) to know why hackers really don't like M$ above all other companies.
I was under the impression that Azure only offered a platform-as-a-service, not infrastructure. Is that no longer the case? You can now run your own VMs and put whatever you want on it?
Good point, when I was looking into Azure about 18 mths ago, you could have a Windows VM but the idea was that it was instantiated and port 80 was called and then it might get thrown away again afterwards. The same may be true for Linux instances, but its an important distinction between this service and AWS/Linode where you can have an instance running long term which has it's own state.
I'm really hoping they break out of that model. It's great if you want to run single apps on an instance but it falls down once you look at running a series of clients on the same instance. You need to do some hacking to get the IIS setup for many sites which is how we operate.
Our current proposed structure would be to use AWS for front end and Azure for the DB which isn't ideal but I find AWS far more flexible for our purposes.
Isn't it going to affect performance to have your server talking to your DB over the internet (as opposed to a local network which I presume is the case when running EC2 instances in the same availability zone)?
I thought this but after doing some tests the results are pretty negligible.
A windows 2008 server license on 2 machines for fall back comes in at around £700 - £800 a month per instance. The same redundancy on Azure is around £80 - £100 a month. If it doesn't work then we go back to the drawing board, if it does work then we have saved ourselves an almighty chunk of money.
We cache a lot of data in our application too which we are putting into elasticache, which is local to EC2.
We haven't used it in great stress yet but initial tests were very good
A majority of our writes are product updates but they are done directly into azure from a local box. These can't be done from AWS as they go into gbs but that is the only situation we need worry about.
If azure opened it's model up then we wouldn't need to do all this!
Just got out of the first half of the Meet Azure prezo. Pretty slick integration of PaaS and IaaS. Git, Linux, Node.js, MongoDB, but also .Net, Team Foundation Server (ok, I had to look up TFS) and RDC. Has SQL Server as a managed service. Website hosting also: Wordpress, Drupal, etc. Caching (memcache-compliant) and Blob storage. Lots o' data centers. Identity management.... yeah Active Directory. They have multi-tentant (lower $) and reserved VMs (more $ and perf, tho not clear if everything runs exactly like on reserved VMs). Sounds like they've been hard at work. It'll be interesting to see how it works outside of a scripted demo. http://meetnodejs.azurewebsites.net/ is the node.js and mongodb demo they ran. Still seems to be up.
I tried running Java (well, actually Scala) on it. Java is officially supported... the support is: Pack your JVM into a .zip, a .cmd script will call a .vbs script to unpack your JVM and then start it.
I kept thinking that this must be a quick and dirty hack and there was a proper PaaS-like solution. Nope, that is the official support for the JVM. Pretty much the opposite of Heroku.
To be fair, they probably offer proper PaaS for their technologies. But for other things, it is basically (windows) infrastructure and you have to configure/update/etc your software on your own. I wouldn't expect any bells and whistles for the Linux support. Then again, it doesn't hurt if we have a choice.
Actually, this is the approach you need to take to install any software onto an Azure VM that is not part of the Windows Server-based installation. But you really only need to figure out how to do it one time; after that, it should be part of the build process for your .cspkg and something you don't need to think about again.
One of the other announcements from yesterday is that there's now tooling for Eclipse which should eliminate this pain point. See http://msdn.microsoft.com/en-us/library/windowsazure/hh69094... for an overly-detailed description of deploying a Java app to Azure.
> But you really only need to figure out how to do it one time; after that, it should be part of the build process for your .cspkg and something you don't need to think about again.
It didn't take long to figure out (Microsoft is one of the few companies that really puts a lot of effort into documentation, and I appreciate that).
I have two other problems with that:
- I need to think about it again whenever a (security) update is released for the software (not only including the jvm, but also the web server and, for me, scala and akka)
- I have to upload that whole mess each and every time when I update my software. For my slowish internet connection, it took at least 30 mins to upload the whole stack (JRE, netty, scala, akka). [Fixed that by putting the .zips into the storage (whatever their S3 is called) and let the .cmd script download these]
Oh wait, I just remember one more detail about the webserver (taken from the .cmd):
:: 3) Place a Jetty 7.x distribution as jetty7.zip under approot in your project
:: 3.1) If you want to download the server into Azure directly from a URL instead, then
:: uncomment the next line and modify the URL as appropriate:
That is just wrong. If the eclipse server is down or changes its URL... my servers won't start. And, if I load balance my servers, I everytime use server resources of eclipse?
I really do not understand why Microsoft doesn't simply provide VM images with Java and the common webservers pre-installed. Or, at least a repository inside azure where I can download common Java versions and other common Java software. They spent big marketing dollar on their website and documentation on Java, yet when I actually used it, it felt like the engineer spent 2 hours on the Java support.
All of this is fine IF I want 100% configurable IaaS. But I'd rather have PaaS (which is what the parent comment was about), and Heroku, CloudBees etc. have so much more to offer, at least for Java.
This is awesome. I was in talks with them at my former employer and we were very interested in what they had but badly needed to be able to at least deploy a mix of Windows and Linux boxes. At that time the sales person we were talking to said he did not foresee a future where they would support linux.
And before the fanboi's jump on me about Windows, you can't get every video/audio encoder on the planet on Linux so sometimes we had to deploy Windows and OSX boxes to get all the various encodes we needed for our distribution. Some of the code literally was 10+ years old and the original companies out of business.
It was very interesting to see the demos on Macs during this event. Specially when they showcased a website made on Node.js deployed via command line from a Mac consuming Mongodb hosted on Linux, all running on Azure.
I attended Microsoft's free developer camp for Azure and it's worth spending a day if you are looking to use Azure. You will come out of it with a good overview of all its offerings and abilities.
OFF TOPIC: But I'm glad they've opened up their "eligible-country" list to include many more countries (including my own). Finally I can test-run Azure without having to use any dubious means like setting up a free US phone number to receive an SMS on.
That's interesting. Since IE is not supported on Linux, that means Microsoft will have to support Chrome and perhaps Firefox on the Linux machines, and their engineers will have to use Chrome (if they are not using it already).
In other words, Microsoft is not willing to sacrifice the Azure platform by digging their heads in the sand and pretending they are a server monopoly. Not allowing Linux is a major disadvantage even to Windows shops (Stack Overflow runs Redis on a Linux box, for instance).
I think this is fantastic news. AWS needs serious competition from industry titans. It doesn't matter if a startup charges half the price if it might not be around in a year or two. Nobody gets fired for buying Microsoft.
Somewhat off-topic, but I hate this quote. Replace Microsoft /w IBM/Oracle/etc and it's still a straw man argument.
I recently worked for someone who came on to replace the CTO of Java-shop, brought in a number of Microsoft developers, and was unceremoniously fired after less than 2 years.
There's a very real truth to it, even if it is an exaggeration; large companies are not worried whether MS will be in business in 10 years.
Your example has the CTO coming in and changing one industry standard technology over another due to personal preference, and that's the reason he got fired. The story could just as easily been the other way around.
If a startup like Heroku comes along that's a more direct customer to AWS, despite being the darling of a site like this (myself included), nobody in enterprise land is going to touch it with a 10 foot pole. MS could compete toe to toe with Amazon for this business, and that's my point.
IMHO it shows me they're in it to win it and willing to bend to market forces and support what their customers want. To me that is the biggest message here.
I would say it is not about "bending" so much as just solving customers' (not consumers' ) problems. It is, in my opinion, a mistake to attribute Microsoft's motivations as being ideologically driven in the way that those of the FOSS movement may often be.
At their core, Microsoft tends to be very practical when it comes to B2B relationships.
Does anyone know when this is actually going to be available? (Its currently "coming soon") After Scott's talk today? Or are they going to slow ramp this?
Really wanted to try this out, but I still can't get the preview of the new features -- it just says "coming soon". I'm in the UK and have MSDN subscription. Does anyone else have the same problem?
Can some smart people of HackerNews explain that? Is Azure similar to Amazon EC2? Or is it just some lightweight Windows installation on Microsoft-hosted VPS?