Saturday, February 21, 2015

PaaS Motivation – enabling infrastructure for truly liquid application design.


PaaS Motivation – enabling infrastructure for truly liquid application design.

Key Words: GCE, Docker, Meso, Kubernettes, and Swagger and Micro services?, liquid applications, Containers, PaaS, Fig, Digital Experience.

As I take on my new role and interest in diving deep into – Platform as a Service – PaaS world, I wanted to take some time in discussing what I know now AND how that point of view may shift as I learn more about the PaaS evolution. While en route to IBM InterConnect 2015, I figure I jot a few thoughts and reflect on my past encounter with Cloud, more specifically PaaS.
         In my previous post titled “Cloud, Mobile, MBaaS… How do we make sense of it all” - I discussed the trends that drive the innovation to make the application design more liquid. But before spend more time discussing what a liquid application design means; I would like to define a few commonly used terms in Cloud parlance.

The terms described below have evolved to provide a structure and concept consumption around Cloud paradigms:

IaaS – Infrastructure as a Service (Essentially HW + OS + Other Network services)
PaaS – Platform as a Service (IaaS + Platform technologies such as Middleware/Directory services etc)
SaaS – Software as a Service (Bring your Mouse and yes.. your skills.… and provision and configure/consume services)

I also discussed that digital experience driven trends that may tip the scale in driving the cloud patterns to new heights. But before we discuss these trends and technologies we need to understand drivers responsible for the resurgence in cloud consumption. While every enterprise is racing to define their approach to liquefying application design, be it, Mobile, Social, Cloud or Dev-ops, I do not view them as separate disciplines. In Fact I view them as a singular discipline that aims to surface a digital strategy – a platform that enable information dissemination, interaction and engagement.
          So what is a  Liquid application after all?  If I were to define a liquid application design  it would be a design pattern that hinges upon a paradigm that is loosely coupled and leverages the  data and business logic to derive intelligence regardless of underlying limitation  of  HW, networking, virtualization platform, programming languages, and legacy application design approaches. While this definition may seem too broad let me attempt to dive  a bit deeper.
         While IaaS layer is to enable the use of fundamental computing resources, such as, storage, networking, hardware, memory etc and enable enterprise to leverage computing power to maximal advantage. PaaS motivation on the other hand is to further exploit the flexibility enabled by IaaS layer to enable ease of movement of data, application code, logic, configuration and associated application artifacts. 
Platform frameworks such as CloudFoundary, GCE – Google Cloud engine and container frameworks like  Docker, Meso, and Kubornettes aim to provide the fluidity towards achieving the holy grail of liquid application design.  Container frameworks such as Docker for instance advocate no reliance on any external environment. In fact, container app paradigm advocates a self-contained environment where you store all config values, dependencies, everything inside of the container itself.
 The focus here is decoupled applications that rely on a fluid discovery and network infrastructure to resolve operating dependencies and communicate with other applications. Apps communicate with the rest of the world via ports and via Dockers itself. The trade-off is that apps become a little bit bulkier (though not significantly), but the benefit is apps become maximally portable.1 This concept has given rise to discussion around containers and micro services.  This also means that software defined networks is essential to achieve a true PaaS infrastructure. More on this in future posts…




In  this post I would also like to draw attention to understanding the drivers responsible for the resurgence in cloud consumption… all driven by digital experiences  and it’s derivatives. ( I have discussed these concepts in my previous posts)

a.    Software and Data Ownership –There is  a complex relationship between the data ownership and software ownership. Clients want to own the data and not the software ( due to licensing costs and maintenance). This leads to interesting conversation around traditional hosting/resource provisioning and ability of an enterprise to just create Mobile application services and provide an integration point to the enterprise.  This model allows the enterprise to control data access and ownership and yet keep up with the modern trends in the industry at relative low costs without extensive capital investments into software ownership. Think of this more like a “Software rental”, a concept that  lends itself to Hoteling or multi-tenancy.

b.     Burden of System Management – With IT systems and managers driving for efficient consolidation  adding another tier of system management to address Mobility can be a daunting task, besides monitoring and analysis of critical business objectives gets the time share. So the notion of provisioning, managing and monitoring system like Mobile device management, MBaaS services ( Mobile Backend as a  service) is preferred to be managed and maintained in cloud.


c.    Continually evolving Mobile and API Eco-system – Our clients have, in the past, spent time and money to harden the  infrastructure and handle the evolution  in middleware Infrastructure and platforms. There is little or no appetite to deal with a much rapid force of changes with in Mobile Eco system that has direct impact on the existing infrastructure. The assumption here is that the cloud based services will keep up with eco system evolution such as notification systems, MobileOSs, and new and emerging mobile-social integration points ( such as OpenAuth, Social updates and notification and API economy) and enterprise get to use and keep up wit the changes by association. Thought to ponder  upon here is how do Mobile Infrastructure Cloud service provide keep up with this rapid change? What are their challenges?

d.    Ephemeral nature of Mobile/cloud Application landscape – As discussed earlier rapid shift in the mobile landscape driven primarily by the MobileOS vendors and Mobile services ( NFC, Payment, Notifications etc), many client hesitate in locking in an on premise platform as many question the ability of these vendor provided platforms to keep up with the changes in marketplace.


e.    Changing mindset around investment and consumerization of Mobile/application platforms – As our clients are still in process of  defining their ROI expectations and as business evolve to adapt to Mobile way of doing business, there is clear lack of leadership and the idea of disengaging or switching providers not only makes business sense but also addresses the long term capital justification concerns. Mobility in cloud seems a more palatable and economically viable option. Unless there is a  defined business value or a ROI around ownership of mobile platforms, this will be  a “rent vs. buy” discussion.

f.     Social ’ization’ of APIs – With emergence of Mobile API services offered by the social media eco system, and other vendors like Twillio, Google etc clients have eased into “service virtualization’ concepts and are more comfortable with cloud based models. After all many B2C application rely on this emerging and burgeoning API economy. (reading: Look at Programmable Web, API.io, Swagger)

So while very definition of Platform is in flux I think it is reasonable to say that the PaaS  as  a concept and discipline is evolving.  I plan to discuss more on container technologies, networking and PaaS platform component in my next post.

Stay Tuned…

Interesting Reading:
4.    StrogLoop – Loopbacl Node.js - http://strongloop.com/strongloop-suite/loopback/
5.    Twilio – communication voice based API  http://www.twilio.com/
7.    Mashery - http://www.mashery.com/
8.    Apigee - http://apigee.com/about/
9.    Rackspace Cloud Mobile Stack -http://www.rackspace.com/cloud/mobile-stacks/

No comments:

Post a Comment