Cloud Computing: Strategies for Scalability and Flexibility

Day 3 of Renier Botha’s 10-Day Blog Series on Navigating the Future: The Evolving Role of the CTO

Cloud computing has transformed the way businesses operate, offering unparalleled scalability, flexibility, and cost savings. However, as organizations increasingly rely on cloud technologies, they also face unique challenges. This blog post explores hybrid and multi-cloud strategies that CTOs can adopt to maximize the benefits of cloud computing while navigating its complexities. We will also include insights from industry leaders and real-world examples to illustrate these concepts.

The Benefits of Cloud Computing

Cloud computing allows businesses to access and manage data and applications over the internet, eliminating the need for on-premises infrastructure. The key benefits include:

  • Scalability: Easily scale resources up or down based on demand, ensuring optimal performance without overprovisioning.
  • Flexibility: Access applications and data from anywhere, supporting remote work and collaboration.
  • Cost Savings: Pay-as-you-go pricing models reduce capital expenditures on hardware and software.
  • Resilience: Ensure continuous operation and rapid recovery from disruptions by leveraging robust, redundant cloud infrastructure and advanced failover mechanisms.
  • Disaster Recovery: Cloud services offer robust backup and disaster recovery solutions.
  • Innovation: Accelerate the deployment of new applications and services, fostering innovation and competitive advantage.

Challenges of Cloud Computing

Despite these advantages, cloud computing presents several challenges:

  • Security and Compliance: Ensuring data security and regulatory compliance in the cloud.
  • Cost Management: Controlling and optimizing cloud costs.
  • Vendor Lock-In: Avoiding dependency on a single cloud provider.
  • Performance Issues: Managing latency and ensuring consistent performance.

Hybrid and Multi-Cloud Strategies

To address these challenges and harness the full potential of cloud computing, many organizations are adopting hybrid and multi-cloud strategies.

Hybrid Cloud Strategy

A hybrid cloud strategy combines on-premises infrastructure with public and private cloud services. This approach offers greater flexibility and control, allowing businesses to:

  • Maintain Control Over Critical Data: Keep sensitive data on-premises while leveraging the cloud for less critical workloads.
  • Optimize Workloads: Run workloads where they perform best, whether on-premises or in the cloud.
  • Improve Disaster Recovery: Use cloud resources for backup and disaster recovery while maintaining primary operations on-premises.

Quote: “Hybrid cloud is about having the freedom to choose the best location for your workloads, balancing the need for control with the benefits of cloud agility.” – Arvind Krishna, CEO of IBM

Multi-Cloud Strategy

A multi-cloud strategy involves using multiple cloud services from different providers. This approach helps organizations avoid vendor lock-in, optimize costs, and enhance resilience. Benefits include:

  • Avoiding Vendor Lock-In: Flexibility to switch providers based on performance, cost, and features.
  • Cost Optimization: Choose the most cost-effective services for different workloads.
  • Enhanced Resilience: Distribute workloads across multiple providers to improve availability and disaster recovery.

Quote: “The future of cloud is multi-cloud. Organizations are looking for flexibility and the ability to innovate without being constrained by a single vendor.” – Thomas Kurian, CEO of Google Cloud

Real-World Examples

Example 1: Netflix

Netflix is a prime example of a company leveraging a multi-cloud strategy. While AWS is its primary cloud provider, Netflix also uses Google Cloud and Azure to enhance resilience and avoid downtime. By distributing its workloads across multiple clouds, Netflix ensures high availability and performance for its global user base.

Example 2: General Electric (GE)

GE employs a hybrid cloud strategy to optimize its industrial operations. By keeping critical data on-premises and using the cloud for analytics and IoT applications, GE balances control and agility. This approach has enabled GE to improve predictive maintenance, reduce downtime, and enhance operational efficiency.

Example 3: Capital One

Capital One uses a hybrid cloud strategy to meet regulatory requirements while benefiting from cloud scalability. Sensitive financial data is stored on-premises, while less sensitive workloads are run in the cloud. This strategy allows Capital One to innovate rapidly while ensuring data security and compliance.

Implementing Hybrid and Multi-Cloud Strategies

To successfully implement hybrid and multi-cloud strategies, CTOs should consider the following steps:

  1. Assess Workloads: Identify which workloads are best suited for on-premises, public cloud, or private cloud environments.
  2. Select Cloud Providers: Choose cloud providers based on their strengths, cost, and compatibility with your existing infrastructure.
  3. Implement Cloud Management Tools: Use cloud management platforms to monitor and optimize multi-cloud environments.
  4. Ensure Security and Compliance: Implement robust security measures and ensure compliance with industry regulations.
  5. Train Staff: Provide training for IT staff to manage and optimize hybrid and multi-cloud environments effectively.

The Three Major Cloud Providers: Microsoft Azure, AWS, and GCP

When selecting cloud providers, many organizations consider the three major players in the market: Microsoft Azure, Amazon Web Services (AWS), and Google Cloud Platform (GCP). Each of these providers offers unique strengths and capabilities.

Microsoft Azure

Microsoft Azure is known for its seamless integration with Microsoft’s software ecosystem, making it a popular choice for businesses already using Windows Server, SQL Server, and other Microsoft products.

  • Strengths: Strong enterprise integration, extensive hybrid cloud capabilities, comprehensive AI and ML tools.
  • Use Case: Johnson Controls uses Azure for its OpenBlue platform, integrating IoT and AI to enhance building management and energy efficiency.

Quote: “Microsoft Azure is a trusted cloud platform for enterprises, enabling seamless integration with existing Microsoft tools and services.” – Satya Nadella, CEO of Microsoft

Amazon Web Services (AWS)

AWS is the largest and most widely adopted cloud platform, known for its extensive range of services, scalability, and reliability. It offers a robust infrastructure and a vast ecosystem of third-party integrations.

  • Strengths: Wide range of services, scalability, strong developer tools, global presence.
  • Use Case: Airbnb uses AWS to handle its massive scale of operations, leveraging AWS’s compute and storage services to manage millions of bookings and users.

Quote: “AWS enables businesses to scale and innovate faster, providing the most comprehensive and broadly adopted cloud platform.” – Andy Jassy, CEO of Amazon

Google Cloud Platform (GCP)

GCP is recognized for its strong capabilities in data analytics, machine learning, and artificial intelligence. Google’s expertise in these areas makes GCP a preferred choice for data-intensive and AI-driven applications.

  • Strengths: Superior data analytics and AI capabilities, Kubernetes (container management), competitive pricing.
  • Use Case: Spotify uses GCP for its data analytics and machine learning needs, processing massive amounts of data to deliver personalized music recommendations.

Quote: “Google Cloud Platform excels in data analytics and AI, providing businesses with the tools to harness the power of their data.” – Thomas Kurian, CEO of Google Cloud

Conclusion

Cloud computing offers significant benefits in terms of scalability, flexibility, and cost savings. However, to fully realize these benefits and overcome associated challenges, CTOs should adopt hybrid and multi-cloud strategies. By doing so, organizations can optimize workloads, avoid vendor lock-in, enhance resilience, and drive innovation.

As Diane Greene, former CEO of Google Cloud, aptly puts it, “Cloud is not a destination, it’s a journey.” For CTOs, this journey involves continuously evolving strategies to leverage the full potential of cloud technologies while addressing the dynamic needs of their organizations.

Read more blog post on Cloud Infrastructure here : https://renierbotha.com/tag/cloud/

Stay tuned as we continue to explore critical topics in our 10-day blog series, “Navigating the Future: A 10-Day Blog Series on the Evolving Role of the CTO” by Renier Botha.

Visit www.renierbotha.com for more insights and expert advice.

Optimising Cloud Management: A Comprehensive Comparison of Bicep and Terraform for Azure Deployment

In the evolutionary landscape of cloud computing, the ability to deploy and manage infrastructure efficiently is paramount. Infrastructure as Code (IaC) has emerged as a pivotal practice, enabling developers and IT operations teams to automate the provisioning of infrastructure through code. This practice not only speeds up the deployment process but also enhances consistency, reduces the potential for human error, and facilitates scalability and compliance.

Among the tools at the forefront of this revolution are Bicep and Terraform, both of which are widely used for managing resources on Microsoft Azure, one of the leading cloud service platforms. Bicep, developed by Microsoft, is designed specifically for Azure, offering a streamlined approach to managing Azure resources. On the other hand, Terraform, developed by HashiCorp, provides a more flexible, multi-cloud solution, capable of handling infrastructure across various cloud environments including Azure, AWS, and Google Cloud.

The choice between Bicep and Terraform can significantly influence the efficiency and effectiveness of cloud infrastructure management. This article delves into a detailed comparison of these two tools, exploring their capabilities, ease of use, and best use cases to help you make an informed decision that aligns with your organisational needs and cloud strategies.

Bicep and Terraform are both popular Infrastructure as Code (IaC) tools used to manage and provision infrastructure, especially for cloud platforms like Microsoft Azure. Here’s a detailed comparison of the two, focusing on key aspects such as design philosophy, ease of use, community support, and integration capabilities:

  • Language and Syntax
    • Bicep:
      Bicep is a domain-specific language (DSL) developed by Microsoft specifically for Azure. Its syntax is cleaner and more concise compared to ARM (Azure Resource Manager) templates. Bicep is designed to be easy to learn for those familiar with ARM templates, offering a declarative syntax that directly transcompiles into ARM templates.
    • Terraform:
      Terraform uses its own configuration language called HashiCorp Configuration Language (HCL), which is also declarative. HCL is known for its human-readable syntax and is used to manage a wide variety of services beyond just Azure. Terraform’s language is more verbose compared to Bicep but is powerful in expressing complex configurations.
  • Platform Support
    • Bicep:
      Bicep is tightly integrated with Azure and is focused solely on Azure resources. This means it has excellent support for new Azure features and services as soon as they are released.
    • Terraform:
      Terraform is platform-agnostic and supports multiple providers including Azure, AWS, Google Cloud, and many others. This makes it a versatile tool if you are managing multi-cloud environments or need to handle infrastructure across different cloud platforms.
  • State Management
    • Bicep:
      Bicep relies on ARM for state management. Since ARM itself manages the state of resources, Bicep does not require a separate mechanism to keep track of resource states. This can simplify operations but might offer less control compared to Terraform.
    • Terraform:
      Terraform maintains its own state file which tracks the state of managed resources. This allows for more complex dependency tracking and precise state management but requires careful handling, especially in team environments to avoid state conflicts.
  • Tooling and Integration
    • Bicep:
      Bicep integrates seamlessly with Azure DevOps and GitHub Actions for CI/CD pipelines, leveraging native Azure tooling and extensions. It is well-supported within the Azure ecosystem, including integration with Azure Policy and other governance tools.
    • Terraform:
      Terraform also integrates well with various CI/CD tools and has robust support for modules which can be shared across teams and used to encapsulate complex setups. Terraform’s ecosystem includes Terraform Cloud and Terraform Enterprise, which provide advanced features for teamwork and governance.
  • Community and Support
    • Bicep:
      As a newer and Azure-specific tool, Bicep’s community is smaller but growing. Microsoft actively supports and updates Bicep. The community is concentrated around Azure users.
    • Terraform:
      Terraform has a large and active community with a wide range of custom providers and modules contributed by users around the world. This vast community support makes it easier to find solutions and examples for a variety of use cases.
  • Configuration as Code (CaC)
    • Bicep and Terraform:
      Both tools support Configuration as Code (CaC) principles, allowing not only the provisioning of infrastructure but also the configuration of services and environments. They enable codifying setups in a manner that is reproducible and auditable.

This table outlines key differences between Bicep and Terraform (outlined above), helping you to determine which tool might best fit your specific needs, especially in relation to deploying and managing resources in Microsoft Azure for Infrastructure as Code (IaC) and Configuration as Code (CaC) development.

FeatureBicepTerraform
Language & SyntaxSimple, concise DSL designed for Azure.HashiCorp Configuration Language (HCL), versatile and expressive.
Platform SupportAzure-specific with excellent support for Azure features.Multi-cloud support, including Azure, AWS, Google Cloud, etc.
State ManagementUses Azure Resource Manager; no separate state management needed.Manages its own state file, allowing for complex configurations and dependency tracking.
Tooling & IntegrationDeep integration with Azure services and CI/CD tools like Azure DevOps.Robust support for various CI/CD tools, includes Terraform Cloud for advanced team functionalities.
Community & SupportSmaller, Azure-focused community. Strong support from Microsoft.Large, active community. Extensive range of modules and providers available.
Use CaseIdeal for exclusive Azure environments.Suitable for complex, multi-cloud environments.

Conclusion

Bicep might be more suitable if your work is focused entirely on Azure due to its simplicity and deep integration with Azure services. Terraform, on the other hand, would be ideal for environments where multi-cloud support is required, or where more granular control over infrastructure management and versioning is necessary. Each tool has its strengths, and the choice often depends on specific project requirements and the broader technology ecosystem in which your infrastructure operates.

Innovation Case Study: Test Automation & Ambit Enterprise Upgrade

A business case of how technology innovation successfully integrated into the business operations an improved the way of working that supported business success.

  
Areas of Science and TechnologyData Engineering, Computer Science
R&D Start DateDec 2018
R&D End DateSeptember 2019
Competent ProfessionalRenier Botha

 

Overview and Available Baseline Technologies

Within the scope of the project, the competent professionals sought to develop a regression testing framework aimed at testing the work carried out to upgrade the Ambit application[1] from a client service solution to a software as a service solution (SaaS) operating in the Cloud. The test framework developed is now used to define and support any testing initiatives across the Bank. The team also sought to automate the process, however this failed due to lack of existing infrastructure in the Bank. 

Initial attempts to achieve this by way of third-party solution providers, such as Qualitest, were unsuccessful, as these providers were unable to develop a framework or methodology which could be documented and reused across different projects. For this the team sought to develop the framework from the ground up. The project was successfully completed in September 2019. 

Technological Advances

The upgrade would enable access to the system via the internet, meaning users would no longer need a Cisco connection onto the specific servers to engage with the application. The upgrade would also enable the system to be accessed from devices other than a PC or laptop. Business Finance at Shawbrook is comprised of 14 different business units, with each unit having a different product which is captured and processed through Ambit. All the existing functionality, and business specific configuration needed to be transferred into the new Enterprise platform, as well as the migration of all the associated data. The competent professionals at Shawbrook sought to appreciably improve the current application through the following technological advances:

  • Development of an Automated Test Framework which could be used across different projects

Comprehensive, well executed testing is essential for mitigating risks to deployment. Shawbrook did not have a documented, standardised, and proven methodology that could be adopted by different projects to ensure that proper testing practises are incorporated into project delivery. There was a requirement to develop a test framework to plan, manage, govern and support testing across the agreed phases, using tools and practices that help mitigate risks in a cost-effective and commensurate way.

The test team sought to develop a continuous delivery framework, which could be used across all units within Business Finance. The Ambit Enterprise Upgrade was the first project at Shawbrook to adopt this framework, which lead to the development of a regression test pack and the subsequent successful delivery of the Ambit upgrade. The Ambit Enterprise project was the first project within the Bank which was delivered with no issues raised post release.

The development of a regression test pack which would enable automated testing of future changes or upgrades to the Ambit platform

Regression testing is a fundamental part of the software development lifecycle. With the increased popularity of the Agile development methodology, regression testing has taken on added importance. The team at Shawbrook sought to adopt an iterative, Agile approach to software development. 

A manual regression test pack was developed which could be used for future testing without the need for the involvement of business users. This was delivered over three test cycles with the team using the results of each cycle (bugs identified and resolved) to issue new releases. 

173 user paths were captured in the regression test pack, across 14 different divisions within Business Finance. 251 issues were found during testing, with some being within the Ambit application. Identifying and resolving these issues resulted in the advancement of Ambit Enterprise platform itself. This regression test pack can now be used for future changes to the Ambit Enterprise application, as well as future FIS[2] releases, change requests and enhancements, without being dependent on the business users to undertake UAT. The competent professionals at Shawbrook are currently using the regression test pack to test the integration functionality of the Ambit Enterprise platform.

  • Development of a costing tool to generate cost estimates for cloud test environment requirements

In order to resolve issues, solutions need to be tested within test environments. A lack of supply was identified within Shawbrook and there was an initiative to increase supply using the Azure cloud environment. The objective was to increase the capability within Business Finance to manage an Azure flexible hosting environment where necessary test environments could be set up on demand. There was also a requirement to plan and justify the expense of test environment management. The competent professionals sought to develop a costing tool, based on the Azure costing model, which could be used by project managers within Business Application Support (“BAS”) to quickly generate what the environment cost would be on a per day or per hour running basis. Costs were calculated based on the environment specification required and number of running hours required. Environment specification was classified as either “high”, “medium” or “low”. For example, the test environment specification required for a web server is low, an application server is medium while a database server is high. Shawbrook gained knowledge and increase its capability of the use of the Azure cloud environment and as a result are actively using the platform to undertake cloud-based testing.

The above constitutes an advance in knowledge and capability in the field of Data Engineering and Computer Science, as per sections 9 a) and c) of the BEIS Guidelines.

Technological Uncertainties and activities carried out to address them

The following technological uncertainties were encountered while developing the Ambit Enterprise upgrade, mainly pertaining to system uncertainty:

  • Implementation of the new Ambit Enterprise application could disrupt existing business processes

The biggest risks for the programme of change, was the potential disruption of existing business processes due to the implementation of the change without validation of the upgraded application against the existing functionality. This was the primary focus of the risk mitigation process for the project. Following the test phases set out in the test framework would enable a clear understanding of all the residual risks encountered approaching implementation, providing stakeholders with the context required to make a calculated judgement on these risks.

When an issue was identified through testing, a triage process was undertaken to categorise the issues as either a technical issue, or a user issue. User issues were further classified as “training” or “change of business process”. Technical issues were classified as “showstoppers”, “high”, “medium” and “low”. These were further categorised by priority as “must haves” and “won’t haves” in order to get well-defined acceptance criteria for the substantial list of bugs that arose from the testing cycles. In total, 251 technical issues were identified.

The acceptance criteria for the resolution of issues were:

  • A code fix was implemented
    • A business approved work around was implemented
    • The business accepted the risk

All showstoppers were resolved with either a code fix or and an acceptable work around. Configuration issues were within the remit of Shawbrook’s business application support (“BAS”) team to resolve, whilst other issues could only be resolved by the FIS development team. When the application went live, there were no issues raised post release, and all issues present were known and met the acceptance criteria of the business. 

  • Business processes may no longer align with the new web-based application

Since the project was an upgrade, there was the potential for operational impact of existing functionality due to differences between the Ambit client server solution, and the upgraded Ambit Enterprise web-based solution. The BAS team at Shawbrook were required to make changes to the business processes in order to align with the way the Ambit Enterprise solution now operated. Where Shawbrook specific issues could not be resolved through the configuration of the application with the business processes, changes were made to the functionality within Ambit, for example, additional plug-ins were developed for the Sales Portal platform to integrate with the Ambit Enterprise application. 

Because Ambit Enterprise was a web-based application, application and security vulnerabilities needed to be identified so that the correct security level was achieved. Because of this, performance and security testing, which was currently not being executed, needed to be introduced to the test framework. Performance testing also needed to be executed so that speed and stability requirements under the expected workloads were met.

Summary and Conclusions

The team at Shawbrook successfully developed a test framework which could be used across all projects within Business Finance. The development of the test framework lead to the generation of a regression test pack for the Ambit Enterprise upgrade. By undertaking these R&D activities, Shawbrook gained knowledge in the use of Azure Cloud Environment for testing, and increased its automated testing capabilities, enabling the transition to a continuous delivery framework whereby the majority of testing is automated.


[1] Ambit is the asset finance application operating within the business unit, 70-80 percent of transactions on all lending is captured and managed through Ambit

[2] FIS is the Ambit Enterprise vendor