Monthly Archives: April 2017

What is an aPaaS? Or “How not to make a (P)aaS out of you and me”!

Even though all year I’ve been talking to more and more technologists in London who have been designing or building aPaaS systems, including quite a few of my clients who have been building aPaaS’s too, there still seem to be a lot of people out there who haven’t quite mastered the difference between the three ways Cloud Services are provided (IaaS, PaaS and SaaS) never mind understanding what an aPaaS does.

What follows is the unAuthoritative Explanation:  

The Holy Trinity of the Cloud: IaaS, PaaS and SaaS

IaaS vs PaaS vs SaaS 1

It’s probably fair to say that most software today consists of the following nine layers:

  1. Application
  2. Data
  3. Runtime
  4. Middleware
  5. Operating System
  6. Virtualization
  7. Servers
  8. Storage
  9. Networking, all of which can be provided by Cloud Services.

Cloud = CapEx vs OpEx

Cloud is way of providing you with the power you need to run software, and because it’s pay-per-use, Cloud provisioning allows companies to reduce the traditional upfront Capital Expenditure of buying hardware, licenses, support contracts etc. usually required to provide a software service, in favour for an OpEx-based model, where you only pay when you actually use the service (in the same way that the modern household pays for electricity today).

With Cloud provisioning, companies now have a choice, at the one end of spectrum you have “desktop”, or “packaged software” where you must own and maintain each of those nine layers. This gives you total control of the development implementation of the Software but you also have to provide  the computing power for it to run on, making everything CapEx. At the other end of the spectrum you have SaaS, where everything is provided for you, so you have zero control of the way the Software is implemented and it’s all a question of OpEx.

Infrastructure As A Service (IaaS), Platform As A Service (PaaS) and Software As A Service (SaaS) are the main ways that Cloud Services can be accessed, depending upon what percentage of the above list you want to be provided by the Cloud, and what the you are prepared to provide by yourself:

IaaS vs PaaS vs SaaS

What is an IaaS?

In essence with an IaaS, your traditional tin-and-wire Infrastructure components of Servers, Storage and Networking (external) are provided as a maintained service by your Cloud provider, and you must provide the “programmed” part of your software service. The IaaS allows you to build (or install), run and maintain whatever software you want on whatever operating software system you want.

Whether you want to Build your own software or Buy someone else’s software (install), it doesn’t matter. You get lots and lots of control over how your IT Service is going to work, and you have responsibility for everything from its architectural design to how it goes from being a load of written code, to a live piece of software (how it is deployed to the Cloud Infrastructure). You don’t need to employ server admins, but you do need to employ people to manage that deployment (called DevOps Engineers).

What is a PaaS?

With a PaaS, your Cloud provider provides you with a platform that you can build or install and then deploy your software onto (which you maintain). So you worry about what applications you want to provide, how you want them to work, whether you want to buy or build them yourself, you have to define the application and data architecture, how they will be deployed to the Cloud infrastructure etc etc.

In this model you get lots of control over the parts of your IT Service that will be the most customised – the part of your service that makes it “your software”. So at this point an insurance comparison web application could still be run on the same PAAS that provides your local swimming pool’s website. It might be rare, but as long as they both have the same Runtime, Middleware and Operating System requirements, it would be perfectly possible.

What is a SaaS?

With a SaaS you are buying a fully built, fully deployed, fully maintained IT service that will provide a specific service and nothing else. A professional Gmail account or Salesforce is a great example of a SaaS. It’s your data that you enter into the system, and you can normally customise the interface to some extent but nothing else is your responsibility, and because you don’t own any of the underlying software, you have zero control over what services it provides and they are how it run.

So what is an aPaaS?

This is where it gets exciting.

With a PaaS, you have to define, build and implement the way the code you have written is deployed onto the Cloud Infrastructure but your Runtime environment, any required middleware and the Operating System are all provided and maintained for you.

But some people / some companies “just want to code” and don’t want to have to worry about anything beyond the design and development of their application, and some companies want to be able to choose not to have to worry about it. They like the idea of being able to deploy their software at the click of a button and pay for someone else to do the rest.

Which is where the aPaaS comes in; it stands for Application Platform As A Service and it’s a cloud service that provides everything a PaaS does, but it also provides the deployment environment too:

  1. PaaS: development and deployment is your responsibility
  2. aPaaS: only development is your responsibility

Note that an aPaaS is really only relevant if at least some of the IT Service you want to use or provide involves building the software yourself.

Just how exciting is an aPaaS?

As it turns out, very. An aPaaS is perfect for a start-up that has an idea that they want to develop and deploy and get feedback from their target audience really quickly, or perhaps they don’t already have the deployment expertise and can’t afford the cost of employing a separate DevOps Engineer to manage the deployment, or it might even be the case that although they can afford that extra pair of hands, if given the choice they’d rather use the money to employ another developer who can design and develop more revenue generating software IP.

But its not just small companies that are interested in the aPaaS concept, or companies that would choose not take the responsibility for deployment. It’s big companies too.

Quite a few of my clients that currently provide their service in a SaaS model, are building aPaaS platforms to supplement their existing suite of services.

Bob’s Online Provincial Marketplace Software

Say your company currently provides an online Provincial Marketplace software service to its clients through a SaaS model. Its clients can choose to pay to use their Online Grocery Stall service, their Online Butchers service, their Fishmonger service etc, and your platform is flexible enough that your customers can either pay to use all of services you provide, or they can simply pay for each service separately. Now imagine one of your clients wants a service you don’t provide, say a Stationary stall; at the moment they would either have to build and support one themselves, or buy another companies’ software service, which might be one of your rivals. This might be a pain for your client for any number of reasons, and no-one likes the idea of their clients being driven into the hands of a rival company that has a more comprehensive set of services than they do.

If you can turn the deployment environment that you’ve already built for your own internal development teams to use into a service that external customers can access, then you might be able provide an aPaaS option as part of your suite of software services. In our example this would give your clients the option to build their own Stationary Stall service onto your own Marketplace platform, so keeping more of their business, saving them the time and effort it would have required to find a provider and keeping them happy. You might then even find your Provincial Marketplace software ended up being used by customers who had no interest in your traditional set of food-based Stall services, and instead were using no more than the aPaaS service you provide to deploy a whole set of product options you never imagined your software would be used for!

So the aPaaS model allows traditional SaaS providers the ability to offer their clients the option to either Buy software, Build their own software or “Buy and Build”. It has the potential to massively enhance the potential revenue your software service can generate!

Advertisement

Video: My HR Interview Advice

HR interviews can be a sticky wicket, but they’re easy to pass as long as you bear in mind a couple of simple facts and do a little preparation before hand. Here’s my explanation of the key points:

Martin Jee’s HR interview advice

What exactly is a Grandes Ecole and what does it mean?

The French University system has always seemed to be a bit of a mystery to me. Many of their Universities have roman numerals like II or III after the city’s name, looking at people’s CVs lots of people don’t seem to have even attended a university as part of their higher education in the first place, and it’s never been clear what the best universities for Computer Science in France are. So having recently secured a French developer a new position I asked him if he could help.

Those guys who went to “Big School” and not a “University” – they’re considered the very best

So I quickly found out that the developers who attended what looks like “big school” (where you wear your “big boy clothes”???) have actually attended the very, very best institutes for higher education that France has to offer, these institutions are so good, so well regarded, that they seem to be like “winning the lottery of life” or in Mafioso terms “becoming a made man”, they are the prestigious Grandes Ecoles.

Prestigious

The most important thing to know about the Grandes Ecoles is that it is highly prestigious to attend one. In fact it’s not just prestigious, it is Elite. And its not just a prestigiously elite system, it’s actually an Elitist system, but more about that in a moment…

The reason that the Grandes Ecoles are so prestigious that the whole fabric of French employment society is saturated, dominated even, by their presence. Established in the late 17th and 18th Centuries to educate and to give practical training to country’s brightest students in engineering and the sciences, these schools were so successful in generating the minds that the country needed to the lead their industries, they did not just survive Napoleon and the French Revolution, Bonaparte greatly expanded and formally christened the system “Les Grandes Ecoles”.

 

Elite

The developers who attended a Grandes Ecole will be part of the top 5% of academic students in their year, they will be the very brightest students their generation has to offer. Each Grandes Ecole is highly selective and the entry bar is made very high.

Elitist

Today, in the right business or social circles in France, it is a common question to ask when first meeting someone what “school” they attended. In France you need to have attended a Grandes Ecole in order to get into the higher echelons of management and company leadership in almost any company, and you will certainly need to have studied Computer Science, or mathematics or something similarly related, to become a developer in the most demanding software engineering teams in the Investment Banks or a Quantitative Analyst.

Getting in

Actually getting accepted to attend is very difficult, but naturally many kids (or at least their parents) are very keen to attend. The entrance examination is called the “Concours”, but certain Grandes Ecoles will only take the best of the best (see below) and others will only consider an applicant on the strength of their own exam.

Although some students go enter a Grandes Ecole straight after the end of High School, many students will attend a preparation course, called “Classe Preparatoire aux Grandes Ecoles” which consists of a 2 year course training the student in the way of thinking and approaching challenges they will need to successfully complete this form of higher education.

Interestingly the prevailing attitude seems to be that if you are smart enough to get in, then you will be smart enough to be able to complete the course, therefore there is little focus on final grades or overall performance as in with a British or Western University system.

One thing to note is that all this means that you have to be quite a competitive person to get in, which some people believe means that the Grandes Ecoles do not attract all of the brightest young technologists in France.

 

Once you’re in

Despite the lack of a big “final grade” that will represent your performance whilst studying, the course is “intense”. Courses are academically tough, they can be up to 6 years, and some are very industry focussed, making them very relevant to careers in programming; most courses however last for 3 years (some only 2 years).

English is widely taught at the Grandes Ecoles and in my experience most Computer Science students leave with a strong academic knowledge of the English language but can lack confidence with their verbal communication skills.

And once you’re in, you’re in

As you can imagine graduates from these institutions tend to be high sought after in France, and about 50% of graduates actually secure their first job before they complete the course.

 

Some Grandes Ecoles pay their students to attend!

That’s right, because attending some Grandes Ecole is considered a form of Public Service (such as Polytechnique and ENS) these institutions pay their students to attend (though they must take some form of state employment after their studies have been completed)! Otherwise its a VERY cheap form of Higher Education, most Grandes Ecoles have very limited tuition fees – just a few hundred Euros each year.

National Rankings

So without a final grade, there is actually no real national ranking system showing which of the Grandes Ecoles / Universities are the best. Instead it seems to be fair to say that France has a 2-tier system, the highly prestigious Grandes Ecoles and the rest, the Universities.

Interestingly, within the system of Grandes Ecole Computer Science is still regarded as a “new” subject and therefore not as pure as maths or physics, making it less highly regarded and less sought after as a subject to study by the very brightest students.

The best Grandes Ecoles for Developers

From my research here the best Grandes Ecoles for Computer Science:

  • CentraleSupélec
  • ENS (École Normale Supérieure)
  • Ecole Polytechnique
  • INSA
  • ParisTech (which has the largest student population of roughly 6,000 and includes “Arts et Métiers ParisTech”)
  • EPITA (“Graduate School of Computer Science and Advanced Technologies”)
  • ECE (Ecole centrale d’électronique)

 

Criticisms

The biggest criticism is that the system of Grandes Ecoles is an Elitist one. Its critics (found amongst both those who attended and those who didn’t) say:

  • the system tends to only draw students from the sort of middle class families who push their children to compete during their education
  • that France places too much weight on attendance (or non-attendance) and that this dominance over French industry means that it divides society
  • that the highly competitive nature of the whole system means that the system actually puts off some students and therefore does not train all of the very brightest French students
  • it’s an unfair system because the French State spends more per head on those students attending a Grandes Ecole than any other form of higher education, who of course comprise of the majority of kids attending university. Leaving the parallel French “University system” comparatively under-resourced, overcrowded and less well regarded by employers
  • it’s an “old fashioned” institution, that does not teach how to programming is actually practised today, and that the system’s focus on “Computer Science”, rather “Software Engineering” means that graduates can lack an ability to write a fully functioning application to today’s industry standard. The idea that a Computer Science graduate can write an algorithm but can’t “code”.

Xavier Niel and his “42” School

Finally no article on the French Higher Education system of today would be complete without a reference to a Parisian school for Computer Science that was set up in 2014 by the French Billionaire Xavier Niel called “42”. Its free, it has no entrance requirement other than entrants must complete a simple online logic test, continued attendance is assessed on a month by month basis, the education consists of a gruelling 24/7 work regime where students must learn to code or drop-out, team work is the key to success and executives from places like Google, Microsoft, Facebook and Twitter all seem to think its pretty good. It’s a totally new way of looking at learning to code and was founded on a philosophy of “The tougher you make it, the better they do”. Here’s a Wired article all about it.