1-888-317-7920 info@2ndwatch.com

Application Modernization in the Cloud

The cloud market is maturing, and organizations worldwide are well into implementing their cloud strategies. In fact, a recent McKinsey survey estimates that, by 2022, 75% all workloads will be running in either public or private clouds. Additionally, according to VMWare, 72% of businesses are looking for a path forward for their existing applications, and it is important to consider an app modernization strategy as part of these migration efforts. Whether it be a desire to containerize, utilize cloud-native services, increase agility, or realize cost savings, the overall goal should be to deliver business value faster in the rapidly changing cloud environment.

Application modernization has a focus on legacy or “incumbent” line of business applications, and approaches range anywhere between re-hosting from the datacenter to cloud, to full cloud native application rewrites. We prefer to take a pragmatic approach, which is to address issues with legacy applications that hinder organizations from realizing the benefits of modern software and cloud native approaches, while retaining as much of the intellectual property that has been built into incumbent applications over the years as possible. Additionally, we find ways of augmenting existing code bases to make use of modern paradigms.

When approaching legacy software architecture, people often discuss breaking apart monolithic applications and microservices. However, the most important architectural decisions should be centered around how to best allow the application to function well in the cloud, with scalability, fault-tolerance, and observability all being important aspects. A popular approach is to consider the tenants of the 12-Factor App to help guide these decisions.

Architecture discussions go hand in hand with considering platforms. Containerization and serverless functions are popular approaches, but equally valid is traditional VM clustering or even self-hosting. Additionally, we start to think about utilizing cloud services to offload some application complexity, such as AWS S3 for document storage or AWS KMS for key management. This leads us to consider different cloud providers themselves for best fit for the organization and the applications overall, whether it be AWS, Azure, GCP, or hybrid-cloud solutions.

Another very important aspect of application modernization, especially in the cloud, is ensuring that applications have proper automation. Strong continuous integration and continuous deployment (CI/CD) pipelines should be implemented or enhanced for legacy applications. Additionally, we apply CD/CI automation for deploying database migrations and performing infrastructure-as-code (IaaC) updates, and ensure paradigms like immutable infrastructure (i.e. pre-packaging machine images or utilizing containerization) are utilized.

Last, there is an important cultural aspect to modernization from an organizational to team level. Organizations must consider modernization a part of their overall cloud strategy and support their development teams in this area. Development teams must adapt to new paradigms to understand and best utilize the cloud – adopting strong DevOps practices and reorganizing teams along business objectives instead of technology objectives is key.

By implementing a solid modernization strategy, businesses can realize the benefits the cloud provides, deliver value to their customers more rapidly, and compete in a rapidly changing cloud environment. If you’re ready to implement a modernization strategy in your organization, contact us for guidance on how to get started.

-James Connell, Sr Cloud Consultant

Facebooktwitterlinkedinmailrss

What is Application Modernization?

Application modernization is the process of migrating an incumbent or legacy software application to modern development patterns, paradigms and platforms with the explicit purpose of improving business value. This implies improving the software architecture, application infrastructure, development techniques and business strategy using a cloud native approach.

Modernizing software architecture is often described as splitting a monolithic codebase but can imply any improvements to the software itself, such as decoupling of components or addressing tech debt in the codebase. Other examples might be finding new design patters that allow for scale, addressing resiliency within an application or improving observability through logs and tracing.

We often think of application modernization in the context of cloud, and when planning a migration to cloud or modernizing an application already in the cloud, we look at what services and platforms are beneficial to the effort. Utilizing a service such as Amazon S3 for serving documents instead of a network share or utilizing ElasticSearch instead of the database for search are examples of infrastructure improvements. Containerization and other serverless platforms are also considered.

Development techniques also need to be addressed in the context of modernization. Developers should focus on the parts of the application that deliver value to customers and provide competitive advantage. If developers are focused on maintenance, long manual deployments, bugs, and log investigation, they are unable to deliver value quickly. When working with modern distributed cloud applications, teams need to follow strong DevOps practices in order to be successful. CI/CD, unit testing, diagnostics and alerting are all areas that development teams can focus on modernizing.

Legacy Systems

In this context, legacy software refers to an incumbent application or system that blocks or slows an organization’s ability to accomplish its business goals. These systems still provide value and are great candidates for modernization.

Legacy can imply many things, but some common characteristics of legacy apps are:

  • Applications that run older libraries, outdated frameworks, or development platforms or operating systems that are no longer supported.
  • Architectural issues – monolithic or tightly coupled systems can lead to difficulties in deployment, long release cycles and high defect rates.
  • Large amounts of technical debt, dead or unused code, teams who no longer understand how older parts of the application work, etc.
  • Security issues caused by technical debt, outdated security paradigms, unpatched operating systems, and improper secret management.
  • Lack instrumentation with no way to observe the application.
  • Maintain session state on the client (require sticky sessions, etc.).
  • Manually deployed or must be deployed in specific ways due to tight coupling.

Pillars of Modernization

When approaching a modernization project, we specifically look to ensure the following:

Flexible Architecture

The modernization initiative should follow a distributed computing approach, meaning it should take advantage of concepts such as elasticity, resiliency, and containerization. Converting applications to adhere to the principals of the “12-factor app” in order to take advantage of containerization is a prime example.

Automation

The application must be built, tested and deployed using modern CI/CD processes. Older source control paradigms such as RCS or SVN should be replaced with distributed version control systems (git). Infrastructure as code should be included as part of the CI/CD system.

Observability

Holistically integrate logs, metrics, and events enabling “the power to ask new questions of your system, without having to ship new code or gather new data in order to ask those new questions” (Charity Majors https://www.honeycomb.io/blog/observability-a-manifesto).  Observability is key to understanding performance, error rates, and communication patterns and enables the ability to measure your system and establish baselines.

Culture

Application teams should be aligned along business function, not technology, meaning multi-disciplinary teams that can handle operations (DevOps), database, testing (QA) and development. A culture of ownership is important in a cloud-native application.

Examples

Application Modernization is not:

  • Just containerization – To take full advantage of containerization, applications must be properly architected (12-factor), instrumented for observability and deployed using CI/CD.
  • Just technical solutions adapting the latest framework or technology – The technology might be “modern” in a sense but doesn’t necessarily address cultural or legacy architectural issues.
  • Just addressing TCO – Addressing cost savings without addressing legacy issues does not constitute modernization.
  • Just running a workload in the cloud
  • Just changing database platforms – Licensing issues or the desire to move to open source clustered cloud databases does not equate to modernization.

Application modernization includes, among others, combinations of:

  • Moving a SaaS application from a single to multi-tenant environment.
  • Breaking up a monolithic application into microservices.
  • Applying event driven architecture to decouple and separate concerns.
  • Utilizing cloud services such as S3 to replace in-house solutions.
  • Refactoring to use NoSQL technologies such as MongoDB, ElasticSearch, or Redis.
  • Containerization and utilization of PaaS technologies such as Kubernetes or Nomad.
  • Utilization of Serverless (FaaS) technologies such as AWS Lambda, Azure Functions, OpenFaas, or Kubeless.
  • Creating strong API abstractions like REST or gRPC and utilizing API Gateways.
  • Transitioning to client-side rendering frameworks (React, Vue.js, etc.) and serverless edge deployment of UI assets, removing the webserver.
  • Moving long running synchronous tasks to asynchronous batch processes.
  • Utilizing saga patterns or business process workflows.

If you’re ready to start considering application modernization in your organization, contact us for guidance on how to get started.

-James Connell, Sr Cloud Consultant

 

Facebooktwitterlinkedinmailrss

Cloud Crunch Podcast: You’re on the Cloud. Now What? 5 Strategies to Maximize Your Cloud’s Value

You migrated your applications to the cloud for a reason. Now that you’re there, what’s next? How do you take advantage of your applications and data that reside in the cloud? What should you be thinking about in terms of security and compliance? In this first episode of a 5-part series, we discuss 5 strategies you should consider to maximize the value of being on the cloud. Listen now on Spotify, iTunes, iHeart Radio, Stitcher, or wherever you get your podcasts.

We’d love to hear from you! Email us at CloudCrunch@2ndwatch.com with comments, questions and ideas.

Facebooktwitterlinkedinmailrss

Cloud Crunch Podcast: Moving to the Cloud for the Right Reasons

When you’re considering moving to the cloud, it’s important to take a personal examination of your goals for migrating, outside of the basic benefits achievable with the cloud. To maximize the value of the cloud, you have to make sure you’re moving for the right reasons. Today we discuss just that with our very own 2nd Watch CEO, Doug Schneider. Listen now on Spotify, iTunes, iHeart Radio, Stitcher, or wherever you get your podcasts.

We’d love to hear from you! Email us at CloudCrunch@2ndwatch.com with comments, questions and ideas.

Facebooktwitterlinkedinmailrss

Cloud Crunch Podcast: Multi-Cloud – Is it Really Worth It?

The promise of multi-cloud suggests enterprises should be able to run their applications and workloads in whichever cloud environment makes the most sense from a cost, performance or functionality perspective. But the reality of the situation can be very different in practice, as enterprises grapple with how best to make technologies created by competing suppliers play nicely together. Contributor and Analyst to Forbes, CBS interactive, Information Today, Inc., and RTInsights, Joseph McKendrick, joins today’s episode to give his perspective on the value of a multi-cloud strategy. Listen now on Spotify, iTunes, iHeart Radio, Stitcher, or wherever you get your podcasts.

We’d love to hear from you! Email us at CloudCrunch@2ndwatch.com with comments, questions and ideas.

Facebooktwitterlinkedinmailrss

Top Enterprise IT Trends for 2021

Between the global pandemic and the resulting economic upheaval, it’s fair to say many businesses spent 2020 in survival mode. Now, as we turn the page to 2021, we wonder what life will look like in this new normalcy. Whether it is employees working from home, the shift from brick and mortar to online sales and delivery, or the need to accelerate digital transformation efforts to remain competitive, 2021 will be a year of re-invention for most companies.

How might the new normal impact your company? Here are five of the top technology trends we predict will drive change in 2021:

  1. The pace of cloud migration will accelerate: Most companies, by now, have started the journey to the public cloud or to a hybrid cloud environment. The events of 2020 have added fuel to the fire, creating an urgency to maximize cloud usage within companies that now understand that the speed, resilience, security and universal access provided by cloud services is vital to the success of the organization.

“By the end of 2021, based on lessons learned in the pandemic, most enterprises will put a mechanism in place to accelerate their shift to cloud-centric digital infrastructure and application services twice as fast as before the pandemic,” says Rick Villars, group vice president, worldwide research at IDC. “Spending on cloud services, the hardware and software underpinning cloud services, and professional and managed services opportunities around cloud services will surpass $1 trillion in 2024,”

The progression for most companies will be to ensure customer-facing applications take priority. In the next phase of cloud migration, back-end functionality embodied in ERP-type applications will move to the cloud. The easiest and fastest way to move applications to the cloud is the simple lift-and-shift, where applications remain essentially unchanged. Companies looking to improve and optimize business processes, though, will most likely refactor, containerize, or completely re-write applications. They will turn to “cloud native” approaches to their applications.

  1. Artificial intelligence (AI) and machine learning (ML) will deliver business insight: Faced with the need to boost revenue, cut waste, and squeeze out more profits during a period of economic and competitive upheaval, companies will continue turning to AI and machine learning to extract business insight from the vast trove of data most collect routinely, but don’t always take advantage of.

According to a recent PwC survey of more than 1,000 executives, 25% of companies reported widespread adoption of AI in 2020, up from 18% in 2019. Another 54% are moving quickly toward AI. Either they have started implementing limited use cases or they are in the proof-of-concept phase and are looking to scale up. Companies report the deployment of AI is proving to be an effective response to the challenges posed by the pandemic.

Ramping up AI and ML capabilities in-house can be a daunting task, but the major hyperscale cloud providers have platforms that enable companies to perform AI and ML in the cloud. Examples include Amazon’s SageMaker, Microsoft’s Azure AI and Google’s Cloud AI.

  1. Edge computing will take on greater importance: For companies that can’t move to the cloud because of regulatory or data security concerns, edge computing is emerging as an attractive option. With edge computing, data processing is performed where the data is generated, which reduces latency and provides actionable intelligence in real time. Common use cases include manufacturing facilities, utilities, transportation, oil and gas, healthcare, retail and hospitality.

The global edge computing market is expected to reach $43.4 billion by 2027, fueled by an annual growth rate of nearly 40%, according to a report from Grand View Research.

The underpinning of edge computing is IoT, the instrumentation of devices (everything from autonomous vehicles to machines on the factory floor to a coffee machine in a fast-food restaurant) and the connectivity between the IoT sensor and the analytics platform. IoT platforms generate a vast amount of real-time data, which must be processed at the edge because it would too expensive and impractical to transmit that data to the cloud.

Cloud services providers recognize this reality and are now bringing forth specific managed service offerings for edge computing scenarios, such as Amazon’s new IoT Greengrass service that extends cloud capabilities to local devices, or Microsoft’s Azure IoT Edge.

  1. Platform-as-a-Service will take on added urgency: To increase the speed of business, companies are shifting to cloud platforms for application development, rather than developing apps in-house. PaaS offers a variety of benefits, including the ability to take advantage of serverless computing delivering scalability, flexibility and quicker time to develop and release new apps. Popular serverless platforms include Amazon Lambda and Microsoft’s Azure Functions.
  2. IT Automation will increase: Automating processes across the entire organization is a key trend for 2021, with companies prioritizing and allocating money for this effort. Automation can cut costs and increase efficiency in a variety of areas – everything from Robotics Process Automation (RPA) to automate low-level business processes, to the automation of security procedures such as anomaly detection or incident response, to automating software development functions with new DevOps tools.

Gartner predicts that, through 2024, enhancements in analytics and automatic remediation capabilities will refocus 30% of IT operations efforts from support to continuous engineering. And by 2023, 40% of product and platform teams will use AIOps for automated change risk analysis in DevOps pipelines, reducing unplanned downtime by 20%.

Tying it all together

These trends are not occurring in isolation.  They’re all part of the larger digital transformation effort that is occurring as companies pursue a multi-cloud strategy encompassing public cloud, private cloud and edge environments. Regardless of where the applications live or where the processing takes place, organizations are seeking ways to use AI and machine learning to optimize processes, conduct predictive maintenance and gain critical business insight as they try to rebound from the events of 2020 and re-invent themselves for 2021 and beyond.

Where will 2021 take you? Contact us for guidance on how you can take hold of these technology trends to maximize your business results and reach new goals.

-Mir Ali, Field CTO

Facebooktwitterlinkedinmailrss