For some executives, digital is a new way of engaging with customers. For others, it’s about technology.
It’s tempting to look for simple definitions, but to be meaningful and sustainable, I believe that digital should be seen less as a thing and more a way of doing things. To help make this definition more concrete, I have broken it down into three attributes:
- creating value at the new frontiers of the business world,
- creating value in the processes that execute a vision of customer experiences,
- and building foundational capabilities that support the entire structure.
The main focus of this document and this lab is the third part of the definition - building foundational capabilities that support the entire structure.
This foundation is made up of three elements: software architecture, organization (culture), and process.
The architecture is merely a means to an end. The ultimate goal is to deliver better software faster. Today, that invariably means continuous delivery – for an installed product – or continuous deployment for an -aaS product. It enables teams to be agile and autonomous. Together, the team (of teams) and the architecture enable continuous delivery/deployment.
You will find the value of an architecture pattern language - specifically you will gain knowledge about many different patterns, and you will better understand the relations between them. We will specially focus on monolithic and microservice pattern.
You will learn how to visualize, document and explore software architecture.
We will implement monolithic application first, and migrate to alternate microservices architecture latter. You will find the answers on
- why we are migrating to microservices.
- how we are going to migrate to microservices, and how it will influence on our organization and process.
- how can we design and structure our monolithic application to prepare better for easier migration to microservices in the future.
The source code is hosted on Github.