Public cloud in Nigeria, why Open Technology matters.

I recently heard about a Nigerian company shutting down its public cloud services business.  Apparently riding on the wave of cloud, the company built a public cloud infrastructure and quickly tried to leverage on its Data Centre experience in colocating services. However, after a brief stint, the revenues just did not add up. They had to layoff folks.

Rackspace is out of the selling commodity compute business as well, at least in the scale of AWS and Google. They still provide managed cloud services though. It is becoming very apparent that you need more than cash in the bank to pull off a successful cloud business. Lots of cash is needed but it isn’t enough.

How could you make money in the cloud business even as the price of compute keeps falling. One of the cheapest things to spin off today is a server on the Internet. Google too recently crashed their prices. What is enabling Google and Amazon to crash their prices aggressively and still stay in business (even in the face of massive loss)? What is the competitive advantage they have that the other public clouds do not have?

The answer might lie in their huge investments in R&D. Apparently, there is more than meets the eye when building scalable computing infrastructures. According to this analysis, which I strongly agree with, companies like Amazon and Google have invested (and still investing) a huge amount of cash in R&D. Their research team are pushing the boundaries of technology to look for better ways to provide compute and storage services over the internet?

If the differentiation is in R&D investment, how can local companies compete effectively in building public clouds within their country (to take advantage of the challenge of data privacy and compliance and security)?

Why local firms will never be able to beat an Amazon.

It is a given that very few Tech companies aspiring to build public clouds in Nigeria or elsewhere can invest in R&D as much as Google and Amazon. These companies have research and development teams across the world. Places like India, China and Isreal have become target spots for these Tech giants to build research teams. It is safe to conclude that, on that level, local firms will never be able to compete with Google and Amazon.

These companies are known to fund research in the top academic institutions in the world. This has become the norm rather than the exception. While at Stanford, the Google boys were said to have worked at the research Lab Microsoft donated to Stanford. Companies like MIT, CalTech all have research programs being funded by these tech giants. In Nigeria, there is not a single Tech company that sponsor any form of research in the Universities. All these schools have computer science programs but not a single one of them do any notable research.
The low hanging fruit option

If local Tech firms that want to build public clouds cannot invest in R&D, what can they do?

The low hanging fruit option for these companies is to partner with the foreign Tech firms with the R&D budgets. Computer Warehouse Group (CWG) is currently offering such a service. They have partnered with IBM to build public clouds in the country. In other words the same model of running an un-inspiring tech business in Nigeria since forever. Bring a partner that will do the work, share the profit. This way, the local firm never worry about innovation. They never have to worry about research. They just resell. Their success ultimately is dependent on the success of the OEM.

Mainone is also currently recruiting cloud engineers, I guess for their public cloud practise too

This OEM-partner-resale model has a faster go-to-market period. The challenge to profitability of this model however lies in software licensing. Cloud isn’t just another virtual machine accessible over the network, its about control, self service, metering and on demand scalability of compute, storage and networking. You need a cloud operating system/platform to be able to sew together these three. Combine heavy licensing of this cloud software with the existing infrastructure challenge of Power and Internet, then you begin to have a rethink about your cloud business.

A much smarter approach.

Going Open

For local tech firms with some cash to invest in building a public cloud practise, I’d think it’d makes sense for them to look into in any of the open cloud initiatives that exist today rather than leaning towards proprietary cloud vendors/OEMs.

Apart from their huge investments in research, companies like Facebook, Google and AWS have been able to build scalable and highly available infrastructures by leveraging on Open standard technologies and open source software. Without leaning towards any particular vendor, these companies can easily adopt the best of open software available.

Some cloud operating systems available today include OpenStack, Eucalyptus, Cloudstack. While we can argue about the maturity of some of these projects, they already power many public clouds in production today.

Adopting an open technology cloud approach will enable these companies to build a lasting practise. They will grow into the cloud, building human capacity along the way. This allows them to solve the problem of skilled manpower down the road.

Another advantage of this approach is to start up the cloud business lean and agile. If the concern of enterprises today is about data security, privacy and compliance in the cloud, tomorrow these concerns could actually pale when compared with the other advantages realisable from moving to a major public cloud (outside the country).

Staring lean and open allows these tech firms to respond to competition from AWS and other major public cloud players. If I’m not bugged down by a 5-year commitment to a proprietary cloud OS license, I can change my mind when the facts change. With vendor lock in, I don’t have that much flexibility.

Taking Research Seriously

it is important to note that R&D is still one of the differentiating factors for innovative companies.

Research is important for any company that wants to create any innovative solution or sustain the culture of creating “new things”.  I wonder if Nigerian companies invest any amount of money in research. No matter how small.

The fact that research is not our strong focus explains why cutting edge technologies seldom originate from African tech companies. We rather reproduce what works.  Innovation is what will enable local companies to be able to survive stiff competition.

The Tech industry, like any other industry  in Nigeria needs to engage and challenge Nigerian Universities to start to think again. Our CSC departments have become places to learn about computer history and about how they were using punch cards for data input…Please. During my undergrad program, a lecturer was actually working on grid computing for his PhD without as little as a 2 node-cluster in the entire university.  The private sector can do a lot here to encourage research.


Getting started with Puppet Automation

Puppet is one of the popular configuration management and IT Automation tools out there. In an age where we have more servers being spawned every minute in the cloud and on-premise, it will be a disaster not to adopt configuration management tools. There are other tools out there like Salt, Chef, Ansible etc. Currently I’m liking Puppet.

Came across a presentation on getting started with Puppet and it provided an interesting insight for me. I took notes from the presentation and I thought to share it with any beginner out there. If you have the time, you could go over and watch the presentation here.

For those in a hurry or have already started playing with Puppet, here is the summary:

Why Automate?

  • Speed
  • Consistency

1. Pick the right things to automate based on cost and value

-> How often do you run to the problem
-> Cost Vs. Value. Start with Low cost, high value services e.g Syslog
-> Start with the simple services you know, Start with common service everywhere
Syslog, Host keys, Accounts, Monitoring configs

2. Don’t learn two things at once. don’t automate what you’re still trying to learn

-> Figure it out – Learn the technology/product before you attempt to automate it
-> Refine the setup -> Learn how to set it up the application first, learn to make it dance before attempting to automate it

3. Use puppet tooling to make you better
-> Study the facter Inventory service
-> Write custom facts. Facts.d -> By using the Puppet Console, you can get lots of facts to add to your manifests.
-> Use Live Management
-> Learn the Resource Abstraction Layer (RAL)
-> Use Puppet resource cli to gather resource info e.g ‘puppet resource user root’ to get more information about the root account
-> Puppet describe <resource> : Use this to learn about any resource, including example declaration.
-> Noop is amazing  (—noop and —debug)

4. Start Simple, Stay simple
-> Build Small Single purpose modules
-> Have lots of small modules rather than a single monolithic module
-> Take time to plan the automation
-> Start by asking yourself what you do when a new server/VM comes online or is freshly provisioned. e.g Set the public IP, set up ssh keys etc
-> Build on what you’ve learnt and iterate.
->Configure version control

5. Next Level : Scale it up

-> Add a different node for puppetdb i.e Install the PuppetDB on a separate machine.
-> Add a node for foreman/cobler/razor
-> Modules
-> Read puppet modules

Why it will take us 100 years not 50.

Getting better at something and developing a country both have one thing in common. Deliberate effort. You need deliberate effort to get better at a thing the same way a country needs to deliberately put structures in place for development to happen.

The 50 years vs. 100 years is just an analogy. My point is that it will take us twice as much time to become the technology hub we hope to become.

Another analogy. Imagine you work for this company whose vision is to dig the best holes in the country. Over time, you become the best digger on staff. Unfortunately though, this company has a bad PR machine. As such, every time you dig, a miscommunication by the PR department pushes some of the sands you have dug out back into the hole. You might eventually achieve your goal, but as a result of your company’s action, you will get there latter than sooner. This same analogy applies to Nigeria’s Technology drive.

Individuals, organizations, a handful of private companies are striving hard to put the country on the tech map. They catch them young, support developers, encourage start-ups and all that. However, the country’s (in)actions are making this job very difficult. If we really had a goal of developing tech manpower, our policies (local or foreign) will align with this goal.

It’s no longer news that MasterCard will be issuing every Nigerian a National Identity Card. Nigeria has a population of approximately 170M people. It doesn’t matter if this was announced years ago, people have made spirited efforts at discouraging this then, and we are still doing now.

Why this couldn’t be handled by an indigenous company still beats my imagination. In an age where every country protects the data of its citizens diligently, you wonder why we would willfully delivers ours to a foreign private company. The NIMC gave reasons as seen in the tweets below:
Screen Shot 2014-08-31 at 2.59.39 PM

Field experience? Biometric functionality?

This project should have gone to an indigenous firm, or a consortium of indigenous firms. Interswitch, Valuecard and other indigenous players have been in the card business for many years. (Disclosure:I used to work with Interswitch).

If its field experience, these guys have it. Biometric? Common…Patents to biometrics can be licensed. The NIMC has missed the point here. With a national IT policy, things like this should not have happened. Development is a deliberate effort. I would think the Ministry of ICT and even the NIMC would be the ones advocating for indigenous firms to handle this based on how critical the data is.

What difference does it make.

It makes a lot of difference. Creating National Identity cards for 170M people would also require skills and expertise of all sorts of people.

MasterCard would probably rely on the Chinese and Indians to pull this project off, from a cost perspective. Meaning this project will probably be outsourced. The finished product and the not so critical part will be done in Nigeria. On the contrary, an indigenous firm would need to expand its local talent pool to pull this off. If required, they would bring in a handful of expatriates for knowledge transfer.

Furthermore, in a country with weak data privacy laws, what are the economic and security implications of having the data of all Nigerians in the hands of a private company outside the shores of Nigeria. What happens when a foreign Government with Mastercard’s loyalty requests for this data? These and similar issues are the things that make the difference. While other nations protect their data assets, we give up ours so carelessly. Is this ignorance or naivety? or is someone being paranoid?

Countries all over the world give their own the opportunity to grow. They also support them to excel abroad. The Chinese still protect the interests of Chinese companies, so do the Americans. We need to protect our own.

Development is a deliberate effort.

10 kobo tips for Nigerian Pre-Startups!

I am usually very careful when using the word ‘startup’. The growing tech media in Nigeria have adopted the word ‘startup’ wholly as it is being used in Silicon Valley for every tech idea someone’s trying to execute. I am of the opinion that this generalisation isn’t fair for most ‘startups’ in Nigeria.

According to Wikipedia:

“a startup company or startup is a company, a partnership or temporary organisation designed to search for a repeatable and scalable business model…A critical task in setting up a business is to conduct research in order to validate, assess and develop the ideas or business concepts in addition to opportunities to establish further and deeper understanding on the ideas or business concepts as well as their commercial potential”

You don’t do the above with water and air. You need some resources which include some tech skills (depending on what you’re trying to achieve), some cash and human resources (business guy or guys, mentors etc). While it is possible to start with an idea, usually ideas alone are not enough.

There are two categories of ‘startups’ in Nigeria.

The first group, you can actually call the startups. They deserve the sticker ‘startups’. There are actually only a handful of these in Nigeria as at today. They actually have some resources to throw around. They have a handful of developers and they can go to market very fast. Because they have some resources to play with, they launch startups serially, with all their startups running from the same pool of resources. These group know their numbers, they have business guys and can brandish graphs, stats and figures to prove their point. These group can actually afford to go from idea to execution and they represent the people behind the startup rhetorics/wave in Nigeria. But they are sadly very very few.

(PS: These guys are also domain hoppers. They have probably registered all conceivable .ng domain names)

The other group (startup-wannabes) consists of young, talented, ambitious and often inexperienced folks who have the raw ideas of changing the world. They are hip, skilled in one of two programming languages, they are often in touch with the latest in tech. They have broad knowledge of technologies but not deep enough to create something outstanding. Off course they sabi clone too.

These group however haven’t learnt the art of execution. They tend to start multiple projects without seeing any of them through. They jump from event to event, project to project, idea to idea, depending on which catches their fancy at any point in time. The folks in these group launch Betas that stay Beta for many months, and even years with no concrete plans for the next level.

Also, rather then wait it out with one good idea, they move on to other ideas without spending enough time to see their first idea/project gain traction. Unfortunately, they also call themselves startups. Putting themselves in the same category as the first group. This group should rather be called pre-startups. Some can graduate to startup level, while others just implode.

Enough said. I have 3 advice for the second group, the pre-startups. If you think you or your ‘startup’ fall in the second group, take note of these things. Unfortunately, folks with plenty tech skills tend to fall into the second group. So this advice is for me as well.

1. Starting and not finishing

I hardly visit Facebook these days, but when I do, I read through silicon Africa and Creative Tech groups. On these groups, I see a lot of hurriedly executed projects discussed that never gets finished. Some of them very good and others, not so good. A handful of them go under even after people have taken time to give them ideas on how to make their product or service better.

Its either the Facebook or twitter login is not working or a page outrightly says “under construction”. I tried one with an invalid email and it got the email registered. This is totally unfair on users who are trying to check out and possibly sign up for the service. I’d like to see more projects actually get completed. A nice sounding domain name is not enough, we need to learn to start finishing whatever it is we start guys.

2. Trying to do more than one thing

Another reason ’startups’ in the second group never make it to production is because they try to do many things. They try to add many assumed features which delays launch. I look forward to when startups wannabe in the second group focus on one thing and do it very well. Off course, it is natural to be afraid a competitor will clone your service and add your missing features. Yup, but then, competition is good and you’d better launch with 1 functionality and gain some users rather than not launching because you aren’t ready with the 65th feature.

3. Terrible UI

Common guys its 2014!. I have also noticed we have a pathetic UI problem. There are templates written all over the sites launched by these second group of startups. Arguably because of limited time and resources and not having a dedicated UI Engineer. Templates are not bad, it’s the art of beautifully integrating them into your own logic/functionality that is still missing.

If you are short of UI designers or you can’t afford one, frameworks like Twitter Bootstrap and Zurb foundation are out there to help you out. Please use them.