Continuous development using containers

Are you familiar with the “throw it over the fence” method? If so, you’ll know that it is not very productive.

The method refers back to the old times of web development, when humans and technology often failed to work together optimally. Once new code runs well on the developers’ machines, it was ‘thrown over the fence’ to the test and operations layer. There, the setup may be so different that the code fails. It then needs to be thrown back, or a lot of work put into getting it to run.

As if that’s not enough, the procedure then has to be repeated more or less for every update.

Break down the barriers

“A complete and coherent programming process is much better”, claims Basefarm system architect, Andreas Skoglund.

What he has in mind are Docker containers, Kubernetes, a continuous development cycle, databases, message queues, monitoring and logging tied together into a single solution.“OpenShift Container Platform is a Kubernetes distribution with a robust bunch of other technologies that deliver precisely that”, he explains.

The setup works equally well in private clouds and cloud services like Microsoft Azure and AWS.

At the base are Docker containers. Docker is a way of packaging applications together with all their dependencies. This contrasts with traditional packaging like .exe, .rpm and other application types whose operability is sensitive to library and version differences in the operating environment.

Containers can be set to be ‘immutable’, to prevent them being changed. This ensures consistency of behaviour during development, testing and production.

To avoid software conflicts, current practice has been to run a single application per virtual machine (VM). Using containers avoids this problem, and a VM is easily able to run several containers, which both saves resources and simplifies administration.

Kubernetes – a building block

Kubernetes is a modular framework that can be assembled in many different ways, but also gives developers and technicians the same experience no matter where under the bonnet they are working.

A major benefit of this is familiarity, regardless of the system’s location, whether in the cloud using Microsoft Azure for instance, or on a server in the basement.

Kubernetes also simplifies many of the technician’s tasks, distribution and siting of the containers is automatic, and extra capacity can be provisioned at very short notice to handle increased load, e.g. for Black Friday.

“The platform automates container-based architectures.”

 

OpenShift is one way of deploying Kubernetes. In OpenShift, Kubernetes is combined with a number of other services that are often required in agile and DevOps oriented environments.

In this way, OpenShift is able to realise the dream of most IT environments – a coherent, integrated programming process. OpenShift also allows for multiple, separate, independent CI/CD processes and the necessary support around Kubernetes such as image administration, build tools, monitoring and consistent security across all the services.

That’s why we in Basefarm are working more and more with Kubernetes on OpenShift – to help our customers make the most of their multi cloud environments, develop and deploy quickly, in a safe way.

From application to container

So, what about the pathway from application to container?

Here too OpenShift helps in several ways. One of these functions is called source-to-image (S2I). OpenShift stores the containers for you based on S2I recipes available for all the most popular languages and frameworks.

Supporting technologies such as message queues, databases and so on are also supported in OpenShift via the Service Catalog. These can be provisioned outside of OpenShift, for example in AWS, but at the same time be tied to your application and controlled from OpenShift.

Want to know more about Continuous Dilivery, read the blog post “How to move mountains – our road to continuous delivery” here

Author: Andreas Skoglund, Solution Architect, Basefarm

Andreas Skoglund is a solution architect at Basefarm. He describes this as a creative and varied job that mostly revolves around designing and developing technical solutions for solving customers’ dilemmas. His leisure hours are taken up with programming for fun, home automation and building an overcomplicated home network.

Web Security Vulnerabilities and How to Fix them

Wondering how to fix web security vulnerabilities? Scan regularly with tools like Detectify, do in-depth fixing and establish a security directed culture. This is easier with DevOps tools.

CIOs don’t know what DevOps is

‘DevOps is not an IT platform but a culture: that’s where it often goes wrong’

It seems that only one of every ten innovative software projects sees the light of day, despite CIOs setting up agile DevOps teams that develop new functionalities at a lightning pace. ‘CIOs have the world at their feet, but become the victim of their own success,’ says Jan Aril Sigvartsen of Basefarm.

How to move mountains – our road to continuous delivery

Developing an agile culture to achieve a faster time to value is more about the people, and how you approach the problem, than what techniques you apply.

An app in a day

Is building “an app in a day” realistic? It is possible, according to Martin Eliasson Jäger, developer at IT Huset in Stockholm “If you have planned your web application infrastructure well, you probably can be up and running in only one day”.

Faster time to market with automated workflow

In order to improve your innovation speed, you have to be willing to jump on concepts faster than you have done before.

How does digital transformation actually work?

To master digital transformation in your business and put data-driven business models into practice, a digital mindset and comprehensive empowerment originating with corporate management is required.

Unikernel technology versus Containerization

You may have heard of unicorns, but have you heard of unikernels? IncludeOS is a compact tailored operating system, developed in Norway and tested in one of Basefarm’s Data centers for over a year.

7 success factors to boost digitalization with multisourcing.

With a clear vision for their digital residents, Stockholm suburb, Nacka, has chosen several operating partners to enable future growth.

Ready to speed up your development?

DevOps and Microservices are not new concepts within IT but these aspects of the development process are not often applied. “Really a shame,” in the opinion of Basefarm’s Bent Terp, “because combining DevOps and Microservices yield benefits in a wide range of areas.”

Dev+Ops= development synergy

DevOps revolves around intensive collaboration between software engineers and other IT specialists within a company, resulting in more frequent and faster implementation. To get the highest benefit, applications should not be built as large monoliths but as a suite of smaller, independent components (aka Microservices).

DevOps however is not a product: after all, you can’t buy it anywhere.

“DevOps is much more a culture, a mindset within organizations,” says Terp.

And he should know: as Senior Solutions Architect at Basefarm he has to deal with numerous IT challenges and development methods.

The elusive trust culture

“DevOps relies on a culture of trust ‒ trust in the talent of your team,” Terp explains. “DevOps is only feasible with teams that encompass all the requisite skills at the development as well as the operations end.”

It sounds easy but it’s not. Terp: “We’re not simply dealing with technologies but also with the processes and the people who have to execute the processes.”

For many companies ‒ and their staff ‒ this way of developing software requires a radically different mindset.

Microservices are a developer’s best friend

Developers are responsible for communication with other teams as well as their own piece of code. An advantage of working with Microservices is that each team can work in the language they prefer.

“Everybody can do it their own way in the programming language they know best with their own release cycle,” Terp explains. “There’s no waiting around for everybody else.”

Faster time-to-market

By making it possible to work on smaller pieces of the overall system independently of the rest, microservices enhance the efficiency of software development.

Terp: “One of the largest Nordic banks had a situation where it took ten weeks to find out if a piece of software actually worked; now with DevOps on OpenShift it’s only a matter of hours, considerably reducing the time-to-market.”

More results in less time

And where a piece of code used to pass through many different, isolated teams as it travelled through the entire pipeline ‒ from development through testing and quality assurance to deployment ‒ DevOps and Microservices have made adjustments less dramatic and hence significantly shortened cycle times.


About Bent Terp, Senior Solutions Architect in Basefarm Group: An enthusiastic Linux user for more than 30 years, Bent has designed and operated solutions for credit-card processing, e-health and video streaming services. His current focus is the adoption of public-cloud services and container-based microservices to increase innovation speed and quality.

Would you like to know more? Read more about OpenShift-as-a-Service, Microservices and DevOps here.

Contact us for more information.