Cloud Native Projects: 3 Critical Success Factors
Oracle sponsored this post.
According to the latest Cloud Native Computing Foundation survey, production use of cloud native technology has grown by over 200% year over year. In fact, the appetite for technologies like Kubernetes and Docker, among others, is so high that the KubeCon San Diego event was expected to have more than 8,000 attendees.
Cloud native applications can improve developer/DevOps efficiency, scalability and portability, but how do we assess a public cloud for these capabilities? This post will detail three critical success factors for your cloud native projects.
Focus on Developer Efficiency
Cloud native services should make the life of the developer easier. If planned and implemented correctly, organizations should be using:
- Containers to provide better environment consistency, faster deployment, portability and scalability.
- Microservices to enable different teams to build and test different parts of an application simultaneously, speeding up software development.
- Continuous integration to allow developers to quickly iterate on software builds.
- Infrastructure as code to reduce the time taken to deploy servers, storage and networking.
- Serverless functions to automate repetitive tasks, such as creating and populating databases for dev/test environments.
- Streaming to ingest dataflows from devices and web applications in realtime for fast analytics.
However, not all DevOps and IT teams have the time and skills to deploy and maintain various platforms for containers, microservices, continuous integration, infrastructure as code, serverless functions, etc. By using managed services, these organizations can leverage the public cloud vendor’s capabilities for deploying, patching and upgrading these cloud native platforms, thereby allowing developers to develop and iterate faster. Consider these examples:
- An AI-based startup reduced deployment time by 14x by eliminating the provisioning and management of Linux, Kubernetes, Docker Registry and Continuous Integration systems.
- A large financial services organization met critical deadlines for compliance by using a microservices-based architecture and parallelized development.
- A Software as a Service vendor eliminated unwanted systems and eased management through the use of containerized applications.
Plan for Scalability
Choose a cloud platform that provides or will soon provide access to datacenters close to your desired location. If you anticipate growth in new regions of the world, look for vendors that can support your growth in those regions as well.
Scaling may involve using multicloud environments. The Oracle and Microsoft partnership provides a “connected cloud” for choice in the deployment of your cloud native applications across these two public cloud vendors. Hybrid cloud offerings to consider include Microsoft Azure and VMware, Oracle Cloud and VMware and Google Cloud and VMware.
With respect to running containers, customers can plan for scaling with bare metal (BM) hosts, virtual machine (VM) based hosts or both. While all vendors offer virtual machines to run your microservices and containerized applications, only a few, such as Amazon Web Services and Oracle Cloud, offer the capability to run bare metal Kubernetes hosts. Bare metal hosts are single tenant — the resources on the server are not shared with other tenants’ workloads, making them ideal for applications that have high CPU and memory needs. They can also help meet strict regulatory and compliance requirements that don’t allow use of shared resources. VMs, however, provide other advantages, such as easier packaging and management through use of shareable images, and simpler versioning (snapshots) and rollbacks.
Design for Portability
For Kubernetes, consider choosing a cloud solution that runs unmodified open source code that is certified conformant by the Cloud Native Computing Foundation. The use of non-conformant and modified/forked code can create obstacles as you seek to extend your Kubernetes workloads to on-premises deployments and other clouds.
For serverless functions, infrastructure as code, streaming, telemetry and related “management” services, consider vendors that have used open source-based projects or adhere to industry-accepted standards. For example, leveraging open source-based projects, such as Fn Project and OpenFaaS, enable you to run those functions on public clouds and on-premises environments more easily: These platforms can be deployed on a laptop, a private cloud or a public cloud. If your preferred cloud vendor’s service does not leverage an open source codebase, look for compatibility, such as with Apache Kafka for streaming or with CloudEvents for describing event data. Compatibility will let you more easily leverage existing investments in cloud native technology.
The application development landscape is rapidly changing, with as many as 15% of organizations deploying new software releases daily. Choosing a solution for cloud native services based on the capabilities of their managed services, scalability and openness can significantly improve developer productivity and organization agility.