Tuesday, 17 April 2018

How To Set the Default Font in Photoshop and Illustrator

Photoshop and Illustrator are powerful, but not exactly intuitive. That goes double for their text tools. If you’re tired of seeing the wrong default font at the wrong time, here’s how to set it manually.

The Best Keyless Lock For Every Need

Somewhere between a regular door lock and a full-blown smart lock, there sits a middle ground.

Click Here to Continue Reading

What Is a CSV File, and How Do I Open It?

A Comma Separated Values (CSV) file is a plain text file that contains a list of data. These files are often used for exchanging data between different applications. For example, databases and contact managers often support CSV files.

How to Install Google Chrome on Ubuntu 18.04

Chrome is the first app many people install on a new operating system, but you won’t find it in Ubuntu’s Software Center. Instead, you need to download and install a package.

Why It’s Nearly Impossible to Make Money Mining Bitcoin

In Bitcoin‘s early days, you could easily mine the cryptocurrency on your own PC. But now you need cheap electricity and a serious investment in specialized hardware to have any hope of making money.

How to Choose the Best VPN Service for Your Needs

If you’re looking for the best VPN for torrenting, privacy, bypassing censorship, staying anonymous online, getting around geographic restrictions, or just location shifting, you’ve got a lot of confusing choices. Keep reading as we help you pick the right VPN for you.

Why Isn’t PBS Offered By Sling and Other Streaming Services?

PBS doesn’t have the streaming rights to its shows, which is why cord cutting viewers like you can’t watch your local PBS station.

Plover.io Quickly Shares Files Between Local Devices

Quickly transferring files from, say, a Mac to an Android is more complicated than it needs to be. Plover makes it simple for devices on the same network.

How Much Electricity Do All Your Appliances Use?

You know how much electricity you use overall each month, because you pay the bill. But, you can also figure out how much electricity each appliance uses individually and how much it contributes to your total usage.

Monday, 16 April 2018

Geek Trivia: Which Of These Parts Of A Chicken Help It Regulate Its Body Temperature?

Think you know the answer? Click through to see if you're right!

The Best Slim, Low Profile iPhone X Cases (That Still Protect Your Phone)

Sturdy and bulky cases are great if you live a rugged lifestyle, but how about if you just need some slim and simple protection for your iPhon…

Click Here to Continue Reading

Voice Assistants Are Only Intuitive If You’re Already Tech Savvy

It’s easy to confuse “familiar” with “intuitive”. This applies to voice interfaces as much as it does to desktop ones.

Sega Is Bringing 15 Classic Games, Including Sonic, to the Switch This Summer

There was a time when we thought that the Switch would be a perfect fit for the Virtual Console.

Click Here to Continue Reading

Headlines About ‘The Dark Web’ Are Usually Nonsense

Think critically when news outlets report about private data “showing up on the dark web,” because it probably doesn’t mean what you imagine.

How To Improve Your Aim in PC Games

Aiming with the mouse is essential in almost any PC shooting game, doubly so if you play online. It’s a simple and intuitive process, but that doesn’t mean there’s no room for improvement.

Jenkins X Explained Part 1 - an integrated CI/CD solution for Kubernetes

Jenkins X is an opinionated platform for providing CI / CD on top of Kubernetes. We’ve chosen a set of core applications that we install and wire together so things work out-of-the-box, providing a turn key experience. This blog aims to build on previous introductions to Jenkins X and provide a deeper insight to what you get when you install Jenkins X.

key

So what happens? After downloading the jx CLI you will now be able to create clusters with public cloud providers or install onto an existing Kubernetes cluster.

cloud Providers

This command will create a cluster on your cloud provider of choice.

> jx create cluster

Alternatively you can bring your own Kubernetes cluster and install Jenkins X on it:

> jx install

That said, we’ve found that creating a new cluster on a public cloud such as GKE is a lot way easier to start as we can be sure of the state of the cluster. For example we know that storage, networking and loadbalancers will be working as expected. Creating a cluster on GKE takes only a few minutes so it’s a great way to try things out as well as run your enterprise workloads.

For now lets assume we are using GKE. When jx create cluster has finished you will see some output in the terminal that also includes the default admin password to use when logging into the core applications below. There is a flag —-default-admin-password you can use to set this password yourself.

Accessing applications

We automatically install an Nginx ingress controller running with an external loadbalancer pointing at it’s Kubernetes service. We also generate all the Kubernetes Ingress rules using a golang library called "exposecontroller". This runs as a Kubernetes Job triggered by a Helm hook once any application is installed to the cluster. 

Using "exposecontroller" means we can control all the ingress rules for an environment using a single set of configurations, rather than each application needing to know how to expose the kubernetes service to the outside world. This also means we can easily switch between HTTP and HTTPS plus support intregration with projects like cert-manager for auto generation of signed TLS certificates.

Environments

One important point to make is Jenkins X aims to use terminology that developers are familiar with. That’s not to say we are changing Kubernetes fundamentals, it’s more that if you don’t know Kubernetes concepts then we aim to help you still adopt the cloud technology and pull back the curtain as you gain confidence and experience. To that point, a core part of Jenkins X are "environments". An environment can have one or more applications running in it. In Kubernetes term an "environment" maps to the concept of a "namespace" in code.

The installation by default created three environments, this is customisable but by default we have a "dev", a "staging" and a "production environment". To list, select, or switch between these environments run:

> jx env

Jenkins X core applications

In the "dev" environment we have installed a number of core applications we believe are required at a minimum to start folks off with CI/CD on Kubernetes. We can easily add to these core apps using Jenkins X addons but for now lets focus on the core apps. Jenkins X comes with configuration that wires these services together, meaning everything works together straight away. This dramatically reduces the time to get started with Kubernetes as all the passwords, environment variables and config files are all setup up to work with each other.

  1. Jenkins — provides both CI and CD automation. There is an effort to decompose Jenkins over time to become more cloud native and make use of Kubernetes concepts around CRDs, storage and scaling for example.

  2. Nexus — acts as a dependency cache for Nodejs and Java applications to dramatically improve build times. After an initial build of a SpringBoot application the build time is reduced from 12 mins to 4. We have not yet but intend to demonstrate swapping this with Artifactory soon.

  3. Docker Registry — an in cluster docker registry where our pipelines push application images, we will soon switch to using native cloud provider registries such as Google Container Registry, Azure Container Registry or Amazon Elastic Container Registry (ECR) for example.

  4. Chartmuseum — a registry for publishing Helm charts

  5. Monocular — a UI used for discovering and running Helm charts

Helm

We learned a lot in our early days with fabric8 on Kubernetes and there were some projects from the ecosystem that either weren’t around or (at the time) didn’t work with OpenShift, therefore we were restricted when making some design decisions. A couple of years on and now with Jenkins X we were able to look at other OSS projects that have been flourishing, so I was very happy to start looking at Helm. Helm is a package manager for Kubernetes and allows easy installation and upgrades of applications.

It was pretty clear that for Jenkins to evolve and include deployments to the cloud we should embrace Helm and provide an opinionated experience that helps teams and developers. The core applications mentioned above means Jenkins X provides an out of the box integrated CI/CD solution for Helm.

We know that helm has limitations but with the work on Helm 3, the focus of the Kubernetes sig-apps group, the Kubernetes community and investment we see from key organisations such as Microsoft, we feel Helm is currently the best way to install and upgrade applications on Kubernetes.

GitOps

We mentioned earlier that we setup three environments by default. What this means is for the staging and production environments we created:

  1. Kubernetes namespace

  2. An environment resource (CustomResourceDefinition) in the dev environment which includes details of how applications are promoted to it and includes various team settings.

  3. A git repository that we store what applications and their versions should be present in that environment. These are stored in a Helm requirements.yaml file

  4. A Jenkins Pipeline job: explained in more detail below

CI/CD for Environments

Having a Jenkins Pipeline Job for each environment means that Pull Requests to the git repo trigger a CI job. For now that job performs basic validation but in the future will include ‘gates’ to ensure a change to that environment has passed expected checks such as QA tasks, gain enough approvals from the correct people, etc - YES CI for environments!!

Once CI checks have passed the new application or version change can be merged. Only users that have karma can merge the Pull Request and therefore we get RBAC plus traceability for our environment deployments.

This means every application manifest, their version and configuration including storage requirements, resource needs and secrets for your environments are stored in Git repositories. Given a disaster recovery scenario this is exactly what you want.

Did I just say secrets in Git? Yes! We will be providing a nicer experience to helps folks get set up but we ourselves encrypt our secrets and store them in Git, then decrypt them when we come to install and upgrade.

We do all this with the help of a Helm wrapper called helm secrets. I’m working on a followup blog post with examples, better explanations and how to guides + add better integration with JX in the coming weeks.


Fancy getting involved?

We mainly hangout in the jenkins-x Kubernetes slack channels and for tips on being more involved with Jenkins X take a look at our contributing docs

If you’ve not already seen it here’s a video showing the create cluster explained in this blog.

How to Use Samsung Smart Switch to Update Your Galaxy Phone

Samsung’s Smart Switch is a unique tool for transferring data from an old device to your new Galaxy phone, but it also offers a way to update your phone quickly and easily. Here’s how.

iPad 2018 Review: Why Didn’t I Try an iPad Sooner?

I’ve used a lot of tablets. Android, Chrome OS, Kindles, even Windows.

Click Here to Continue Reading

How to Remove Google From Your Life (And Why That’s Nearly Impossible)

Google can feel pretty pervasive and, if you’re concerned about your privacy, that might worry you. So, if you want to get rid of all your Google services, here’s how you can do it and what you’ll be losing.

How to Hide a Recovery Partition (or Other Drive) in Windows

PC manufacturers often include recovery partitions. These are usually hidden, but sometimes become visible under This PC and elsewhere in Windows. Here’s how to hide a recovery partition—or any other drive.

Saturday, 14 April 2018

Geek Trivia: Sunsets Over The Ocean Will Rarely, But Curiously, Produce A Flash Of?

Think you know the answer? Click through to see if you're right!

How to Remove Facebook from Your Life (And Why That’s Nearly Impossible)

Deleting your Facebook account is technically simple. Head to the account deletion page, click the “Delete My Account” button, enter your password and a captcha, and boom, it’s done.

Check Out How Google, Amazon, and Facebook Looked Decades Ago

Change is the only constant online (other than complaining about change). The Museum of Websites lets you explore how popular websites looked in the past.

SpaceX's valuation climbs to $25 billion with new funding round

SpaceX is poised to become the third-most valuable venture-backed startup in the U.S., after Uber Technologies Inc. and Airbnb Inc., PitchBook said.

Coinsecure announces Rs 20 lakh bounty to help them recover lost bitcoins

Coinsecure promised to use its own funds to reimburse Rs 20 crore to customers who lost their bitcoins. It will start returning monies to the affected parties within the next 15 days.

How Apple’s New Business Chat Works

iMessage isn’t just for texting your friends and family anymore. With Apple’s new Business Chat feature, you can now text businesses and brands with your questions right from iMessage. Here’s how it works.

Friday, 13 April 2018

Geek Trivia: Which Of These Popular Novels Began Life As A Radio Show?

Think you know the answer? Click through to see if you're right!

Jenkins X making awesome progress after 24 days

Its been 24 days since we announced Jenkins X, a CI/CD solution for modern cloud applications on Kubernetes. I’m truly blown away by the response and feedback from the community - thank you!

We’ve also had lots of folks report they’ve successfully used Jenkins X on a number of clouds including GKE, AWS and AKS along with on premise clusters which is great to hear!

Here’s a brief overview of the changes in the last 24 days from the Roadmap:

  • we now fully support GitHub and GitHub enterprise. BitBucket cloud and gitea is almost there too. Hopefully BitBucketServer and Gitlab are not too far away either. For more detail see supporting different git servers

  • For issue tracking we support GitHub, GitHub Enterprise and JIRA. For more detail see supporting issue trackers

  • Gradle support is now available from jx create spring or by importing gradle apps

  • Go, Node and Rust build packs are now available with more planned

  • New addons for anchore and kubeless

Also we’ve made it a little bit easier to keep your jx binary up to date continuously. Just type one of the following:

  • link:http://jenkins-x.io/commands/jx_version/[jx version] will prompt you if there is a new version available and if prompted, it will upgrade itself

  • link:http://jenkins-x.io/commands/jx_upgrade_cli/[jx upgrade cli] will upgrade the jx binary if its available or link:http://jenkins-x.io/commands/jx_upgrade_platform/[jx upgrade platform] for the platform

For more detail on the changes over the last 24 days with metrics please see the changelog generated by Jenkins X

We’d love to hear your feedback what you think of Jenkins X and the Roadmap - please join the community.