Is the IAAS Cloud really low cost?

Host on the cloud, get a dedicated server or build your own? This is a common question that most entrepreneurs who are launching a service ask themselves. Seeking answers via the web probably leaves more questions than answers.

The reasons are simple, there are a plethora of articles that sing the praises (for many right reasons) of Infrastructure As A Service (IAAS) such as AWS, Google and other similar services. The ease with which you can launch servers on these clouds makes it even more appealing. The fact that Netflix and other companies are using it gives the added assurance. Now head over to the wonderful calculator that all these services provide and crunch some numbers. You may either buy into it so completely that you are ready to launch your service or taken aback by actually how much it can cost. Let's face it, it's not as cheap as its made out to be.

To better understand this problem, let's crunch some numbers with an example server. Suppose the server we need is equivalent to 4 Cores (or more), 32 GB RAM and about 200 GB hard disk space (Note that in most cases RAM is the overarching choice and CPU cores are not really configurable, notable new exception is Google). For simplicity, I am also not considering prepayment as no startup probably wants to commit for more than a few months.

Cloud Servers (Instances):

AWS - Consider the m4.2xlarge at 32GB RAM and 8 cores. Linux instance is at $0.504 per hour or ~375$ per month. Add charges for storage and data transfer and approximate it to 400$ per month.
Google - Consider the n1-standard-8 at 30GB RAM and 8 cores. Linux instance is at $0.280 per hour lowest price with 100% usage or ~208$. Add charges for storage and data transfer and approximate to 230$ per month.

As you can notice there is already a significant difference between the two services. If you check other providers the price range will be similar.

Dedicated Servers:

Typically dedicated servers have always set you back by a significant sum and hence may not have been a choice. But a host of new providers has meant that hybrid offerings are available which has already reduced prices. Significantly Managed dedicated servers are way more expensive than unmanaged servers. The significant difference being in unmanaged only the hardware is supported by the provider, every other responsibility us yours (software, backup etc).

Rackspace - A 24GB prepackaged dedicated server with 6 cores will set you back by ~ 674$ per month. This is backed by Rackspace Fanatical Support of course.

Packet.net - Packet offers dedicated bare metal hardware in a cloud-like fashion. Type 1 server with 4 Cores and 32GB RAM (with 2x120GB SSD drives) is at $0.4 per hour or 297.6$ per month. There are no other charges as everything is included in this.

OVH - A major European provider with a NA presence in Canada and data center. A 32GB / 4 Core dedicated server (unmanaged) costs 79$ a month (no setup fee)

Hetzner.de - German data center, 32GB 4 Cores is priced at 39 Euros or ~43$ per month with a 79 Euro / ~87$ setup fee (one time)

As can be seen, the range is again wide not considering a huge number of smaller providers. Depending on whether some of the administrative tasks can be managed in-house or not, choice of provider can be made. Point to note though is that dedicated servers can actually be cheaper than cloud.

Conclusion:
So before deciding, its important to decide based on these (There could be many more significant ones I'am missing, add to the comments)

1. Elastic Scaling - Are your users going to grow that dramatically that you need elastic capability of that nature? Less than 1% of all web apps need this kind of scaling, rest are happy with more deterministic scaling. (Cloud v/s dedicated)
2. Redundancy - Sometimes cost of 2 dedicated servers is still cheaper than 1 cloud instance. So even HA is not an issue with dedicated, but multi-region availability etc can also determine the choice.
3. Time - The longer you are willing to commit the cheaper some of the cloud services will be.
4. Legal or Security related - If customers don't prefer shared multi-tenant instances, then you may have to go dedicated.

Net-net: Cloud services such as AWS are not the only choice. Even dedicated servers can be bought month on month with significant cost and performance gain. You actually have more choice than what is sometimes made out to be!

Read More

The UMP 3.2 Travelogue

The Unvired Mobile Platform (UMP) 3.2 includes a number of innovations that enable faster digitization and mobility.  Whether your company wants to mobilize enterprise backends like SAP or databases or legacy systems, UMP has made that easy, fast and cost-effective with a plethora of adapters that enable out of the box integrations.  UMP 3.2 now includes a powerful REST API that allows you to leverage the same functionality to also develop web apps.  So whether you want to go digital via web or mobile or both, UMP is your platform of choice.

In a series of blog posts starting today I will explore the new features and the transformations in the platform.  This post will focus on the high-level features and some under the hood changes that have been made to UMP to make it faster and better.

Features of note in UMP 3.2:

  1. Single infrastructure that runs within your datacenter or on cloud IAAS like Amazon Web Services (AWS).  Absolutely identical, even the binaries are the same!  This gives you enormous flexibility to go on-premise and switch to cloud later or vice versa
  2. Fully load balanced, High Availability setup supported both within your data center and on cloud infrastructures
  3. Improved performance and scalability (see under the hood section below for more details)
  4. Enhanced REST API to easily build applications for web and mobile, supports both XML and JSON
  5. New enterprise adapters for OData and SAP HANA.  SharePoint, REST and all other adapters have been further enhanced
  6. Enhanced push notifications for APNS and GCM (including follow up actions), support for browser push to notify web applications
  7. Error console to help administrators process data errors, backend submission errors etc.  Your users will never need to see errors anymore, just save and forget!
  8. Conflict management on submission, handle concurrent submissions, and multi-channel updates without breaking a sweat
  9. Enterprise App Store to distribute your enterprise applications, applications can also auto-update without admin intervention
  10. A brand new dashboard that helps administrators know the pulse of the mobile deployments
  11. Isolate your deployments and administration control for subsidiaries, locations, departments with a single central instance
  12. Transport configurations and code across Development, Quality and Production landscapes of UMP.  No more manual administration tasks
  13. Time zone (user or company) based distributed scheduler to periodically refresh mobile data, no need to run battery hogging threads on devices checking for updates
  14. And …

Under the hood: UMP 3.2 core has undergone significant re-engineering.  The new UMP is now based on Spring backed by Level 2 distributed caching of data.  This allows lightning fast reads and writes. UMP uses async servlets for maximum scalability with configurable thread pools to optimize resource needs based on your individual needs.

UMP supports deployment on any enterprise operating system such as Unix, Linux, Windows etc. with a MySQL, Oracle or MS SQL Server backend.  For test and demo purpose, UMP can also be run with a H2 embedded database.

The UI has been spruced up with keyboard shortcuts to simplify administration and management.  For those Unix/Linux administrators who love the command line, a command window allows you to quickly enter commands.  The new UMP runs on JBoss 7.2 EAP and open source editions and deploys in seconds.  UMP is also certified by SAP for NetWeaver deployment and is deployable on SAP NetWeaver 7.x all the way up to 7.4.

UMP 3.2 is also supported on Docker containers and the official images will be available on the Docker Hub shortly.

Related tools: A brand new Unvired Modeler works hand in glove with the UMP infrastructure to enable development of applications easily.  The modeler is installed as an Eclipse plugin with auto-discovery of UMP development landscapes.  Model, Design, Develop, Debug and Deploy from a single place.

There is much more to talk about the new UMP.  Watch this space for a series of blog posts that will expand on each of the features and how exactly you can benefit from it.

Read More

UI Toolkit on the wall, who is the prettiest of them all?

Today most enterprises want to build and deploy awesome mobile apps on multiple devices for their employees and customers. But when it comes to UI technology most are stumped. If I were to pick the most common question that we encounter in discussions with customers it would be, How do I build apps for all devices? (this is typically iOS and Android). Follow-ups to that are: What UI should I choose? How can I build once and run anywhere? What skills should we ramp up on? The list is endless.

First up the UI choice needs to lend itself to your need and not the other way round. At Unvired our normal approach is to find out what that need is and then recommend the technology solution.

I want to deploy native apps with fantastic user experience, fast performance, hardware integration and so on.

If your need falls into this category you are typically looking to build native applications using the vendor’s prescribed technology. These are:

  • iOS – Objective C (more recently Swift) using the XCode IDE from Apple
  • Android – Java using the Eclipse IDE or the Android Studio
  • Windows – C#/.Net using the Visual Studio IDE

All platforms come with their own set of challenges based on the OS version to support. This is more under control with Apple where you are usually covered if you support the latest version and the one lower (for e.g. iOS 8.x and 7.x). Its more complicated with Android given the disparate devices and OS distribution and you should opt for the OS version with the most installed base for e.g Kitkat or 4.4. You are also well served if you use the standard APIs and do not depend on any vendor/device dependent APIs from Samsung, Sony etc.

I want to build apps once and deploy them on multiple devices. 

This is the trickier questions as there are a few choices. This usually needs further qualification on what skills the company has or alternatively what they would prefer in addition to the end application’s requirements.

Web technology, hybrid apps that do not require any major hardware integration etc.

The most obvious choice in this case is to build hybrid HTML5/JavaScript apps using the Apache Cordova/PhoneGap (http://cordova.apache.org/) plugin. This allows to build, host and deploy hybrid (native-like) apps that render the UI in a web view with standard HTML5 look and feel. The advantage is that the technologies used are typical web technologies like HTML5, JavaScript and CSS and web developers will be able to code them. Some understanding of the mobile paradigm is definitely necessary. The plethora of CSS/JavaScript frameworks can be utilized to build some really cool apps. However, performance can be an issue with lag on some devices, transitions not being smooth, low touch sensitivity etc. This technology is evolving and will only improve further.

Native apps that can be deployed on any device

Xamarin (http://xamarin.com) is your best choice here (at least for now, more on that later). Mobile applications can be developed in C#/.Net and deployed on iOS, Android and Windows tablets. The code compiles into native applications and hence offer a native user experience. The User interface can be developed once for multiple devices using Xamarin Forms or alternatively, separate UI for Android and iOS devices can be developed with common business logic.

A new kid on the block here is Telerik NativeScript (http://www.telerik.com/nativescript) with an imminent release in April/May 2015. Telerik is positioning NativeScript as a JavaScript framework that can be used to develop mobile applications that are finally packaged as native applications. So these applications will not render in a web view on the device but will render as native applications. This is new technology under development and needs validation/adoption.

So now that you know them all, what’s your choice?

Read More

What do iPhone 6, iPhone 6+ and Apple Watch mean for the enterprise?

Apple announced iPhone 6, iPhone 6+ and Apple Watch yesterday. The build up to the event (as always), the event itself and the products announced have all been exciting. Already enough digital space has been used to report the event and review the products. So in this blog I will try to analyze what these announcements mean for the enterprise – end users, IT departments and developers?

Enterprise / End Users

iPhone 6 and iPhone 6+ come with  4.7″ and 5.5″ screens. Difference for an enterprise between 6/6+ and 5S/5C is mainly the cost. But when you compare 6+ with an iPad mini then you see other differences emerging. Enterprises enable employees with iPads so that users can see more information on the screen without having to navigate across multiple screens or scroll in a screen. For example:

  • Read word documents with graphics and tables
  • Service technician viewing a work order and details on the iPad
  • Executives viewing sales and other charts

iPhone (till 5S) with its 4″ screen is not suitable to see a large amount of information in a meaningful way on a single screen. Many apps or scenarios are just not suitable for an iPhone 5S. So an iPad is necessary. Take Apple’s own email app. Apple shows the e-mail app differently on an iPhone compared to an iPad. In the iPhone, there is a mail list and on clicking a mail you see the mail in a full screen. In the iPad, the main mail view is split into 2 parts. The smaller list on the left shows the list of emails and the wider part on the right shows the selected mail.

Now iPhone 6+ can possibly push both users and enterprises towards a single device per user. A single device reduces the cost for an enterprise (if the enterprise is providing 2 devices per user) and can be very convenient for users. (Does this mean that one Apple device is competing another Apple device? This is a topic for another day!)

IT Departments

IT departments should love iPhone 6+ if both the enterprise and users agree to move to a single device from 2 devices per user. Benefits for the IT departments are:

  • Lesser number of devices to deploy and take care in an MDM
  • In many cases, the app development cost can also be lower when building for a single device compared to multiple devices

But how do existing apps and devices (iPads and iPhone 5S/5C) work with iPhone 6/6+? This is a cause of concern for the IT departments even though from a software point of view there is no difference between 5c/5S and 6.

  • More categories of devices mean more work in managing the devices in the enterprise network
  • 6+ has an impact on apps too. The larger screen size and double tap on the home button in the iPhone 6+ require some adaptation in the existing apps though not necessary. But once the users start using the old apps on 6+ they might complain if double tap on the home is not supported in the app.

Developers

With more screen sizes, developers need to be both creative and judicious while designing the user interface for the applications that have to work on multiple devices. Designing apps that have to work on iPads, iPhone 6+ and iPhone 6 (5s/C) is more challenging. Though designing apps for Apple is is not as challenging as in the Android environment where one does not know when a phone ends and when the tablet begins it is still a challenge that needs to be taken into account.

Apple also announced a new programming language Swift in the last WWDC event. Swift is supported by iOS8. Though Swift is backward compatible with Objective C, once all the Apple devices move to iOS8 it does not make any sense to stick to Objective C. Newer capabilities of Swift cannot be used if one sticks to Objective C. Eventually everyone will have to move to Swift. So delaying Swift adoption does not make sense. The real impact for developers is when devices start running iOS8. Add to that iPhone 6+!

Apple Watch

 

I just love the Apple Watch. This is some challenge for Switzerland! The best review of the Apple Watch I have read is from Benjamin Clymer. There is nothing left to write about the Watch design beyond what Mr. Clymer has already written. So let’s move on.

Moving away from the buzz around the Watch, what does the Apple Watch really mean for the enterprise? Before discussing the impact of Watch on the enterprise we have to understand some of the software features of the Watch.

  • Watch connects to an iPhone. So the Watch gets connected to the internet via an iPhone. Will the Watch also connect to an iPad? Not clear currently.
  • Will the Watch be able to connect to the WIFI network directly? No.
  • What version of iOS will the Watch run? Not answered currently. But it will be iOS8+ as the Watch is still sometime coming.
  • So from what we know the primary requirement to own an Apple Watch is to own an iPhone.

Enterprise / End Users

Enterprises can start buying Apple Watches as gifts for their employees! Apart from that enterprises are not going to be proactive in finding use cases to make watches productive tools at work. Just the way enterprise adoption of iPhones and iPads started with users, adoption of Watches has to start with users. Once the Apple Watches start appearing on corporate users’ wrists’ enterprises will start thinking of extending apps to Watches.

For end users, Apple Watches are great convenience tools to see (feel) notifications, maps (especially while walking without having to open the phone), calendar events (see the alert and call a contact on the iPhone by tapping on the Watch) and monitor health.

Classic enterprise uses cases include getting alerts (sales targets, project status, work assignments, etc.), approving workflow documents, filling time sheets for projects, applying leave, filling digital checklists, etc.

IT Departments

The real challenges are for the IT departments.

  • Should Watches use for corporate work be controlled via an MDM? Will users agree to allow the enterprise control a personal device?
  • Is the enterprise scenario or use case compelling enough to support on a Watch?
  • Cost and effort involved in developing apps for a different device with a different user interface paradigm. What is the ROI? Employee happiness or productivity improvement?
  • Security considerations

Developers

Developers have to be highly creative and innovative to design enterprise apps for Watches. Traditional user interface and engagement is not going to work on Watches. Multiple questions arise when we talk of apps on Watches.

Can the same iPhone app with a different user interface be used on the Watch or is a new design ground up from the data model required for the Watch app? Is the app optimized enough not to drain the battery? Is optimization from developers required at all or will Apple take care of it via restrictions?

End Note

Irrespective of the challenges these are exciting times. Every advancement in technology is opening up new frontiers. Apple’s designs are making these advancements personal and beautiful.

Enjoy Apple. Enjoy Design.

Read More

Upcoming Days in the Life of an Internet of Things “Connected Sensor”

I am a sensor, a device that senses the environment. Humans first made me to enhance their industrial operations, and now I gather, my species can help them monitor their health too. My host is a machine called a turbine, and my particular DNA enables me to detect vibrations in my host. I was born in Taiwan and shipped to Houston, Texas as an infant. Maintenance folks every so often visit me, inspect my readings, and record them on a paper form. Or at least that is how they used to. Nowadays, they whip out their iPads with a flourish and use mobile applications leveraging Mobile Application Development Platforms. But, I hear from analysts that all that is about to change. Technicians will not visit me to inspect my host-instead, I will send data to them. For, we have arrived at a momentous event—the Internet of Things (IoT) is here. I am told that the IoT will connect Machines to Machines (M2M) and things to humans, and everything to everything.

I for one, am confused. For decades, I led a lonely life isolated on the shop floor with only the occasional visit from the Maintenance Technician. Now, in one fell swoop, I am going to be connected to what they call the Internet. Others say that I am going to talk to the cloud. I will be sending vibration data about my host—not plain old data but Big Data. This Big Data will be analyzed in real time using frameworks like Hadoop. All this vibration data analytics will actually help keep my host healthier and enable humans to run their industries better. But, I feel like Brutus, in that I have betrayed my turbine host, by sending data every minute without permission. Is there no data privacy for machines?

The other day, some reputed consultants had come over to “Connect” me. They were repeating a mantra incessantly—what I could decipher was Social, Mobile, Analytics, and Cloud (SMAC). I felt like “smacking” them on their faces. “Bluetooth Low Energy” will make it feasible for me and my brethren to be connected in droves of billions—in fact over 50 Billion things will be connected within 6 years. I am anti-social and do not want to be connected. Just because humans have replaced reading on Facebook, doesn’t give them the right to impose this state of “always on” on me. I like my quiet time.

In any case, my turbine host will also not be spared. Augmented Reality will be used to perform better maintenance on her. Our technician visitors will come armed with Wearables when they come to repair us—novel looking Google Glasses and fashionable smartwatches powered by Android Wear. Beacons may be deployed on the manufacturing floor, I hear to deliver contextual data.

I guess I am being a spoilt sport. Rooted in the past. Isn’t progress the purpose of life—even for a lowly sensor and a turbine? Are Cars not being connected too? Are Homes not being Nested? So, I am going to embrace this brave new world. I say, usher in the era of the Internet of Things.

Read More