Containers: Power & Scale

by Richard Hands, Technical Architect

In my last blog post, we looked at the background of Containers. In this piece, we will explore what they can do and their power to deliver modern microservices.

What can they do?

Think of containers on a ship.  This is the most readily used visual analogy for containers. A large quantity of containers, all holding potentially different things, but all sitting nice and stable on a single infrastructure platform, gives a great mental picture to springboard from.

Containers are to Virtual Machines, what Virtual Machines were to straight physical hardware.  They are a new layer of abstraction, which allows us to get more ‘bang for our buck’.  In the beginning, we had dedicated hardware, which performed its job well, but in order to scale your solution you had to buy more hardware. This was difficult and expensive. Along came Virtual Machines, which allowed us to utilise much more commoditised hardware, and scale up within that, by adding more instances of a VM, but again, this still came with quite a cost.

To spin up a new VM, you have to ensure that you have enough remaining hardware on the VM servers. If you are using subscription or licensed operating systems, you have to consider that etc.  Now along comes containers. These containers literally contain only the pieces of code, and libraries necessary, to run their particular application. They rely on the underlying Infrastructure of the machine they are running on (be it physical or virtual).  We can typically run 10-20x more containers PER HOST than if we were to try putting the same application directly on the VM, and scale up by scaling the number of VM’s.

Orchestration for power

Containers help us solve the problems of today in far more bite-sized chunks than ever before.  They lend themselves perfectly to microservices.  Being able to write a microservice, and then build a container that holds just that microservice and its supporting architecture, be it spring boot, wildfly swarm, vertex, etc., gives us an immense amount of flexibility for development.  The problem comes when you want to orchestrate all of the microservices into a cohesive application, and add in scalability, service reliability, and all of the other pieces that a business requires to run successfully.  Trying to do all of this by hand would be an incomprehensible challenge.

There is a solution however, and it comes in the form of Kubernetes.

Kubernetes is an open-source platform designed to automate deploying, scaling, and operating application containers.” (http://kubernetes.io)

Kubernetes gives us a container run environment that allows us to declaratively, rather than imperatively define our run requirements for our application.  Again let’s look back to our older physical or VM models for the imperative definition:

“I need to run my application on that server.”

“I need a new server to run my application on, and it must have x memory and y disk”

This approach always requires justifications, and far more thought around HA considerations such as failover, as we are specifying what we want our application to run on.

Most modern applications, being stateless by design, and certainly containers, don’t generally require that level of detail of the hardware that they are running on. They simply don’t care as they’re designed to be small discrete components which work together with others.  The declarations look more like:

“I want 10 copies of this container running to ensure that I’ve got sufficient load coverage, and I don’t want more than 2 down at any one time.”

“I want 10 copies of this container running, but I want a capability to increase that if cpu or memory usage exceeds x% for y% time, and then return to 10 once load has fallen back below z

These declarations are far more about the level of application service that we want to provide, than about hardware, which in a modern commoditised market, is how things should be.

Kubernetes is the engine, which provides this facility but also so much more. For example with Kubernetes we can declare that we want x and y helper processes co-located with our application, so that we are building composition whilst preserving one application per container.

Auto scaling, load balancing, health checks, replication, storage systems, updates, all of these things can be managed for our container run environment by Kubernetes.  Overall, it is a product that requires far more in depth reading than I can provide in a simple blog post, so I shall let you go and read at http://kubernetes.io

Last thoughts

To conclude, it is evident that containers have already changed the shape of the IT world, and will continue to do so at an exponential pace.  With public, hybrid, and private cloud computing becoming ‘the norm’ for both organisations, and even governments, containers will be the shift which helps us break down the barriers from traditional application development into a true microservices world. Container run systems will help us to break down the old school walls of hardware requirements, thus freeing development to provide true business benefit.

Follow Richard Hands on Twitter to keep up to date with his latest thoughts.

Containers: Why the hype?

container-2879154_1920

Now you might be wondering ‘why all the hype’ about containers?  The truth is you probably got to this blog from a container without even knowing it. As far back as May 2014, Google were proudly announcing that ‘Everything at Google runs in a container’.  Your searches, Gmail, Calendar, apps, all of it. In 2014 Google was starting over 2 billion containers a week, which if you do your maths, averages out at over 3,000 containers started per second!  And that was in 2014, can you imagine, with the growth of the mobile phone market, how many containers they start per second now?

Containers aren’t exactly new anymore, but they’re definitely a buzz-word of the moment. They are of extreme importance in both our industry, and to the IT world at large, so let’s take a look at where they came from.

Where did they come from…

Containers started back in the early noughties, when Google donated the cgroups technology to the Linux Kernel and it was accepted.  Combining the segregation/aggregation capabilities of cgroups with network namespaces, and LXC or LinuX Containers were born.

Containers back then, however, required an expert level of tech knowledge to utilise, and sat on the back burner until start-up company Docker was formed. Docker took the approach of creating a standardised API, and promoted ease of use to the community to build libraries of containers which were portable. This is when container technology really became accessible, interesting, and started to grow.

Why they are cool…

The true power of any technology to become fully utilised in the market is for it to seamlessly replace older ways of doings things, without the major populace being aware. Containers have definitely fit this bill at Google, and many other companies around the world are doing the same.

 

I’ll be touching on what Containers can do and the orchestration for power in my next blog piece. Follow Richard Hands on Twitter to keep in touch.

Game, set, match!

Off we go… 3 workshops, 31 teenagers, 100 post-its, 60 Sharpies, bundles of energy, and ideas and innovation to bounce off the wall.

Wow, it was a great day at #DigiInventorsBootcamp at CitizenM in Glasgow, the final stage in the #DigiInventorsChallenge, in association with Andy Murray and the Digital Health & Care Institute, to create a new digital health innovation.

When you ask a teenager to join a bootcamp to help them develop a pitch that could sell their idea to Mark Zuckerberg, that’s quite a workshop to organise for 45 mins. My task was to get our young Digi-Inventors to think about design thinking, or whatever you want to call it, service design, UX, prototyping, role playing.

Partnered with the Glasgow School of Art, I got the pleasure of working with Sneha Raman, a Research Associate at the art school. When we first discussed the idea of the workshop we both agreed that the first thing to do was look at how we can help a group of teenagers learn innovative ways of working that will change their view on IT and on how digital experiences are created (putting people and context first). We wanted to give them the creative confidence to look at creating a digital solution a little differently. It wasn’t about a PowerPoint presentation telling them what to do – we needed a hands-on approach giving the team a meaningful experience using design thinking.

In case you haven’t heard what design thinking is, it’s about taking a human centred approach to accelerate innovation. In fact, IDEO (leading the way) sum it up rather nicely…

“Taking a human-centered approach to translating ideas into tangible strategies and offerings. Design thinking accelerates innovation, helping create better solutions for the challenges facing business and society.”

Design Thinking is something Sopra Steria has been focusing on for the last four years and I wanted to translate the experience and the knowledge we have across our business into an energising and practical workshop. Sharing how IT can create an incredible impact on citizens, employees and organisations using design thinking techniques with the Digi-Inventors was a great privilege.

So what did we do in the workshop?

We created a scenario to work from around promoting healthy ways to commute to and from university. Thinking about who and what people do at university and their everyday lives, the students had to:

  • create profiles of different people
  • map out stories in context of their lives
  • put in context the positive and negative experiences they have throughout a day

 Using this knowledge and insight, the students then looked at different ways to travel and what could enhance their experience, using the data that they had gathered on people. Very quickly, we prototyped and mapped out the experience using props. We made it real, fast. This was the best way to learn what works, and what doesn’t.

As the 45 minutes drew to a close, the teams had to think about their pitch, how would they communicate their idea? They didn’t pitch the technical idea using a cool piece of tech, they pitched an entire experience, a service, and the impact it has on changing someone’s life for the better. They shared outcomes and they shared WHY they are creating a better experience.

Hearing their great storytelling at the end of the workshop gave me that fuzzy feeling inside that we achieved creative confidence in the Digi-Inventors.

Good Luck Digi-Inventors!

Find out more about Sopra Steria’s experience in design thinking and service design, and about the inaugral #DigiInventorsChallenge and the six shortlisted teams.

Everything is connected. Don’t innovate in isolation

…These are the words Alberta Soranzo left the audience with as she drew the final keynote speech of this year’s UX Scotland conference to a close.

Alberta, who was recently appointed Director of End-to-End Service Design at Lloyds Banking Group, strives to make a real impact on the financial outcomes of people by taking a look at both the big picture as well as focusing on the very small things, which she believes ‘matter a lot’.

Alberta stressed the importance of nurturing diverse talent and stated that it is vital to foster a culture of continuous learning within a design team. This is something that resonated with me as a culture we are striving to cultivate here at Sopra Steria — through hiring a diverse range of people from a whole range of different backgrounds and with differing areas of expertise. However, most importantly, each of these individuals share a desire to learn and continually improve. This allows the design team to avoid the previously mentioned isolated innovation which Alberta warned about and work as a team to grow and develop.

Those who attended UX Scotland may well have met the various members of the Sopra Steria team who were there – either during the various workshops and seminars on offer or at our stand in the foyer. Some may even have entered our interactive competition which invited people to ‘step into out customers shoes’. Through sponsoring the stand we were afforded the chance to speak to a whole host of interesting people during our time at the conference, including a couple of people who have since interviewed for and accepted roles within the Service Design team at Sopra Steria.

Over the course of the three day conference we got the chance to experience a number of great talks by a range of different speakers. We were given the opportunity to hear from leading industry experts such as Jared Spool and Dana Chisnell. We were also able to take part in the various workshops on offer which allowed us to develop our existing skills as well as learning new ones.

With many of the talks and workshops occurring at the same time, there were understandably frustrating moments where we were unable to attend all the talks that we would have liked to. Thankfully, with so many members of the team present at the conference, we were able to minimise the effects of timetable clashes by spreading ourselves across the events which occurred at the same time. By taking notes during each session, team members were able to report back and share their knowledge with the team who were unable to attend.

Our Service Design team listening to Jared Spool’s keynote speech
Our Service Design team listening to Jared Spool’s keynote speech

 

This notion of shared knowledge strikes right to the core of what Alberta Soranzo was talking about during her Keynote speech. By avoiding innovating in isolation, and looking at development at a wider level, it allows the team to grow and develop their skills at a greater rate.

By allowing everyone to benefit from the knowledge gained at events like this, we help cultivate the culture of continuous learning and as the old adage goes, allow the team to become more than the sum of its parts.

What do you think? Do leave a reply below or contact me by email.

The value of consistency in design

At Sopra Steria, the core of my role is to make everything that’s designed more consistent.

All our outputs are designed in some way, whether it’s research, documentation, bids, UI designs, diagrams, presentations or social media. Everything that’s seen by other people is part of our brand, all holding a consistent type of messaging (written or otherwise). This is especially important to consider when we are presenting to a large audience, within key sales or when we’re working with our client’s brands.

Why is design consistency important?

Recently I attended UX Scotland, where I enjoyed a talk by Andrew Purnell, a designer from the London and Glasgow based agency Snook. He shared my view that often on projects, following a consistent brand can be forgotten, with information and styles that do not look or sound like they come from the same company. This can lead to a confusing journey for whoever happens to be using the service, as screens that look and behave differently are not easy to use and do not feel connected.

This can also apply to other media or documentation. Think of two pitches that are from similar companies with a similar approach. One is written by several different authors all with a different style, and with diagrams scanned from several external sources. The other has been designed to have any image or diagram with the same branding, for the messaging to sound consistent though the authors are different. Which is more likely to hit the mark?

Design consistency reduces this confusion and creates a feeling of familiarity, providing reassurance and building trust.

Designing a consistent service

When we’re working on projects, we can think about the wide range of outputs that will come into contact with people as they use the site or system. Service design considers customer journeys from the first to the last point of contact, and takes into account all touchpoints that they may interact with, such as websites, call centres, emails, letters, social media or downloads. Will the service look and feel the same on the homepage, sign-up or email they receive?

Designing systematically

One way to increase consistency throughout each output is to implement a Design System that covers the guidelines for as many of the areas that people will see as possible, combining branding, content strategy, marketing and digital design. For a company, they can provide consistency across an entire range of touchpoints including branding, blog posts, Twitter messaging, business cards, iPhone apps, websites and email signatures. They can also include all the specific detail that makes up the site or system, such as tone of voice, imagery, colour palettes, type styles and (coded) component parts.

“Be consistent, not uniform” – Gov.uk design principles

As well as including everything that makes up the product or service, Design Systems are adaptable and easy to change, which makes them very effective across teams, and throughout a project lifecycle. They can be constantly updated and linked to the latest version of each output, so the project and ultimately the customers are always kept up to date.

To find out how we can help you to design your service consistently, please leave a reply below, or contact me by email.

___

Some excellent examples of design systems:

IBM’s Carbon Design System – http://carbondesignsystem.com/

Atlassian’s Design System – https://atlassian.design/

Judging the young Inventors for #DigiInventorsChallenge in association with Andy Murray and the Digital Health & Care Institute (DHI)

There has been huge excitement in the Sopra Steria Scotland camp recently as we eagerly opened the entries sent to myself, Emily Walters and Graeme Harvey who were picked to be part of the judging panel for the Inaugural Digital Health and Care Challenge 2017.

Teenagers across Scotland are competing in the #DigiInventorsChallenge, giving them the chance to develop a new invention that will transform health, fitness and wellbeing amongst the nation’s young people using technology. The ideas include everything from fitness apps, gaming controllers and online challenges.

The winning team will see their idea come to life through the Digital Health & Care Institute’s innovation model as well as developing the skills and experience needed to make their idea a success.

I am sure the experience will stay with the winners for a lifetime and set them on their way for careers within digital health.

The role of the judges was to critically evaluate the submissions and decide on a shortlist of six teams that will bring their ideas to life at #DigiInventorsBootcamp.  We were all extremely impressed with the original and innovative ideas we received and we carefully considered the following elements when making our blind judging assessment;

  • What is the idea and how will it work?
  • What health and care problem does it solve and why is that important?
  • How does the idea apply to digital technology
  • Why would people want to use the idea and what benefits would it bring?
  • What design and manufacturing problems may occur, is there an outline of a business plan?

When I originally started talking with DHI about being part of this challenge there were three key reasons why I wanted to get involved:

  1. The challenge offers the #DigiInventors insight into a career in tech
  2. Working with young people and gaining powerful user research in their concerns on health and care and how digital services can transform outcomes
  3. Bringing the winning idea to life and working with the DHI to see the design developed and commercialised

Now the shortlist has been issued and so many different ideas have been generated I can see how powerful this kind of engagement is in getting young people to develop creative and entrepreneurial skills.

The next step is planning for the #DigiInventorsBootcamp where we’ll be meeting with the finalists to help take their ideas to the next stage. I’ll be back with more on this later in the year!

See more about Sopra Steria’s involvement with this great initiative.

“AI Neutrality”: A proposed manifesto for artificial intelligence user experience design

What makes a great artificial intelligence (AI) driven user experience? Here are my thoughts…

1. Design AI services end to end – the disruptors that have transformed the travel, holiday and retail sectors over the last twenty years succeeded by focusing aggressively on improving their own single channel online experience. AI user experience design must also adopt this strict one channel approach to service delivery – every user journey should be simple, relevant, no fuss and always getting better because it’s being delivered by an artificial intelligence end to end.

2. Go beyond mobile  The interconnectivity of AI enables any environment or physical object to positively affect all of our five senses (such as connected home technology like heating and lighting devices that responds to a user’s mood). AI design should always be pushing to transcend the user interface constraints of existing service platforms (particularly the visual and audio experience of mobile) to truly reflect and improve how we use our senses to interact with the world around us.

3. Addressable media is a key user journey –  AI has the potential to utilise a complex range of historic and contextual customer data to deliver targeted, personalised advertising – for example, UK broadcasters are adopting programmatic technology to deliver specific adverts at individual households in real time. Yet if designed poorly such disruptive engagement risks coming across like hard selling that overwhelms or irritates a customer (consider the negative reaction of customers to pop up web ads that apply a similar approach). Consequently, it’s vital that AI driven addressable media is treated as a form of user experience that requires research, design and testing to ensure customers are empowered to consume it on their own terms.

4. Hardwire ethics and sustainability –  the positive disruption to our lives from social media has enabled these services to grow rapidly and organically by billions of users worldwide. Yet this has also led to these platforms becoming so big it’s challenging for their service providers to effectively manage and safeguard the user content they share. Drawing from this experience, and combined with public calls for the proactive regulation of AI, it’s essential artificial intelligence products and services have the right ethics and sustainability values in their core design as they are likely to grow even faster and bigger than social media.

5. Champion “AI Neutrality” – artificial intelligence has the power to transform all our lives like the internet before it. A fundamental principle driving the success of the web has been “net neutrality” – that internet data services should be supplied as a form of utility (like electricity, gas, water) in a non-discriminatory way to all customers. Access to simple AI services should be similarly “neutral” – a basic human right that is complemented by differentiated, chargeable products and services from over-the-top producers.

If you would like more information about how artificial intelligence can benefit your business, please leave a reply below or contact me by email.