Three kinds of people doing stuff in the cloud

John Ogden
7 min readApr 6, 2022

--

There are three kinds of people, seeking to run their business in the cloud:

  • Investors want to transform their business, gaining additional business benefit and removing pain points
  • Optimisers want to maintain their business, keeping their “existing mess” but for less cash
  • Migrators want to move their business out of their existing on-premises facilities

It all starts with the migrators, but where we end up and what we optimise for, is rather different; and the same person may be optimising one set of applications and investing in another…

Everyone is a migrator, optimiser and investor

The migrators

Cloud migration moves existing applications from on-prem datacentres to the cloud, and generally follows the 7R process:

  • Relocate — meaning lift and shift with as little change as possible, converting a physical or virtual machine into an EC2 instance
  • Rehost — meaning lift and shift at the application level (redeploying an application from a physical machine onto an EC2 instance)
  • Replatform — meaning moderate changes; converting a MySQL database to RDS, uplifting product version numbers and containerising
  • Rearchitect — meaning redesigning from the ground-up to be cloud native
  • Repurchase — meaning stop using the application, and instead consume an equivalent SaaS service
  • Retire — meaning do without it, decommission it
  • Retain — meaning don’t migrate; leave it as-is, targeting lower-hanging fruit, or higher-value alternatives

The investors, seeking business transformation, will prefer rearchitecting and repurchasing, unlocking:

  • Greater business agility, by releasing the right things faster
  • Greater business resilience, by having highly repeatable, automated processes, and fewer outages that are more contained and faster to resolve
  • Reducing operational risk/cost, by consuming widely proven managed services, whose maintenance and development costs are spread over their many consumers

The optimisers, seeking same-mess-for-less, will prefer the relocate, rehost, retire and retain options, unlocking:

  • Modern cloud infrastructure having better price/performance and environmental sustainability than legacy infrastructure
  • No longer needing to tie-up capital maintaining spare parts and engineering skills for legacy hardware
  • Being able to turn environments off when they are not in use, reducing financial and carbon costs
  • Being able to quickly provision capacity, to mitigate failures and support processing peaks or limited experimentation

Neither optimisers nor investors will seek Replatforming. However, it is likely to be seen as the pragmatic middle-ground, both parties are forced towards.

So what is the end-game…

…and how many successful outcomes are there likely to be?

This many successful end-games

The endgame always depends on business ambition. A relocation might be an endgame, in and of itself, or it might also be the first step in a long-journey to becoming cloud-native, taken as a result of funding availability, or a burning platform issue. e.g. the on-prem datacentres being condemned, or being sold off as land for building.

So once the migration is done, or even as it is being planned, what should each consumer of cloud services focus on?

The Optimisers should focus on efficiency, stability, and rigour, to drive down operational-spend:

  • Ensure there are clean lines of accountability, across a towers-model, with service request processes optimised for throughput
  • Ensure rigorous change management practices prioritise application uptime and stability
  • Implement programmes to right-size infrastructure, deploy security patches, and to turn environments off when not in use
  • Avoid lock-in to single providers, prioritising portability

The Investors should focus on innovation and effectiveness, that will drive business agility and resilience:

  • Disaggregate monoliths transitioning to event-driven architectures
  • Implement product mode, devops, user-research, and focus on empowering teams
  • Automate everything, build, test, deploy, run, incident-management and self-healing
  • Consume widely-proven managed-services

It’s important to remember, cloud consumers are not exclusively optimisers or investors — they will be both at the same time. Cloud consumers will be focussing on optimising some applications, perhaps the non-business critical ones, and transforming others.

The rest of this post looks at what each role might involve in more detail.

Applications being optimised

Optimisers will focus on ensuring their services operate as efficiently as possible, balancing the need to improve those services, while minimising transformation effort and risk.

Prioritising change throughput and quality (albeit at the cost of larger and less frequent change batches):

  • Creating infrequent big-batch releases able to deploy large quantities of change
  • Executing exhaustive testing to validate functional and non-functional qualities of each release
  • Enforcing rigorous change / release management processes and governance boards, seeking to ensure problematic releases are not approved for implementation
  • Providing extensive early-live-support coverage to trouble-shoot the big-batch releases and quickly deal with problems

Implementing a towers-based mode prioritising resource utilisation, with:

  • Dedicated Teams managing changes to infrastructure, network, application, middleware, database (etc)
  • A Service-Request system allowing projects to request services from each team
  • Service Delivery Managers and regular environment calls to coordinate changes across the many service teams
  • Ensuring there are clean lines of accountability using RACIs

Implementing sweeper programmes to:

  • Deploy targeted security patches and version upgrades to keep applications in support and secure from known vulnerabilities, while minimising deployment effort
  • Capacity-plan and right-size environments, turning them off when not in use
  • Consolidate the business logic and hosting onto a smaller number of co-hosted, strategic platforms

Optimisers generally seek to avoid lock-in by prioritising flexibility to avoid significant future costs:

  • Creating services that are deployable to multiple providers, avoiding the unique value-adding features of the provider’s proprietary solutions
  • Deploying best-of-breed COTS products on an IaaS basis rather than consuming SaaS/PaaS services

Note: these efforts to avoid lock-in may not always be successful

Applications being invested-in

Investors will focus on rearchitecting services to be cloud-native or replacing their in-house applications with externally provided SaaS.

Investors should seek to increase business agility through:

Building the right things by:

  • Remaining laser focused on meeting end-user needs following agile principles
  • Being guided by actionable business-insight derived by user-researchers analysing comprehensive data with advanced analytics or AI/ML models
  • Being able to quickly run A/B testing to evaluate alternative solutions
  • Baking evergreen processes (e.g. patching) into every release

Building and releasing things faster by:

  • Disaggregating the monoliths and transitioning to event-driven / microservice architectures that are easier and faster to change
  • Creating a DevOps culture, operating in product mode and prioritising long-lived teams owning all aspects of a set of microservices
  • Using high-frequency releases of small batch changes to build faster and increase the chances of each change working as expected (or at least being debugged / backed-out quickly)
  • Automating all aspects of the build, test, and release processes using CI/CD pipelines with pervasive coverage of functional and non-functional testing, and Infrastructure as Code principles
  • Operating a zero-tolerance policy on defects, manual work, and all forms of tech-debt
  • Consuming widely proven managed services, rather than rolling/operating your own, and going serverless wherever possible, so that the effort to maintain these services is borne by the cloud provider, rather than your development teams who can provision such services in minutes and focus on meeting end-user needs

Investors should seek to increase business resilience through:

Having highly repeatable, automated processes:

  • Automating all aspects of the build, test, and release processes using CI/CD pipelines with pervasive coverage of functional and non-functional testing, and Infrastructure as Code principles
  • Using code-quality, static analysis, vulnerability scanners, and AI-drive developer co-pilots identify and fix defects before they are released
  • Operating a zero-tolerance policy on defects, manual work, and all forms of tech-debt

Minimising service outages by:

  • Generating fewer outages and recovering from them faster, by having better quality-control and using better diagnostic monitoring to allow proactive changes to be implemented before outages happen
  • Automating incident response, with auto-scale groups, orchestrated containers, and serverless hosting (etc.), so that outages are self-healed
  • Employing dedicated Site Reliability Engineers (SREs), to mentor DevOps teams in improving service resilience, and drive out defects

Consuming cloud provider managed services by:

  • Using the cloud provider’s managed services independently proven to work at scale, meeting high availability requirement (e.g. multi-availability, multi-region and even multi-provider) rather than using brittle, in-house developed solutions — which will free development teams to focus on service resilience
  • Following the provider’s well-architected best practices

Investors should seek to decrease operational costs through:

Consuming cloud provider managed services by:

  • Using the cloud provider’s managed services independently proven to work at scale, meeting high availability requirement (e.g. multi-availability and multi-region) rather than using brittle, in-house developed solutions
  • Following the provider’s well-architected best practices for cost-efficiency

Being more environmentally sustainable by:

  • Provisioning resource only when they are needed, and wherever possible consuming serverless solutions that automatically deprovision resources when not in use
  • Using the most modern, high-sustainable infrastructures, data-centres and energy generation

Summary

This post introduced three kinds of people who might seek to run their business in the cloud:

  • Investors want to transform their business, gaining additional business benefit and removing pain points
  • Optimisers want to maintain their business, keeping their “existing mess” but for less cash
  • Migrators to move their business out of their existing on-premises facilities

Then described how optimisers and investors could optimise their consumption of cloud services, and leverage cloud-migration techniques to suit their preferences. With the ongoing caveat, cloud consumers wear both hats: they will be optimising some applications, and investing in others.

--

--