Predix Compared to Other Cloud Platforms—and 14 Tips for PaaS Migration
Platforms for digital transformation
Industries are being inevitably disrupted by digital transformation. To survive, organizations should act proactively, rather than simply adapt to changes, as these happen too fast. This idea was elaborated on by Renat Khasanshyn and Elena Travkina of Altoros at the recent IoT meetups in Milwaukee and Dallas.
“It is not the question if a certain industry will get disrupted, the question is just when, and how big the bang will be—either a small one (when you’ll need to figure out what to do with 20% of your workforce) or a big one (when you’ll need to figure out what to do with 90% of your workforce). Because some industries are in that space.” —Renat Khasanshyn, Altoros
Given this fact, large enterprises today don’t have any other choice but to become a software company. For example, if your main business is selling shoes, when employing a new digital strategy you can consider selling fitness experience relying on data and wearable devices. For many industrial companies, the adoption of platforms such as Cloud Foundry, IBM Bluemix, AWS Elastic Beanstalk, or Predix may accelerate digital transformation.
Predix is a platform as a service (PaaS) from GE, built for industrial workloads. Industrial assets connected to Predix Machine produce valuable data enabling predictive maintenance and better efficiency of these assets.
At the meetups, Renat and Elena compared Predix to other cloud platforms and presented 14 portability considerations that can help developers and operators to move their apps to a PaaS like that more smoothly.
Predix vs. other PaaS systems
Comparing Bluemix and Predix, Renat noted that both platforms are based on Cloud Foundry and can be deployed on public and private clouds. Both have services for IoT, but the main advantage of GE Predix is that it has access to data from the edge of the network, according to Renat. All the engines, windmills, and everything else that GE manufactures send data using a particular protocol and optimize the rest of the chain using this protocol, making the whole process better, cheaper, and faster.
This end-to-end control gives GE a power over its competitors, as it can influence hardware design or change a protocol overnight, bringing better customer experience and compliance through better integration. GE collects a huge amount of data from its machines and has models to analyze this data for their customers. Industrial IoT is, without doubt, Predix’s cup of tea.
AWS Elastic Beanstalk
As Elena outlined, one of the main differences between the two platforms is that the apps in Beanstalk are in virtual machines, whereas apps on Predix are in containers. Thus, Predix apps are faster to scale and deploy, taking seconds instead of minutes.
“Predix is based on Cloud Foundry and (therefore) has all the Cloud Foundry advantages.”
—Elena Travkina, IoT Practice Lead, Altoros
Renat also explained that every time you push an app to Predix, the platform creates a container with your app. Predix doesn’t host databases, so your app communicates with them through service brokers, which connect an app to all the external services (such as Time Series).
In addition, Predix supports multiple cloud environments, whereas Beanstalk is limited to AWS. Another difference of Predix from Beanstalk is a built-in logging system.
Predix vs. cloud platforms
Unlike OpenStack and other cloud systems, Predix is a PaaS, which means you don’t have to manage any infrastructure and can focus on creating apps, adding value to your business processes. With OpenStack, you will be responsible for tuning and configuring all the infrastructure, before you can use it for software development and deployment. As Elena noted, Predix can save time: while the timeframe from the start of development to a proof of concept with OpenStack can be 3–4 weeks, with Predix it can be reduced to 2 weeks.
“With Predix, we can focus on building and managing applications and business outcomes, not infrastructure.” —Elena Travkina, Altoros
Amazon Web Services
Renat mentioned that, with AWS, you are locked into a certain way of doing things and can’t abstract from the proprietary interfaces of Amazon. AWS uses only its public cloud and doesn’t focus on the industrial IoT, thus doesn’t provide needed protocols and security.
14 recommendations for porting apps
Renat suggested considering 14 portability concerns when developing new apps or migrating existing ones to Predix. These portability considerations are aimed to reach the goals similar to 12 factors for building cloud-native apps. An app architecture built on these principles may ensure easier maintenance, reliability, scalability, and portability across execution environments.
- Dependency management. Try to bring down dependencies (to local libraries, for example) to a minimum.
- Stateless sessions. In stateless apps, information about a client’s session is not stored on the server, but on a client’s device, which is good for the offline-first approach and eliminates dependency from previous sessions.
- Local disk storage. Avoid using local disk storage, as a Predix app works inside containers, and the links to local disk storage simply won’t work.
- Configuration variables with environment variables. Configuration files shouldn’t be hardcoded, as these are more difficult to change if it later becomes necessary.
- Available ports. Avoid using specialized ports, since Cloud Foundry allows to use only three of them:
4443(TCP). Your application should be adjusted to these Cloud Foundry requirements.
- Runtimes and frameworks. Try not to use customized runtimes and frameworks. If you need these, you will have to create your own buildpack—a special interface in Cloud Foundry. So, actually, it’s possible, but more time-consuming than utilizing standard versions.
- Background apps (no web interface). Keep in mind Cloud Foundry requirements and containers structure when building these.
- Stateless processes. Components of a stateless app can be easily redeployed—in case of failure—as well as scaled out or connected to other apps through APIs. So, all long-lasting states should not be stored within the app, but rather supported by the backing services.
- External services. These should be built using the microservices approach instead of a monolithic software/app—otherwise, you will lose scalability. Predix implies high levels of security, so make sure your external services keep up to it.
- Separation of concerns. Simply put, you’d better not make a single software unit responsible for many different things at once. When designing an app, decompose the main functionality—so that each smaller feature executes a task independent of other functions.
- Hardware dependencies. Abstracting hardware architecture dependencies away from the core functions of the app is vital for app scalability.
- Continuous integration (CI). Using CI tools is a best practice, as it gives you stable builds and fast releases. Cloud Foundry allows you to use various CI frameworks, such as Jenkins.
- Ignored files. Our recommendation is not to deploy ignored files to Cloud Foundry or Predix.
- System libraries. To work with system libraries properly, use temporary objects instead of
/tmpfolders and local files.
With these 14 things in mind, migration to a cloud platform (including Predix) may be smoother, preserving scalability of apps and enabling easier maintenance.
Want details? Watch the videos!
In this session presented in Milwaukee, Renat Khasanshyn of Altoros outlines 14 portability concerns when moving apps to an IoT platform. He also provides an in-depth overview of Predix, its under-the-hood mechanisms, services, and differences from IBM Bluemix, Cloud Foundry, and AWS Elastic Beanstalk. In addition, Renat covers top Predix use cases and integration opportunities with the Predix service catalog for ISVs and SaaS providers.
Another session on the topic was delivered by Elena Travkina in Dallas. She provided an insight into Predix’s services and under-the-hood mechanisms. Elena also compared the platform to the existing alternatives: Cloud Foundry, IBM Bluemix, and AWS Elastic Beanstalk. Then, she enumerated 14 portability concerns one may face when moving apps to an IoT platform. While talking about the likely scenarios of Predix evolution, Elena highlighted integration opportunities of ISV / SaaS providers, which may be interested in adding their products to the Predix catalog.
Here are the slides presented by Elena and Renat.
- Adopting an IoT Platform: Things to Know and Pitfalls to Avoid
- A Possible Anatomy of a GE Predix App Using Microsoft IoT Services
- Overcoming the Challenges of IoT with Predix and Embedded Solutions
About the experts