7. Innovate Applications
Overview
Implementing cutting edge innovation into existing workloads
Use the Innovation Lifecycle
Phases:
- Build
- Measure
- Learn
Guidelines:
- Accept failures
- Blameless culture
- Small changes
- Frequent changes
- Fail Fast
Hypothesis-based innovation
Definition of the problem itself can be challenging, because it needs to be a measurable problem.
Example:
- "Customers aren't happy with our payment platform choices" isn't measurable, so it's difficult to solve.
- "23 percent of customers leave their shopping session at the step of choosing the payment platform,"
Build
After you have your hypothesis, start to build your process around your hypothesis
Measure
After the process is built - either by PoC, MVP, or other, measure the accuracy of your process against the hypothesis.
Learn
The learn phase is similar to the start of the process. After you learn more about your assumptions and hypothesis, you might find out that they were right, partially right, or wrong. Having a growth mindset and enough humility to admit failures allows you to either:
- Quickly pivot if you need to continue working on your MVP.
- Refocus your efforts in other areas and formulate an alternative hypothesis.
It's important to realize that even if your assumptions and hypothesis were wrong, the process has allowed you to learn something new about your customers and your business. Don't think of it as wasted time. The key is gaining that knowledge as soon as possible and applying it to a future hypothesis. This idea is the core of the fail-fast culture.
Technologies to use during the Build Process
- DevOps - processes and tools to deliver features quickly and reliably
- Microservices - Abstracting smaller pieces of the workload into smaller manageable pieces
- Containerization - packaging dependencies with code to work anywhere
- Kubernetes - An orchestrator for Containers.
- Azure App Service -
Furthermore,
- DevOps processes and tools give your development and operations teams the superpower of delivering new features quickly and reliably.
- You can rearchitect applications into microservices to allow innovation on their components individually, without affecting the rest.
- Containers enable reliable application deployment across multiple platforms and environments.
- Kubernetes is a cloud-agnostic orchestration platform to run containerized applications.
- Azure App Service can run web-based workloads with minimum management overhead. It offers many features, like serverless or application slots, to speed up the innovation cycle.
Thoughts: A question that organizations often ask is what to do if an application is monolithic. Should the organization redesign the application into a microservices architecture before introducing innovation, or can the innovation and redesign processes run in parallel? There's no single answer to this question. It depends on the complexity and business relevance of the application under consideration.
A container runtime is the technology that starts containers on a computer, but more logic is required in a production environment. Who deploys more containers if more performance is required? Who restarts the containers if they have a problem? If multiple computers are available, who decides on which of them a certain container should be started? These and other tasks are the responsibility of a container orchestration platform.
Adding AI - Artificial Intelligence
Data science can be difficult to include in workload and application development
-
Translator services
-
Text Analytics
-
Personalizer for custom recommendations.
-
Knowledge Mining
-
AI Search - helps introduce knowledge mining and flexible search engines into applications with little coding effort. Not only can the service index massive amounts of data, it can also add enrichments to augment the information available to search.
-
Bot Service - chat-based support system where users can resolve their issues quicker at a lower cost.
-
Machine Learning - Azure Machine Learning makes the job of data scientists easier by helping them to share experiment results and manage different models at scale. It can refine models with hyperparameter tuning, and even create new ones with automated learning. It can then deploy the selected models to Kubernetes clusters to offer highly scalable, enterprise-grade APIs that can run the organization's machine-learning models in production.
Measuring Business Impact
Measuring Effectiveness is important. Check your KPIs and see what could be influencing them. App Insights is huge for this.
- Detect problems before users do using Smart Detection in App Insights
- Monitor user activity - After you formulate a hypothesis with the data provided by Azure Application Insights, you can analyze telemetry to measure whether the situation is now better or worse. You can embed custom business events in the application so that telemetry data contains additional information that helps in the measure process.
- Retain users - what was the part of the application that caused users to abandon the most
- Impact analysis - check to see what parts of the application can be optimized.
Technologies for the Learn process
In 2014, Satya Nadella talked about the importance of the data culture in an organization. He said that decisions shouldn't be made based on feelings or subjective opinions, but by using data to validate them. He also said that data should be available to every individual who needs it, and it should be easily converted into actionable insights to facilitate data-driven decisions.
4 points:
- Collect data: The first step to data-driven decision making is always having data. Data collection can take multiple forms: migration from existing data repositories, data generation from sources like Azure Application Insights, or data ingestion from other sources.
- Share data: Collected data needs to be available to everybody who needs it, not only to data experts. All individuals in an organization should be able to use data to make their decisions.
- Centralize data: Centralized data platforms can help to simplify data sharing and governance.
- Govern data: Data sharing doesn't mean that all data needs to be available to everybody. Ensure that any sensitive data is secured, tracked, and governed before sharing it.
- Data Collection
Azure Data Platform
- Analytics
- Migration
- Processing
- Data Sharing
- Power BI is a set of tools that consolidate data coming from disparate sources into integrated, interactive visualizations. Users can dive into the data just by operating intuitive controls. The power of insights is available to everybody in an organization.
Power BI can be used to quickly share, generate insights, and reports.
- Data Centralization
- Volume
- Variety
- Velocity
- Data Governance Who has the access to the data?
Classification:
- Non-business: Data from your personal life that doesn't belong to Microsoft.
- Public: Business data that's freely available and approved for public consumption.
- General: Business data that isn't meant for a public audience.
- Confidential: Business data that can cause harm to Microsoft if overshared.
- Highly confidential: Business data that would cause extensive harm to Microsoft if overshared.
Tips:
- Encryption of data at rest: All Azure data is encrypted when stored in Microsoft datacenters. Some Azure services offer specific encryption features, such as transparent data encryption in Azure Synapse and Azure SQL Database.
- Encryption of data in flight: All Azure data services encrypt data with TLS/SSL before sending it through the network. Some services, such as Azure Storage, can optionally allow unencrypted traffic. Organizations should disable any unencrypted communication for any type of sensitive data.
- Data access control: Azure offers sophisticated authentication and authorization mechanisms both for access to the Azure platform and for access to data itself. Azure role-based access control, Conditional Access, and Privileged Identity Management are three examples of essential services that can help to ensure that only authorized people have access to sensitive information.
- Data auditing: Many regulatory compliance standards demand evidence of data protection mechanisms by documenting who has done certain operations and accessed certain data. As described in Auditing for Azure SQL Database and Azure Synapse Analytics, data auditing in Azure contemplates three aspects of auditing:
- Retain an audit trail of selected events, where you can define categories of data actions to be audited.
- Report on database activity, optionally with preconfigured reports and dashboards to get started quickly.
- Analyze reports to uncover suspicious events, unusual activity, and trends
Growth mindset
Sometimes you learn that what you did was bad news. A growth mindset is fundamental. Think of hypotheses proven wrong or partially wrong as learning opportunities. Organizations shouldn't waste time on an innovation that doesn't generate the expected business outcomes. ^ = Fail Fast
Summary
- DevOps practices and modern application technologies reduce the duration of loops in the innovation cycle, to accelerate the creation of business value.
- You can use data obtained from the application to analyze whether innovation hypotheses are correct, partially correct, or false. This data also allows you to correlate technical aspects of the application to business metrics.
- Data democratization makes sure that the collected data is used to learn from the innovation cycle, and that a growth mindset culture spreads across your organization.