DevOps for MultiCloud
I survived two recessions in the last two decades. The Dot-com blast & 9/11 in 2000–2002 then subprime mortgage in 2008.
The end of the recession introduced new technologies, workforce and initiated IT modernization activities. From my experience, the computer hardware market performed very well after these two recessions.
The economists expect another recession wave sometime during 2019–2020 before the next presidential election. Though it is hard to predict which industry will grow rapidly after the next recession, one thing is certain that Cloud Computing will get enormous growth with innovation and more contributions from the Open source community.
DevOps is not only the buzz word but it also introduced the concept of MultiCloud to the consumers to leverage unique value propositions of different Cloud providers. Few years back, several worried about the SLA commitments of Public Cloud providers. No Public Cloud provider posts their SLA’s at their websites and customers get used with the reality.
Implementing IT Governance is the major challenge in the DevOps world. The continuous arrival of new tools and the time taken to understand them makes it hard for the stakeholders to get the right resources and discipline.
A customer has multiple flavors of software products at their business as a backup to each other from features, cost, adaptability, security and resources perspective. Imagine a customer uses only Oracle database at their premise to run the business. They will go out of business if Oracle files for bankruptcy or get a business disruptive security bug. Therefore, spreading their applications using different software products may save their business during crisis.
The same concept is applicable for MultiCloud. It is not advisable to use just one Public Cloud service for your business. The applications, databases and other supporting services must spread across various Cloud providers and it saves customers business when an unexpected crisis occur. The crises could be cloud datacenter failure, spiking costs, security, performance, mismanagement of SLA and other. Moreover distributing the workloads across various Clouds is beneficial to any business.
What is MultiCloud?
MultiCloud is the federation of Public Clouds. It serves the customer with choice of cloud services, cost benefits, technology adoption, resiliency and disaster recovery.
Technology adoption is the key to have MultiCloud implementation. For example, a customer can use GCP to have flexible Kubernetes architecture and AWS may be leveraged to have IaaS for some applications.
Let’s read about factors that are required to implement DevOps at MultiCloud environment:
The definition of IT Governance by Gartner
“IT governance is the set of processes that ensure the effective and efficient use of IT in enabling an organization to achieve its goals.”
The definition of IT Governance by the Opengroup (TOGAF)
“IT governance provides the framework and structure that links IT resources and information to enterprise goals and strategies. Furthermore, IT governance institutionalizes best practices for planning, acquiring, implementing, and monitoring IT performance, to ensure that the enterprise’s IT assets support its business objectives.
End of the day, IT Governance must support the business objectives. By practicing TOGAF for many years, I know that it is hard to prove the value proposition of Enterprise Architecture practice in an organization however it is evident that this practice saves millions of dollars to the business and enforce discipline. The highly Automated DevOps benefits enterprises to speed to market their applications without doubt. On the other hand, the lack of documentation, diagrams and collaborative decisions pose challenges to the stability of the DevOps process and reverse engineering. Adding Multi-Cloud to this equation makes things more complex from Architecture, Technology, training and deliverable perspectives.
It is important for the IT Managers to define Automation Objectives, Cost Model, Logical Architecture, Physical Architecture and ensure that they align with the business objectives of their organization in order to succeed.
Cloud agility enable developers to focus on Security, Cloud metering, Analytics, Monitoring and Coding rather than focusing on provisioning, maintaining the underlying Infrastructure resources. In other words, it gives the ability to the developers to develop, test and host the applications rapidly.
DevOps sits on the top of Cloud agility. It’s a culture that compliment the Cloud agility to increase the speed of application deliverable.
DevOps primarily focus on application build, deployments and release management that also has an impact on Cloud resources from provisioning and management perspective. DevOps tools such as Kubernetes can be configured to have control on Cloud virtual machines to have Auto Scaling, data persistence by mounting PVC’s (Persistent Volume Control) etc.
As you know, each Cloud provider has their own way of provisioning and defining Cloud resources, metering, billing and monitoring. It is required to define the role of DevOps tools at Multi-Cloud environment so it will set the right expectations to the involved teams. Though there is no silver bullet to standardize the Multi-Cloud management with DevOps, certain things can still be achieved by adopting the right Cloud agility model.
In a traditional IT setup, the IT Operations monitors everything including applications. Most of the time, the monitoring solutions exists for Production Systems and the developers don’t have an opportunity to understand the impact of run time errors, capacity increase, business continuity and disaster recovery components proactively at the lower environments. Also, configuring those monitoring resources requires extensive back and forth communication, tickets and approvals between Development and IT Operations.
In the DevOps world, IT Operations provides monitoring tools to developers to configure monitoring resources on their own (Monitoring as a Service). The responsibility of IT Operations is to manage and monitor the Monitoring system and developers are responsible to configure and maintain them.
Monitoring is mostly reactive in traditional IT and proactive in DevOps.
It’s challenging to implement a common Monitoring solution in the Multi-Cloud with DevOps. Each Cloud provider has their own set of API’s and tools to monitor the resources and the implementation of a single pane of monitoring glass is required to consolidate all for analytics and metrics.
Cloud Abstraction is essential to implement a Multi-Cloud architecture in order to access the Cloud resources in a unified manner via a set of Cloud API’s. Though traditional application deployments may leverage REST API’s, the development and maintenance of those API’s are very expensive.
That’s where Containers plays a key role with a Multi-Cloud provisioning tools such as Kubernetes. By baking applications into Containers, the complexity of underlying Cloud systems is abstracted.
The DevOps ecosystem also have tools to abstract the storage systems, application deployments and integration. A right abstraction strategy should be implemented to define the differences between Multi-Cloud providers and the inhouse DevOps practices.
Traditional applications are designed and developed to function at On-Premise data centers. Several enterprises still keep IBM Mainframe systems to run their specific business domain, others have old client server technologies such as MS Visual Basic, MS Access, Oracle Forms etc. They are monolithic, inflexible and no agility.
It is inevitable to refactor them into Microservices to work on Multi-Cloud however the challenges are resources, conversion timeframe and retiring the aged systems gradually. Refactoring is an expensive process. It’s a nightmare to host legacy systems at On-Premise and connect to the Cloud with security, network and resiliency factors.
Organizations should come up with a plan to refactor the legacy applications into the Cloud native application design with DevOps. Integration may be the key for short term but not sustainable in the long run.
The data is designed for On-Premise data center and the solution architecture for MultiCloud data management are emerging in various industry sectors. Content Delivery Network such as Akamai is not new to the industry however accumulation of data across various Clouds creates a different set of standards and policies to manage the customer data.
It is easier to manage the data at MultiCloud than Hybrid Cloud. As long as customers uses the agnostic methods of Cloud providers to store, retain and display the data, the overall flow could become flexible. Some industries (Ex: Financial Services) mandates the importance of On-Premise data but the growing data retention regulations makes them to consider Public Cloud archival solutions such as AWS Glacier and MS Azure Blob Storage Archive tier. Other value-added services such as Machine Learning, data analytics of Public Cloud providers are an added advantage.
Data Management at the MultiCloud requires Organizational discipline, IT Controls, IT Governance and capability maturity to address security, archival, retention and retrieval. The EA practice become handy to enforce this discipline.
There is no one solution to govern security at MultiCloud. Public Cloud providers have their own robust security mechanisms and a multi-layer security strategy should be implemented to ensure the security of systems and applications in the MultiCloud.
The holistic view of enterprise security is mandatory to implement a unified security strategy. It is not about a specific Cloud provider or a use case of particular team.
DevOps automation to implement security policies, monitoring, risk management practices, continuous learning of ever changing security components of Cloud providers are essential to secure the MultiCloud.
There are no ifs or buts in Cloud metering at MultiCloud. Every provider has their own set of cost model to provide Cloud services. Needless to say, they are competitive therefore the right price can be assessed by having the workable analytics and forecast.
Tools such as BMC Discovery automates asset discovery across multiple clouds to give the unified view that can be converted into a cost model. Most of the time, the proactive methods will be useful to control the cost. Itemize the Cloud resources on demand basis, auto shutdown and start them and have the right business reasons to utilize those resources may help control the cost at the MultiCloud.
Automation is the key to manage the MultiCloud provisioning and DevOps. Adopting DevOps is beneficial to achieve automation, at the same time it is important to focus on security controls, monitoring and patching.
Standardization of common Cloud services are essential to automate the MultiCloud DevOps. Automation not only saves time and money but it also reduces expensive errors and security violations.
MultiCloud will boom in the coming years with more innovation and tool sets. DevOps is the key to drive them.
Lawrence Manickam is the Technical Founder of Kuberiter Inc, a Seattle based DevOps Start-up that provide JDK Services (Jenkins as a Service, Docker as a Service and Kubernetes as a Service) for Multi-Cloud.
Please visit www.kuberiter.com , subscribe and try our Docker as a Service module that is currently available.