IgorShare Thoughts and Ideas

Consulting and Training

Archive for the ‘Thoughts’ Category

Just got one of my patents approved!

Posted by Igor Moochnick on 07/15/2012

One of the patents, filed during my tenure in Symantec, was just recently approved.

I had a blast working on this product and the team was amazing. We’ve learned so much about building highly scalable systems and NoSql storage from scratch. And we’ve been running a REAL Agile team.

US 8,214,490 B1


A computer implemented method for determining whether to block incoming electronic content based on running rates of content origination from sources, the method comprising the steps of:

receiving, by a destination computer, information concerning origination of incoming electronic content received from at least one external source over time;

aggregating, by the destination computer, the received information concerning origination of electronic content from the at least one source, wherein the received information comprises notifications from multiple sources;

calculating, by the destination computer, at least one running rate of content origination from the at least one source, based on aggregated information concerning origination of electronic content from the at least one source, wherein the running rate is indicative of a reputation of the at least one source, and wherein the running rate comprises a single number updated using at least an amount of time since the last update to control an influence of new information on the running rate;

receiving, by the destination computer, incoming electronic content from a specific source; and

determining, by the destination computer, whether to block the incoming electronic content from the specific source responsive to at least one running rate of content origination from the specific source.

Read more …

Posted in Thoughts | Leave a Comment »

PaaS requires new dictionary definition

Posted by Igor Moochnick on 06/21/2012

There is a big range of opinions on what PaaS means. Last week during the CloudExpo 2012, one of the representatives of the AT&T booth told me that they offer PaaS when I’ve mentioned that I’m an architect and a developer working to provide a cloud abstraction fabric. When I’ve asked him to elaborate, he explained that they provide a way to people to create some forms and workflows to collect customers’ data and aggregate it. When I’ve asked him about what development environment they support he looked at me like I was an idiot and said: “this is the whole beauty of it – no development or coding is required but if I need something extra, their smart support team will build it for me”. The explanation of their features reminded me of the Google Docs.

At this moment I felt I was talking to an alien from "Man in Black". I challenge the guy on the fact that their offering can’t be possibly called PaaS and that it’s closer rather to SaaS. The guy killed me with one simple statement: "we provide you a PLATFORM to build your forms, hence we provide a PLATFORM-as-a-Service".

This conversation represents a similar trend we had a couple of years ago when every vendor who was selling some type of virtualization was claiming an IaaS and cloud affiliation. This is exactly what is causing a huge confusion for the consumers and customers with what the cloud is and means, what it is for and what it can deliver.

I feel that there is a need for a good new dictionary definition that can coin and explain all the cloud-related taxonomy and can either clearly identify the boundaries between the realms or bring the new definitions to all these overlapping gray areas.

In my dictionary: PaaS is a realm for the developers only (no offense for the rest of the world). In this context I mean that PaaS is a systems that exposes a defined set of APIs for anyone who is willing to code new behavior and orchestrate new service and application on top of it. Only in this case it can be called platform.

I do agree that the word “platform” has a wider meaning but I’m looking to create a clear distinction in our verbal communications so we, between ourselves, will know what we’re talking about.

Posted in Cloud, Thoughts | Leave a Comment »

Hybrid cloud experiencing explosion rate

Posted by Igor Moochnick on 06/20/2012

During the “State of the Clouds” presentation (at the RightScale 2012 conference) I’ve noticed an interesting slide that indirectly proves my point that I was stressing for the last 2 years – the enterprise customers are not yet ready to start using public clouds for their production needs, but they entertain the idea of the hybrid solutions. The slide doesn’t say anything specifically about the type of the customers, enterprise or not, but shows the trend in the market which reflects the mind-set shift.

Take a look of the scale and the speed of the Hybrid Cloud adoption:


Posted in Cloud, Thoughts | Leave a Comment »

CloudExpo in retrospective

Posted by Igor Moochnick on 06/17/2012

The visit to NewYork was a success from so many angles. Apparently I did a very bad homework but, accidentally and to my surprise, I hit New York’s Javits Center at a great point of time – at the same time there was a whole cluster of cloud-related events going on in parallel and I was able to get into a bunch of them:

My main goal was to visit CloudExpo and to network. I was looking to establish new connections and partnerships. CloudExpo, for me, was both a great success and a great disappointment.

It was disappointing to me as an architect because I didn’t learn anything new. I didn’t account for it to be a trade show in its purest meaning. Most of the sessions were presented by sales and marketing people and were targeted for clueless crowd that, as they thought, never heard about the cloud and was ready to eat any BS that was fed to it. This leads me to ask the CloudExpo organizers (and I got the same feedback from many attendees): please put names of the vendors and presenters’ titles on the Sessions schedule. This will greatly help attendees to make decisions on what sessions to visit.

The success of the CloudExpo concentrated in a bunch of great discussions I had with a couple of smart people and potential partners. Everyone was excited to hear about our BlueMetal ideas on the cloud PaaS abstractions.

One of the biggest ups and downs for me was a session from NetAxiom. The presenter, Sandy Zylka (VP Products & Technology), was speaking in a soft voice of a night time story teller that you use with your kinds when they fall asleep and you want to convince them to finally close their eyes at the end of the story.

  • When she said that now is the time to change the Cloud development paradigm – I felt enjoyment and excitement.
  • When she pointed out the current issues in the Cloud development and scaling – I felt I was flying.
  • But when she started mentioning some magic things that promise us automatic distribution of the program methods, automatic scaling across multiple machines and nodes – I started to feel dizziness and got a strong sense of DejaVu: we’ve been there. It was called RPC.
  • When the speaker mentioned that all of the current development methodologies are not valid anymore and we need to forget about coding functions and prescriptions for compilers – I started to feel really sick.
  • But when she said that it’s time to do development in graphical format which will produce some XML-like metadata instructions for the system that will ingest it and will figure out auto-magically what to do with all this – I vomited inside my mouth.

Our industry has experienced such disease in the form of UML code generation and COBOL that was promising business people to "describe" stuff without a need for developers (and then developers needed to fix and maintain all this crap).

5 minutes into the presentation and during the single slide, I felt as an institutionalized patient with a drooling moth that was fed by a spoon by a nurse. I couldn’t stand a single word more and left the session. I didn’t come to hear about unicorns pooping the rainbows.

Posted in Cloud, Thoughts | Leave a Comment »

Turn your management upside down – the upside-down pyramid style

Posted by Igor Moochnick on 06/02/2012

Just read an amazing piece from Joel Spolsky where he describes his own unique style of management. I could agree more. It’s the best description I ever heard about how to make successful teams:

“Stop thinking of the management team at the top of the organization. Start thinking of the software developers, the designers, the product managers, and the front line sales people as the top of the organization”

It is so true – when you hire smart people, let them do what you’ve hired them for. Self-organizing teams, that we’ve all learned about from the Agile practice, can work ONLY when you hire smart people. If your teams are not successful and not self-organizing – check the root cause: are you sure you hired the right smart people?

Organizations can scale successfully and move forward ONLY when the sub-pieces of the organization can be self-directing. The management exists ONLY to provide general message, coordination and support for the employees (removing impediments).

Posted in Agile, Thoughts | Leave a Comment »

Cloud Virtualization. Cloud Standardization is unavoidable

Posted by Igor Moochnick on 04/22/2012

[This is a repost from my post on BlueMetal Consulting company blog]

I think it’s time to start talking about Cloud Virtualization. Today cloud diversity is driving customers out of the clouds instead of embracing them. Multiple cloud providers are trying to lure customers in by developing feature specialization and this may well serve to fracture the markets and the community even more.

Specialized clouds have a good reason for existence, but an explosion of many different ‘flavors’ of clouds are creating a similar problem to choosing an insurance policy – there are thousands of them, you have to be an insurance agent to understand it and there is a lot of fine print that hides the details of the policy.

Cloud Virtualization should provide a common ground for the generic solutions. This allows standardization of the knowledge and principals by which the general population can abide by. Where the "cloud citizens" can thrive and teach the juniors the basic rules of the environment and the survival practices. When the specific needs of your product or your solution require some special sauce – you’re welcome to shop around and choose a provider that can satisfy your specific taste.

The Cloud Virtualization is a necessity that should be recognized by now. You see some standardization in the IaaS platforms around Amazon stack (I.e. OpenStack, Eucalyptus, etc…) but still no specifications around PaaS.

Some of the major providers are starting to recognize the problem. Check out the recent VMWare announcement (VMware seeks Linux-ization of cloud with any-cloud app platform) where it claims:

“The key, …, is allowing developers to build applications using just about any framework, with the ability to deploy to just about any cloud.”

"Just as Linux provides a high degree of application portability across different hardware, Cloud Foundry provides a high level of application portability across different clouds and different cloud infrastructure," VMware CTO Stephen Herrod wrote in a blog post.

The calls for Cloud Virtualization are coming from everywhere, but, since developers have higher tolerance for complexity (they just have fun solving it by writing more code), you hear more vocal calls from the IT industry:

“What’s more important than cost savings for companies — at least in the U.S. and Asia-Pacific regions — is the ability to standardize their software and business processes across the company, according toa new survey of 600 large companies by Tata Consultancy Services, the $8 billion IT service provider. In Europe and Latin America, the primary rationale was the ability to ramp systems up and down faster.”


More and more organizations are beginning to recognize the need and advantages of operationally consistent clouds. The recent announcement from Zynga to move to an internal cloud architecture is the proof of my point:

“We own the base, rent the spike. We want a hybrid operation. We love knowing that shock absorber is there.” – Allan Leinwand, Zynga’s Infrastructure CTO

Zynga uses Citrix Systems CloudStack as its virtual machine management interface superimposed on all zCloud VMs, regardless of whether they’re in the public cloud or private cloud.

Inside Zynga’s Big Move To Private Cloud by InformationWeek’s Charles Babcock

To achieve progress in this direction we need to talk not only about different clouds and about private data clouds in the data centers (so called “private clouds”), but about a standard that can span across both of these (for the moment) different domains – hybrid clouds. The hybrid cloud should become the main topic in these conversations. It is a commonality between the public and the private clouds (we, developers, call it an abstraction – hybrid cloud with “empty” public component will give you the “private cloud” and vice versa).

“Thus if hybrid cloud is to become the architectural model of choice, it becomes necessary to unify operations across all environments – whether public or enterprise.”

The Conspecific Hybrid Cloud, HighScalability.com

“This ability to invoke and coordinate both private and public clouds is "the hidden jewel" of Zynga’s success, says Allan Leinwand, CTO of infrastructure engineering at the company.”

Lessons From FarmVille: How Zynga Uses The Cloud

So, in my opinion, Cloud Virtualization, (or in “dev speak” Cloud Abstraction) is the next evolutionary step of our industry. For the moment Platform-as-a-Service (PaaS) systems spanning the same APIs across different cloud providers are a great (and realistic) promise to achieve the cloud unification.

Here is why I think it’s true:

  1. The PaaS layer, in its core definition, has to provide an API for all the Cloud infrastructure control knobs. Otherwise it’ll not be considered as a CLOUD.
  2. The same control API will enable the development unified control tools ecosystems that can control in the same way multiple clouds from different cloud providers. Thus unifying all the IT and DevOps processes.
  3. Unified PaaS API layer will enable a new evolution cycle of the application development that will enable the same applications to run seamlessly on different clouds as well as on local data centers without modifications. Hence enabling IT and DevOps to make decisions how and where to deploy them.

Today there is only one publicly available project that shows some promise to achieve the Cloud Abstraction for the developers – JClouds. Lately, VMWare has been making some changes with their Cloud Foundry platform by promising to change the balance with BOSH – an open source tool chain for release engineering, deployment and lifecycle management of large scale distributed services.

So, to sum all this up, I believe that Cloud Virtualization is unavoidable. Customers are looking to be able to scale across multiple cloud factors, and vendors are looking to lock in with feature creep. This tension will continue to grow in the models which are marketed today. The goal of reaching the cloud promise of true elasticity and flexibility based on what the application demands is the opportunity for our industry to deliver on, and we can wait for it passively or we can do something about it by architecting for this now.

For me personally, I choose the latter.

Posted in Cloud, Thoughts | Leave a Comment »

Continuous Education

Posted by Igor Moochnick on 01/26/2012

VIDEO: Windows Azure on Cloud9 – Cloud9 IDE Blog
VIDEO: Skills Matter : In The Brain of Udi Dahan & John Stevenson
VIDEO: Gil Zilberfeld interviews Uncle Bob Martin
Jasmine-BDD: A Screencast On The Standalone Test Runner | ThoughtStream.new
VIDEO: ayende on ravendb problem
VIDEO: Session 02: Introduction to Compute
Northwind Starter Kit Review : Data Access and the essence of needless work
Ruby on Rails in Windows Azure – Part 2 – Creating Windows Azure SDK 1.4 based Application to Host Ruby on Rails Application in Cloud
Pragmatic Programming Techniques: NOSQL Patterns
HBase vs. Cassandra: NoSQL Battle!
VIDEO: Skills Matter : DDD eXchange 2010: Udi Dahan on Architectura
One Millionth Tower documentary elevates the art of HTML5 – Engadget
VIDEO: DataStax Cassandra Tutorials – Managing Objects & Data In Cassandra
Skills Matter : In The Brain of Udi Dahan: CQRS, race conditions
NOSQL – Introduction on Vimeo
The Coming War on General Purpose Computation
Pragmatic Programming Techniques: Choosing between SQL and Non-SQL
Pragmatic Programming Techniques: NoSQL GraphDB
Martin Fowler: Slideument
Understanding Microsoft’s big-picture plans for Hadoop and Project Isotope
Shan Carter on data storytelling
VIDEO: Hadoop in Action
Pragmatic Programming Techniques: Between Elasticity and Scalability
Cloud Expo 2012 East
VIDEO: "The Lost Session" at KAN Malmo – Introduction to RavenDB
A Java Developer’s Guide to PaaS
VIDEO: NDC 2011: Kill Your ORM
World Wide Webber – Graph Processing versus Graph Databases
VIDEO: Building loosely-coupled apps with Windows Azure Service Bus Topics and Queues
Procrastineering – Project blog for Johnny Chung Lee: Low-Cost Video Chat Robot
Going realtime with Socket.IO
WebSocket and Socket.IO
Asynchronous scalable web applications with real-time persistent long-running connections with SignalR
Scott Hanselman’s 2011 Ultimate Developer and Power Users Tool List for Windows
patterns & practices: Project Silk
Martin Fowler: StranglerApplication
What’s in (and missing from) Microsoft’s latest batch of Azure cloud update
Introduction to Spring Data Neo4j
Raspberry Pi’s $35, 700MHz Linux computer enters manufacturing
Scenario-based Unit Tests for DDD with Event Sourcing – Journal – CQRS and
I’m a phony. Are you?
How Trello is different
How to handle relations in RavenDB
Design Patterns for Distributed Non-Relational Databases

Posted in Architect, Continous Integration, Intelligence Amplification, Thoughts, Training | Leave a Comment »

Blending tablet PC experience with the real world – new fronteers for the development

Posted by Igor Moochnick on 12/28/2011

Happy Holydays!

Posted in Thoughts | Leave a Comment »

Limited choice of good-enough features will take you a long way

Posted by Igor Moochnick on 12/22/2011

I’ve finally got a perfect explanation why the iPhone users are much happier than the Android users and, over time, their devotion drastically grows.
According to this provocative research of Dan Gilbert (TED2004: Dan Gilbert asks, Why are we happy?), the synthetic happiness can be cultivated. It’s becoming prominent when a person gets a limited choice and it’s becoming even more so over time.
I think the solid implementation of the good-enough features in the iPhone has an increasing effect of the synthetic happiness.

Posted in Thoughts | Leave a Comment »

Continuous Education

Posted by Igor Moochnick on 11/29/2011

Posted in Architect, Continuous Education, Intelligence Amplification, Thoughts, Training | Leave a Comment »

%d bloggers like this: