Keeping a private cloud platform up to date can seem deceptively simple; as simple as running the platform's "upgrade" component. However, it can be the platform's Achilles heel if not done properly, and it can consume your whole team's energy to rectify issues that go wrong.
In the first article in this series, we highlighted various aspects of cloud architecture; in the second article, we described self-services delivery; in the third article, we explored operations; and in the fourth article, we tackled resource and capacity management. This article discusses the elements of successful lifecycle management for a private cloud platform.
What is lifecycle management?
Lifecycle management includes the configuration and currency of the cloud environment's core processes, services, operations, and support components. Private cloud technologies have short release cycles that make it challenging for enterprises to stay current. For example, Kubernetes has a quarterly release cycle for new features while rolling out patches and security updates continuously.
It is possible to lighten the burden of ongoing upgrades on your organization by using commercially supported versions of cloud platforms that provide longer-term release cycles.
As we wrote in the first article, Capability Maturity Model Integration (CMMI) provides a framework for the maturity of the processes that combine the people, procedures, and tools to deliver capabilities. The CMMI process areas most relevant to lifecycle management are:
- Service Continuity (SCON)
- Work Monitoring and Control (WMC)
- Work Planning (WP)
- Supplier Agreement Management (SAM)
The need to stay current requires that cloud delivery teams adopt development practices such as automated testing, continuous integration, and infrastructure-as-code practices. You can no longer manage general upgrades and patches as major projects.
Environments
Teams require development, test, quality assurance, and production environments that accurately reflect the functional production configuration. It is important to match as many aspects as possible, including service topologies, encryption methods, and hardware configuration down to network interface cards. This recommendation excludes the practicalities around costs and sizing. However, the savings of debugging time and the cost of outages will offset the extra hardware costs.
Automate the upgrade lifecycle
All changes related to the environment, including patching, configuration, monitoring, and support utilities, should be done through automated deployment processes. Cloud platforms such as OpenStack and Kubernetes are API-driven, allowing for teams to include test automation.
[ Get the checklist: 10 considerations for Kubernetes deployments. ]
Sandbox environments serve as development environments for cloud engineers. This is where the engineer develops changes and builds unit tests. You should then manage the automated changes and unit tests in a Git version control repository. These changes, once ready, can be moved to test, quality assurance, and production environments according to continuous integration and continuous delivery (CI/CD) practices. Initially, you may still want to control deployment through environments manually.
Any manual steps during this process must be automated or follow strong assurance processes to ensure that processes are completed on time and as intended.
Manage configuration drift
When you manage your configuration using a version control repository, you can look at using GitOps. GitOps requires your team to capture all the configurations in a Git repository and use automation processes that can create complete environments from that configuration at any time.
Advanced cloud platform teams can destroy and recreate clusters periodically, which is sometimes called Phoenix clustering. Phoenix clusters counter configuration drift, ensure that you can respond to infrastructure disasters, and serve as a training exercise for new hires. This practice is dependent on mastery of infrastructure-as-code and automation within your team.
Conclusion
A cloud engineer is empowered to refine the lifecycle management process with the right mindset and supportive environments (labs, development, and test). Coupling this process with effective automation and configuration management makes lifecycle management easier to carry out.
About the authors
Johan has 19 years of experience in Information Technology in various sectors including Banking and Finance, and Government. For Red Hat, he worked as a Federal Government Technology Specialist. He successfully used CMMI models to establish a team that operated on DevOps principles for one of Australia's largest retail organizations. The practices used by his team became a catalyst for change in the broader IT organization.
Mohammad has 20+ years of experience in multi-tiered system development and automated solutions. He has extensive experience in online services that use open-source software based on UNIX and Linux. Primarily focused on IT infrastructure with a background in open source web development. Mohammad has dedicated the last 2 years to emerging technologies, primarily Kubernetes using OpenShift and automation using Ansible.
Maurice is a Senior Consultant at Red Hat with 30+ years experience in Information Technology. He has worked for vendors, system integrators and end user organizations and has experienced the challenges of each.
He's well versed in server hardware and operating systems, particularly Linux, which has been his dominant focus for the last 15 years. Maurice has dedicated the last 5 years of his career to private cloud deployment and operations.
John, a Senior Technical Support Engineer, has 16 years of systems administration, operations, and IT management experience around UNIX, Linux, Performance/Capacity Management, Automation, Configuration Management, and OpenStack private clouds. Between 2010 and 2015, he spent 4.5 years as a Service Delivery Manager operating IT for a major financial institution in Australia using ITILv3 methodologies with team members stretching across 5 countries. In 2017, John joined Red Hat as a consultant.
More like this
Browse by channel
Automation
The latest on IT automation for tech, teams, and environments
Artificial intelligence
Updates on the platforms that free customers to run AI workloads anywhere
Open hybrid cloud
Explore how we build a more flexible future with hybrid cloud
Security
The latest on how we reduce risks across environments and technologies
Edge computing
Updates on the platforms that simplify operations at the edge
Infrastructure
The latest on the world’s leading enterprise Linux platform
Applications
Inside our solutions to the toughest application challenges
Original shows
Entertaining stories from the makers and leaders in enterprise tech
Products
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Cloud services
- See all products
Tools
- Training and certification
- My account
- Customer support
- Developer resources
- Find a partner
- Red Hat Ecosystem Catalog
- Red Hat value calculator
- Documentation
Try, buy, & sell
Communicate
About Red Hat
We’re the world’s leading provider of enterprise open source solutions—including Linux, cloud, container, and Kubernetes. We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.
Select a language
Red Hat legal and privacy links
- About Red Hat
- Jobs
- Events
- Locations
- Contact Red Hat
- Red Hat Blog
- Diversity, equity, and inclusion
- Cool Stuff Store
- Red Hat Summit