Executive Summary
Agility, cost optimization, and faster time to market are the key objectives for a majority of organizations while moving to the Cloud. Most of them choose the easiest ‘Lift and Shift’ model to migrate their workloads on to cloud. Eventually, they have begun to realize that cloud has much more to offer than the normal infrastructure-as-a-service option, and they can create more value and innovation by adopting cloud-native strategies and architectures.
Simply continuing on the old-world applications and architectures would not only prevent the ability to innovate, optimize and be agile but also impact their core objectives of moving to cloud.
Cloud native is the future of application development, with massive potential for business impact—the ability to move an idea into production quickly and efficiently
Companies should adopt a new, “cloud-native” mindset—reorganizing people, processes and workflows, and creating applications with the cloud specifically in mind. This calls for adopting an application development strategy that fits well with the overall cloud strategy and utilizes cloud-native architecture.
Currently, business pressures demand faster time to market and app modernization. Modernization approaches include refactoring into cloud-native microservices and re-platforming traditional apps on container platforms.
Cloud Modernization strategies offer full flexibility to migrate to cloud during the app modernization process without any challenges. With a cloud-native microservices approach, clients can capitalize on the scalability and flexibility inherent to cloud. Modernizing applications using cloud-native tools enables applications to run concurrently and seamlessly. Barriers that prohibit productivity and integration are removed to create new user experiences. Containerization of existing applications, adoption of microservices, and server-less architecture are few examples of cloud-native architectures, addressing the requirements of quick scaling up and down, thereby optimizing the compute and cost. Business environments these days demand shorter development cycles followed by faster integrations and deployments. This calls for integration of development and deployment cycles. By using DevOps tools, integration of the entire development to deployment cycle can be done, thereby cutting down the entire cycle time from days to hours.
Benefits of App Modernization
Accelerate digital transformation:
Application modernization is driven by the need to transform business to build new capabilities and deliver them quickly. Adopting DevOps and Cloud-native tools accelerates the overall time from development to deployment, reducing it from Days to hours, thereby helping businesses transform faster.
Change the developer experience:
Quickly create and deliver new applications and services through adoption of a cloud-native architecture and containerization. Developers can deploy multiple changes within hours without worrying about the integration and deployment part.
Accelerate delivery:
Adopt DevOps best practices to drive a culture of automation and transformation, can cut down time to market from Weeks to hours. Quick code changes can be deployed on to Production without much delay and human intervention.
Deploy enterprise applications on hybrid cloud platforms:
It helps to improve efficiency by automating operations in hybrid multi-cloud environments. This leads to “Build Once and Deploy on Any Cloud”.
Reduces Integration and Build Time:
DevOps principles facilitate multiple code streams and their integration into one. Entire integration cycle can be integrated without worrying about the changes in the current environment since the last deployment.
Strategies for transforming the existing Applications
Containerize the monolith. Reduce costs and simplify operations by moving applications to a cloud runtime. Majority of code can be reutilized while containerizing the same.
Expose on-premise assets with APIs. APIs enable legacy assets that are difficult to move to the cloud, thereby enabling a seamless connect between applications.
Refactor into macroservices. Break down monoliths into smaller deployable components which can independently exist, thereby enabling faster changes within individual components without the need to manage the whole code and deploying the whole code at one go. It also helps in the addition of new services without impacting existing services.
Strangle the monolith. Incrementally phase out the monolith, which cannot be converted to microservices.
Challenges while adopting Cloud-Native Development
Managing the business case
Making the business case for cloud-native requires thinking beyond just cost and operational efficiency to areas such as improved speed and business agility, a better customer experience, and a reduction of technical risk.
Managing complexity
New complexities in platforms, operating models, and security also need to be managed. Multiple platforms need to be operated as companies wind down the old and spin up the new Platforms.
Managing change
Finally, organization, people, and culture change needs to be effectively managed.
Roles and responsibilities are likely to change, as will skills definitions.
Principles and attributes of Cloud-Native Applications
Whether creating a new cloud-native application or modernizing an existing one, developers should consistently follow the below set of principles.
1. Follow the Microservices architectural approach.
Break applications down to microservices, which allows the incremental, automated, and continuous improvement of an application without causing downtime.
2. Rely on containers for maximum flexibility and scalability.
Containers package software with all its code and dependencies in one place, allowing the software to run anywhere. This allows maximum flexibility and portability in a hybrid multi-cloud environment. Containers also allow fast scaling up or down with Kubernetes container software as defined by the user.
3. Adopt agile methods.
Agile methods speed up the creation and improvement process. Developers can quickly iterate updates based on user feedback, allowing the working application version to match as closely as possible to user expectations.
IDC found that, by 2021, 80 percent of application development will take place on cloud platforms using microservices and cloud functions
Some Key attributes of well-written Applications
Adopting Cloud-Native
Meeting the challenges of cloud-native development and making a strategic move will often necessitate changes to processes, operations, people, and culture.
Cloud-native is not just substituting one technology for another, nor is it just a different programming model. Companies should be prepared for more widespread change.
The skill requirements expectation gap is likely to increase dramatically. In fact, by 2020, it is estimated that more than a third of the desired skillsets of most jobs will comprise skills not yet considered crucial today.
Containers are technologies that allow packaging and isolation of applications with their entire runtime environment—all of the files necessary to run. This makes it easy to move the contained application between environments (dev, test, production, etc.) while retaining full functionality. Containers are also an important part of IT security. By building security into the container pipeline and defending infrastructure, one can make sure containers are reliable, scalable, and trusted.
Containers help reduce conflicts between development and operations teams by separating areas of responsibility. Developers can focus on their apps and operations can focus on the infrastructure. Container technologies—including CRI-O, Kubernetes, and Docker—help teams simplify, speed up, and orchestrate application development and deployment.
Already, 40 percent of employers report talent shortages and with significant upshifts
Actual development or programming should be driven by business events/requirements and serve business needs. These can include competitive or marketplace events; new products and services; innovation; and end-user/client/customer interactions
Architecture can be divided into four separate layers: application software development, service scaling, application network, and container orchestration platform.
Having the architectural tenets or paradigms in place is critical to true cloud-native computing.
Key Elements of App Modernization
In today’s technology era, cloud is the execution platform; to the left are DevOps processes, which are driven by agile development—all of which are a result of today’s microservices architectures, which are driven and invoked by business events.
IDC research has found that 100 percent of businesses with “optimized” cloud adoption (Organization-wide cloud strategies and policies) have adopted microservices compared to just 18 percent of those with an “ad hoc” approach-just lines of business or other groups experimenting with the cloud.
Element 1 – Microservices Architecture
By structuring applications as a collection of loosely coupled services, microservices strengthen continuous delivery and deployment.
In addition to improving modularity and making applications easier to develop and test, microservices enable different development teams to create, deploy, and scale their services independently.
Organizations can break down their monolithic applications into discrete components, each of which can then be developed, scaled, and maintained independently.
Element 2 – Serverless Architecture
Serverless is a cost-effective method of enabling microservices. It is a way to deploy applications while leaving all infrastructure details to the cloud provider. These event-driven, function-centric systems are increasingly becoming an essential capability for digital ecosystems. Serverless architectures enable developers to focus solely on revenue-generating functions, not wasting time on non-value-added issues.
According to IDC survey data, organizations use DevOps to manage, on average, 25 percent of their application portfolio today, and expect that percentage to rise to nearly 33 percent in five years. Strong adoption of DevOps suggests that the development methodologies are already in place to support the adoption of cloud-native development practices and the development of cloud-native applications.
Element 3 - Agile Development
Agile is all about coping with and driving change-making development processes fast and easy.
By splitting the development process into time windows and providing a continuous Feedback loop, Agile enables rapid, more effective development and the creation of super-nimble organizations that can innovate quickly. Consider an example from the U.S. Air Force. Although the organization has a huge technology budget, 70 percent of it was previously going toward just maintaining existing infrastructure. Only 30 percent was going toward research and development, and new software. By implementing Agile practices and developing apps to run on multiple clouds, the Air Force now finds that 70 percent of its budget is going toward R&D & 30 percent toward maintaining existing infrastructure.
Element 4 - DevOps
DevOps focuses on speed & how quickly a program can get from the design stage into production. It’s largely about automation—i.e. eliminating the need for human involvement in the production process. By equipping developers and infrastructure experts with the same tools to track and control changes in both code and infrastructure— treating it all as software assets—DevOps lets you create a production environment within days or hours, rather than in the weeks or months previously required.
Some of the DevOps tools include:
Element 5 – Cloud
Cloud is an extremely flexible delivery platform. It can support many different architectural & deployment styles, from big, monolithic systems, to large, virtual-machine deployments, to nimble clusters of containers, to large farms of serverless functions. Cloud is flexible enough to carry most of the IT architectures from the last 20 years. Again, however, to get the maximum business benefits & value from the cloud, one should understand that the platform itself is only one part of the overall cloud-native picture.
Wipro’s Capability in Cloud-Native tools for App Modernization
Wipro’s RAPID Ops (Release Application Platform for Industrialized DevOps) offering enables enterprises to achieve a connected DevOps tool chain for end-to-end application release thereby enabling reliable releases and faster time to market. The offering provides comprehensive capabilities across application release management, release automation, and continuous deployment in collaboration with our partners and leveraging best-of-breed technologies across each layer of the tool chain.
References
Madhusudan Kulkarni
General Manager and Head of Digital and Consulting Business for India
Wipro Limited
Madhusudan (Madhu) is the Head of Digital and Consulting Business for Wipro in India. He has around 20 years of global experience with strong expertise around P&L Management, Idea Incubation through to Revenue Realization, Service Value Creation, Business Strategy, Product Management, Sales and Marketing.
He has written POVs on various topics covering Digital Economy, Artificial Intelligence, and Financial Management Systems.
Madhusudan can be reached at madhusudan.kulkarni2@wipro.com
Dr. Gurbinder Randhawa
Consulting Partner – India,
GCG, Wipro Limited
Gurbinder Randhawa is a Consulting Partner in the Consulting Business for Wipro, India. Gurbinder has over 18 years of Consulting and Management experience across Public and Enterprise verticals. Her areas of specialization include Cloud Consulting, Program Management, ERP Consulting, Cost Optimization, Thought leadership, Solution Theme Building, Practice and Business Development, and Revenue Generation.
She has written POVs on various topics covering Artificial Intelligence, Fraud Detection in GST, Trillion Dollar Economy, and Digital Economy.
Gurbinder can be reached at gurbinder.randhawa@wipro.com
Nikhil Goel
Consulting Partner – India,
Consulting Business, Wipro Limited
Nikhil Goel is a Consulting Partner Digital in the Global Consulting Business for Wipro. He has over 22 years of Consulting and Advisory experience across Public and Private Businesses. His areas of specialization include Digital Strategy, AI Strategy & Consulting, as well as Thought leadership, with an objective to transform business outcomes. He has authored several white papers and points of view on various topics covering Artificial Intelligence in effective Customer Personalization, Risk, Banking, Digital Supply Chain, and Warehouse Automation.
Nikhil can be reached at nikhil.goel3@wipro.com
A Paper by Consulting Research Centre (CRC)