Reflections on Serverless:From SOA to Serverless part 2

In the previous blog post, I describe the architecture evolution from SOA to Serverless. For this blog post, I will continue to talk about the same subject in the sense of strategy evolution and architecture strategy. Business value does not come only by adopting new technology but also from a new way of thinking or the right mindset shift and the right understanding about tech culture and vision. Most companies have the right Tech view and often don't see themselves as tech companies because they think this business is logistics, sales, health care, insurance, finance anything but tech. Nowadays several companies depend so much on Technology in order to service, prosper and deliver better customer experience(CX). However, tech is often seen is a COST CENTER rather than a VALUE center. Because often IT fail to DELIVER and SHOW value to the business. That's why some many companies are looking into the DevOps movement and other movements like Digital Transformation and Bi-Model in order to change and do better. However, companies are still falling to get Agile right to imagine getting Devops Right. The vision of tech is often blurred with wrong ideas and wrong perceptions of value. Some of these items will be cover in this blog post, this blog post also comes with a video at the end.



Expect Gaps



Every single right tech movement in the sense of culture, principle, technology has gaps. This is normal, however, companies don't expect these gaps. Thy often sees movements are holy grails and move from one movement to another without understanding what works and what does not works. I've seen this cycle happen over and over again so many times. There are so many anti-examples like doing fixed-price-scope and agile together. Doing SOA and using an ESB. Going Serverless and don't want to do any other kind of computing. This does not mean some technologies or movements should not die, on the other way around there is much unlearning needed.

IMHO one of the main problems is that companies expect to fix all their problems with the new and shine-new-hype. Rather than having the true understand in sense of what kinds of problems and use cases they can fix versus what kind of problems they cant.

3 Kinds of Tech




Often companies see technology as pure COST and execution. Meaning, this is "HOW" we do things and does not matter. Oddly enough everybody seemed to care or to say that cares about Customer Experience(CX) so CX get achieve just with UI and features? Hell no. CX need a lot of software, let me list a couple of fronts that software can affect the customer experience:

  • Bugs: Affect the trust in the system and lead to indirect Revenue Loss.
  • Downtime: Affect the trust of the system and DIRECT Revenue Loss.
  • Slowness: Make the customer less productive and DE-VALUE your product.
  • Limitations: Often as the result of tech debt or bad architecture, your competitors will love it.
Execution matters a lot. How we do things matter a log. However, that's just the first point of view in technology. The second point of view is Capability which enables new Business Models and new Experiences for your customer - Here we can take a look in new interfaces like Audio Interfaces(Alexa, Google Home), Chat Bots / Cognitive Computing Interfaces, XR(AR, VR, MR). These new interfaces allow us to do things that we could not do it before and bring a solution to other areas like Field Agents, Cars, Corridors, Cellphones, and so on and on. 

Last but not least Shifts. Shifts like Digital Transformation abut build up on top of other things. You might see something as optional and not pay or invest much on it however as the time passes it becomes a competitive advantage for your competitors that made the movie and you are in danger because you took so long to move and now the debt is sky high. 


The Stack Effect



Like a pancake stake when you pile up several layers it gets better and better. When docker of lunched some companies did not bother, they clusters appeared, several companies still ignored and now we have kubernetes as the true lock-in free and multi-poly cloud solution and them is very hard to ignore it. The same pattern happens over and over again look Lean => Agile => DevOps - Companies that were doing Kanban before and paying attention in software using XP had less effort to embrace Devops compared with the ones that were not even doing agile. Basically, this is the Stack Effect that happened and will continue to happen. Another Exemplo: SOA => Microservices => Cloud-Native Microservices => Serverless and this list can go forever. It's important to acknowledge this for 3 big reasons:

  • Do not Lose the Big Picture: The advantage is on the top of the pancake.
  • Watch and move on the right time: Avoid being a laggard. 
  • Reduce Risk and make small and continuous shifts: There are several advantages to doing this strategy like: make your team motivated and engaged, improve things on-demand, be ahead of your competitors and enable VALUE(through new Capability and BETTER customer experience).

Architecture Spectrum




Architecture is a spectrum, not a binary choice. SOA was the beginning but there will have scenarios where would make sense do SOA without VM and run on the cloud like micro-vms for instance. People tend to think that if they go Serverless they don't need containers or VMs anymore. That happens because they see architecture as a binary choice(take the latest one and go) however things are not that simple. There are always scenarios where serverless for instance can be MORE expensive than Compute or Containers. Again - understand what you have that is good and bad for each use case and scenarios. No Silver bullet.

Multi-Cloud



Back into 2011 an article wall stress journal talking about how software was eating the world. Open Source eats software a long time ago, we still have only about 20% of all workloads on the cloud so the market is pretty big however everybody can see that the cloud is eating open source however what people are not realizing that multi-cloud will eat the cloud. There is always a bigger fish.

When companies realize this trend it might be too later since the COST of migrating might be huge - so in order to be COST effect and enjoy VALUE from other cloud providers is very important for your business future to consider Poly and Multi-cloud.

The New Default


Finally, I'm wrapping up with the big shifts in sense of thinking you need to. First of all, there is a culture SHIFT focusing on being a user-centric company, running experiments in order to discover new business models, new customer experience and new features. Don't forget that how we do things in TECH matters a lot and we need to pay attention to TECH decision so STOP getting the cheapest vendors and worst develops.

In Sense of movements we need understand that every movement will have their anti/countermovement like docker / anti-docker, rest / anti-rest, agile / anti-agile and so on and on, meaning things GAPS and they have stack effects don't lose the big picture keep experimenting and UNDERSTANDING how you can take value from TECH and WHERE to use it and WHERE not to use it at all.

Finally, we have serverless which means having "Services" that abstract servers and developers can focus on the business with LESS Devops Effort. This can be done by using managed Services but also by building internal tools, solutions, and platform using this "Serverless" principles. Keep in mind not all use cases should be moved from FaaS/Serverless in sense of programming model and execution model due to the cost of latency and cold bootstrap issues.

Video

IF you still want know more, here is a video with more details :-)

Reflections on Serverless - part 2 from Diego Pacheco on Vimeo.


Cheers,
Diego Pacheco

Popular posts from this blog

Kafka Streams with Java 15

Rust and Java Interoperability

HMAC in Java