A Full Stack Project Experience, Part I – API Manager, ColdFusion, C# and Ember
Recently at my organization, we have decided to step out in a bold new direction and completely revamp all of our web applications. With the introduction of the Adobe API Manager and our desire to shift resource consumption from the server to the client, we have quite a bit of work in front of us.
This will be the beginning of a series chronicling our experience as we implement the project from its very beginning until we deliver the final bit of code. Who knows, we may even continue into the maintenance phase if it seems interesting enough. This post is just the introduction, and here you will find out from where we are beginning. Follow up posts will take you through or trials and tribulations as well as our successes as we continue through the project. I hope it will be entertaining as well as informative.
Where We Are Now
Our current environment is a bit complicated. I could tell you how it got that way, but I’d most likely have to nudge you awake a few times before you finished reading. Instead, I’ll just tell where we are and where we intend to go.
Our main site is currently built in C# .NET utilizing a Content Management System built by Telerik called Sitefinity. Aside from this we have several other web applications, including a community site, an Admin site and a few smaller web applications built for various purposes. These run on a combination of C# .NET, ColdFusion and Ruby on Rails.
Recently we have had the wonderful problem of a large spike in our traffic. While this is a great problem to have, it’s also exposing a few weak points in our setup. The main problem is that we are using the CMS for much more than it was intended for and it’s chewing up way too much bandwidth. This is why we are embarking on this new project.
Where We Are Headed
Our goal is to end up with a whole new ecosystem, where much of the functionality of our main site, as well as all of our other applications are running an Ember.js front end, powered by the API Manager, which will be fed various APIs using ColdFusion, C# .NET as well as (possibly) Ruby on Rails. We hope to move these front ends into the cloud so the only network traffic we are dealing with is the passing of JSON strings and further lighten the load on our end by implementing the API Manager caching feature to cut down on trips to the database.
What we had was a confluence of events. Late last year we began experiencing difficulties with slowdowns on our site, which we had never seen before. We hadn’t had any major updates that we thought could be causing the problem and the database and web servers were all running fine as far as resources were concerned. After further investigation we discovered that the problem was bandwidth. We were trying to pour an ocean through a small(ish) tube. Needless to say, it wasn’t working so well. Of course, a problem like this can be solved by increasing the bandwidth (which we did as a short term solution) but, really, this only kicks the can down the road. We fully expect our traffic to keep increasing, so we thought a better long-term solution would have to involve cutting down on the bandwidth we required.
One would think we could have merely moved our hosting out into the cloud, and that certainly would have helped, but because of our internal systems it would also have caused other difficulties which would have been tougher to solve. Also at this time I had just attended the CF Summit in Las Vegas and was introduced to the Adobe API Manager. This product opened up possibilities which we had hitherto never considered. With a staff of combined CF, .NET and Rails developers, how could we implement a cogent API strategy that wouldn’t become a nightmare to maintain? The API Manager solves that problem for us.
In the rest of this series, we’ll see how it goes!
Watch here for follow up links as new posts arrive.