Blog

Devs vs. Ops: The Role of PaaS

By Atos Apprenda Support

I spend more time developing a PaaS than I do reading about them, but when I consider things I’ve seen written I can’t help but feel there’s an important topic that nobody is talking about. One of the great benefits of PaaS, and private PaaS in particular, is the way that it allows both developers and operators to efficiently perform their jobs without the frustration and finger-pointing that usually occurs.

A good PaaS simultaneously provides developers guarantees for their applications while allowing operators to manage the infrastructure on which it runs. Features like automatic recoverability, guaranteed instance counts and the ability to specify an application’s requirements allow the developer to control the aspects of the application that he cares about (availability, dependencies, performance, etc.) while remaining blissfully ignorant to the details on how he gets them.

Tequila_Cloud_Tools

You might be tempted to argue that being ignorant of the mechanisms behind said functionality is bad because, like asking the developers of the next cutting edge 3D game to target HTML 5 and Javascript, it is taking necessary control out of developers’ hands. I would argue that this is a move from procedural control to declarative control. Instead of implementing high availability, I simply declare my needs and the platform is responsible for guaranteeing that they are met. Better still, by handing off responsibility, when the platform makes improvements to the way the requirements are satisfied, every application gets the benefits, not just the newest one. Like giving up manual memory management in favor of garbage collection, there will always be cases where the generic solution just doesn’t cut it. For the vast majority of applications, however, it removes a huge amount of difficult-to-write code and allows me to focus on the parts of the application that add value to my business.

Let’s shift the focus from the developers to the operator’s perspective. As an operator I have to know servers, networking, storage and operating systems (and I’m sure a number of things developers like me don’t even realize). I don’t really want to also know the subtle differences in configuration required by your FrobNobber and NobFrobber apps, nor should I need to. With a PaaS I get the same interface for managing every application, which lets me stop worrying about individual applications and get back to focusing on the infrastructure concerns that I really care about.

When I need to take a host machine offline, a PaaS lets me move all of the workloads off of that machine so that the guest applications receive no disruption of service. The platform is responsible for preventing disruptions to the applications, and as a result I am free to do what I need to do without having to schedule downtime and work while the rest of the company is at home with their families. Also, because PaaS applications run safely on the same operating system, I am not standing up new servers for each one. Even with my highly automated IaaS implementation there is a cost to me for every server I have to manage. Essentially, PaaS creates economies of scale beyond even what my IaaS implementation gave me.

business deal

When I think of what private PaaS has to offer both operators and developers, I see a rare win-win scenario.  By giving up complete flexibility in their application’s architecture, developers get the ability to declaratively opt in to the capabilities their application needs from the platform, and every application can reap the benefits of platform improvements over time. Likewise, by “giving up” the provisioning of every application themselves, operators get to reduce their support footprints and don’t have to worry about the unique details of individual applications. In other words, both sides of the equation get to stop caring so much about the other side’s area of expertise and concentrate their efforts on doing what they’re paid to do.

Atos Apprenda Support