5 tips for successful PaaS management
July 9, 2012 No CommentsWritten by: Gabriel Monroy, co-founder and CTO of OpDemand
Platform as a service is hot right now. If you’re in charge of IT, you’ve probably heard mumblings about PaaS – you may already be using one. Before you dive into PaaS, it’s important to understand its limitations and how they apply to your organization. Once you have made the jump, succeeding with PaaS requires a new management strategy targeted at the developers who drive the PaaS workflow.
DEFINE YOUR DEPLOYMENT PROCESS
Traditionally, operations engineers drive the deployment process with run-books, checklists and a variety of manual and automated deployment tools. With PaaS, developers drive the deployment process from a command-line, IDE or web console. Allowing developers to push code to production environments may increase business agility, but with great power comes great responsibility.
- Document and communicate who pushes code, when and how
- Grant deployment access conservatively – though every developer can ‘vmc push’ or ‘git push heroku master’ it doesn’t mean they should
- Those who drive deployments must also drive rollbacks – make sure developers practice rollbacks using PaaS provider tools
SELECT ADD-ONS CAREFULLY
PaaS providers offer add-on services that include databases, caches, messages queues and others. Some of these add-ons are deeply integrated into the PaaS offering; other add-ons are provided by third parties. With add-ons so easy to deploy, developers will be encouraged to use more of them. If you’re not careful, you could find yourself dependent on a web of services only accessible through your PaaS vendor – exacerbating concerns about vendor lock-in.
- Define a process for approving and deploying new add-ons
- Evaluate the costs of add-ons carefully – many add-ons start cheap and grow exponentially as you scale
- Resist the temptation to use add-ons that cannot be replicated outside of the PaaS provider (e.g. AWS DynamoDB, Google BigTable)
PLAN FOR PaaS OUTAGES
PaaS providers take care of infrastructure like servers, load-balancers and databases, allowing developers to focus on building applications. Yet despite their best efforts, PaaS providers experience frequent outages. When you’re in charge of IT, service availability is ultimately your problem.
- External monitoring is critical with PaaS – if you don’t have an Ops team, put your developers on Pingdom, PagerDuty or equivalents
- Review the frequency, duration and severity of your providers’ recent outages and consider other hosting options if recent history fails to meet your availability requirements
- Remember that outages are a fact of life in IT – your PaaS provider may offer higher availability than you could provide yourself
KEEP A CLOSE EYE ON COSTS
Though many PaaS providers offer free tiers, as your applications scale PaaS costs can explode. At a certain price point it may make more sense to hire in-house cloud operations staff to build and manage your own PaaS-style workflow.
- Calculate your current PaaS premium – the difference between the PaaS hosting costs and the cost to host the application yourself (minus labor)
- Estimate your PaaS costs in a year if your applications are successful and you continue to use more PaaS resources
- Determine if and when it makes sense to stop paying the PaaS premium and shift to an internally managed solution
MAINTAIN AN EXIT STRATEGY
If your application is successful, there’s a good chance you’ll outgrow PaaS due to concerns about flexibility, control and/or cost. It is critical that you maintain a viable exit strategy to IaaS or an on-premise hosting model.
- Require that your PaaS applications and backing services can always be migrated off the PaaS provider
- Clearly define and isolate PaaS-specific changes to your application code, including dependencies and environment variable configuration
- Stay abreast of offerings from competing IaaS and PaaS providers, who will offer powerful incentives to win your business