Is DevOps in banking possible?

by Piotr Stapp

Piotr Stapp

Is DevOps in banking possible?

But ...

IT vs Sport

  1. Tennis, swimming, runners, ... - we aren't alone
  2. Football - no many goals in the match
  3. Handball - who is "goalkeeper" in IT?

Basketball

Basketball is a sport [...]. The objective is to shoot a ball through a hoop 18 inches (46 cm) in diameter and 10 feet (3.048 m) high mounted to a backboard at each end.

Main rule

We are wathing Top 10 Long Distance Shots of 2011-2012!
----------
Why? Because DevOps is like a Basketball.
We want to take a ball and put into the basket.
The objective is to install software on production :)
There is many ways to achive that. For example throwing from the long distance. Like guys above. Just throw, cross your fingers and you are ready :)

Quater 1: Statistics

skip quater

In every professional sport, we can browse stats. To view the history of a player, team or even a coach.

To ask questions like:

  • Do he or she perform well?
  • Why is the team A better?
  • Which players have problems? And much more.
  • Even maybe why Athletico win with Barcelona in Champions League?
In IT system situation is similar. But instead of statistics we have logs.

Why do I need log aggregator?

  1. Easy to browse log - there are in one place
  2. Easy to correlate - there are in one place
  3. Easy to browse history - it is in one place
  4. Make alerts - if platform supports
  • Logs are a critical part of any system, they give you insight into what a system is doing as well what happened
  • Virtually every process running on a system generates logs in some form or another.
  • Usually, these logs are written to files on local disks.
  • When your system grows to multiple hosts, managing the logs and accessing them can get complicated.
  • Searching for a particular error across hundreds of log files on hundreds of servers is difficult without good tools.
  • A common approach to this problem is to setup a centralized logging solution so that multiple logs can be aggregated in a central location.

Splunk VS ELK

Most popular logs aggregators in onsite model are:
Splunk - It's a very powerful, mainly on-premise solution. More or less very expensive :)
If you only want a "supergrep" command it is probably a wrong choice

ELK - License fees not incurred, but you'll end up spending $ on building various features because ELK doesn't have them. It is a "supergrep". Rest you will have to do by your own

About the rest - I don't know. I never used them.

Logging SaaS

Top 10 from
http://stackshare.io/log-management
If you could use it, you will save probably time and money. There are a lot of them.
Check your needs and decide to use one. Because it is a SaaS it is easy to change to better one :)

Log aggregators

Demo time

Something more?

  • Business queries - for example, I created dashboard with information how many PB users started new application in time period
  • Alerts - I set up an everyday query about interesting events. They can be real-time
  • Data analytics - how your system performs in comparison to last year/month/week

Quater 2: Server&Release automation

Lots of services + frequent deployment = a global headache

skip quater

Do I need a deployment tool?

"It depends" is the best answer

Example simple tools:

Config hell

How to manage configuration for 3+ different environments:

Tokens

One more approach

<add name="ContractX" path="Something/ABC" server="${AppsrvName}" 
     port="${Core_port}" binding="TCP" 
     serverThumbPrint="${AppSrvServerThumbPrint}" 
     clientThumbPrint="${AppSrvClientThumbPrint}"/>

+

<AppsrvName>XYZ.mbank.pl</AppsrvName>
<Core_port>8888</Core_port>
<AppSrvServerThumbPrint>29[...]76</AppSrvServerThumbPrint>
<AppSrvClientThumbPrint>98[...]84</AppSrvClientThumbPrint>

=

<add name="ContractX" path="Something/ABC" server="XYZ.mbank.pl" 
     port="8888" binding="TCP" 
     serverThumbPrint="29[...]76" 
     clientThumbPrint="98[...]84"/>

Lesson learned

Config managment can be easy. Just try!

Quater 3: Version control

skip quater

Why should I use version control?

  • Lost code or had a backup that was too old?
  • Had to maintain multiple versions of a product?
  • Wanted to see the diff between versions?
  • Wanted to submit a change to someone else's code?
  • Wanted to share your code?
  • [...]

DB with VCS?

In most cases all questions from previous stuff apply to databases.
But a lot of SQL code is not (full) in VCS.

DB with VCS - tools

A few examples:

DBA survey

Question: how DBA answer to changes in the third step:

Lesson learned

No matter how:

remember: DevOps is about people and trust

Quater 4: Deploy

skip quater

How to deploy? - tools

More tools

Versus

Lesson learned

Solve existing problems with the best tools.

Overtime: Service discovery

skip overtime

The problem

The Client-Side Discovery Pattern

The Server-Side Discovery Pattern

The Service Registry

Consul.io

Lesson learned

Invite me in the future :)

Players: References

Questions?

Few links: