Sunday, 31 March 2019

Digital Transformation opportunities and themes 2019/03 - maximizing return on digital

Digital Transformation opportunities and themes from the DTI (2019/03) - Maximizing return on Digital


Feb 2022 - this post is permanently moved to https://architectfwd.com, my new site, and can be found here  - https://architectfwd.com/architecture/enterprise-architecture/digital-transformation/dti2019review/2022/02/01/digital-transformation-opportunities-and-themes-maximizing-return-on-digital/ please go and bookmark that site for all of my future content.



Update 06 April 2019, my post on the theme digital enterprise from the DTI report is available.

This post follows on from my previous post on Digital Transformation opportunities and themes. The DTI assessment[1] from May 2018 noted a number of advanced technologies which would impact businesses, through enabling new capabilities and ultimately driving new value to customers and other stakeholders. This post touches lightly on one of the themes from the DTI assessment, and how it may further impact business and society.

Themes


The DTI notes that the following are key themes that have emerged from the analysis of digital transformation across 13 industries (health, retail, professional services amongst others):
  • Maximizing return on digital - the topic of this post.
  • Digital Consumption
  • Digital Enterprise
  • Platform Economy
  • Societal Implications
  • Unlocking Digital Value to Society
I will post on each of these themes aspects I find particularly insightful over a number of posts.

Maximizing return on digital


Investing in new technologies..

  • ..creates new efficiencies, through modernising, improving or streamlining business processes and optimizing use and cost of assets and resources.

    Here I see value as follows. Technology such as cloud and AI can be used to improve value stream stages, and other efficiencies in business process redesign to make optimal use of technology in streamlined operations and reduction of costs.
  • ..enhances customer experiences,

    Here I see the value delivered through omnichannel, new channels, enhanced process, product and solution value propositions which focus on delighting the customer and meeting high expectations of tailored service offerings. Think of cloud and how netflix delivers TV and film to any device, form factor and with video quality and an experience to suit the form factor.
  • ..builds new business models.

    Investing in new business models is difficult and where faster moving startups excel, but finding new technologies to improve the channel, value proposition or delivery through technology providing, for example a platform as a key asset helps to drive revenue and open or expand customer segments. I plan on writing something up regarding the Business Model Canvas as another blog entry. The book "Business Model Generation" was so useful to me in understanding this area, and I hope to continue learning more.

DTI notes that Compound Annual Growth Rate for business spend on new technologies could rise 13% to $2.4 trillion through to 2020! Growth areas include 3D printing, robotics and IoT, and decreases likely in the mobile / social space.

DTI notes that some key enablers are required, such as building ecosystems of partners and suppliers, technology infrastructure build-out, agile and digital leadership, strong data access and management and forward thinking.

It is incredible to think how Digital Transformation can benefit customers and business, and how technology can assist in realizing these outcomes! In my next post I'll discuss one the other themes listed in the Digital Transformation Initiation report - Digital Consumption.

Cheers
Quintes

Quintes van Aswegen Togaf 9 Certified Architect, Professional Scrum Master I (PSM I) Certified

Connect with me on LinkedIn or Twitter

[1] http://reports.weforum.org/digital-transformation/

Thursday, 21 March 2019

Digital Transformation opportunities and themes 2019-03 - DTI review

Digital Transformation opportunities and themes - DTI review (2019/03)


Feb 2022 - this post is permanently moved to https://architectfwd.com, my new site, and can be found here  - https://architectfwd.com/architecture/enterprise-architecture/digital-transformation/dti2019review/2022/02/01/digital-transformation-opportunities-and-themes-2019-03-DTI-review/ please go and bookmark that site for all of my future content.


Update 06 April 2019, my posts on the themes maximizing return on digital, digital enterprise around the DTI report are available.

Since gaining my Togaf 9 certification (Togaf is a framework for enterprise architecture that provides an approach for designing, planning, implementing, and governing an enterprise information technology architecture) I have been consuming a large number of Open Group white papers and that led to a renewed interest in what themes are surrounding Digital Transformation in the current environment. I am particularly interested in how new and advanced technologies intersect with innovation and new business models to deliver outstanding experiences to customers.

I have experience in Digital Transformation, particularly in relation to services and solutions which have modernised and / or transformed services and impacted stakeholders in valuable and meaningful ways, in industries such as Systems Integration / Plant automation, Bottling, ISV in mobile solutions and audit, tax and corporate secretarial, and in Government. I was therefore pleased to find the Digital Transformation Initiative by the World Economic Forum detailing some innovations and themes to which I could relate, and which I could further add to my tool kit.

The Digital Transformation Initiative


The World Economic Forum launched the Digital Transformation Initiative (DTI) in 2015 focusing on themes and opportunities relating to digitalization of business.

The falling costs of advanced technologies is a key driver for business to leverage these technologies to deliver new capabilities which can enhance value propositions, improve value stream stages and deliver new experiences to customers or stakeholders.

Technologies


The DTI paper notes that the following are key technologies impacting business:
  • AI
  • Autonomous Vehicles
  • Big data analytics and cloud
  • custom manufacturing and 3D printing
  • IoT
  • Robots and drones
  • Social Media and platforms
The value which can be created for customers and businesses though the use of these technologies needs to be viewed in conjunction with impact to both business models and operating models. 

Themes

I'm keen to explore the technologies, themes and impact to business and operating models over a few posts. Stay tuned.

Cheers
Quintes

Quintes van Aswegen Togaf 9 Certified Architect, Professional Scrum Master I (PSM I) Certified

Connect with me on LinkedIn or Twitter

[1] http://reports.weforum.org/digital-transformation/

Monday, 18 March 2019

Azure billing, cosmosdb, a tale on monitoring costs

Azure billing, cosmosdb and a tale on monitoring costs


I found an extra MSFT line item on my credit card, for a few dollars, not too much but enough for a nice lunch out. Not sure how I missed it. I did have cosmosdb from the free trial running at 100 RU/s and I think the trial ended. So looking at my invoice I could momentarily see nothing as at one point it was saying resource not available, but since corrected itself.

Account Subscription billing data

On the summary page, a link to the Version 1 downloadable data throws me an error "https://account.azure.com/Error/404" 

Clicking on "Download invoice" confirms "Azure Cosmos DB 100 RU/s AU East"

By the way, clicking the downloadable CSV option Version 2- Preview results in a file with plenty of info and I could tell which resources at a high level and over the period.

Subscription cost analysis

The cost analysis chart shows me how cosmos was chewing through dollars since 01 Feb. Useful but tells me I've now paid way more than a nice lunch.

Uh, Deleted

Easy, I've deleted the cosmosdb instance. I've also opted in to my emails to other email accounts because this one slipped through and the billing invoice was missed.

Cost optimisation - you must monitor all costs in your cloud consumption and determine if the service you are consuming is at the right tier or can be downscaled, or in this instance uh, deleted.

Cheers
Quintes
Togaf 9 Certified Architect
Professional Scrum Master I (PSM I) Certified

Connect with me on LinkedIn or Twitter

Tuesday, 21 August 2018

AWS Rekognition Text detection limited to 50 words

AWS Rekognition Text detection limited to 50 words


Feb 2022 - this post is permanently moved to https://architectfwd.com, my new site, and can be found here  - https://architectfwd.com/architecture/cloud/amazon-web-services-aws/rekognition/2022/01/23/aws-rekognition-text-detection-limited/ please go and bookmark that site for all of my future content.



I built an API which uses Rekognition on AWS quickly, just to test the text detection capability.

Approach 

I create a Flask API and utilised boto.

rek = boto3.client('rekognition', region_name="us-east-1")

After that I took the image bytes directly and ran a detect_text call, not too tough.

Detect text result


I uploaded an image with a small number of words and was pleased with the result. However when uploading an image containing a paragraph I found that only a subset of the words were returned.

The limit is 50 words - "DetectText can detect up to 50 words in an image."[0]

Text result response


The response splits up items by Type, either "line" or "word", and has a parentID when a word, so I filtered just the lines like this:

if label['Type']=="LINE"

It works, great result, but a solution for a larger number of words makes me think of just running this through Tesseract OCR.

[0] - https://docs.aws.amazon.com/rekognition/latest/dg/text-detection.html (Last paragraph)

Cheers
Quintes


Connect with me on LinkedIn or Twitter

Saturday, 21 April 2018

AWS Lambda function created via cloudformation doesn't log

AWS Lambda function created via cloudformation doesn't log


Feb 2022 - this post is permanently moved to https://architectfwd.com, my new site, and can be found here  - https://architectfwd.com/architecture/cloud/amazon-web-services-aws/lambda/2022/01/23/aws-lambda-function-created-via-cloudformation-doesnt-log/ please go and bookmark that site for all of my future content.


I provisioned new lambda functions via AWS CloudFormation but used an existing service role for lambda execution, however found that no logs were being created. Here's how to fix.

IAM 

Go to the role in IAM, edit the policy and add the resource (the new lambda) 

"Resource": [
"Existing...",
"arn:aws:logs:REGION:XXXX:log-group:/aws/lambda/function-name-here:*"
]

Review and apply.

Log group created and contains logs

Immediately after updating the service role policy to add the resource, execute the function and the CloudWatch log group should be created and populated


Cheers
Quintes


Connect with me on LinkedIn or Twitter

Monday, 19 March 2018

AWS Cognito User Pools, Lambda and Box integration

AWS Cognito User Pools, Lambda and Box integration


Feb 2022 - this post is permanently moved to https://architectfwd.com, my new site, and can be found here  - https://architectfwd.com/architecture/cloud/amazon-web-services-aws/cognito/user-pools/2022/01/23/aws-cognito-user-pools-lambda-and-box/ please go and bookmark that site for all of my future content.


In my previous posts I have been using Azure functions and B2C. I had a use case I wanted to try out and stood up an AWS Cognito user pool with 2 Lambda functions connecting to a box app using box sample code[1]. The process was simple and I managed to stand up the site really quickly, thus very impressed - I'd been keen on using Cognito for a while as an identity pool, and only created my AWS account the day before so all in all a great experience.

Here's what the solution would look like:


Cognito

I created a sign in / sign up policy similar to the B2C and the pool config was really easy. I created and linked up a box.com app.




I was then tasked with the box-specific lambda functions for post authentication and for creating the user in box.

Lambda 

2 Lambda and a couple of roles later and I was connected up. I used a sample angular app, wired up the AWS and box config and was A for away, except I had to increase the one of the function's timeout to 5 seconds once I stood up the angular app in Azure, it kept timing out. Cognito User Pool Lambda functions must respond within 5 seconds, not configurable.


I also needed to create roles for the Cognito and Lambda integration, specifically the first needed to be a service role, specifically a AWS lambda basic execution role. It probably needs Log policies. The second role needed a little more:



An API gateway was needed for lambda proxying to the token exchange function with box



I also needed an authorizer for the Cognito pools


CORS

CORS was a nuisance, I ended up writing headers back in all responses, just couldn't get it to work otherwise. the origin should not be a *, I know. I'll fix that, any anyway the box.com app config provides one more CORS setting which is tied to the correct domain.


Working app

It helped that I had some sample code from box. With all this configured I have a custom user pool of users who each get their own folder in a box.com instance where they can upload documents to.

I stood this up in an evening, really impressed by the AWS Cognito User Pool service and the simplicity of the interfaces. The lambda interface is awesome to use. Box.com app config is simple, and I am a long time box.com user so I think their user experience is great in general. 

Closing

I want to spend more time with AWS. I may continue with the Azure B2C as exploratory and rather throw my efforts in this direction.

References

[1] box samples on github


Cheers
Quintes


Connect with me on LinkedIn or Twitter

Wednesday, 21 February 2018

Azure Functions and Azure Active Directory B2C - part 2 - postman

Azure Functions and Azure Active Directory B2C (Part 2) - postman


In my previous post I setup an Azure function and B2C for auth. I wanted to now quickly get postman to use a token from B2C. In retrospect probably would have been quicker to build the SPA, will try that next. Quickly, not so much, as I worked through the screens and dialogs in B2C to setup apps and scopes, mostly getting this error when trying to get a token from within Postman.

AADB2C90205: This application does not have sufficient permissions against this web resource to perform the operation.

In the Azure Portal, Azure B2C, Applications, go to the app created previously (mine was called functionsapp). Ensure that the APP ID URI is something, in my instance called is spaapp.

Then lower down in that blade find "API Access", by default it will contain "access the users profile". Under published scopes it auto filled "user_impersonation" for me.

Create a Postman application in B2C

In the Azure Portal, Azure B2C, Applications, create an app for Postman

Give it a name, Web app (Yes), Implicit (Yes), Reply URL (https://getpostman.com/postman), App ID URI (/api), Native Client (No)

Then lower down in that blade find "API Access", by default it will contain "access the users profile". Click Add, and choose the name of your other app (in my instance functionsapp) and choose the scopes. Save.

Under published scopes I had nothing.

Postman - Get new access token screen 

I typed these in:

Token name : anything
Grant: implicit
Call back url: https://getpostman.com/postman
Auth URL : https://login.microsoftonline.com/tenant.onmicrosoft.com/oauth2/v2.0/authorize?p=b2c_1_signupsignin-01
Client id: 842....
Secret:
Scope : openid https://tenant.onmicrosoft.com/spaapp/user_impersonation offline_access
Client authentication: send client credentials in body

Fail, until I got that scope and app id URI correct.

Token received!

Test the function

Test the function in the postman, and 200 OK, and the function log show my header coming through, as expected from previous post (req.headers["x-ms-client-principal-id"])

Closing

On to the front end, less time in Postman.

References

[1] https://docs.microsoft.com/en-us/aspnet/core/security/authentication/azure-ad-b2c-webapi#configure-a-sign-up-or-sign-in-policy


Cheers
Quintes


Connect with me on LinkedIn or Twitter