Thursday, October 13, 2016

All Roads Lead to The Cloud: Why On-Prim Software Makes Less and Less Sense

With high-speed Internet becoming ubiquitous and web browsers getting better, we're seeing a major shift in the way we purchase and use software.  Only a few years ago, if you wanted a word processor, you'd go to a local computer store, buy a boxed copy of something like WordPerfect or Microsoft Word, go home, and install it. When you wanted the upgrade, you'd have to do the same thing. Not only did this take time, but it was expensive and sometimes required hardware upgrades so that your computer could accommodate the new software (hard drive size, processor requirements, etc).

Today, that process is much different. Now, if you want a word processor, you simply open your web browser and go to a website run by Google, Microsoft, or a few others and subscribe to the software. There's nothing to download and you're always on the newest version immediately when it's released. Best of all, it's cheap.  For example, subscribing to the Microsoft Office online suite, called Microsoft Office 365, costs only $6.99 per month. For that you get access to all of the Office applications through your web browser and the ability to install those applications on either your tablet or PC. You also get a terabyte of online storage so you don't need to worry about taxing your computer or tablets hard drive and your documents are always available to you wherever you happen to be.

Office productivity is only the beginning. As more and more software moves online, it seems there's no limit to what we'll be able to do while on the go. Gone are the days of lugging a heavy laptop around as you moved between locations. Most cloud based software runs perfectly fine in both laptop and mobile browsers and cloud storage means everything seamlessly moves with you. Software in the cloud also means that collaboration is dead simple. No more emailing files around or waiting to see what changes your colleague made to a file you sent them. The cloud often allows you, not only to share in an instant, but to watch the other party edit the file in real time.

With all of the benefits that cloud based software offers, one could logically ask the question 'is on-premises software going away?' and the answer is almost certainly 'yes, for most users'.  It makes little sense for a home or small-office user to use locally installed software with all of the headaches it brings. For most people, it just makes more sense to push as much of their workflow to the cloud as possible. As web browsers get better and Internet gets faster, we can even imagine high-end gaming moving to the cloud instead of sitting on a local machine.

For small businesses, on-prim software makes even less sense.  A small business owner basically has two options when it comes to IT solutions: maintain it themselves or hire someone to do it for them. Both of those solutions add costs to the business that small businesses owners shouldn't have to take. Why should you take time from selling or developing your product just to update your software? That's money lost. Why should you pay someone $2500 a month or more just to babysit your computers and software? That's insane. Why not offload that headache to experts who are there to worry about it for you for a lot less money than you'd spend otherwise?

For large businesses, the cloud makes even more sense. Enterprises IT has a lot of moving parts. Software is in constant flux, keeping things patched is often a toss-up between security and inconvenience, and making sure your data and network are protected is costly. Handing that responsibility to someone like Microsoft or Amazon, or Google can, not only lessen the financial burden, but can offer some important additions to tools that you wouldn't ordinarily have with an on-prim setup. Microsoft Azure, for example, does everything from simple virtual machine hosting to full on big-data integration with artificial intelligence and large scale data analysis. Doing this on-prim could be prohibitive to all but the largest companies but it's achievable to everyone using the cloud.

In short, the cloud is only an option right now. You can still choose to keep everything local if you want and tend to it all yourself. In the future, and I suspect it's going to be the near future, the cloud is going to be a requirement. Companies are positioning their cloud offerings now. I could see a time in the future where Microsoft doesn't even offer a local version of Office, for example. It makes no sense for them to do so. Everything will be in the cloud. Everything will be easily and constantly accessible to everyone who needs it.

There will be challenges. While we've come a long way, there are some very important questions around security and availability that need to be answered before we rid the world of the plague of on-prim software. But we're getting there and we're getting there fast. That might be good and that might bad but it certainly will simply be at some point in the near future.

Are you ready for our cloud based future? It'll be here much sooner than you know. Get ready or get left behind.

Wednesday, October 12, 2016

Windows Nano Server: A Windows Server for the Cloud Generation

With the introduction of Windows Server 2016, Microsoft introduced a new technology called Windows Nano Server that promises to revolutionize the Windows Server landscape for a huge swath of customers and workloads. Gone are the days of memory eating and mostly useless user interfaces, gone are the multiple 4+ gigabyte downloads, the hours of installing and configuring the software  and the constant worry that some deeply buried part of the server would be compromised by the bad guys who want to turn your server into a bloated, slow running, botnet machine.

With Nano Server, Microsoft engineers have taken a hard look at the types of workloads many customers use Windows Server for: cloud applications, and cloud servers and they've obsessively focused on making a product that would offer these customers exactly what they needed and nothing more. While that might sound very limiting, the results are starting to speak for themselves through system up-time, resource requirements, and security incidents:

  1. In one test, Nano Server had to be rebooted only 4 times while Server proper needed 12 reboots.
  2. Nano Server can run on as little as 512MB of memory while Server requires at least 2GB  to run comfortable and a bit more if you're going to push the system at all.
  3. One of the most common security issues has to do with the graphics layer of the software. Nano Server has a remote terminal only and doesn't run a heavy GUI hereby reducing its resource requirements as well as reducing the attack surface that Windows servers often have.
  4. Server is great at virtualization. VM's are first class citizens on Nano Server and Hyper-V is tuned to squeeze out every drop of performance out of them that it can.
Overall, if you're running the right workload, Nano Server could be the perfect solution for your needs. But there are a few gotcha's (time for another list!):

  1. Nano Server only runs 64 bit applications. If you need 32 bit apps, you're going to have to go with Server Core.
  2. Nano Server doesn't have a graphical user  interface. If you're application has a graphical UI, it's probably not going to run on Nano Server.
  3. It is completely remotely managed. You don't walk up to the server, flip on the screen, and log-in anymore. Because Nano Server is for the cloud, you manage it entirely remotely. 
It's surprising how aggressive Microsoft has been with the design of Nano Server but it's a nice surprise. It allows more people with lower end hardware to run Windows servers and extends the life of that older hardware if they are performing specific workloads. Overall, Nano Server is quite a breath of fresh air.

If you want to give Nano Server a try, head on over the Microsoft and download the 180 day trial of Windows Server 2016. From there, you can install Nano Server and start to get your feet wet.

Finally, Microsoft is seeing that, indeed, one size does not fit all when it comes to servers. That's a 'good thing'.

Thursday, October 6, 2016

Xojo: An awesomely easy way to develop iOS and Android apps!

As many of you know, I'm a huge fan of the cross-platform development tool called Xojo. I'm such a fan that I've all but abandoned Java and C# development and use the tool in every project I possibly can.  It's easy, it's fast, and it allows me to become productive from the time I open the IDE without having to write tons of boilerplate code just to get the basic app structure together. Xojo has long been my go-to choice for developing cross-platform apps and it's gotten even better over the last few releases.

Long supporting creating Windows, MacOS, and Linux applications, Xojo recently added the ability to create iOS apps and, at this years Xojo Developers Conference (going on as I write this post) they announced what is perhaps the biggest and most exciting additions to the platform in recent times:


According to the company, sometimes around Q4 2017, developers will be able to use Xojo to develop new Android apps that support Android 4.1 and up. This will make Xojo one of the only developer tools that offers cross-platform development for all desktop platforms and the most popular mobile platforms (oh, they also support Raspberry Pi too!). Sure, you could use HTML5 to do that too but doing so requires you to learn multiple technologies and that requires a lot of time to learn - especially if you're not already a web developer.

Adding Android support to Xojo is a game changer. Just like the addition of iOS to the platform allowed new developers an easy route to develop iPhone applications, the addition of Android support is going to completely blow open Android development.  Now, every developer with an idea will be able to easily create iOS and Android apps. You don't need a complex environment, you don't need over-complicated tools, you don't need to even learn Java.

Lastly, while all of this is exciting, it doesn't come without some concerns. Xojo Inc is a small company with limited resources. They create a huge product that requires deep understanding of multiple platforms. That's a strain on the people creating the product and Xojo is going to have to plan future movement very carefully in order to execute this well. Hopefully, they're not going to try to pull this off with their current staff. They need to bring more developers into the company to support the addition of the new platform and to ease the current strain their existing devs face. Xojo hasn't announced any plans on that front and they are a small company that has to balance new hires against incoming revenue. But they are a pretty forward thinking company and I'm sure they'll figure it out.

All-in-all, this is possibly one of the most exciting announcements to come out of this years development conference. I'll leave coverage of other announcements to others but Android development is a huge addition that I couldn't ignore.

Good job, Xojo Inc. You're showing your customers that our faith in you is not misplaced!