AppHarbor, a PaaS provider for hosting .NET Applications, has announced an add-on API. This will provide a self-service portal for third-party service providers. Developers can purchase cloud services through a single interface and integrate additional functionality into the applications they build on the AppHarbor platform. The initial catalog includes Memcacher, MongoHQ, Cloudant, Redis To Go and MailGun.
InfoQ got in touch with Michael Friis, co-founder of AppHarbor, to get more information -
InfoQ: Is it possible for any third-party developer to submit an add-on to be used with AppHarbor? Is it like a market place, with the initial services mentioned as the starting apps, or is it a closed store?
Michael: We definitely see this as a free-for-all open marketplace. We do want to test add-ons before making them available to developers (and perhaps offer it initially to private beta users), but other than that, we do not impose any limits on who can offer add-ons on our platform. This openness includes letting multiple add-on providers with similar services onto the platform, such as two add-on providers both offering hosted MongoDB. The add-on API documentation is public (our add-on program works the same way as Heroku's).
InfoQ: For developers using AppHarbor, is it possible to write tests against these add-ons (maybe using a sandbox)?
Michael: It is technically possible to write tests that use addons added to an application, but we recommend against it -- partly because the test would be using the same addon resource as the deployed application.
Generally, we recommend that developers mock external dependencies to increase simplicity and execution speed and avoid complex setup and teardown in their unit tests.
InfoQ: What happens if someone upgrades their APIs and the tests no longer pass (with an existing deployment)? Is the account owner intimated in any way?
Michael: The services offered by add-on providers are generally well understood and defined (e.g. a connection string to a MongoDB database or a Memcached bucket). What is provisioned through the add-on API when a developer adds an add-on, is typically the address and authentication info required to access the add-on resource. It is up to the application developer to access that resource using the proper API's, as defined by the add-on provider.
InfoQ: We still don't have complete clarity on what an Instance means- in terms of compute power, RAM. Any clarifications?
Michael: We are still in the process of determining exactly how many resources an instance can consume. In terms of compute power, it will be some fraction of an EC2 Compute Unit -- currently, it's a little less than one ECU.
InfoQ: Are there any SLAs offered with AppHarbor deployments?
Michael: We are in close dialog with platform users about their SLA requirements and we realize that SLAs are important to many developers and enterprises using .NET.
AppHarbor's platform gives .NET developers access to a Git- and Mercurial-enabled continuous deployment environment that supports a rapid build, test, and deploy workflow common to agile teams and startups. It features automated unit testing which allows developers to test code before it gets deployed as well as rollbacks. Normally, AppHarbor takes only 15 seconds to deploy new code versions of applications hosted on it.