Cloud offers the obvious advantages of reduced cost, lowered infrastructure maintenance footprint, increased resiliency, and increased business agility. Enterprises that choose AWS as their preferred public cloud provider have several options for modernizing their applications. In this post, we describe each of these options and some of their key characteristics.
The Figure above shows the typical pathways for cloud migrations. Any cloud journey starts with a discovery stage in which a tool or set of tools such as Capgemini’s Cloudscape or AWS’ TSO Logic are used to scan the data center/on-prem environment in order to create a comprehensive list of applications, their dependencies, infrastructure configurations, and software and OS versions.
This discovery phase is followed by a rationalization phase using Capgemini’s established eAPM method, which helps create a clear picture of the migration/modernization strategy, including a wave plan. The eAPM method includes surveys of key individuals in the IT organization, inputs from the previous scans, and any additional road map information about the applications.
Figure 2 illustrates the three-dimensional focus areas for Capgemini’s eAPM methodology. One of the key outcomes is a Migration Wave Plan, which helps organizations execute migrations in an optimized manner. The process also identifies applications that are ideal candidates for cloud-native transformation.
Applications for cloud-native transformation are generally selected based on the following key criteria:
|Business critical||Apps that are essential to the functioning of the business and can be considered a significant core asset to the company||2|
|Competitive advantage||Apps that provide the company a key competitive advantage and/or is a key differentiator and/or forms a company’s IP||1|
|Non-linear benefits||Apps that when transformed are reducing cost, increasing scalability, agility, resilience, observability, data centric, speed of adopting newer technologies, or can provide significant market advantage||3|
Cloud-native transformation leverages trends in the areas of DevSecOps, containerization, IaC, and microservices architecture in order to provide a number of benefits to the company as shown in Figure 3.
Agility is the ability to go from feature concepts to production deployment in very short time periods with zero downtime. This allows companies to respond to their competition, their customers, and their partners in a manner that is seamless to the end users, and in a way that is resilient.
The cloud-native approach provides the ability for companies to innovate continuously as opposed to rigid monolithic applications the corresponding development, testing, and deployment processes. Cloud native allows for innovation to be seamlessly delivered to customers at a rapid pace.
Cloud provides scale at infrastructure level. The cloud-native approach helps embrace this capability at an application or service level. It provides the ability to scale up and scale down on demand and ensure that, regardless of huge variations in service demand, the app responds without a hitch.
With a cloud-native approach, security can be applied from the ground up – from code, data, all the way to service deployment levels. This ensures that the surface area for attacks is fully covered. Cloud native also allows for variable configurations at a service level, where more specialized security rules could be applied where necessary, as opposed to a standard ruleset for the entire monolithic application.
Resilience is the ability to withstand failures at the infrastructure level. Following cloud-native best practices will ensure that apps are built in a self-healing manner. This is a core attribute of cloud-native apps.
In the second part of this post, we will introduce the different deployment models for cloud-native apps on AWS. AWS offers the highest number of options, which require careful consideration on various dimensions, prior to selecting one of them. I discuss these criteria in detail, next.