Monday, December 26, 2022

 

Both migrating and modernizing application platforms must be large and complex effort. A cloud-first framework helps with a strategy and involves building cloud native microservices, extending with new services, and migrating unchanged applications, and adopting standardized operations. Refactoring helps to decreased development as a monolith and increase development as microservices. Curated development tools and practice help making the transition smoother.

Standard open technologies definitely finds favors with application modernization as compared to proprietary ones. These include integrated collections, integrated developer tools and, integrated DevOps toolchain which facilitate a fast incremental, intelligent, end-to-end development experience.

The OpenShift and Kubernetes platforms definitely gained popularity for virtual machines and containers and are well-recognized today but integrated developer tools, cloud-native frameworks and integrated open-source collections along with industry standard development environments and DevOps toolchains gained acceptance as a standard mostly due to developer patronization.

Developers use these to expose APIs that are easily reused for building new capabilities that augment the existing application. Then those APIs can be integrated into future ecosystems. Exposing existing value as REST APIs for easy access over the internet, placing APIs under the management control to improve security, performance and visibility and leveraging new applications that can build on freshly exposed APIs from existing applications without requiring changes to existing applications help to unlock business value from existing systems. Simplifying the management of the integration architecture and reducing its cost with API lifecycle, App/data integration and messaging sets the stage for the future of the application.

As methods to develop, test and release new functions become more agile, service management must also transform to support this paradigm shift. The cloud operations can be reinvented by building to manage with service level objectives, monitoring and logging, and using tools and automation for communication and collaboration.

All the stages of the modernization journey such as assessment, strategy, and planning to review applications, application mining to gain insights, application discovery to capture information for preparation, application modernization involving conversion of legacy code to current languages, legacy DevOps to streamline code change lifecycle, application transformation to refactor legacy code with a fully automated, low-risk migration solution, selecting a hybrid cloud architecture and deployment to construct a hybrid cloud platform help to design a pathway to gain dominance over the new landscape and times.

R

Sunday, December 25, 2022

 

Before we modernize an application for a business, we must make an inventory of the application and how it aligns with business priorities. This will help to determine the best technical path to modernization and take an assessment of the effort required.

Application modernization is business modernization.  It must align to business priorities and then needs that are driving the business to modernize the application.

The current application portfolio must be analyzed. The operational and application readiness checklist assesses several dozens of characteristics. This helps with the data driven and quantitative analysis for an approach to modernization.

The financial impacts and assessments for the benefits of migrating workloads from on-premises to a cloud versus modernizing must be studied with a TCO calculator.

These help to gather meaningful and actionable insights that will help to determine and articulate the impacts of the modernization and cloud strategies in alignment with business goals.

Containerizing the application in a container image is often a necessary step towards modernization, but many applications may not be optimized for containers. Load balancing, application state handling, and monitoring are different in containerized applications. As a result, some rewrite of the application might be required. Similarly, performance tuning and DevOps processes must be aligned to containers. By moving from traditional runtimes to cloud runtimes, certain technical debt is automatically removed.

Once the application has been launched in a container, certain steps automatically follow. Accelerators might be required to adapt the application to a containerized environment. Pre-built containerized middleware and services support that journey. The DevOps and configuration must also be modernized. Pipelines for new applications as well as orchestration tools that automate configuration must be generated and used.

Managing and monitoring the operations based on open container technologies help to consolidate and standardize operations.

Both migrating and modernizing application platforms must be large and complex effort. A cloud-first framework helps with a strategy and involves building cloud native microservices, extending with new services, and migrating unchanged applications, and adopting standardized operations. Refactoring helps to decreased development as a monolith and increase development as microservices. Curated development tools and practice help making the transition smoother.


Saturday, December 24, 2022

Application Modernization goes together with cutting costs. Containers and Microservices lower costs not as an afterthought but with the design decision itself. The modernization journey has many approaches between assessment phase and deployment. These can be graded as follows:

1.       Containerizing the whole application simplifies the transition to the cloud. This is a migration-based approach that takes the least toll.

2.       Exposing on-premises assets with API helps to replace a monolith with SaaS. This strategy works well for legacy assets that are difficult to move to the cloud.

3.       When costs must be driven even lower, refactoring the monolith into the services helps a lot.

4.       It might even make sense to add new microservices, to innovate incrementally, reduce complexity, and establish success early. This is a transform and innovate approach.

5.       Finally, with agile delivery, we can sunset the monolith we started out with.

It helps to increase the delivery velocity throughout the modernization journey with one or more of these approaches.

A trusted foundation often helps with re-platforming.  Container platforms like Kubernetes and OpenShift help both the developers and the operations Staff. Native cloud services are also popular for certain resources and for hosting. Often with a continuous integration and continuous deployment involving infrastructure-as-a-code, the destination can be one or another cloud requiring the investment only once. Modernization platforms, tools and services are not mature yet to the point where they onboard customer legacy applications directly so must be done by hand today and possibly with container platforms and other cloud resources.

Application, data, integration, automation, multi-cloud management, and security are all considered to enable a faster and more reliable way to move to the cloud.


Friday, December 23, 2022

 

Reducing Trials and Errors 

Model: When trials and errors are scattered in their results, an objective function that can measure the cost or benefit will help with convergence. If the samples are large, a batch analysis mode is recommended. The approach to minimize or maximize the objective function is also possible via gradient descent methods but the use of simulated annealing can overcome local minimum even if the cost is higher because it will accept with a certain probability. In Simulated annealing, the current cost is computed, and the new cost is based on the direction of change. If the cost improves, the temperature decreases. 
Sample implementation follows: 

def annealingoptimize(domain,costf,T=10000.0,cool=0.95,step=1): 
     # Initialize the values randomly 
     vec=[float(random.randint(domain[i][0],domain[i][1])) 
          for i in range(len(domain))] 
     while T>0.1: 
          # Choose one of the indices 
          i=random.randint(0,len(domain)-1) 
          # Choose a direction to change it 
          dir=random.randint(-step,step) 
          # Create a new list with one of the values changed 
          vecb=vec[:] 
          vecb[i]+=dir 
          if vecb[i]<domain[i][0]: vecb[i]=domain[i][0] 
          elif vecb[i]>domain[i][1]: vecb[i]=domain[i][1] 

          # Calculate the current cost and the new cost 
          ea=costf(vec) 
          eb=costf(vecb) 
          p=pow(math.e,(-eb-ea)/T) 
          # Is it better, or does it make the probability 
          # cutoff? 
          if(eb<ea or random.random( )<p): 
               vec=vecb 
          # Decrease the temperature 
          T=T*cool 
     return vec 

 

 

Thursday, December 22, 2022

This is a continuation of a series of articles on Application Modernization. In this section, we take a slightly different perspective on Build-Deploy-Run aspect of the new software.

When we modernize an existing application, we can ease our move to the cloud with the full promise of cloud technology. With a cloud native microservice approach, scalability and flexibility inherent to the cloud can be taken advantage of.  Modernizing the cloud native applications enables applications to run concurrently and seamlessly connect with existing investments. Barriers that prohibit productivity and integration are removed.

One of the tenets of modernizing involves "Build-once-and-deploy-on-any-cloud". This process begins with assessing the existing application, building the applications quickly, automating the deployments for productivity and run and consistently manage the modernized application.

Identifying applications that can be readily moved into the cloud platform and those that require refactoring is the first step because the treatments of lift-and-shift and refactoring are quite different. Leveraging containers as the foundation for applications and services is another aspect.

Automating deployments for productivity with a DevOps pipeline makes it quick and reliable.  A common management approach to consolidate operations for all applications ensure faster problem resolution.

When the application readiness is assessed, there are four tracks of investigation: cloud migration, cost reduction, agile delivery and innovation resulting in vms in the cloud for migration purposes or containers for repackaging, replatforming and refactoring respectively - all of these in the build phase of the build-deploy and run. While VMs are handled by migration accelerators in the deploy phases, the containers are handled by the modern DevOps pipelines in the deploy phase. The modern application runtimes for containers are also different from the common operations on vms between the migration and modernization paths in the run phase. Finally, the migration results in a complex relocated traditional application while the modernization results in traditional application via repackaging, cloud ready application via replatforming and cloud native application via refactoring.

Wednesday, December 21, 2022

Previous post continued

My application data must be encrypted. (Select all that apply)

- at rest 

- in transit

- none of the above

My data has PII or PHI and is subject to governance and compliance.

- Yes

- No

With the adoption of cloud technologies, the number of users to my application is expected to increase by

 - < 5%

 - 5-15%

 - 15-50%

 - > 50%

My application depends on an on-premise message broker. The throughput of the queues is in the range

 - 0 - 1 KB/sec

 - 1 - 5 KB/sec

 - < 1 MB /sec

 - None of the above

My application has an ETL, data pipelining and/or batch automation job

 - Yes

 - No

My application has vendor lock-ins for OLAP and data warehouses.

 - Yes

 - No

My application has disaster recovery considerations and/or involves data ageing and archival

 - Yes 

 - No

My application response times must be in the range:

 - < 100 ms

 - 100 - 250 ms

 - > 250 ms

My data remains on-premises

 - Yes

 - No

My application has significant security restrictions and makes use of firewalls, vulnerabilities assessments and periodic threat assessments

 - Yes

 - No

My application must meet security certifications such as ISO 27001, ISO 27017 (cloud security), ISO 27019 (privacy), ISO 9001, AWS PCI, and SOC 1, 2 and 3, HIPAA, FERPA, CJIS, SEC Rule 17a - 4(f), IRS 1075, and SRG Impact level 2 and 4 for DoD systems

 - Yes

 - No

My application must work for government and must comply with FedRAMP at the Moderate and High Level or the GPDR or PCI-DSS or such others

 - Yes

 - No

My application must reduce the average time needed to detect an intrusion or security failure (MTTD) or the average time needed to resolve issues such as a security breach or outage (MTTR)

 - Yes

 - No

My application must demonstrate an order of magnitude higher availability after moving to the cloud

 - Yes

 - No

My application must localize workloads to a specific geographic region

 - Yes

 - No

I have a specific preference to a specific cloud and I'm willing to sacrifice one or more of the following ( Select all that apply )

 - technological scale and expertise to handle critical and highly complex workloads

 - anticipated cost savings

 - internal IT burden

 - None of the above

Tuesday, December 20, 2022

Application Modernization Readiness Assessment

This checklist evaluates the dependencies of an application to help with its modernization. It strives to collect all the information about the application to give a more detailed and precise picture of its readiness for building and running it in the cloud.

Hi, Ravi. When you submit this form, the owner will see your name and email address.

1.The drive for the modernization of this application comes from:


Changing business requirements


Technical debt


Pending deadline


Budgetary considerations


None of the above

2.My application is an N-Tier web application and has customer facing portal.


Yes


No

3.My application modernization journey requires all three: planning, executing and monitoring.


Yes


No

4.My application is accessible (Select all that apply.)


Web Interface


Command line


Scripts


SDK


None of the above

5.I would like my cloud adoption strategy to be


Retain/Retire


Lift-and-shift


Lift-and-reshape


Replace, drop and shop


Refactor (Rewriting/De-coupling applications)

6.My application has specific requirements from: (Select all that apply)


Programming Languages


Operating systems


Databases


Services


Application Frameworks

7.My application must maintain the same programming language


Yes


No

8.My application is sensitive to the flavor and/or version of operating system


Yes


No

9.My application requires the database to be the same as before:


Yes


No

10.My application is dependent on other services that are not available in the cloud


Yes


No

11.My application requires profiling to generate:


mapping of system components


topology maps


coverage of the technology stack


automations


creating a baseline


to view/simulate real-world conditions


for full stress testing

12.I'm fine with phased migration with phases for


service-by-service migration


improving performance and scalability


Integration and full DevOps support


meeting SLAs required from the application

13.I can point to SLAs for the application


Yes


No

14.I need CI/CD enhancements for


visibility over migration strategy and roadmap


investing over quality controls


showing on dashboards


using with my monitoring solution

15.I need investment in fault detection for


maintaining availability and performance


leveraging my monitoring investment


improving visibility


reducing false alerts

16.I have specific queries or demands from my applications behavior over time


Yes


No

17.The number of web requests to my application are in the range


< 100 per hour


< 100 per minute


< 100 per second


100 - 1000 per second


> 1000 per second

18.The size of data stored in the database increases by 


a few hundred bytes per day


a few hundred kilobytes per day


a few hundred megabytes per day


a few hundred gigabytes per day


a few terabytes per day


greater than a few terabytes a day

This content is created by the owner of the form. The data you submit will be sent to the form owner. Microsoft is not responsible for the privacy or security practices of its customers, including those of this form owner. Never give out your password.

Powered by Microsoft Forms | Privacy and cookies | Terms of use