How to build the Cloud Native applications the way you want – not the way they want
Steven Mustafa, Cloud Solutions Architect, SUSE
Cloud Foundry is an open source cloud application platform, providing a choice of clouds, developer frameworks, and application services. This is a fascinating talk on serverless computing.
4. Kubernetes is Dominant
4
• Originally developed by Google and
donated to the Cloud Native Computing
Foundation (CNCF)
• By far the most popular open source
software for orchestrating container usage
• SUSE provided customers with an easy way
to deploy and manage Kubernetes on SLES
(with SUSE CaaS Platform)
• SUSE Cloud Application Platform includes
Kubernetes via SUSE CaaS Platform
5. Kubernetes Lacks Developer Tooling and Workflow
5
SUSE Cloud Application uses the Cloud Foundry
Application Runtime to add functionality for
developers:
• One step command to containerize, deploy,
and manage an application
• Automatically identifies and pulls in language
libraries, frameworks, and other dependencies
via buildpacks
• Open source service brokers automatically
create and bind services to applications
• Automates application lifecycle management
by assigning appropriate resources, managing
routing, load balancing, scaling, and more
7. SUSE Cloud Application Platform
Cloud Native Developer Experience in Kubernetes
• Containerized
• Easy for Kubernetes users
• Small memory footprint
• 100% open source
• Enterprise grade Linux
An ideal solution for organizations pursuing an engineering-led approach
to application delivery transformation
8. 8
SUSE Cloud Application Platform
• Accelerate end-to-end application
development and delivery at scale
• Maximize productivity with abstractions,
patterns, and full lifecycle automation
SUSE CaaS Platform
• Simplify deployment and
management of containers and
containerized applications
SUSE Application Delivery Platforms
Support multiple approaches to speed application delivery
Cloud Foundry
Productivity
Kubernetes
Flexibility
10. How You Build a Car Depends on What You Need Most
10
Factory-builtCustom-made
• Fastest time-to-deliver
• Lowest cost per unit
• Highest re-use (most efficient)
• Most scalable production
• Maximum flexibility and versatility
11. Two Starting Points for a Spectrum of Possibilities
11
Factory-builtCustom-made Kit Modified
Blank
Sheet
Create and assemble
building blocks
Standard
Template
Modify
Template
12. How You Build Applications Should Vary Too
12
Leverage a Proven ModelCreate from Scratch
Blank
Sheet
Create and assemble
building blocks
Standard
Template
Modify
Template
13. SUSE Cloud Application Platform for DevOps
Use a full spectrum of workflow automation approaches
13
Assembled Modified Factory-builtCustom-made
Faster time-to-deliver
Lower cost per unit
Higher re-use (more efficient)
More scalable production
Greater flexibility and
versatility
Resulting in average savings of 10 weeks of time and $100,000 per application development cycle.
Open Source technologies – especially Kubernetes and Cloud Foundry - are becoming established as platform standards supporting delivery of container-based applications today.
Many enterprises are caught in a needless struggle to choose between these platforms – a misguided undertaking, as these technologies are in reality complementary, each offering value that is more or less appropriate for different use cases.
Cloud Foundry is the undisputed Cloud Application Platform (aka private PaaS or PaaS platform SW) leader. It is designed specifically to accelerate delivery of modern web applications. Cloud Foundry is built around a set of architecture and deployment patterns that are appropriate for web applications, and it offers abstractions that remove application developers from the tedium of container management tasks. The resulting productivity gains can be enormous, making Cloud Foundry an invaluable platform for large scale web application development and deployment today.
Kubernetes does not, by design, offer the built-in abstractions and lifecycle management capabilities that Cloud Foundry does. So development and deployment teams can do more hand crafting to suit their specific needs – building containers, populating image registries, defining networking and clustering rules - so that many aspects of the process can be customized. The extra work is balanced by the broad range of application architectures and delivery processes that Kubernetes can support– with automated deployment, scaling, availability management and more. Because it has no expectations about application architecture or deployment patterns, Kubernetes can handle just about any container-based application you want to throw at it. In fact, web applications delivered by Cloud Foundry often consume backing services delivered by Kubernetes!
Enterprises today need both high productivity solutions and more flexible support for specific application and process requirements, which means that Cloud Foundry and Kubernetes are both important technologies for all enterprises to consider. At SUSE, we understand the mixed environment need well. That’s why we offer both Kubernetes and Cloud Foundry in the SUSE Cloud Application Platform.
These are end points that establish a direction in which your building process will go
At one end of the spectrum, you start with nothing, and you build up from there
At the other end of the spectrum, you start with something, and make alterations to suit your needs
If you work from either end toward the middle, you’ll eventually get to a point where it makes more sense to change models. For example, if you start on the right side, with a factory-built Camry, you might start to offer option packages, and then incorporate after-market modifications. At some point, you end up making so many changes to the original Camry production process that it may actually be easier to simply build what you want from scratch. Alternatively, if you’ve been building every car you make from scratch, you might eventually start to create a set of standard building blocks that you can re-use in different combinations. That saves time and money. The larger those building blocks become, the more your process move to the right in this diagram, until, at some point, you’ll really be better off creating a standardized template that captures the complete end-to-end operation.
So, what’s really nice is that you have a wide range of options. Not every car is built from scratch, and not every car comes out of a factory either. Auto makers build cars in different ways, to best satisfy their needs.
The analogy applies to application delivery too. There will certainly be many times when you will want to start with a blank sheet and build a custom application that meets your very specific needs. You’ll want to leverage containers, and Amazon EKS to support your deployment and management of these applications.
But you might also see value in following a pattern that works well for a class of applications that you expect to build a lot of.
A popular pattern in use today is the 12-Factor Application pattern, which is often used as a blueprint for building and delivering cloud native apps. What we are going to show you today is a way to deliver these applications very, very quickly and very easily using SUSE Cloud Application Platform. Your starting point is a pre-defined, standard cloud native application deployment workflow that already builds-in end-to-end lifecycle management of your application. You don’t need to define or implement your own workflow from scratch - you only need to tell SUSE Cloud Application Platform when you want to deviate from the standard 12-factor model. So, if you’re building a typical, modern web application, your developer experience will be as simple as issuing one command. And if you need to deliver lots of cloud native applications, fast and frequently – well, there’s really no other way to do that – you need a factory-style production model to achieve fast, low cost, efficient, and scalable application delivery across your enterprise.
Let’s take a look…
These are end points that establish a direction in which your building process will go
At one end of the spectrum, you start with nothing, and you build up from there
At the other end of the spectrum, you start with something, and make alterations to suit your needs
If you work from either end toward the middle, you’ll eventually get to a point where it makes more sense to change models. For example, if you start on the right side, with a factory-built Camry, you might start to offer option packages, and then incorporate after-market modifications. At some point, you end up making so many changes to the original Camry production process that it may actually be easier to simply build what you want from scratch. Alternatively, if you’ve been building every car you make from scratch, you might eventually start to create a set of standard building blocks that you can re-use in different combinations. That saves time and money. The larger those building blocks become, the more your process move to the right in this diagram, until, at some point, you’ll really be better off creating a standardized template that captures the complete end-to-end operation.
So, what’s really nice is that you have a wide range of options. Not every car is built from scratch, and not every car comes out of a factory either. Auto makers build cars in different ways, to best satisfy their needs.
Design a workflow, including logic and technology components
Acquire, install, and maintain technology components
Implement systems and process integration
With SUSE CAP, this is the level of automation and control over the infrastructure you will now be selling.
This will provide you with a big new set of capabilities you can bring to your prospects, and it will appeal to a whole new audience within our customers and prospects.
dev / ops are two sides of a coin then this process flow is a reflection of what strangles developer productivity in a typical Enterprise IT org.
We realized early on that the level of automation required to optimize this is immense and in the end gets up to a vision that eerily matches Cloud Foundry's.
In the traditional way, there were multiple steps to getting an application live in a test or production environment. Starting with installing a server or virtual machine, configuring it, installing an OS (configuring it), then the middleware like languages, frameworks, and all their dependencies (and configuring them), then the database and network and configuring all of it. Even with IaaS capabilities, you’re only part way there with automated provisioning of virtual machines. Even with IaaS, you’re not getting everything a developer or application needs to run in the cloud.
With SUSE Cloud Application Platform, it’s simply one command – “cf push” – and the application and all the underlying dependencies like databases, messaging services, languages, frameworks – are all automatically provisioned and configured. So instead of taking weeks of manual, error-prone work, the platform handles all the work and is able to deploy applications within seconds – all self-service or through automated CI/CD tools. And when massive spikes of new visitors or users hit the application, the platform automatically spins up new instances to handle the volume and performance that your organization demands.
Our understanding of the possibilities for leveraging both Cloud Foundry and Kubernetes extends beyond the obvious. At SUSE, we’ve taken containerization to heart, and created a unique distribution of Cloud Foundry that is itself containerized. This makes SUSE Cloud Foundry efficient and lean – running in lightweight containers, not resource-hungry virtual machines, SUSE’s containerized Cloud Foundry implementation consumes a fraction of the memory footprint of other distributions, and is faster to recover and scale.
Containerization also means that you can deploy SUSE Cloud Foundry easily, anywhere, using Kubernetes – which is also included in the solution. Once deployed, SUSE Cloud Foundry is managed by Kubernetes, ensuring that your Cloud Foundry environment remains available, automatically scales without downtime, and manages load according to your established criteria.
You can use the included Kubernetes platform to manage other containers as well. So bring your own – backing services for your Cloud Foundry web apps, third party containers that you want to use, custom containers and microservices that you’ve built, or traditional applications that you’ve dropped into containers. You can manage them all with SUSE Cloud Application Platform.
The SUSE implementation of Cloud Foundry is unique in another very important way too – it is the only Cloud Foundry offering available today that is built with an enterprise hardened and secure linux distribution. SUSE Cloud Foundry is based on SUSE Linux Enterprise, the same enterprise-proven operating system from which the platform’s container OS (MircoOS) is also derived.
As you look at application delivery technologies like Kubernetes and Cloud Foundry, it’s important to remember that containers are the key technology enablers of application delivery transformation, AND that containers are a Linux operating system construct. So everything that you are doing with containers is enabled and protected by your Linux OS. Choose wisely here, as the foundation really does matter.
And running your workloads in a hardened, secure environment is absolutely critical for every enterprise today – not just in terms of managing containers well, but in terms of providing a strong foundation capable of supporting a rapidly changing IT landscape. The digital revolution that is transforming every aspect of IT has driven a host of significant new requirements for operating systems and an ever increasing dependence upon them. For example, while enterprises still depend on operating systems as the crucial gateway to hardware in the datacenter, they now also rely on operating systems to host modern virtualization, and cloud, and container platforms. Today’s enterprises need operating systems that run on mobile, and connected, and embedded devices. And, they need operating systems that are fully up to the task, capable of handling demanding production workloads in ever changing environments.
Good news for you: SUSE knows enterprises, and SUSE knows Linux. And as IT has changed, so has the SUSE portfolio, which has grown to include purpose-built Linux solutions that address every new enterprise OS need, from traditional SUSE Linux Enterprise Server and Desktop offerings, to SUSE Real Time for connected devices and SUSE Embedded for appliances. Now SUSE adds MicroOS, available only as part of SUSE CaaS Platform, to address the special needs of container management. Importantly, all variants of Linux offered by SUSE are derived from the same core code base, ensuring consistency, efficiency, and improving supportability across the board. As a result, SUSE shines, not only as a server and desktop OS supplier, nor merely as a container OS purveyor, but holistically - as an excellent operating system vendor for the complete enterprises today.