myClin Founder Discusses What's in His Cloud Stack
Recently, in conjunction with the rise of cloud computing, OStatic has been doing an interview series focused on the components in cloud software stacks, and how they create unique advantages. Last week, Hanspeter Christ, Deputy Process Manager of the Federal Spatial Data Infrastructure (FSDI) for Swisstopo--Switzerland's federal office of topography--caught up with us to discuss Swisstopo's cloud stack. The series began with our conversation with PHP Fog founder Lucas Carlson, where he provided many insights into a smart cloud stack.
In our latest installment in this series, James Denmark (shown), who founded and oversees the cloud stack at MyClin, weighs in on the site's stack and the components within. James has 20 years of technology and business management experience in the international clinical trial services area. In 2008, he founded myClin to make it easier for physicians and their staff to participate in clinical research. myClin launched its first commercial offering in early 2010 to allow drug companies and physicians to securely collaborate online. Here is James' discussion of the cloud stack at myClin, and what is unique about it.
What is the structure of your cloud stack?
At myClin, we try to keep our stack as simple as we possibly can but are continuously improving or adding to is as we gain more experience with the profile of a particular cloud vendor's performance. Currently we use Amazon Web Services (ELB, EC2, S3, EBS & RDS) but we have also being using Rackspace Cloud and GoGrid. At a high level, we front everything with the elastic load balancer which sends requests directly to a cluster of EC2 based Tomcat servers that are running Liferay Portal 6, which in turn uses an RDS instance for DB.
How do the components in the stack help you stay efficient?
As much as we can, we try to leverage enterprise class OS packages, that starts with CentOS 5 on all our EC2 servers, Liferay Portal 6 (which includes a significant stack of OS libraries of its own) for all our application services and MySQL for database. Within our application we are also using a mixture of Alloy UI and Google Web Toolkit for our user interfaces. We were using the Sun JVM but due to recent changes in the licensing language its a bit harder to get it on CentOS now so we have been testing OpenJDK as an alternative. We have also been using Postmark for email delivery services - they are a local Philadelphia company and have a great service that is also largely based on open source technologies.
How do you guarantee an open platform that users can modify?
myClin is provided as a for-profit service to biopharmaceutical and device companies but free of charge to individual researchers and clinics. As a part of that service, we provide the platform, hosting, maintenance and applications that our users can configure and deploy. As such, there isn't much call for user modification outside of our development cycle but we have considered opening it up to third parties to develop to an open-api and then run their apps in myClin.
What impact has cloud computing had on your business?
The cloud as a viable infrastructure alternative to dedicated hosting has provided us with a clear upgrade path to expand capacity and resilience as demand for our services grows, rather than having to plan months ahead for big stair steps in capacity and migration activity. On the other hand, it has introduced a whole new set of challenges to make our stack 'play nice' with the restrictions that cloud providers put on their services in the interests of control or stability.
For example, there is no multicast permitted on AWS. This single limitation makes things like clustering much more complex to administer. In spite of these, on balance I still feel that our business is more scalable and more secure for being in the cloud rather than on dedicated hosting.
What cloud management tools do you use?
Cloud management tools continue to be limited to the tools provided by the vendors e.g. AWS Management Console, Cloudwatch and command-line tools. For most of our server provisioning and configuration we have developed our own shell scripts that we use to take a standard base CentOS image and mutate it into a myClin app server.