Anticipating the future of the Cloud Native world
Kubernetes and Cloud Native tools have awesome potential and an exciting future. But what exactly can we expect from this technology? Eficode Praqma’s cloud experts, including Sami Alajrami, went to KubeCon 2018 to report back all the latest.
KubeCon+CloudNativeCon is the biggest event in Europe for Kubernetes and the Cloud Native ecosystem. Three full days of announcements from all the major cloud providers, customer use cases, experience reports, and CNCF projects updates meant there was a lot of cloud news to digest. In this post, I try to make sense of it all with my list of key takeaways.
In one of the keynotes, CNCF COO, Alexis Richardson, presented the CNCF 2020 vision. While the current focus is on Security, Storage and Interfaces, the next couple of years will see a rise of “GitOps” as a new way of working that abstracts all infrastructure/cluster plumbing from the developers point of view to a “Git Push” command.
Deploying and managing your applications in Kubernetes has been made easy with the concept of Operators. Operators are installed as pods in your cluster and define and use Custom Resource Definitions (CRDs) to implement application management logic. This makes your applications Kube Native To make building operators easier, CoreOS introduced the “Operator Framework” which brings a SDK for developers and Kubernetes runtime tools to accelerate operators development.
Security is one of the areas that has had lots of CNCF attention in the past year. This resulted in projects like: SPIFFE/SPIRE, Notary/TUF and Open Policy Agent joining the CNCF. Several talks at this year’s KubeCon focused on securing Kubernetes clusters and the applications running in them. Some of the top ones included: controlling user privileges inside containers, container images scanning, making sure the cluster defaults are secure/changed to be secure, and following the best security practice recommended by the Center for Internet Security (CIS) Kubernetes guide.
The emergence of Kubernetes has led to an acceleration in the transition from monolithic applications to microservices. This trend has also witnessed increased granularity and decoupling of services which make up modern, cloud native applications. For an application comprising of hundreds or thousands of services, and can scale on demand or under load, service-to-service communication is a notable challenge. The logic for how services should communicate is typically baked into application code.
A service mesh provides a dedicated layer for service-to-service communication which is decoupled from the application code. Linkerd (an incubating level CNCF project) and Istio (an open-source Google project) are two promising implementations that were presented at KubeCon 2018.
As the number of Kubernetes clusters grows, multicluster becomes a requirement for many organizations. One approach is to have a federation API federating all other clusters’ API servers. But this API becomes a single point of failure. As a result, “Cluster Registry” emerged to maintain a list of clusters and associated metadata. CoreOS built on top of this project to offer “Tectonic Multi-cluster Registry” which syncs the cluster registry in each cluster and supports operating on applications across clusters. It’s also worth noting that Federation V2 is in the works by the Kubernetes Multicluster Special Interest Group.
Serverless has been a hot trend for the past couple of years and now apps are being architected as functions. Austen Collins from Serverless predicts) that the future will have functions everywhere. Functions will work across clouds and even on premise. To enable interoperability across multiple clouds, events (which trigger functions) need to be standardized. “CloudEvents” is a specification for describing events in a standard way.
Adopting Kubernetes requires many changes to your culture and engineering approaches. Craig Tracey, who works as a Solutions Engineer at Heptio, shared his experiences on managing Kubernetes Day 2 and beyond. This is a great talk for anyone thinking of deploying Kubernetes in any form of environment. There’s a lot of takeaways and hard-won experiences about tackling availability, authentication, authorization, and much more. Be sure to take notes!
If you have missed the conference, you can watch all the talks on Youtube.
The Eficode Praqma team at KubeCon’s social event in Tivoli
Any Dilbert CEO can doodle a cloud on a whiteboard and say: “That is where we run our software!” So what exactly is Cloud Native and why should we care?
Building modern systems
Helm charts lifecycle management is a manual task. Helmsman allows you to automate your Helm charts lifecycle management using declarative configuration files.
How to automatically deploy Helm charts to a Kubernetes cluster
Installation and management of CI servers is a critical task for any IT team. Kubernetes and its package manager (Helm) provide an easy way to customize Jenkins installations. Let’s see how to do this and add Windows build slaves.
A setup for working with Windows build slaves
I am an Atlassian certified trainer and over the years I have been spending much time with clients and their Jiras. In this blogpost, I have collected some small tips and tricks that will make your Jira usage better.
Jira Software is a powerful tool deployed in so many organizations, yet in day to day usage people are missing out on improvements, big and small.
In this post, I’ll take a closer look at the version of Jenkins X using Tekton, to give you an idea of how the general development, build, test, deploy flow looks like with Jenkins X. How does it feel to ship your code to production using a product coming from the Jenkins community that has very little Jenkins in it?
A crash course in Jenkins X and how to test it out on a local Kubernetes cluster
In this blog I will show you how to create snapshots of Persistent volumes in Kubernetes clusters and restore them again by only talking to the api server. This can be useful for either backups or when scaling stateful applications that need “startup data”.
Sneak peak at CSI Volume snapshotting Alpha feature
When I read Fowler’s new ‘Refactoring’ book I felt sure the example from the first chapter would make a good Code Kata. However, he didn’t include the code for the test cases. I can fix that!
Writing tests for ‘Theatrical Players’
Nicole Forsgren and the Accelerate DORA team has just released the newest iteration of the State of DevOps report. The report investigates what practices make us better at delivering valuable software to our users as measured by business outcomes. Read on for our analysis of the report, and how it can be best put to use.
The latest drivers of software delivery performance
A major challenge of software development is that our work is by and large invisible. This makes our folklore essential in business matters. Some of our commonly used arguments and visualizations are digital urban legends rather than solid foundations for informed decisions. Here, we’ll go through a few examples and some measures to address our misconceptions.
How the stories we tell influence our decisions
When you embark on your cloud native journey there will be important choices to make about cloud providers, continuous deployment, environments’ setup and separation. This guide will help you make the right choices by sharing lessons learnt from running cloud native apps in production.
Kubernetes has become the de facto container orchestration platform. When we help clients of different sizes and domains start their cloud native journeys in Kubernetes, we assist them in making sound decisions and technology choices. There is no one-size-fits-all solution when it comes to choosing cloud providers, CI tools, continuous deployment pipelines etc., so it is important to make the right decisions at the start. Failing to do so can be very costly in terms of lost time and money.
How to make the right technical choices on your cloud native journey
Learn how Docker and Kubernetes work and the key benefits they bring. Using real demos, I show how Docker is a great packaging and distribution technology, and how Kubernetes provides a powerful runtime for containerized applications.
Watch this introduction to Docker and Kubernetes at the Trondheim Developer Conference (TDC)
Hear about upcoming events in Scandinavia, latest tech blogs, and training in the field of Continuous Delivery and DevOps