Companies moving towards cloud-native architectures and applications have realized that they can gain a business edge by keeping costs down while accelerating delivery to end-users. The emergence of container orchestration platforms such as Kubernetes can help speed adoption of these cloud-native solutions with containers. However, operationalizing an enterprise-ready Kubernetes platform is no small task. Considerations beyond basic installation and configuration of Kubernetes include, but not limited to, security, compliance, monitoring, reporting, governance, aggregated logging, dynamic networking, organizational scalability, backup and recovery, training existing teams, driving enablement and adoption etc. We have seen many IT organizations and teams trying to adopt Kubernetes and cloud-native technologies via proof-of-concepts and part-time R&D efforts, without any help from experts that have done these implementations before. Such efforts end up taking significantly longer times (usually over 6 months), with higher investments (with average team sizes varying from 6 – 10 engineers), yield mixed results and rarely end up with a set of best practices that can drive the adoption of Kubernetes in their organization.
At Oteemo, we have amassed years of experience in building, deploying and managing enterprise-scale Kubernetes for various enterprises. With such experience and lessons learned from real-world implementations, we created a repeatable Kubernetes adoption framework that allows us to help our clients rapidly adopt Kubernetes and cloud-native architectures. We call this framework and approach “XC”, short for “Xcellerated Containers”. Oteemo’s mission with XC is to help our clients accelerate the design, implementation, rollout and adoption of an enterprise-grade Kubernetes and cloud-native solutions.
The Oteemo Advantage
Oteemo XC is our framework and approach that we take to our client’s to accelerate the adoption of Kubernetes. This approach for accelerating our client’s journey to containers includes a blend of people, process and technology to ensure that teams are not only up-and-running as fast as possible but also become self-sufficient.
Our approach to enterprise containers and cloud-native solution starts with the widely-adopted Kubernetes platform. After the installation of the Kubernetes platform, other tools that address common enterprise concerns such as security, compliance, deployment automation, monitoring, reporting, governance, aggregated logging, secure networking, scalability, backup and recovery etc. are installed and configured. The technologies and tools that we picked to deliver these enterprise capabilities for container solutions within Kubernetes are a combination of open source and proprietary products. We provide a comprehensive list of the pros and cons of various options of such tools for our clients and work with our clients during the design phase to pick the right tool set that fits their organizations.
Following are few enterprise capabilities that are accelerated through our approach to deploying enterprise ready Kubernetes:
Security: Security is implemented at the host, network, cloud-provider and Kubernetes levels to provide defense in depth. Security options for ensuring build-time and run-time governance of secure containers are available. The security implemented within this platform is the result of our expertise from implementing across a variety of client implementations with varying security needs.
Infrastructure-As-Code: Changes to the Kubernetes cluster, whether it is deploying an application or a security configuration, are stored as versionable code in a version control repository. Making updates to the cluster through code facilitates workflows, auditability and cluster parity. In this way, we can ensure that cluster state matches version control and that the history of your cluster is visible and traceable.
Cloud and Infrastructure Agnostic: Kubernetes abstracts cloud resources allowing your application deployments and configurations to remain the same no matter where they are running. Kubernetes can also run in private data centers and on bare metal which means that your teams can learn one platform and run it anywhere with confidence. The automation scripts and capabilities available through our XC framework allows us to accelerate the process of creating such portable, multi-cloud architectures for organizations that have such needs.
Aggregated Logging: Often log management is a complicated process in figuring out how to get logs from specific applications to the logging solution via plugins and other methods. Our approach to aggregated logging in XC utilizes native Kubernetes logging capabilities to send host logs as well as every container log to ElasticSearch or your aggregation tool of choice. Your container logs become instantly searchable to help understand how applications are performing and troubleshoot issues. Developers, security engineers and operations team members will all have access to the logs necessary to do their jobs without requiring host or container access to read application output.
Monitoring/Metrics/Alerting: XC comes with a built-in monitoring, metrics and alerting system that can grow with your platform needs and is built with the industry recognized Prometheus metrics collection engine. Metrics are gathered at the host, Kubernetes and application layers into a single platform where they can then be visualized using Grafana. The metrics can also be used to set up alerts to let teams know when something in the platform needs attention. Our goal through proactive monitoring is to ensure that teams have the operational insight needed to provide a stable platform and troubleshoot quickly in the event of a problem.
High Availability and Disaster Recovery: Our Kubernetes deployment approach is designed to reduce risk for our customers by providing high availability for their applications across datacenters and reduce the potential impact of outages. Kubernetes masters are run in quorum across data centers so that the data plane is always available and we run the cluster of workers evenly distributed across datacenters to ensure that applications will always be up and available. Through XC automation, we can additionally span multiple regions or cloud providers to meet disaster recovery needs by running your applications in “hot-hot” or “hot-warm” architectures. XC’s approach is to eliminate costly disaster recovery solutions. By having an option to quickly span applications in live deployments than “failing over” in a traditional sense, we can eliminate expensive disaster recovery solutions and bring better efficiencies to Disaster Recovery strategies in general.
User Management: Users in an organization will generally be managed through their single-sign-on tool of choice that will then be integrated into Kubernetes role-based-access-control. Users and groups can be allocated their own resources within Kubernetes and also given cluster-wide roles as needed. The process of adding users is made simpler with individual user additions to roles via version controlled role definitions. This method of managing users facilitates approval workflows and auditable control of access to the cluster.
Distributed Storage: Cloud provider storage like elastic block storage (EBS) can sometimes only partially fill application needs when it is bound to individual data-centers limiting the ability of applications to move in the event of a failure. Our solution for Kubernetes supports networked storage models, using technologies such as Ceph and GlusterFS, that can span data centers providing additional resiliency for applications with persistent storage needs.
Technical and Organizational Scalability: Modern workloads are unpredictable and need to be elastic in order to scale with business needs. Through XC, Kubernetes is configured to scale at both the machine and application level based on need to keep costs down while maintaining the flexibility to be ready when more horsepower is needed. The solution also scales seamlessly as the organization grows by supporting the addition of workers to the compute pool and the creation of additional Kubernetes namespaces with specific resource allocation including network, cpu and memory. New teams can be given a secure enclave in which to create and deploy their containerized applications which helps introduce them to the platform in a controlled manner.
Our approach to Accelerating Cloud-Native and Kubernetes adoption
We begin every engagement by first understanding our client’s business and technical drivers for container technologies. We then help map their needs and drivers to goals that are realistic and time bound to ensure that all the teams are on the same page. A quick current state assessment of client’s existing engineering practices and processes spanning all functions such as development, testing, security, deployment, configuration management, and operations is performed. An outcome of this phase is a shared vision and plan to implement the container and cloud-native architecture successfully within the organization.
We take an Agile approach for implementation. Our sprints/iterations are usually two weeks in length. A solution design sprint is immediately implemented after the current state assessment. A high level design and architecture of the target solution is created during this sprint.
We then move into the actual implementation of the Kubernetes platform, using our proven XC framework based approach. In one or at the most two sprints, the Kubernetes platform will be implemented and configured for our client’s organization. This is where we bring the promise of acceleration to our clients. Based on our experience, we have seen that it usually takes an organization (factoring in their staff’s limited experience with containers, kubernetes and cloud-native solutions) around six (6) months for designing, implementing and operationalizing a baseline Kubernetes platform in their organization. But with our XC based automation of core enterprise capabilities for Kubernetes, we have successfully helped implement this solution within three agile sprints (6 weeks).
From 6 months to 6 weeks is a huge amount of time and cost savings for our clients.
Once the baseline Kubernetes platform is implemented our focus shifts to operationalizing the platform for the organization. Any custom integrations and requirements are implemented so the platform aligns with the organization’s process and change management models. If any changes to existing organizational processes are required to drive the efficiencies that come along with the Kubernetes platform then we make appropriate recommendation for such process changes.
Once the platform is operational we move to the next phase of application migrations and driving adoption of the platform. We work with application teams and operations teams to create deployment models to seamlessly promote applications and services into Kubernetes. We will help create dashboards for proactive monitoring and business analytics. A plan to enable the operations teams to operate and maintain the platform is created and we work hand-in-hand with our customer’s engineering teams to drive the adoption of the platform across the organization.
Our goal is to help drive innovation and reduce the time to market for our customers. With focus on mentoring, enablement and adoption of Kubernetes in our customer’s organizations, we will ensure that the right cloud-native and enterprise container solution is designed and implemented in a fast and efficient manner. Leverage Oteemo’s wealth of expertise and drive your digital transformation goals and stay ahead of your competition.