If You Internet, You Micro Service!

If you are reading this post you use the Internet. You may be a developer with an interest in Micro Services or you may not be, but you use the Internet. Here is a secret I have for you, if you use the Internet then Micro Services are already a big part of your life.

The Internet as we knew it has changed significantly. You no longer have to be a developer to create a website, the maximum social interactions most people have today are via the Internet and an even more drastic change is that Apps are a bigger part of our lives than websites are.

We use Apps for everything: social websites, communication, photography, shopping, tracking our health, travelling, reading; the list is endless.

These Apps are further connected to their respective websites and backend elements to help us communicate seamlessly with our mobile devices, computers and clouds. All of this communication is very complex and as our devices and data grow the complexity increases. This is where Micro Services come in.

Micro Services and their respective APIs are what make it possible for this complexity to function in the first place. They make it possible for the developers behind them to create that seamless user experience.

But more than that what this revolution called Micro Services brings to the Internet is a break down of silos. They are not just allowing apps to communicate they are encouraging them. They make it possible for developers to connect, share and push the acceptable norms.

All the Big Data that is floating around in cyber space is of use to us only if it is connected, channelized and shared. It is of use to us because Micro Services make it useful.

We can watch a Netflix movie chosen according to our preference on our phone because these tiny services make it possible. We can shop online using an app because Micro Services make the connection.

Without Micro Services channeling the data, creating and upgrading services quickly and communicating in a dynamic manner would be a big challenge. The way we interact with our devices and with the Internet in general would not be the same.

So, if you do indeed use the Internet then you definitely use Micro Services regardless of whether you know it or not.

In fact, at Captain Dash we believe that going forward doing business without Micro Services will not just get difficult but impossible!

To stay updated with our series on Micro services architecture follow us on twitter or subscribe to our blog.

Written By: Meghna Verma

Three architectural strategies for Micro Services APIs

A good house is built on a strong foundation. The same holds true for systems architecture. How you build your Micro Services determines what they turn into.

Read more

Micro Services - Reasons For Partitioning?

A few posts back we spoke about how Microservices affect organizational structure and how the structure of an organization mirrors the structure of its architecture. By structure of an architecture we basically mean partitioning of that architecture and hence the organization.

So, now we are faced with the question of why should one partition the system? The simple answer, of course, is agility. The biggest reason for any organization to switch to Micro services is to be agile.

And agile is all about individuals; how they decide to work together and build software that are aligned with their business goals.

There are a few broad reasons why businesses partition either their organizational or their software structure:

Comparative Rates of Change

Different parts of a system often have different rates of change relative to each other. Some portions might need to be changed on a weekly basis while others annually. In a case such as this a partitioning is usually required so as to make the more frequently changed parts to be more independent.

Autonomy of Teams

Sometimes it is easier to split up teams and systems so that different teams can work independently on different parts of the system without being affected by each other’s work and speed. Here the teams are usually created so as to mimic the independently partitioned system parts.

Domain Boundaries

A complicated system often calls for extremely strict and independent boundaries of its business domains. This is to make it possible for each business unit to be completely self-sufficient and thus be independent of the functioning of any other unit. This is usually what we called decoupled business units. Having separate teams and modules taking care of these domains is usually a good idea.

Non-Functional Facets

Usually different parts of a system will have differing non-functional facets, which put them at odds where, needs and resources are concerned. This is the reason that Monoliths are difficult to scale since the entire system needs to be scaled even if only one single component needs it. This is another reason businesses consider partitioning their systems since doing so helps them to better assign their resources and invest their energies.

The bottom line? No matter what the reason for the partitioning maybe the goal is agility!

To stay updated with our series on Micro services architecture follow us on twitter or subscribe to our blog.

 

Written By: Meghna Verma Meghna Verma is the CMO at Captain Dash.  You can reach her on Twitter @M3GV3RMa .

Anti-Fragile - Micro Services Love Stress

When it comes to architecture safety, we traditionally refer to systems as being fragile or robust. But, there is in fact a triad – Fragile, Robust and Anti-Fragile!

antifragile-microservices-and-devops-a-study-4-638Over the years, companies have invested millions in their architecture and with each passing addition these architectures grow increasingly complex till they are a mass of technological spaghetti. When faced with such architecture we are afraid to touch it with fear of completely unraveling it. This is what a fragile system looks like; a system where even the slightest change can result in a complete breakdown.

The solution routinely sold to us is to make it robust, more resilient. This solution consists of wrapping a fragile system in layer upon layer of protection – much like bubble wrapping a delicate wine glass – and these layers will need to eventually be removed to affect any changes. A robust system will at it’s best ignore changes and at it’s worst will resist change. This is dangerous in the present environment of constant change.

Micro Services offer us the third option – to build an anti-fragile system! An anti-fragile system simply put is a system that not only thrives but also benefits from stress – the stress of run time, of change, of failure. It gets better with stress and allows us to embrace change and agility.

An example is Netflix’s Simian Army. This is a tool that systematically destroys their existing system to expose weaknesses and forces the system to improve, to handle runtime conditions better and to change faster.

simian-army

Imagine a system that allows you to destroy it and comes out of that better than before! THIS is what Micro Services bring. By allowing for mistakes, stresses, and weaknesses they lead us to take leaps in innovation instead of baby steps. We can call Micro Services just another name for SOAs or call them a buzzword but what they bring to the table – anti-fragility, flourishing on change, innovation – are more than just buzzwords. They are a reality if we want to stay relevant!

To stay updated with our series on Micro Services architecture follow us on twitter or subscribe to our blog.

Written By: Meghna Verma Meghna Verma is the Content Manager at Captain Dash.  You can reach her on Twitter @M3GV3RMa .

What kind of Easter Egg Hides in Your Architecture?

This long weekend as you celebrate Easter pay close attention to the eggs. Why eggs you ask? Because Easter eggs can help you determine where your business stands in terms of architecture and what are its long-term effects on your business.

chocolate-easter-egg_1427389013

Let’s start with the proverbial, large chocolate egg that one thinks of when we say Easter. This Easter egg is your standard Monolithic architecture. There is a lot of chocolate that feels good to begin with but eventually makes you sick, fat and slow. You finish it in one go or else it goes bad. A Monolithic architecture too is limited due to its huge size and all the weight it carries makes your business slow.

mini-eggs-002

Micro services architecture on the other hand, is like little mini eggs. These eggs are made of the same amount of chocolate too but are small and numerous. Thus, allowing you the flexibility of eating them as and when you need over as much time as you prefer. This means that you don’t get sick, don’t get fat and they provide just enough chocolate to give you an energy boost! Microservices with their small scalable format, too, allow you the flexibility of creating your architecture, as you want, in any language you want. Just like the mini eggs, Microservices are loosely coupled. They function as separate entities, which gives us the ability to use them in any manner we want. These lightweight codes provide the agility and scalability your business needs to stay competitive and relevant because agility will not be a competitive advantage in coming days – it will be a necessity.

At Captain Dash we have come to rely on this very flexibility of Microservices to build user centric dashboards that are quick to update, change around as required and work across all devices.

So, again, as you go about your festivities give some consideration to that egg you are about to consume!

Note: Subscribe to our blog or follow us on twitter to know read more about Micro services architecture. We put up a new post every week.

Written By: Meghna Verma Meghna Verma is the Content Manager at Captain Dash.  You can reach her on Twitter @M3GV3RMa .

F**K You Algorithm!

Does your company director doubt your strategy? Explain to him that it was created by a MIT issued big data crunching algorithm. Do you wish to boost the value of your startup? Make them believe that an algorithm developed by Russian mathematicians pilots it.  Do you want to hook-up with your neighbor? Tell them that you are a data scientist working on the optimization of the tinder algorithm. The algorithm has become the ultimate in trendiness. It has positioned itself on the horizon as an indispensible. Tomorrow a machine will probably replace the strategic planner, a task-scheduling algorithm the project manager…with the coming of the Chinese we were stripped of industrial jobs, now the algorithm is here, lurking silently in the shadows. The colonization of marketing by algorithm seems inevitable.

Prepare yourself comrade; the algorithm wants to steal your job!

This is not only a pessimist and naïve vision of the future but an absolute misunderstanding of what IT is in general and what is an algorithm in particular.

Just like the case between the Chinese worker and the European worker who fought for the same task; the human and the algorithm, when coupled with the computer, are not in competition with each other. They do not have the same needs or the same capabilities.

A computer is numeric where as a brain is analogic. The computer is binary; it emits signals in zeros and ones. On the other hand our neurons emit signals in a great variety of models. The algorithm “is a finite and unambiguous result of operations or instructions to solve a problem” where as the human knows his way around irrational ground.

A computer would be very efficient at executing repetitive procedures or at performing automatic calculations but completely incompetent at understanding emotions or at managing illogical situations. A human on the other hand performs poorly at indefinite repetitions, calculations, or storing information but can rapidly comprehend concepts, analyze sentiments and take decisions based on heterogeneous information.

You have a doubt about that?

Take a pretty basic computer and command it to play a game. A game that requires the computer to calculate the best way to move pieces across a board with very clearly defined rules and absolutely no value given to an emotional computation.

And you will see that the computer will very easily and without using much of its capacity, be able to beat Garry Kasparov, the greatest chess grand master of all time.

Now, demand Google to identify an image. It is something that Google tried in 2012. The team connected 1000 servers with a combined capacity of 16,000 processors. For two days the system went through close to 10 million videos on YouTube. At the end of this experiment Google triumphantly announced that it could recognize a cat 75% of the times!

Put another way, a computer works wonders at beating Garry Kasparov at chess but while utilizing all its capacity it performs lower than a 3 year old in recognizing a cat.

Would you entrust your marketing plans to an autistic capable of beating a grand master at chess but incapable of recognizing a cat? This is exactly what zealots of the method-applied algorithm for seeking insights are about to do! If Google can hardly recognize a cat can you imagine it being able to comprehend the complexity that brand preference is based on and be able to make creative leaps?

The thing that the zealots of algorithm are not able to comprehend is that marketing is different from logistics. Marketing is not a cold science. The aim is not to optimize the transportation of an object but to interact with and engage in a relationship with humans.

The consumers, unlike a machine, are ambiguous and complex. They have sentiments that compel them to love or to hate a brand in an irrational way. And it is this precise capability to manage emotions, to transcend the usage value of a product, to generate an additional value that makes the brain superior to machines.

The reality is, that the world of marketing will not be dominated by an algorithm but by the complementarity of the human-machine pairing. We will delegate to the machine that what it does better that us: track, without bias, the data and perform simple automated tasks.

The algorithm fabricates beautiful dashboards for us to understand where the brand stands, how to set the best possible price that is acceptable for the consumer or for that matter how to create an efficient media mix. The human conceives the products and the campaigns; he creates the unbelievable user experiences. It’s the humans’ brain that flows with ideas that define the brand universe. It’s them who subjectively arbitrate effective actions.

The human, certainly better equipped, remains the master.

 

Written By: Bruno Walther for L'ADN January - March 2015 Issue Bruno Walther is the CEO & Co-Founder at Captain Dash.  You can reach him on Twitter @brunowalther .