Re-architecting for nonstop innovation
Published on 29 Jun 2022
Numerous businesses construct their own software services employing monolithic architectures.
This strategy has advantages: designing and deploying monolithic systems is generally straightforward initially. As applications get increasingly sophisticated, it may become difficult to sustain developer productivity and deployment velocity, resulting in systems that are costly, time-consuming, and dangerous to deploy. This paper demonstrates how to re-architect your apps to a cloud-native paradigm that enables you to expedite the delivery of new features even as your teams expand, all while increasing software quality and attaining greater levels of reliability and availability.
As services and the teams responsible for them expand, they tend to become more difficult to adapt and manage, as well as more complicated. It becomes more difficult to do testing and deployment, add new features, and maintain stability and availability.
It is feasible for enterprises of all sizes and in all disciplines to achieve high levels of software delivery throughput, service stability, and service availability, according to research conducted by the Google DORA team. High-performing teams may deploy several times per day, deliver changes to production in less than a day, restore service in less than an hour, and achieve change failure rates between 0 and 15%.
Moreover, great performers are able to enhance developer productivity, as measured by the number of deployments per developer per day, even as they expand their teams.
What is a native cloud architecture?
Building, testing, and deploying monolithic applications must be performed as a single entity. Frequently, the operating system, middleware, and language stack for an application are modified or individually configured. Scripts and procedures for application development, testing, and deployment are often unique to each application. This is straightforward and effective for greenfield applications, but as these systems expand, it becomes more difficult to modify, test, deploy, and run them.
Moreover, as systems expand, so do the number and complexity of the teams responsible for developing, testing, deploying, and operating the service. It is popular but erroneous, to divide teams by function, resulting in handoffs between teams that increase lead times and batch sizes and result in considerable rework. Research conducted by DORA indicates that high-performing teams are twice as likely to build and deploy software as a single, cross-functional team.
Among the symptoms of this condition are:
- Long, frequently broken build processes
- Infrequent integration and test cycles
- Increased effort required to support the build and test processes
- Decreased developer productivity
- Painful deployment processes that must be performed outside of business hours, necessitating scheduled downtime
- Considerable effort in managing the configuration of test and production environments
Transitioning to cloud-native
Numerous firms have implemented a "lift-and-shift" methodology for migrating their services to the cloud.
In this method, no small system modifications are necessary, and the cloud is essentially handled as a conventional data centre, although one that offers far superior APIs, services, and administration tools than conventional data centres.
However, lift-and-shift alone offers none of the advantages of the cloud-native model discussed above.
Because of the price and difficulty of transitioning their applications to a cloud-native architecture, which includes rethinking everything from application design to production operations and the whole software delivery lifecycle, many enterprises halt at the lift-and-shift phase. This apprehension is justified: several major corporations have unsuccessful multi-year "big bang" re-platforming initiatives.
The answer is to adopt a progressive, iterative, and evolutionary approach to re-architecting your systems to cloud-native, allowing teams to learn how to operate successfully in this new paradigm while continuing to produce new functionality: this is a "move-and-improve" strategy.
The application of the strangler fig is a prominent motif in evolutionary architecture. Instead of rebuilding systems from scratch, develop new features in a contemporary, cloud-native way, but have them communicate with the old monolithic program for existing functionality. Shift current functionality gradually over time, as required for the conceptual integrity of the new services.
Download Google Cloud's whitepaper to learn more about Re-architecting for nonstop innovation only on Whitepapers Online.