Wednesday, September 05, 2018

Jenkins X at DevOps World | JenkinsWorld San Francisco 16-19 Sep 2018

Jenkins World has combined with DevOps world to become the premier DevOps event in your calendar this year - and there really isn't much time left if you still have to register.  You can even use my discount code to get even more value out your visit - its JWRDAVIES.

CI/CD on Kubernetes is really hot - which is why conveniently Jenkins X is going to be so prominent this year.

There are talks on Jenkins X:

Jenkins X: Continuous Delivery for Kubernetes

Extending Jenkins X for fun

There are workshops on Jenkins X:

Building Continuous Delivery for Microservices with Jenkins X

There will be community booth sessions on Jenkins X and there may even be the odd product announcement in a keynote thing that may or may not mention Jenkins X and there could even be a book about Jenkins X :)

So if you are in the middle of transitioning to the cloud or even just thinking about it -  then CI/CD is really an integral part of that transition and the best, cloud-native way to do that effectively is with Jenkins X - you don't even need to learn anything about containers or Kubernetes to start using it. So if you want to be a cloud-native rockstar genius this is one conference you can't miss (well, you can always attend the one in Nice, France in October).

Monday, March 19, 2018

Making Cloud Native simple: Jenkins X

You have probably heard that all companies are now software companies and that to compete you need to be embracing cloud native applications to ensure your company has the ability to adapt quickly - or you will soon be out of business. This is true by the way, but its also a little daunting for all of us. You have to be an expert in your programming languages of choice, be well versed in how your business works, and now need to understand what exactly cloud native means, what are containers and what are the latest trends in cloud technologies.

So lets make a quick list of things you should be doing:

1. Decompose your monolithic applications - or not. To generalise, you probably really should give this a lot of careful thought: its domain and application specific - i.e. only you can decide if it make sense (but it probably does).

Image result for kubernetes logo2. Containers - or Docker or Moby - which really you need to think about containerd, or rkt  or something that complies with the OCI. Which is why people talk about containers - its all got too confusing.

3. Orchestrating your containers - i.e. service discovery, auto scaling, fault tolerant platform to run your containerised applications. Thankfully, this recently got a whole lot easier - with Kubernetes emerging as the one that will be supported by all the major public clouds, and existing cloud platforms.

4. Configure, release version, rollback and inspect your application deployments in a standard, or de facto standard way. Luckily Helm is excellent for this.
5. CI/CD - in order the extract the most value from cloud native, you need a continuous delivery system that will enable a predictable, repeatable release process, and enable continuous improvement via streamlining your development processes.
6. Monitoring - ideally you want to monitor the performance of your deployed applications and feed this back into your CD system.

This is an intimidating list to look at, but its probably already out of date because technology is moving at such a pace its really difficult to keep up.

@jenkins-xWhat if you could abstract yourself away from all the technology bleeding edge and save yourself the paper cuts - and just concentrate on adding business value? Well this is the aim of Jenkins X - a new project that is part of the Jenkins ecosystem, as explained by James Strachan here.

We started Jenkins X at the begining of the year, taking the experience gained from the fabric8 project to develop an open source system that was targeted at these aims.  By concentrating on Kubernetes and utilising its wider ecosystem at the Cloud Native Computing Foundation, we have been able to develop a robust, targeted project that focuses on the needs of developers of cloud native apps.

In summary Jenkins X provides the following:

1. Abstracts away the gnarly bits of cloud native (you probably don't want be concerned with using skaffold for example). Its all still there, you can peel back the curtain as much as you like, but its nicer if you don't have to.
2. Automated CI/CD Pipelines - using Jenkins, configured to work well for cloud native
3. Environments - promotion using git based work flows, and preview environments  for pull requests.

This is all setup for you - you can aim Jenkins X at an existing project (or create a new one from scratch) - and select your cloud provider of choice and let us do the rest.

A small(ish) caveat: we target Kubernetes, so check here first.

Most public cloud providers allow free trials, or provide credits - which is more than enough to kick the tyres with Jenkins X - or you could try a local-machine solutions, such as Minikube.