Skip to main content

Posts

What is a Microservice?

Business requirements are not static.  The rate of dynamic change for new evolving business needs is increasing as you are reading this blog.  The traditional software development practice for building one big honking monolithic program to provision services is not applicable to the explosion of need. This old way of thinking and deploying is not conducive to Agile.   To understand a microservice let’s first start with our traditional view point.  For this purpose, let’s say that you want to build a “Self Service Catalog”.   To make this seemingly complex service less complex let’s break it up into many microservices.   For example; one microservice might be for “Creation of Online Account” another for making a selection from the “Service Catalog”.  One might be to “Select Payment Method” and yet another microservice for “Invoicing” and so on.  These are many microservices or sub-services that will eventually be connected via Application Programming Interfaces. These microservices

Artificial Intelligence - Neural Nets

Artificial Intelligence (AI) is on the move and the race is on.    In previous years, and for the most part even today, AI has been dominated by the worlds high tech companies like Google, Microsoft and Amazon.  Regardless of where you work or the size of your business, the industry is starving for more information and true knowledge management.  AI goes beyond knowledge management and moves us into knowledge engineering. As found in an  MIT Technology Review article , Microsoft has its own AI-powered cloud platform.  You may have heard of Azure.  This team is joining with Amazon to offer Gluon.  It is an interesting name. I don’t know its origin, but it is essentially an open-source deep-learning library. Gluon is supposed to make building neural nets – a key technology for AI that crudely mimics how the human brain learns – as easy as building a smartphone app. It is no longer just a high-tech game.   With the onslaught of cloud services, any/all service providers (includin

ITSM for DevOps - Development “Divas”

What is your biggest challenge when trying to increase the flow of work through your DevOps or Continuous Delivery Pipeline?   In a recent conversation an IT Director laughingly said that his greatest challenge was that they can not get the development “Divas” to recognize that change approval and compliance requirements are necessary and that it takes time. I chuckled as I thought to myself what those development “Divas” were thinking.   Maybe their thoughts were that those paranoid risk adverse Change and Compliance process people do not understand that we need to get this work to the finish line and we need to go fast.  Sound familiar? This is not an uncommon issue.   The us-vs-them environment, if not corrected, will continue to disrupt IT service delivery and therefore, business performance. We must recognize that DevOps and Continuous Delivery (CD) do not stand alone.   It is not just the tools and automation and, although it is more about culture, it is not just cu

DevOps Testing vs Traditional Testing

Appropriate testing is THE differentiator for high performing IT organizations. What is the Same? Tests need to be classified according to the attributes of the system or the product that is to be tested.  Test types include: Unit Test - This is a method that validates that the code statements satisfy assertions. Static Code Analysis – Testing that checks source code logic and consistency.  Static testing evaluates code against development standards and guidelines. Code execution is not required. Dynamic Analysis – This type of testing might also be referred to as “Functional Testing”. In this type of test, code is executed against positive and negative functional scenarios. Code Coverage – Measures the percentage of relevant lines of code tested. Integration Test – This form of testing will help to determine if code changes work after a code merge.   Integration testing may also be referred to as smoke test, sanity test or build test. Compatibility T

DevOps Test Monitoring Strategy

The combination of continuous monitoring with continuous testing and analytic tools can provide a broader strategic view of test results.  This view is necessary to collect, aggregate and organize test data that enables a gain in confidence for each release.  Key Concepts for Realizing Your Test Monitoring Strategy: Determine continuous test monitoring priorities: Some examples of problems that continuous test monitoring can help with include intermittent failures caused by marginal designs, marginal test designs, environmental condition changes not detected by individual tests, memory leaks, varying starting conditions, interactions with other systems, system topologies and performance degradation within the margin of a test. These can and will accumulate over time. The best practice for continuous monitoring indicates that the problems of most concern to a specific product or DevOps environment will be monitored. Regression test product areas even though there were no expe

DevOps Metrics – Time vs. Cost

There are three main principles that will help to optimize your DevOps initiative.  You may have heard them referred to as The Three Ways . All three of the principles will have a role to play but for the purpose of Time vs. Cost, I would like to focus on the first way which is “The Flow of Work from Left to Right”.  When considering this flow of work think of the value stream from left to right as being from the time the request is made until the time that value is realized. Using LEAN methods and applying techniques like the Theory of Constraints we can increase velocity to apply just the right cadence to meet the evolving business demand.  These practices along with our DevOps integration, Continuous Delivery Pipelines and automation will radically increase the time to value for products and services.  Time is a key metric.  DevOps organizations use “time” as the primary measurement tool.   Why time is a better metric than cost: Time is used to set goals beyon

Flow of Work

Agile Software Development is very well known and practiced in most organizations today in order to respond quickly to the ever increase in demand for IT Services.  Many of these organizations, while making some improvement, are not seeing the outcomes they had expected.  Why is this?   We are applying Lean methods, cycle time is increasing and yet, unplanned work, delays in deployment and unstable production environments remain. Consider the time from idea to delivery as the “ Value Stream ”.  Through this Value Stream, we want to increase the “Flow of Work”.   We will never see the type of optimization that is required unless we look at this Value Stream as a whole.  Applying Agile, Lean, and even tools in development without integrating Change, Security and Operations will break down and decrease the Flow of Work. DevOps helps with this idea.  Many companies, both large and small, are attempting to integrate the development and operations teams.  We have cloud services an