There are quick ways to move an application to the public cloud. These ways might not be optimal – i.e. taking advantage of cloud-native features – but they get you to the cloud. With cloud infrastructure, you trade capital expenses for operational expenses and have new ways to look at scalability, reliability and security.
Two of the ways applications are moved to the cloud are:
- Re-hosting (i.e. Lift and Shift)
- Re-platforming (i.e. Lift, Tweak and Shift)
Both methods can get you to the public cloud quickly. But be sure to revisit an application’s architecture after moving it to add resilience and cost savings. While all applications are different, the first step in transforming an application to be more cloud-native is to focus on the following two areas: Foundational Application Constructs and Application-Specific Design.
Ways to make your application more cloud-native
1. Foundational Application Constructs
- Logging (Trace/Error)
- Auditing (user actions/events/service invocations/etc.)
- Workflow Framework
- Authentication / Authorization (Claims)
For example, applications are made up of multiple subsystems (website, API services, application tier, etc.). Each subsystem usually logs to local storage. But by unifying all logging in a standard JSON format consumed by one service (e.g. CloudWatch), consolidated log analysis may be achieved. Adding a trace ID or identifier through each subsystem enables log/error tracing through the entire invocation call or time period.
2. Application-Specific Design
While this may be unique to each application, good application design should include the loose coupling of smaller subsystems to build the needed functionality. Common areas to analyze include the workflow of synchronous/asynchronous and stateless/stateful communication between subsystems. How these subsystems communicate with each other may vary when layering in public cloud features (e.g. Loose Coupling with serverless technologies).
Example: Invoke Loose Coupling Techniques
- Lifted and shifted technology: Driven by a timer, a subsystem’s cache is refreshed from a relational database.
- Cloud-native functionality: When the database is modified, cache file is dropped to an S3 bucket. Lambda function is invoked on data-write to S3. Lambda function calls REST endpoint on Subsystem to refresh cache.
During your elevation to the public cloud, many decisions must be made around existing applications. While these may be rewritten to be cloud-native, sometimes the right business decision is to get it all out to the public cloud first, and reconfigure the application’s architecture later.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
|cookielawinfo-checbox-analytics||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".|
|cookielawinfo-checbox-functional||11 months||The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".|
|cookielawinfo-checbox-others||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.|
|cookielawinfo-checkbox-necessary||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".|
|cookielawinfo-checkbox-performance||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".|
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.