Continuing from Last Week
The last few weeks, I have discussed a presentation I did at the Telit Developers Conference in San Diego, to cover material that is very relevant to our Aeris user community.
Device Management and Application Hosting
The panel session was entitled Device Management and Application Hosting, which I covered in my allocated 15 minutes with four relevant slides. Today, I cover the third slide of the presentationit was the first of two on Application Hosting.
Framed as Questions
As a reminder, rather than abstract information, I decided to frame the points as questions and comments to think about when developing applications. Ideally, this caused people at the Conference (and readers here too!) to think of the concepts behind the question and the ramifications of a particular answer, rather than simply taking my bullet points at face value.
Application Hosting Slide 1
Data Center Application Hosting
What Are The Application Reliability Needs?
When designing the Application and making decisions for where to host the service, it is important to determine the reliability requirements. Is it important for the application to be running 24 hours a day, 7 days a week, 365 days a year? Is the data provided by the remote Devices needed for a time-critical application? Does the Customer have one (or more, if needed) high-availability Data Centers where the systems can be deployed? For example, a security application cannot tolerate lengthy down-times, and the systems and software must be always available. The design and implementation of the Application deployment must allow this requirement.
Do you need fault-tolerance/high availability service?
Often, the service implementation must allow for maintenance windows and planned down-time. This may require fault-tolerant or high-availability service, where systems (hardware and/or software) providing the service can be brought down for maintenance or updates without impacting the Application performance. This may require deployment of multiple systems that operate in parallel and allows for taking systems out of service without impact to the Application.
Is Your Data Duplicated to Multiple Sites?
In some Applications, the data gathered by the remote Devices must be processed or stored at multiple sites for geographical diversity. Or, if a Device provides information that is handled by multiple systemsor multiple third-party Service Providersthe data may need to be sent to more than one site. For example, in a telematics application, crash notifications and vehicle theft alarms might be handled by one Service Provider, and non-emergency concierge services by another. In this case, the data sent by the Device must be appropriately duplicated, interpreted, or perhaps filtered, to send to the different Service Provider systems. When sending data to multiple systems or sites, actions and acknowledgement receipts from these multiple systems should be coordinated to ensure that the processing is completed without dropping the ball.
Are There Special Hardware Requirements?
In some M2M Applications, the systems may require special hardware or softwareperhaps with software licensesthat preclude Cloud-based Application hosting (since the Cloud systems are standardized in particular ways). For example, if some information is sent on a voice channel using DTMF tones, these tones must be processed by special hardware and software. This special hardware is usually not available in the Cloud and will require specific hardware systems. In general, the location, reliability, scaling, etc., of the special hardware and software can drive many implementation decisions.
Cloud-based Application Hosting
Can you put your application into the Cloud?
It is possible for some M2M Applications to reside in the Cloudparticularly when special hardware is not required. The data sent from the Devices can be sent to Cloud systems for processing. For example, if an Application is IP-based, and its code can be executed on standard platforms (perhaps Linux images on virtual systems), this could be executed on Cloud services provided by Amazon, Google, Rackspace, and others. Even with hardware dependencies, it might be possible to separate out the functionality that could be deployed in the Cloud. In this case, a hybrid deploymentthat uses both Data Center resources owned by the Customer or M2M Network Provider, and Cloud-based systemsmay work well.
Could Lower Initial Costs But Be Careful!
Deploying Cloud-based Applications can be very cost-effectiveparticularly in initial deployments where the cost of capital (plus maintenance and support and IT costs, etc.) could be expensive for alternative approaches. This is particularly true when scaling for growth is part of the initial design and deployment. Using Cloud services can reduce the burden of designing for scale up-front. As the number of Application units increases, scaling a system in the Cloud may be more linear, as long as the typical Cloud characteristics (parallelism, virtual system performance, etc.) are not a performance issue for the Application.
How About Connectivity Costs/Issues and IT Burden?
In time, if a deployment is large enough, a transition to Data Center hosting may make sense for control or performance reasons. Data connectivity costsif the data traffic flow is highor the IT support costs may override the cost issues for either Cloud-based or Data Center deployments. Clearly, this costing and support analysis depends on the data throughput needs, the overall performance requirements, Cloud system run-time costs, etc., and cannot be ascertained in general. Each Customer must assess this for themselves.
Could You Use M2M Network Provider Hosting?
Often, specialized M2M data network providerssuch as Aeriscan provide Application and/or system hosting services for a Customer. This can ease connectivity requirements, since the data received from the Devices traverses the network provider data systems and can be processed by additional systems at the same Data Centers. Customer should explore the viability of this option, since it blends the capabilities and characteristics of private Data Centers and Cloud-based systems.
The Bottom Line? Planning is Essential!
As always, planning for growth is important. These decisions will drive the implementations, scalability, migration, upgrades, etc., of any Application deployment, and reduce fork-lift upgrade issues.
I will cover the second slide on Application Hosting.