Tag Archives: cloud computing

Halfway Mark

Wow, June already. Time flies in the enjoyable world of translation and technology.

I embraced the cloud 6 years ago having evaluated the benefits of Platform and Software as a Service and believed in, what was then, a future vision of all kinds of intelligent distributed services which would be impossible to achieve with a private, internal infrastructure. It was interesting to see that light bulb flash on for non-cloud using attendees at Microsoft’s Red Shirt Dublin event with Scott Guthrie last week.

scottgu

 

Scott took us on a whistle-stop tour of Azure facilities from Functions (a few lines of code executing logic on demand) to arrays of GPU’s running Deep Learning algorithms capable of doing face recognition and sentiment analysis.

 

Within the development team at work our utilization of such technologies continues: Neural Network Machine Translation; Adaptive Machine Translation; Continuous Integration; Distributed Services; and Serverless functions and logic.

At the Research end of the scale, having successfully completed our most recent European Project, I’ve been re-engaging with local research centers and interest groups. This month’s and last month’s Machine Learning Meetups were testament to how dominant Deep Learning is in driving business success and competitiveness.

And because working hard has to be balanced by playing hard I’ve ramped up sailing to three times a week.

1720

 

The Cork 1720’s I go out in are just wonderful boats.

 

 

 

We started the year with some operationally complex, significant impact projects. Progress has been slower than I would have liked but ensuring we have a solid base upon which to build is critical to the overall success. My impatience is to realize some of the potential gains now but the collateral risk is too high. So, at the midpoint we are looking at a busy next two quarters to get everything we want done but the team is well capable.

Fast and Loose

About a year ago we started to think about the cloud and how it could help us. Should we put our relational databases in the cloud and stop having to worry about their size? Should we try to put our network and compute heavy processes in the cloud freeing up internal compute and network bandwidth? Could it just make us more agile and less capital expenditure sensitive in responding to compute and storage requirements?

We prevaricated on these questions for a while because in hindsight we didn’t understand the mindset change. To me it was like moving from procedural, interpreted languages to compiled, object oriented.

We finally “got it” when we had the challenge of trying to efficiently produce results for an unpredictable number of concurrent new compute heavy tasks.

After optimizing algorithms, our initial perception was that all we needed to do was throw more processors at it. How wrong we were. Next up, after making computation parallel was data storage and memory requirements – the bottleneck had shifted from compute to storage and retrieval (I/O). Seriously, I/O can slow things down considerably. After finding a solution to that it was how do we scale out and not up – more processors rather than bigger processors.

Eventually we came to understand that a true cloud architecture makes use of many patterns or paradigms: fault tolerant service bus (message queue), several compute instances, noSql data storage, web service endpoints and thinking of every operation as asynchronous.

What you end up with is a loosely coupled but highly fault tolerant, highly scalable, flexible, separated concerns configuration.

We are close to deploying this new platform and I’m very excited about it. We have no single points of failure, unlimited extensibility points – a very robust and scalable infrastructure.

We’ve prototyped bits of this on both AWS and Azure and are confident that deployment on either is workable.

No doubt we’ll hit limitations or problems at some point but right now the return on investment looks unbeatable.