Archives de catégorie : continuous integration

Montreal devfest 2019

On September 27th, a new 1 day conference about Cloud / AI-ML / Security took place in Montreal : Montreal DevFest 2019.
And of course, I took some notes while I was there! (you can checkout the video too)

After the traditional intro speech (by Archy, our local CNCF Ambassador) some conference partners got on stage to describe their activities.

Then, presentations took place across 3 different tracks: Cloud, AI-ML and Security. I mainly attended talks about Cloud though.

Compliant infrastructure as code by Jonathan Pulsifer, from Shopify

Jonathan described to the audience how they use Terraform + Atlantis at Shopify.
Atlantis workflow: it runs the Terraform plan for you after a commit, and then looks for reviewer approval; a workflow similar to Github for development

Terraform + Atlantis workflow

Using Atlantis also allows you to avoid running your Terraform plans on your machine.

Build Your Own Serverless With Knative

Serverless frameworks are usually provided by cloud providers; be it FaaS, Container backed serverless, etc.

Alex then went on to describe computing as a commodity, just like electricity, using a Simon Wardley map.

Use cases for Serverless:

  1. For developers
    • Glue functionalities
    • Smaller micro services
    • high volume functions (ETL data for example)
  2. For ops:
    • To provide a self service platform for developers
    • To use spare capacity
    • Better observability of the deployments

Functions ? They’re not super portable because of the different interfaces (FaaS solutions do not share the same interfaces); containers on the other hand, are super portable.

For example, Google Cloud Run can run containers: it relies on Knative, a solution that can run on any K8s deployment.

So what is Knative ?

  • Knative build: it’s now deprecated (it used to allow users to build images from within Kubernetes without root access); instead we could look into Tekton today
  • Knative serving (main Knative functionality): execution and scaling, a bit like a regular K8s service, but it knows about revisions too.
  • Knative eventing: a broker forwards events to the service; a trigger acts like labels to apply filters; events can come from different sources: Kafka, Camel, CronJob, Kubernetes API, etc.

Then, Alex introduced to us what is Ambassador; it’s an API Gateway, built on top of Envoy proxy (just like Istio), designed for Knative.

Ambassador installation steps

For Knative eventing, you still require Istio though (as of today).

All is not (yet) flawless with serverless; limitations such as: cold start; concurrency, and resource consumption are still being worked on by the different products.

Cloud Native CI/CD with Tekton, by Christie Wilson

Christie started her talk explaining what cloud native means; she settled on containers dynamically orchestrated and optimized resource utilization.

Then what is cloud native CI? It’s serverless CI (jobs running in isolation), an open spec, infra agnostic, reusable components, and config as code.

Cloud native CI piggies back on Kubernetes specs to configure your CI.

Tekton is built on knative/pkg (static CRDs), and used to be Knative build

Who is Tekton for? people building a CI/CD system, people who want reusable components.

How does Tekton work ?

A Task has several Steps; a Pipeline has several tasks

Since Tekton is built on Kubernetes, using CRDs, such a command gives you the results of your builds:

Finally Christie demoed Tekton: the demo involved Istio and canary deployment (10% to 100% spread), etc., was donated to the continuous deployment foundation (CDF)

Unified Observability with OpenTelemetry, by Steve Flanders

What are the three pillars of observability? : metrics, logs, and distributed tracing.
opentracing+opencensus = open telemetry for tracing, backed by Google, Microsoft, etc.
opentelemetry client libs are still alpha in October 2019 – so you could keep using open tracing or open census libs for now.
opentelemetry is on Github; there’s even a demo to run using a provided docker-compose file

Closing notes

There was more content than what I just described though!

Once again I mostly focused on developers / ops talks; even there, I did not capture everything; there was for example other interesting talks such as the one by Chris from D2IQ who introduced the KUDO framework (Kubernetes Universal Declarative Operator: 200 lines of YAML to define an Operator instead of thousands of lines of Go: Kafka operator in Beta in October) and the lightning talk I gave about how to host Helm charts on Github !

Oh! I almost forgot! Check out the excellent Layer 5 Istio Workshop and its slides! it was super nice to have great instructors such as Archy, Girish Ranganathan and Prune !

And apart from the great content, the ambience was great too: 240 people audience, coffee, food, swag (yay!!) DJ and drinks to end up the conference with a funny Jeopardy quiz (woohoo!) and some networking!