Akamai vs Incapsula – Comparison Review

Application Delivery Controllers (ADCs) are the current evolution of old school CDNs platforms tasked with responsibility not only for website’s performance, but also for its security and availability. By singlehandedly covering these mission crucial aspects of content and application delivery these technologies allow you to replace multiple appliances with one full service solution. With that, ADCs help eliminate many integration related issues, while also dramatically cutting down all setup, acquisition and maintenance costs.

In the world of ADCs, Incapsula is perhaps the most promising up-and-comer, a cloud-based service that seems to have the technology and the business sense needed to position itself at the same level as its legacy competitors.

It’s been almost two years since I last blogged about Incapsula. Now with recent announcement of its load balancing and failover features, I decided to update my review by pitching Incapsula against Akamai – a globally recognized CDN industry leader, who is also making a leap into the world of full service application delivery.

For this “head to head” comparison of Akamai vs Incapsula, I’ll be focusing on security, performance, availability and – of course – price of service.

You can find the full comparison here but for those of you who want to skip to the chase, here’s what I think about in a nutshell:

Akamai vs Incapsula: In a Nutshell

Incapsula simply offers more for less. You get all of the essentials you would expect, including a robust CDN, PCI compliant Web Application Firewall, DDoS protection and integrated high availability features (both load balancing and failover), all at very reasonable price point.

Not only that, but when compared with Akamai it looks like most of Incapsula features actually offer more, both in terms of their functionality and in term of their overall synergy. One great example is Incapsula’s Real Time view which complements its custom security rules engine and load balancing features by providing instant feedback on every action taken.

In fact, when looking at value for money, Akamai does not offer any tangible benefits – at least not for those who are looking beyond a CDN-only option.

Incapsula – fast, secure and reasonably priced CDN

A month and a half ago I blogged about CloudFlare – a Content Delivery Network with security concerns and simple users in mind.   CloudFlare is flexible for webmasters and they make it easy for us to take advantage of all the benefits they offer. I have moved several of my sites to CloudFlare and I am pretty happy with the service they provide.  One of the things that I didn’t do at the time (or every since) though is a review or research for some alternatives.  I mean, of course, we all know about Akamai and that big guns use it.  We also know that Akamai is one of the most expensive services on the Web.  But who else is out there?

Today I received an email from Incapsula. In essence, they offer a service which is similar to CloudFlare.  They do caching, global delivery, and security.  They do also offer a free plan for small, personal websites.  They also have a few packages of varying prices and features.

As I mentioned earlier, I do run all of my important sites now through CloudFlare.  And I don’t feel like moving to Incapsula just yet.  However, I do want to try them out.  I have a couple of new projects coming up, and I think I will use Incapsula for them just to see all the features they are offering and to compare with other alternatives out there.  I’d be interested to hear the reviews, if you’ve tried the service.  Especially, how they compare to the others and if they offer anything cool that nobody else does.

As a side note, website performance is becoming more and more important – with increased competition, impatient users and more weight to search results metrics in Google.  Also, web application security is becoming increasing complex – it takes so much time and effort even for trained technical people such as myself, that I can’t imagine how huge of a task it is for “normal” people to maintain common sense security levels for their websites.  It’s nice to see that there are more and more services and applications that take care of all the infrastructure problems, leaving more time to do the cool stuff – blogging, sharing, communicating, etc.

P.S.: Reading about Six Great Human and Computer Collaborations will expose you to new technology developments.

On teaching programming languages

Via this tweet I came across this insightful comment over at Slashdot.  Quoting in its entirety:

A bit off topic, but you triggered something I’ve been thinking about for a couple of years. That “spark” is fluency.

I swtiched jobs from being a computer programmer to being an ESL teacher in Japan. Japan is somewhat famous for churning out students who know a lot *about* English, but can’t order a drink at Mac Donald’s. We used to have a name for those kinds of people with regard to programming languages: language laywers. They can answer any question you put to them *about* a programming language, but couldn’t program to save their life. These people often make it past job interviews easily, but then turn out to be huge disappointments when they actually get down to work. I’ve read a lot about this problem, but the more I look at it, the more I realise that these disabled programmers are just like my students. They have a vocabulary of 5000 words, know every grammar rule in the book but just can’t speak.

My current theory is that programming is quite literally writing. The vast majority of programming is not conceptually difficult (contrary to what a lot of people would have you believe). We only make it difficult because we suck at writing. The vast majority of programmers aren’t fluent, and don’t even have a desire to be fluent. They don’t read other people’s code. They don’t recognise or use idioms. They don’t think *in the programming language*. Most code sucks because we have the fluency equivalent of 3 year olds trying to write a novel. And so our programs are needlessly complex.

Those programmers with a “spark” are programmers who have an innate talent for the language. Or they are people who have read and read and read code. Or both. We teach programming wrong. We teach it the way Japanese teachers have been teaching English. We teach about programming and expect that students will spontaneously learn to write from this collection of facts.

In language acquisition there is a hypothesis called the “Input Hypothesis”. It states that *all* language acquisition comes from “comprehensible input”. That is, if you hear or read language that you can understand based on what you already know and from context, you will acquire it. Explanation does not help you acquire language. I believe the same is true of programming. We should be immersing students in good code. We should be burying them in idiom after idiom after idiom, allowing them to acquire the ability to program without explanation.

I’ve been thinking about this for a long time as well.  And I do agree.  I also think that programming is a very practical matter. As the comment says, one could know everything about programming in general and some programming language in particular, and yet be totally useless when it comes to writing code.

I think, when it comes to getting an online IT degree or a degree from a traditional school that most colleges and universities lack on the practical side when teaching programming.  At most I’ve seen done were short group assignments.  I think programming projects should be much larger and longer than that.   I don’t see anything wrong with having a couple of programming assignments spanning a couple of years.  Bachelor degree takes longer than that, and all that time could be used to teach students not only how to write code, but also how maintain it, how to document, how to work in groups, how to use all those tools that programmers in real world are using – IDEs, debuggers, compilers, version control, project build tools, continuous integration systems, and so on and so forth.  All of those won’t do any good (and possibly quite the opposite) on a tiny little short assignment.