One of the most important parts of a digital transformation is setting up a digital platform, and a challenge is to make it as simple as possible. Ideally, it should only take a sprint (about a month, and what we usually call sprint zero) for an agile team to set it up in the cloud. Using new but already proven technology this is possible using an architecture I call SMART, as in Serverless Microservices Architecture for Rapid Transformation, and I will give an introduction to it below. If you want to learn more, please don’t hesitate to get in touch.
Serverless is about taking the next logical step in cloud computing. The cloud journey started with servers that could be managed remotely, called IaaS, and provisioning was easier than in the on-premise data center (getting a new server up in minutes rather than weeks or months). This was taken further with the provisioning of parts of servers, i.e. containers. The following step was to outsource the server management to the cloud provider, called PaaS, and provisioning became even easier as we just stated the required compute resources (processing, memory, etc) without knowing much about the actual servers, but we still needed to handle things like scaling and availability. The next step, often called Serverless or FaaS, is to just provide the functionality or code, and the platform would take care of everything else, like server maintenance, automatic scaling, availability and fault tolerance, etc. The interesting part is that we only pay for what we use in terms of computational power (processing and memory), which means that even if we have one million components, but none of them is running, we don’t pay anything. The main providers are Microsoft, with their Azure Functions, IBM, with their (Apache) OpenWhisk, Amazon, with their AWS Lambda, and Google, with their Cloud Functions.
Microservices is about decomposing applications into smaller and loosely coupled services that use lightweight protocols to improve modularity and makes the application easier to understand, develop, and test. You can read more about this in my blog post Microservices Architectures Are Here to Stay.
Architecture is about building on a solid reference architecture, and here is an example:
The main point of this reference architecture is to allow the touch points to move faster than what is possible for the back-end systems. The data services transform the functionality and information of back-end systems and external services to basic functionality (CRUD) aligned to a master data model. The omnichannel services implement a certain domain of functionality, like order handling or booking (often processes), and provide generic functionality, e.g. delivery all attributes for the entities. The APIs deliver functionality optimized for specific touch points and only deliver the attributes that is required by the user interface. There are common components for security, management, etc, and the continuous delivery (DevOps) is automated as much as possible — my motto is: “Every manual step is a bug”.
Rapid Transformation is about setting up a cross-functional autonomous team to work together in an agile way I call beautiful delivery. You can see what I mean by that in this introduction video:
You also find a more detailed video on www.youtube.com/watch?v=0BeoBf_ddds or see my blog post Use Beautiful Delivery to Speed Up Your Digital Transformation.