Moving Legacy Applications Into the Cloud
13 May, 2020
I was tasked to help with an on-premise application prepared with disaster recovery backup for the regulatory deadline. The organization’s internal systems and data centers didn’t have the capacity for and capability on the network layer to replicate from the development environment into an appropriate environment on the other side. We had to move it to a different environment and we decided to go for Amazon Web Services (AWS), though the company lacked the protocols to do this. Therefore, we had to build out and create alignment across many areas of the organization to be able to pick up the workload, move it into the cloud, set it up as a disaster recovery setup, and ensure continuous replication of data in the management of the two different areas. After that, we had to set up the metrics and other necessary things and hand over the solution by the time of the regulatory deadline.
First off, I identified the major stakeholders and brought them together. Then I continued with building out the plan around what the roadblocks were and identifying and overcoming a number of very large technical hurdles, including developing the right architecture and design and creating alignment across teams that weren't used to working together. For example, a security team and a cloud security team had different sets of standards that contradicted each other, and I had to get them working together.
As an external consultant, I typically work at a senior executive level helping them with organizing and bringing the right teams together. Since I work at a high-level coordination perspective I deal with different aspects across different challenges. This particular task was a three months long engagement that was a continuation of our previous, lengthier collaboration. This more succinct task encompassed communication with all the stakeholders on Business Continuity Planning (BCP), design of the recovery system and its minimum requirements, audit requirements, etc. Also, I had to create the vision and alignment for the program and to push that out into teams ensuring that we are on the same page. Most importantly, we had to hit our timelines and deadlines and deliver on what we committed to do.
Although I usually work with organizations on strategy around DevOps and Agile introduction, which would have involved value stream mapping, identify bottlenecks, and how to overcome them. For this engagement, time was of the essence and we needed to work within the organizational processes. This involved a very bureaucratic waterfall process that would consistently get in the way of doing the actual work. For example, do you have this form filled out, or have you taken it to that committee.
The biggest obstacle that we ran into was the lack of cloud experience and lack of understanding of what was required in order to get this through. I initially built out a design and gave them a straw man of what it could possibly look like and gave it to the teams to fill the gaps.
Another big barrier to success was bringing different security teams together. There was both an internal security team, operating from their traditional checklist, and a cloud team, operating from their new, barely defined, policies. There were places where the two disagreed and I had to create agreement and common direction for us to move forward.
The cloud security team was also new and their idea of cloud security consisted of a spreadsheet with a set of controls. They were stopping us from moving forward because we haven't filled out the spreadsheets. However, we couldn’t know what we needed to put into the cloud because we hadn't built anything yet!
I worked with the team to get them to change the process and the spreadsheet, focusing more on measuring what the state of the deployed environment is.
- Ensure that you have a consistent group of people responsible for the entire project -- all the stakeholders should be at the table along with the core team that is going to deliver the project.
- Identify any missing gaps in the skill sets or any potential major blockers that will require people with the specific skill set to overcome it. Seek for the people with the right skill set across the organization.
Be flexible in your approach to overcome barriers as they occur so that you got the right pieces into place. Build rapport and respect with the key leaders you need to move things along.
Lloyd Holman, Head of Engineering at By Miles, explains why documentation is essential for any company to achieve excellence, particularly underlining its importance in onboarding new engineers.
Head Of Engineering at By Miles
Pascal Rodriguez, Director of Engineering at Bestmile, explains why taking care of tech debt is important and what it takes you away from.
Director of Engineering at Bestmile
Pierre-Alexandre Lacerte, Senior Principal Engineer at Upgrade, Inc., discusses two approaches of service refactoring explaining why he would choose one over the other.
Senior Principal Engineer at Upgrade inc
Pierre-Alexandre Lacerte, Senior Principal Engineer at Upgrade, Inc., explains why it is important to simulate failures and how game days benefited his organization.
Senior Principal Engineer at Upgrade inc
Andrew First, Co-Founder and Chief Technologist at Leanplum, discusses how he managed to complete a large infrastructure project by instilling confidence in his team, setting precise benchmarks, and streamlining his focus on what really mattered.
Co-founder & Chief Technologist at Leanplum
You're a great engineer.
Become a great engineering leader.
Plato (platohq.com) is the world's biggest mentorship platform for engineering managers & product managers. We've curated a community of mentors who are the tech industry's best engineering & product leaders from companies like Facebook, Lyft, Slack, Airbnb, Gusto, and more.