innovating on microsoft azure - bulletproof · innovating on microsoft azure a bulletproof ......

16
Innovating on Microsoft Azure A Bulletproof eBook - 2017

Upload: lamquynh

Post on 28-Jul-2018

225 views

Category:

Documents


1 download

TRANSCRIPT

Innovating on

Microsoft Azure

A Bulletproof eBook - 2017

INNOVATING ON MICROSOFT AZUREwww.bulletproof.net 2

3 Chapter 1 Developer Innovation with Microsoft Azure

Chapter 2 Open-source Innovation with Microsoft Azure

Chapter 3 Azure Integration Services

Chapter 4 Microsoft Azure Analytics & Machine Learning

TABLE OF CONTENTS

57

12

INNOVATING ONMICROSOFT AZUREwww.bulletproof.net 3

A look at the key developer pain points and the Azure tools to solve them

The four biggest issues that development projects going live encounter are:

managing collaborationapplication deploymentstestingallowing your team to innovate.

The push behind adopting DevOps & Agile

Using one development toolset

CHAPTER 1

Developer Innovation with Microsoft Azure

The push to allow developers to innovate and disrupt quickly has lead many organisations to adopt a DevOps and Agile strategy. As part of the adoption of this strategy, teams are looking for tools that offer better collaboration. They want the ability to deploy quickly to multiple different environments. As a result of this, development teams need to have access to more in-depth levels of testing to be able to confidently release their code to all environments, without disrupting the end user’s experience.

Visual Studio Team Services (VSTS) has addressed these issues within one development toolset. VSTS has integrated Agile Planning including the ability to have Kanban and Scrum dashboards. This allows your team to capture, prioritise and track the backlog of work on your application development. These inbuilt features ensure transparency and traceability of work items linked directly to code and builds.

INNOVATING ON MICROSOFT AZUREwww.bulletproof.net 4

It is easy to build your code with Ant, Maven or Gradle from your Git, Subversion and TFVC repos. The integrated build, test and deploy allows developer to build the latest code base into packages which can be tested locally before being deployed into an environment for further testing. Using this process, it is easy to catch code quality issues early through using Continuous Integration Builds.

Speeding up the process of running dev-test environments

Control over cost of your infrastructure

Testing within Azure

Azure has made it easy to deploy applications to the Cloud. Much of this can be done through out of the box tasks and templates to Azure web applications. More solutions are being added on a regular basis.

Many of the common CI/CD pipelines development teams are already using including Jenkins and Octopus Deploy will quickly and easily integrate to be able to deploy.

Azure has made it simple to speed up the process of running a dev-test environment. We are finding that more and more development teams are wanting to be able to configure and develop across different architectures as part of the software development process. With the right setup, this is made easy within Azure for running different environments up quickly to meet development and testing teams’ requirements.

The best part about this flexibility is being able to control the cost of your infrastructure. Having control over the ability to run up and turn off these environments as required means you control the cost of your development environments.

With the right developer tools and innovation, your team will have the confidence to be able to release more often – which in turn, requires continuous testing. Azure has been working hard to address this aspect of the Software Development Life Cycle by designing and incorporating testing tools into the Azure suite of applications.

From traditional manual testing, requirements-based testing, exploratory testing tools to performance testing – Azure has tools to be able to simulate thousands of users in multiple regions.

Deploying applications to Cloud with Microsoft Azure

INNOVATING ONMICROSOFT AZUREwww.bulletproof.net 5

Using security tools with Azure

Innovation

Security is a concern for the majority of businesses and there are tools to allow for penetration testing to ensure the security of your applications within the Azure ecosystem. Another concept which Azure has been investing in is Visual Studio Application insights. This will allow your development teams to detect, triage, and diagnose issues in your web apps and services, giving you confidence that your customers are having the best experience on your software.

As part of the Bulletproof’s path to launch, our engineering and development team spent a day challenging themselves to see how innovative we could be on Azure. During the day our seven teams worked closely with the Microsoft Azure team we had on-site with us investigating and using the APIs which we’ll cover later in this ebook. We had teams innovating with a number of the Azure services both traditional Microsoft and open source. We had teams focusing on how we could automate a customer’s environment for migration into an Azure environment. We implemented a monitoring solution that integrated our traditional Bulletproof monitoring across Azure environments. What we learnt in one day with our teams on Azure far exceeded what we and Microsoft was expecting – we came up with real world examples on how we could innovate and work with Azure products easily.

Azure and Microsoft Love Linux and Open-sourceAre you struggling to get support from your team because they feel that Azure doesn’t provide enough support for Open-source? Do you work on a Linux workstation/laptop or on macOS/OS X, or are you really hard core and use FreeBSD? If you use one of these *NIX type environments how do you get started on the Azure cloud? The good news is that Microsoft LOVES Linux and Open-source. Let’s take a look at using open source with Microsoft Azure in a bit more detail.

Open-source innovation with Microsoft Azure

CHAPTER 2

INNOVATING ON MICROSOFT AZUREwww.bulletproof.net 6

Visual Studio

Azure CLI

Exploring Azure’s GitHub

PowerShell, .Net and Windows+Ubuntu

Azure’s Container Service

Visual Studio has just become available for macOS. For those of you not on macOS or Windows or just not sure about the preview release, you can also use Visual Studio Code, which isn’t a full featured IDE, but does provide a similar editor experience.

If working at a console/terminal or command line interface is more your cup of tea, then Azure has a CLI. The original CLI is available as a nodejs application at https://docs.microsoft.com/en-us/azure/xplat-cli-install. More recently the Microsoft team released a new Azure CLI that’s based on python and feels a little bit smoother to use. You can deploy both of these tools on your desktop (Linux, macOS, Windows+Ubuntu) or as Docker images in your favourite Docker engine.

It’s also worth noting that Azure has a massive GitHub presence with many repos for SDKs (Python, Node, Ruby), templates and example code. There’s at least 360 repos!

Your other options are to use PowerShell or .Net natively on your Linux/macOS environment or you could also move to Windows 10 with the Ubuntu shell. Both are really great options to ensure teams are consistent no matter what their development preferences are.

Azure has a very lucrative container offering where you can run Docker containers of Linux or Windows. With their Kubernetes, DC/OS and swam integration you get a full featured Docker experience to run all your apps and scale with ease.

Enterprise Workloads

You may not care too much for development environments, but you’ll likely have enterprise workloads that run on Linux OS’. Azure has a great Marketplace and if you can’t find what you need there is instructions on how to build your own images.

Find these distributions and many pre-configured application stack examples in the Azure Marketplace at https://

azure.microsoft.com/en-us/marketplace/.

SUSEOracle LinuxRHEL

UbuntuCentOSDebian

INNOVATING ONMICROSOFT AZUREwww.bulletproof.net 7

Infrastructure Management Tooling

When building any infrastructure in Azure, use Azure Resource Manager templates and then use tools such as Terraform or Ansible

If you want to bake or fry images for your applications, the Azure team have added a plugin to Packer to allow you to do that.

As you can see, Microsoft loves Linux and open source and they are committed to building the community. Microsoft recently announced they hired Brendan Burns, a senior staff engineer at Google, who has spent the past several years leading development of its Kubernetes open source orchestration technology for Docker containers and also Ross Gardler, who is President of the Apache Software Foundation.

There is no reason to wait and you should jump on the wave and ride the open source journey on the Azure Cloud.

Leveraging Integration Services in a next generation cloud architecture

This chapter will discuss the principal Azure Integration services and where they might fit in a “next generation” architecture. So let’s begin and demonstrate a working example using fictitious “Company X”.

Company X have recently migrated their web workload from their co-located private VMWare environment to Azure and are already reaping the benefits of scale, reliability and “total cost of ownership” through automation and a comprehensive CI/CD pipeline, ensuring non production environments are only “up” when required.

CHAPTER 3

Azure Integration Services

INNOVATING ON MICROSOFT AZUREwww.bulletproof.net 8

Company X’s application stack is a standard n-tier web application. The stack includes a scalable web and application tier, a SQL datastore, a key-value datastore and is integrated into their SAP ERP. The application also exposes a REST API via a secured HTTPS endpoint. This is consumed from their mobility applications.

Their user base is growing and there is a clear need for deeper integration into Salesforce and Office 365 to better facilitate their contact support team. Additionally, the following are key principles of their recently released digital strategy:

Expose new digital channels to allow suppliers, partners and customers to consume value-add services and dataFree data up to move between legacy, custom and SaaS platforms consistently, securely and reliablyProvide a single customer view for our contact centreHave a solid architecture from which to innovate rapidly based on market demand

Having researched some of the options available in Azure, Company X’s next generation architecture is illustrated as follows:

INNOVATING ONMICROSOFT AZUREwww.bulletproof.net 9

Specifically their architecture is leveraging the following Azure services:

Enterprise Service Bus

BizTalk Server

Logic Apps

API Manager

Remove point to point integration and thus system dependencies, decoupling services wherever possible

Securely expose legacy LOB (Line of Business) data sources and services

Facilitate the flow of data between systems

Enable external digital channels

In order to:

This architecture enables Company X to achieve its strategic goals providing a solid highly available environment in which to release innovative features across the organisation and out to its customers. The following is a brief explanation of, and a justification for, the various architectural components.

Azure Service Bus

All messages are logically routed through the Service Bus providing a highly available fully managed messaging fabric to support Company X’s integration requirements.

Specifically the Service Bus:

Forms the central core of their updated architecture and allows messages to be reliably routed between systems

Facilitates message interchange across a Hybrid and/or Multi-Cloud architecture

Supports Queue and publish/subscribe-based messaging paradigms

Is designed for synchronous and asynchronous messaging flows

Supports REST, AMQP and WS*

Routing messages through the Bus also allows Company X to leverage a multi-modal approach to development across the organisation. Ensuring systems are decoupled reduces the impact on regression testing, giving Company X freedom to innovate whilst mitigating any repercussions on critical “line of business” systems.

INNOVATING ON MICROSOFT AZUREwww.bulletproof.net 10

BizTalk Server

Azure Logic Apps

BizTalk Server provides the integration backbone into SAP. Messages to and from BizTalk are routed through the Service Bus. However BizTalk explicitly integrates the message bus to SAP. BizTalk has been selected for the following reasons:

Battle hardened, tried and tested enterprise grade integration platform

Supports business process management, data transformation and workflows

Is transaction (TX) aware

Will allow for real-time querying of SAP data

Facilitating integration between Company X’s subscribed SaaS applications is a key requirement. As such an agile flexible intuitive framework is required to integrate their subscription apps and build out data flows between them and into their internal architecture via the Service Bus. Azure Logic apps – essentially an iPaaS (integration as a service platform) – is the natural choice as it:

Has myriad pre-defined connectors for a variety of commercial and open source services and data sources

Easily configurable workflows using an intuitive GUI-based workflow editor

Integration into Azure Functions

Has a variety of predefined workflow templates for common connector integration scenarios

Is extensible, providing a logical framework to build out custom connectors and complex integration scenarios

As both Office 365 and Salesforce are supported through predefined connectors, Company X are able to build out their integration requirements very quickly with minimal coding.

API Manager

The ability to expose data and services out to external customers was pre-requisite in complying with the digital strategy. To that end, the decision was made to use Azure API Manager as it facilitates:

Rapid creation of API gateways to back-end services including easy import of existing Swagger and WADL-based API definitions

INNOVATING ONMICROSOFT AZUREwww.bulletproof.net 11

API publishing and discoverability through eitheran API publishing Portal or programmatically viaa flexible API

Support for backwards compatibility throughversioning

Implicit scaling to meet demand

Configuration of one or more authorisationservers supporting protocols such as OAUTHor OpenID

Allows API endpoints to be Whitelisted throughIP filtering

Rich analytics

Industry standard support for APIauthentication using:

API KeysAzure Active DirectoryMutual Certificates

Configuration of one or more authorisationservers supporting protocols such as OAUTH orOpenID Rich analytics

There are numerous benefits to proxying RESTful API calls through the API manager, these are just a few of them.

There is nothing precluding Company X from rolling their own integration solution. Indeed, Azure will happily support any commercial and/or open source integration platform. However, in this scenario the native Azure services were considered the logical choice as they are fully managed, highly available and will implicitly scale to meet demand. They’re also charged based on usage negating the potential need for costly licenses with the caveat that costs will increase significantly based on scale. In summary Company X’s next generation architecture will enable them to confidently execute on their digital strategy providing innovative products, features and services across their value-chain.

INNOVATING ON MICROSOFT AZUREwww.bulletproof.net 12

A look at using Azure’s toolset to power your analyticsTo handle digital growth and remain competitive, businesses need to change focus, to become adaptive and to become data-driven. The only way to do that in a world of Internet of Things and big data is through machine learning leveraging scalable data processing technologies.

What are data-driven companies using machine learning for today?

But there’s a few problems…

So while this all reads well, generates lots of hype, has a monopoly on buzz words and puts data scientists in high demand, the reality is that almost none of this is what we spend most of our time actually doing.

CHAPTER 4

Microsoft Azure Analytics & Machine Learning

A small sample of some common applications of machine learning in industry today includes:

Customer segmentation discovery through purchasing behaviour clustering

Sentiment analysis – text mining social presence to understanding what customers are sayingin real-time

Predicting “next-best-offer” at point of sale

Risk assessment in credit card and loan applications

Predictive maintenance (infrastructure/plant machinery) – detecting probable equipment failurebefore it occurs

Intelligent inventory management – optimising costs against demand

Any many many more…

INNOVATING ONMICROSOFT AZUREwww.bulletproof.net 13

We spend a lot of time getting the data ready for action. Data discovery, acquisition, cleaning, aggregation, missing data imputation, feature engineering and exploration is where most of the dollars go. It’s commonly accepted that this can be as much as 80% of the work we do on a given project. And it’s only when this is complete that the experimentation, model iteration and tuning processes can even begin.

Messy tool chains

In addition, we use a wide range of technology stacks, platforms and languages that are not well integrated into standard tool chains and don’t “play nicely” with each other.

Lastly and most importantly, integration into production workflows is non-trivial on a good day. Many of the tools we use are one-shot – a quick Spark job, a python script or an R library we run a quick script against to produce a graph or maybe score a dataset.

This is great in exploratory mode but is of limited value if these assets cannot be operationalised. And to date, publication of predictive analytical models for enterprise consumers has generally been an afterthought at best.

What is R?

Microsoft’s R Services

The mainstay workhorse of data science is R – an open source programming language for data preparation and statistical modelling. It is known for its rich graphical libraries, its unchallenged range of statistical tests and tools as well as its vibrant community. However for all its strengths it has traditionally struggled with enterprise workloads and integration.

Microsoft has adopted a two-pronged approach in addressing these issues by enabling R to reach its enterprise potential with Microsoft R Services and enabling data scientists to focus on delivering business value with Microsoft Azure Machine Learning.

R Server brings the power of fast distributed computation for enterprise workloads to R, leveraging the Math Kernel Library (MKL) for linear algebra at scale and the ScaleR library for high-volume parallel processing. R Server is also integrated into SparkR and HDInsight (Microsoft’s Hadoop offering).

R services are fully integrated into Visual Studio out of the box but by installing R Client, data science teams can continue to use standard IDEs such as RStudio. Configuration is the work of a moment.

With the ConnectR library, data can be ingested from common sources via ODBC as well as SAS, Teradata, SPSS and HDFS.

INNOVATING ON MICROSOFT AZUREwww.bulletproof.net 14

With SQL Server 2016, Microsoft has gone one better allowing you to run R code directly inside stored procedures. This approach uses an R Server instance on your SQL Server cluster allowing you to leverage your existing hardware investment for statistical computation and data processing on the fly.

Finally, when it’s time to publish, the DeployR library can be used to turn R scripts into web services running in a secure service that can consumed by clients without any knowledge of R.

The Microsoft R Services suite addresses two of the main problems we’ve struggled with over the years with R as our analytics tool of choice. Large scale computation and an easy path to enterprise integration have made R a serious player in the Big Data space for the first time.

Azure Machine Learning

“What’s in the Box?”

This is an online machine learning workbench optimised for fast modelling and data exploration cycles. A rich visual interface allows users to build complex data preparation workflows and apply a wide set of standard machine learning algorithms through a drag and drop interface.

Predictive models can be easily integrated into the enterprise by publishing them as fully functional REST web services supporting either simple request/response or batch execution modes.

Further, you can leverage existing investments with full R/python integration. This is great if you have already developed models, libraries or graphics that you want to continue to use in your daily work.

Azure Machine Learning Studio makes it easy to checkpoint intermediate results, replay workflows and run experiments. By enabling a fail-fast deploy-fast mode at minimal cost, this allows data scientists to focus on getting results that actually deliver business value.

Standard ML algorithms & tools (Text mining, Regression, Classification,Clustering, Anomaly detection)

Data sources (Azure Blob, RDBMS, Hive, Web)

Data preparation (preprocessing, aggregation, transformation, feature engineering)

500+ R packages

Python Anaconda toolkit

INNOVATING ONMICROSOFT AZUREwww.bulletproof.net 15

In addition, it is fully integrated into both the Azure ecosystem and Visual Studio and can also be automated using PowerShell.

Ready-Set-Go!

With so much out of the box it’s really easy to get started with Azure Machine Learning Studio. It has a large gallery of built-in tutorials and a gallery of experiments so even if you’re not a data scientist yet it’s a great place to start your journey.

Although we’ve only discussed R services and Azure Machine Learning in this chapter, that’s not the whole Microsoft data story. Some of the other offerings Microsoft has in this space include Azure Data Factory (a managed data pipeline service for managing and monitoring ETL across the enterprise) and Azure Data Lake (a service supporting secure ad hoc querying of distributed heterogeneous data sets across low cost petabyte scale storage).

At Bulletproof we’re excited about Azure Machine Learning and R Services. It’s an awesome time to be a data scientist!

T: AUS 1300 663 903 | NZ 0800 258 773

E: [email protected] W: www.bulletproof.net.au

About BulletproofBulletproof (ASX:BPF) is the leading cloud services provider in Australia/New Zealand and trusted partner to over 750 organisations.

Bulletproof simplifies complex technology and enables rapid transformation for businesses of all sizes. Our certified and experienced Cloud experts advise and support organisations at every step in their cloud journey, by providing market-leading expertise and mission-critical support across multiple platforms and technologies.

Bulletproof Support• Support• Security• Data Protection• Cost Management• DevOps

Consulting• Cloud Adoption• Cloud Health Check• Cloud Migration Plan• DevOps & Agile

Enablement• Sitecore Health Check

Delivery• Cloud Migration into

Microsoft Azure• Solution Architecture

Design• DevOps – Refine

Continuous Integration• DevOps – Embed

Continuous Deployment

Bulletproof Cloud Services for Microsoft AzureGet the most out of your Microsoft Azure investment with Bulletproof, your trusted end-to-end Cloud Services partner.

Bulletproof is A/NZ’s leading end-to-end Cloud Services partner. Our certified experts have the experience to enable and support you at every stage of your Cloud and Multi-Cloud journey.

We provide a full end-to-end service on Microsoft Azure, from Consulting, Delivery to on-going Support.