Microservices in a COTs and SaaS world

Tags

, , , , , ,

Moving my recent blogs on Microservices (Microservices & UIMicroservices) forward a bit further as a result of discussing the ins and outs of using the paradigm. Microservices as the very name suggests is the polar opposite of most COTs and particularly ERP solutions which are pretty much modularised monoliths.

It raises the question of can Microservice Architecture (MSA) deliver any benefit in this situation where buy dominates over build. I believe the answer is to an extend yes. Many consider MSA to be SOA++ although I’m not sold on this MSA does exhibit what has been referred to as Service Oriented Integration (SOI) characteristics. That is the key is not the pure service ideas that you would get if you applied the recommendations of Thomas Erl.

The difference between SOI and SOA is that SOI focuses on things like interface contracts and pulling components together (regardless of whether they embody SOA ideals). Where as SOA focuses more on the business process and capability composition. How components are pulled together is an area where MSA has a strong position.

Where SOA and to an extent SOI would need an ESB (or ESB like) platform to perform the business rules and decisioning we should be keeping the intelligence out of the ESB. You will probably still want an ESB or event registration framework so that all services can register to receive events and react as necessary – I.e. Pure pub-sub model.

One of the SOA patterns for dealing with monoliths was to promote the idea of wrapping such services with a SOA abstraction tier so that you can replace the ERP, build out custom capabilities etc.  does this hold true friends a MSA approach. I would suggest yes, but rather than the purity of SOA the abstraction should be aiming for the goals of SOI and simplification both in the ERP interaction, but also moving orchestration intelligence out of an ESB into the services.  You can seen a Genesis of this potential with Oracle’s Cloud Adapters whose base framework aims to simplify the integration.

So what might be he benefit of building the Microservice layer?  We know MSA exchanges code complexity in the service for agility in service delivery. But when there is a monolith behind the services do you gain anything?  The answer is potentially, but will be very dependent on the monolith and ESB. For example if you can actually patch your monolith quickly and easily I.e it doesn’t have  huge dependency chains and deployment capabilities such as Oracle EBZ 12.2 includes improved deployment framework that reduces or removes downtime. Like wise if the middleware is exploiting the best of SCA (as offered by Oracle SOA Suite) and or an OSGi container such as Apache Karaf then the benefits start to become more marginal. It becomes more a devil you know style of debate.

Microservice UI Positioning

Tags

, , , , ,

Last week I was fortunate enough to attend RedHat’s day in London on Microservices. There were some great presentations and some ideas that are both simple and potentially very effective. It wasn’t a simple Microservices solves everything get into out tech stack, there was some reality checks as well.

The challenge I have been unable to square up yet, is the idea that each Microservices would have its own UI.  On the surface, it makes a lot of sense, after all the UI needs to reflect the capabilities of the service.

The challenge comes in the form, that a User Interface needs to have consistency across the board. Yes, many will immediately point to CSS., which undeniably provide a level of consistency. But UI needs run a lot deeper. Let me point out a couple of illustrations of this:

  • Recent switch to web interfaces reflecting the new ‘flat’ visual format
  • Adoption of app on a page through AngularJS
  • Lots of illustrations can be seen at elegant Theme

This goes beyond CSS3 in many cases, but the libraries being used – so impacting development. Now here is the rub, the backend service functionality won’t change but the UI implementation will and needs to be deployed consistently across the board in one go for B2B and critically for B2C. You can destroy a good product with a poor UI and sell a rubbish app with a good one. All of which would mean deploying updated all Microservices at once if they embody the UI. The linking of all the Microservices like this is completely contrary to the goals of agility driven the Microservices strategy.

Add to this, the Microservices approach promotes a DevOps approach, yet organisations may only employ 1 or 2 real user experience specialists rather than  try and spread them across multiple service teams it maybe better to focus them into one or two service teams that just build the UI.

Which kind of leads me to the argument that I would suggest that your UI is a separate service or small group of services to the core functional side of things. So those PR driven website overhauls, and revisions to match user experience expectations can be done without impacting the core capabilities, demanding a total regression test and locking your entire set of services into a unified release cycle.

Citizen Integrators – Excel for Integration?

Tags

, , , , , , , , , ,

Over the last year or so I have been looking a lot at technologies that Gartner and others have branded as ‘Citizen Integrators‘ – products such as Dell Boomi, and the recently launched Oracle Integration Cloud Service.  What I believe we are seeing is the appearance of a product family that in many respects will be to Integration what Excel has been to Finance systems.  This is to say that Finance Systems such as large ERPs tend to be changed slowly when it comes to introducing process changes, but users can get reports easily to extract data into their Excel spreadsheets.  We have the old joke that organisations finance can end up being run on Excel (http://www.wired.com/2014/03/many-spreadsheets-take-run-fortune-500-company/).

So don’t get me wrong,  I’m not saying these tool are evil and should be banned or the such like, as such thinking is utter folly.  I am looking at the quote much attributed to Spiderman (Stan Lee) but has been traced back to Voltaire:

With great power comes great responsibility

Why do I use this quote, well my experience (and that established by many others) is that with ease and agility comes a quick answer rather than a well thought out answer. That ease can be through cost (how many times have organisations discovered key systems solutions being run off someone’s desktop stuffed away in the corner of an office because they have been able to cheaply acquire the hardware and software get setup and then had viral adoption).

cityIt is therefore beholden on those of us that understand the challenges of integration should be seeking to help our ‘citizens’ appreciate (not lecture, brow beat etc) the implications and some intelligent governance to ensure systems are not accidentally ‘poisoned with unexpected data’ and you don’t fall foul of legal obligations.

The biggest challenge, is for SME’s to ensure that their colleagues within the IT organisation who face into the business organisation understand and promote the right thinking. After all, developers and architects alike, think like all drivers -that they’re at least above average if not good drivers – after all why would we be in the job?  But to set the average we can’t all be in that place (http://www.psychologicalscience.org/index.php/news/motr/when-it-comes-to-driving-most-people-think-their-skills-are-above-average.html).

This of course also touches upon the arguments with Gartner’s bi-modal approach to IT, such as those presented by Jason Bloomberg. Personally I believe pace layering is right, but bi-modal thinking can create opportunities for things to be done badly – not an absolute certainty, but to work needs some strong hands trusted by organisational executives to steer successfully – something that  seems rather rare.

Do we really need a an app for everything?

Tags

, , ,

It is fascinating despite the fact that HTML5 and CSS3 give us very good user experience, when it comes solutions that largely push or marketing channels where caching has limited benefit there is still the ever growing perceived need to produce mobile apps. There are some great images which compares  Facebook as an app vs Facebook as a web app.

 So, if the labels didn’t give the game away then, you’d be looking for the tell tail signs of the browser – icons at the bottom of the page.
So the question begs, why build the mobile app and the mobile capable web app?  The argument that the web app requires less traffic as you’re not downloading all he graphics has only limited credence as you have to pull all of this down with the app to start with. The browser will cache a lot of the content if you let it. Good web apps will make use of AJAX or Sockets to ensure only necessary content is retrieved so your download is going to be limited.  The offline argument doesn’t work as you’re trying to provide current content.

To be honest, I think a lot of the answer comes down to a couple of simple factors:

  •  is rather simple, a mobile app will find it easier to retrieve more information about the user
  • There is the mentality of I’m not a ‘digital’ player if I don’t have an app, and who isn’t going to challenge this?

So should we be pushing for OS providers to make it easier to install launch icons from your device (it is do able already but not in your face obvious).  But also allow web apps that are designed to work well on mobile devices to be certified and listed within their stores. Perhaps even offer a configuration shell that setups a desktop link as if an app has been downloaded.

Doing so should take the burden off the app stores! may not benefit beyond a small download bandwidth, but has to be good news for Apple and others.


Microservices

Tags

, , , , , , , ,

Microservices are a hot topic at present. But microservices is neither a standard or a specific technology. Like REST it is more a set of ideas. So what constitutes a microservices. The best description I have come across yet has been by Martin Fowler ( http://martinfowler.com/articles/microservices.html ).

We can focus down on a number of specific points that are central to the idea of Microservices:

  • the creation of small pieces of functionality that can be discretely deployed,
  • are connected typically by web APIs often using REST (but also seen using other abstracting protocols)
  • can be replaced with minimal dependency issues
  • microservices are typically built by small discrete teams usually in the range of 2-12 people (the so called 2 pizza rule)
  • services are usually orchestrated by dumb pipes (so publication/subscription strategies are often used, so the intelligence about how and what to do about each event is within the service not the orchestration).
  • design approach changes orientation from n-tier (presentation, orchestration/business logic, persistence) which could be described as horizontal separation to vertical separation where partitioning is functional/service centric (which internally may embody the horizontal partitioning but this is secondary and down to how the service delivery team wish to work).
  • Search service us running as their own CPU process – typically using container technologies such as Docker, Rocket, Spoon and Drawbridge
  • Any orchestration is dumb, the decisions of what to do and when to participate are taken by the service

The small container footprint (making the enforcement of the decoupling with minimal governance) means density of processes can remain high as the overhead compared to full VMs is a lot smaller but also means instantiating clean environments for fresh deployments and testing is very fast. This does not fit so well within many ESB environments such as Oracle’s SOA Suite as the pre-requisites create a substantial footprint that would need to reside within the container for the ESB (RedHat’s JBoss Fuse is one of the few exceptions if you consider the required footprint for Apache Camel for example).

However, some of the microcontainer principles can  be pursued within the larger ESB environments utilising capabilities such as :

These approaches allow you adopt the dumb pipe approach (you don’t want services directly invoking each other except in case of utility services otherwise a lot of inter service dependency will build up). Using a publish & scribe framework or simple service sequencing we should be able to exploit OSB, Weblogic MQ in an Oracle Context and Weblogic as an OSGI container (for discovering technical services). In line with the Microservices ethos it would more than legitimate to build Microservices with other tools and then use an ESB like SOA Suite to provide the technology for weaving the services together.

In a Redhat product set there are more options as the solution footprints are smaller. But you would consider Karaf (OSGi container), Active MQ,and simple uses of Camel to weave microservices together.

With cloud middleware, adopting the goals of microservices will become easier as instantiating fresh environments and deployment approaches will become more akin to those of containers – for example Oracle Integration Cloud Service (ICS) deployment is simply an import of a whole set of configuration and integration process information.

It should be noted that Microservices does fit better with a number of organisational and management approaches, such as:

  • dev ops – the build team carry the role of operational support
  • product centric rather than project centric life cycles i.e. the team exists as long as the product, rather than existing until all the current funded features are complete
  • works for build rather than buy delivery (buy is likely to introduce artefacts too large for a Microservice model).

Each microservice is likely to contain its own copy of data – potentially leading to greater data duplication – therefore data reconciliation checks and management thinking maybe be needed.

Oracle Cloud Integration – book

Tags

, , , ,

We’re progressing with our Oracle Cloud Integration book idea now that we’ve had some publisher interest. 1st cycle around defining the book should be submitted in the next day or so.  Will starting to write the initial chapters very soon. Exciting times as they say.

Psychology of Computer Programming

Tags

, , , , , , , , ,

A while back I read the book Psychology of Computer Programming by Gerald Weinberg – something of a seminal text, full of interesting observations on how people and environments can impact productivity of programming.  Anyone working within a development environment would probably benefit from reading.  But whilst I was reading the book, I did create a mind map of what I was reading which I have made available here.

PsychologyOfProgramming

Some Good Security Resources

Tags

, , ,

As a result of working my through several books (published and unpublished at present) I’ve come across a number of really useful security resources. So I thought i’d bring them together (as much for my own reference) as anything else. The following list provides a brief description of the resource and its link.

  1. SANS Institute (http://www.sans.org/reading-room/) site providing a alot of documentation security and research findings, in addition to more commercial arrangements such as training
  2. OWASP (https://www.owasp.org) guides on threat types and characteristics and guidance on developing secure solutions includes a training tool called webgoat
  3. CXOWare (http://www.cxoware.com/) – home of FAIR risk analysis process and guidance
  4. Metasploit (http://www.offensive-security.com/metasploit-unleashed/Main_Page) a site that provides free security training to help understand how hack attacks work. includes free tools
  5. RadioLabs (http://www.radiolabs.com/stations/wifi_calc.html) provides the means to calculate how far a wifi signal will carry. Important if you don’t want people parking up outside your home/office and hacking your wifi
  6. PolicyTool (http://socialmedia.policytool.net/) provides the means to create fair and reasonable polices for the use of social media in a work environment
  7. TrustedSec’s Atillery (https://www.trustedsec.com/downloads/artillery/) open source tool for detecting security attacks
  8. OSSEC (http://www.ossec.net/) open source intrusion detection system.
  9. NIST (http://csrc.nist.gov/) standards institute with a lot of information on security.
  10. CERT (http://www.cert.org/cert/) SEI’s security activities
  11. Stride (http://msdn.microsoft.com/en-us/library/ee823878) Microsoft’s threat assessment model

More TOGAF Training Tips

Tags

, , ,

Open Group TOGAF

That magical logo you can use once TOGAF Certified

A couple of my colleagues are preparing to TOGAF exams (and training). As is the case with these things the subject of tips, tricks and helpful resources come up.  I’ve blogged in the past on this, and now made those blog entries easier to find with a TOGAF category on my blog (https://mp3muncher.wordpress.com/category/technology/togaf/). But I also came across a couple of useful resources through the TOGAF for Architecture Linkedin Group. Particuarly a free Massively Open Only Course (MOOC) provided by an Australian University – https://www.open2study.com/courses/introduction-to-enterprise-architecture.  The MOOC contains almost 4.5 hours of video material – so it will give a solid picture (where as a Architecting the Enterprise training is 4 days) (note Architecting the Enterprise appear to have tweaked their branding now to AtE). In addition to this a couple of other sites / books that came recommended in recent LinkedIn discussions are:

Update: It is worth registering with Orbus Software‘s website (registration is free) as they provide a substantial number of resources on TOGAF like postes of each of the key phases which can be downloaded once registered.  In addition they have a number of blogs regarding EA, ITIL etc.

Berlin Snaps

Tags

,

Berlin Wall remnants panorama
Victory Column in Silhouette
Last week I was fortunate enough to be invited to Berlin to attend Oracle’s European Middleware Customer Advisory Board.  When I make international business trips, I’m always in a dilemma of do I take my SLR and extra lens which means luggage is going into the aircraft hold (so I can take a camera bag). Or just go with my little point and shoot Panasonic Lumix.  Well this time, I plumed for the later thinking that the weather in Berlin wouldn’t be that good, sites not easy to visit on foot in the odd hour or two free, and that the city wouldn’t be as impressive as it is.  So I am kicking my self now for not taking the SLR.  Someone really needs to create a SLR and lens camera sleeve solution that can fit into a laptop rucksack.  But our Flickr account has some ok shots.