At the turn of the 20th century, automating factory processes at scale was considered emerging technology. And it was revolutionary: bringing goods and services that had once been out of reach for most of the population into the mainstream. In our present day, emerging technology is changing the game in a new digital industry.
The new factory is found in the cloud, and we – like our industrial revolution forbears – all want our goods and services to benefit from efficiencies and security delivered at scale. Application transformation efforts affect over half of organizations’ IT estates, according to data reported by 451 Research. Cloud native application platforms like Cloud Foundry and container orchestration solutions like Kubernetes make it easy for development teams to establish a factory approach to rapidly modernize and deploy handfuls of applications. However, managing the application factory and scaling a successful approach across the enterprise requires a broader set of skills than those needed on the assembly line.
What is an application transformation factory?
Moving applications to the cloud can often require the “refactoring” of the application, i.e. code and/or architectural changes to the application to enable it to run smoothly in a distributed environment. A “factory” approach to refactoring applies a consistent, highly automated approach that was founded in data center migrations but adapted to address cloud migration initiatives.
Challenges to applying an application migration factory approach are that the effort can be overly focused on the application itself, neglecting to build capability in the teams responsible for maintaining them. Additionally, cloud lift-and-shift factories often fail to leverage the advanced capabilities of cloud native platforms, leading to increased developer complexity and operational cost. What's more, workload migration factories often miss opportunities to address security vulnerabilities during migration. Lastly, it can often take months to get the first applications in production due to long up-front analysis projects.
So, what does a re-factored application factory look like?
The refactored application transformation factory includes a streamlined process that takes "recipes" and program management approaches to scale and executes them on an end-to-end application transformation program. Kicking off with a cloud native portfolio assessment, application candidates are defined and a program established. Applications are then re-platformed or modernized using cloud platform automation and agile teams. Applications are then transitioned to the cloud and managed from a centralized dashboard. As applications are refactored, the transformation program scales and modernization recipes are infused into the automation process, based on best practices. Ongoing operations and maintenance leveraging DevOps and continuous health monitoring ensure that the new cloud native portfolio is working at its best for the business.
How do we refactor the factory?
Based on my experience transforming legacy applications into optimized, cloud-native application portfolios, I’ve found three keys to success that have changed the way we think about these programs.
- Ensure there is a strategic focus. Success in driving organizational change to adopt a cloud native approach is found when a senior leader “change agent” can lead and empower the team to question existing processes and rules. Following an agile approach to sharing the roadmap and progress with business owners will help keep the outcome in mind, not just the mechanics of moving applications. Connecting the project to business outcomes will ensure the right decisions for the organization are made in transforming the portfolio.
- Use a mature cloud platform. The right tools make a huge difference. Leveraging a mature cloud platform reduces the complexity of both development and operations efforts. Simplified application pipelines ensure the transformation program can run smoothly. A mature platform can support on-premises cloud services for applications that need data locality and multiple public cloud services, without changing code or writing scripts in the migration. “Security by default” gives peace of mind to transformation teams that applications are safe in their target environments.
- Implement a cloud native PMO. From the get-go, a cloud native PMO is essential to provide consistency and management throughout the application transformation program, starting with the cloud native application portfolio analysis. Program management disciplines streamline the transformation approach, but also steward innovation by providing the right team structure necessary to execute on new ideas. This modernization office provides the structure needed to establish a community of practice, where coding architects coach application transformation teams and help harvest the transformation “recipes” that make automation possible.
Outcomes of the refactored application migration factory
By refactoring the factory, application transformation teams can realize three key outcomes:
- Enabled teams: Cloud native skills are built and shared in a community of practice. Automated build and test pipelines increase the productivity of developers, who are then able to be more responsive.
- Modernized applications: The enterprise benefits from cloud native frameworks and tools, enabling cloud scale into the future. The result is smaller, more loosely coupled components and better instrumentation.
- Community of practice: Recipe sharing, insourcing shared tools, and a shared awareness of cloud native values make for a high-functioning team.
As organizations become increasingly confident about moving large numbers of applications to the cloud, they are also recognizing the critical importance of focusing on improving development team agility and the overall security posture of the applications in the portfolio as they make the move to cloud. A factory’s outputs are only as good as its inputs. Incorporating these strategies into the modern application migration factory will change the game for organizations looking to harness enterprise-wide cloud-native solutions to succeed in this digital revolution.
Read how CGI helps organizations accelerate time to market for innovative software by moving the right workloads to a cloud-native application platform.