New performance levels and storage add-ons in Azure SQL Database

We are pleased to announce the public preview of new performance levels and storage add-ons in Azure SQL Database. These new choices enable further price optimization opportunities for CPU intensive and storage bound workloads.

Higher performance levels for Standard databases

Previously, the highest performance level for a single database in the Standard tier was limited to 100 DTUs and now increases by 30x to 3000 DTUs with a range of new choices in between. This update follows a similar update which increased the database eDTU limits for Standard elastic pools. The new S4 – S12 performance levels provide price savings opportunities for CPU intensive workloads that do not demand the kind of high IO performance provided by the Premium tier. For IO intensive workloads, the Premium tier continues to provide lower latency per IO and an order of magnitude more IOPS per DTU than in the Standard tier.

Storage add-ons for single databases and elastic pools

Previously, the storage size limit was a fixed amount based on the service tier and performance level. Customers can now purchase extra storage above this included amount for single databases and elastic pools in the Standard and Premium tiers. The decoupling of storage from compute reduces costs by allowing more storage without having to increase DTUs or eDTUs.

Storage provisioned above the included amount is charged extra and billed on an hourly basis. The total price for a single database (or an elastic pool) is the price based on DTUs (or eDTUs) plus the price for any extra storage provisioned. Storage for a single database or elastic pool can be provisioned in increments of 250 GB up to 1 TB, and then in increments of 256 GB beyond 1 TB.

Extra storage unit price

Example

Suppose an S3 database has provisioned 1 TB. The amount of storage included for S3 is 250 GB, and so the extra storage amount is 1 TB – 250 GB = 774 GB. The unit price for extra storage in the Standard tier is approximately $0.085/GB/month during preview, and so the extra storage price is 774 GB * $0.085/GB/month = $65.79/month. Therefore, the total price for this database is $150/month for DTUs + $65.79/month for extra storage = $215.79/month.

New performance levels and storage limits

Single database

Elastic pool

Learn more

To learn more about the new performance levels and storage add-on choices available, please visit the Azure SQL Database resource limits webpage. And for more pricing information, please visit the Azure SQL Database pricing webpage.
Quelle: Azure

This Futuristic Doctor’s Office Is Rolling Across The United States

Jay Watson / Forward

The Google and Uber veterans behind Forward, a new San Francisco health care startup, want to bring their vision for reinventing the doctor’s office to the wider public — so they’re putting it on four wheels.

In January, Forward opened its first concierge clinic in downtown San Francisco. It’s complete with slick tools like iPads to check in patients, biometric-reading body scanners, blood and genetic tests, and giant interactive screens that display your vital signs during visits. Being a Forward member — a $149-a-month commitment that isn’t covered by insurance — also gets you body-monitoring wearables and constant access to doctors and nurses via email and text.

Although Forward’s leaders won’t disclose how many patients have enrolled, they say they’re encouraged by the response and now plan to open up offices in other cities. And to drum up anticipation in those places, Forward has built a pop-up office: an 11-foot-tall, 18-foot-long, nearly 9-foot-wide mobile trailer.

The trailer will first be on display Wednesday in San Francisco, and will be there for the rest of August and early September before it motors to other cities that the company will reveal on Twitter. “We want to tell the story to more people and help catalyze the conversation around ‘What is health care now? What could health care be?’” cofounder Ilya Abyzov told BuzzFeed News.

Visitors to Forward’s mobile trailer will be able to meet a handful of staff members on-board, and try out the body scanner and interactive screen. Some other services — like the blood and genetic tests — won’t be available, though. If they like what they see, they can sign up for a discounted price of $99 a month. Abyzov says the company won’t hang on to any health data from non-customers.

Abyzov was an early Uber employee who was part of launching UberX. Founder and CEO Adrian Aoun previously sold a startup to Google and founded Sidewalk Labs, Alphabet’s experimental urban-design division. Other founders include Erik Frey, who previously oversaw various artificial-intelligence projects at Google, and Rob Sebastian, who led product strategy for several Google projects. Overall, Forward has 80 employees, including six doctors.

Forward has raised $100 million, a person familiar with the situation told BuzzFeed News. A company spokesperson declined to comment.

Jay Watson / Forward

Forward isn’t comprehensive: It doesn’t cover services like hospitalizations, surgeries, or specialist care. Instead, the company says it focuses on encouraging people to proactively take care of their health, before problems and conditions develop. It bears noting that the people most likely to use Forward are tech-savvy and affluent like its founders, a relatively select group compared to the US population as a whole.

“A lot of what we’re trying to do with Forward is build a health care system that’s something you’re excited about, you’re engaged in, and gets better outcomes,” Abyzov said. “It’s part of that bigger story of why can’t health care be something that’s compelling, that’s beautiful, that’s super well-designed, designed to the same standard that Warby Parker designed their store against?”

Quelle: <a href="This Futuristic Doctor’s Office Is Rolling Across The United States“>BuzzFeed

Azure Management Libraries for Java – v1.2

We released 1.2 of the Azure Management Libraries for Java. This release adds support for additional security and deployment features, and more Azure services: Managed service identity Create users in Azure Active Directory, update service principals and assign permissions to apps Storage service encryption Deploy Web apps and functions using MS Deploy Network watcher service Search service https://github.com/Azure/azure-sdk-for-java Getting Started Add the following dependency fragment to your Maven POM file to use 1.2 version of the libraries:<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure</artifactId>
<version>1.2.1</version>
</dependency>

Create a Virtual Machine with Managed Service Identity (MSI)
You can create a virtual machine with MSI enabled using a define() … create() method chain:VirtualMachine virtualMachine = azure.virtualMachines().define(“myLinuxVM”)
.withRegion(Region.US_EAST)
.withNewResourceGroup(rgName)
.withNewPrimaryNetwork(“10.0.0.0/28″)
.withPrimaryPrivateIPAddressDynamic()
.withNewPrimaryPublicIPAddress(pipName)
.withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS)
.withRootUsername(“tirekicker”)
.withRootPassword(password)
.withSize(VirtualMachineSizeTypes.STANDARD_DS2_V2)
.withOSDiskCaching(CachingTypes.READ_WRITE)
.withManagedServiceIdentity()
.withRoleBasedAccessToCurrentResourceGroup(BuiltInRole.CONTRIBUTOR)
.create();

You can manage any MSI-enabled Azure resources from a virtual machine with MSI and add an MSI service principal to an Azure Active Directory security group.
Add New User to Azure Active Directory
You can add a new user to Azure Active Directory using a define() … create() method chain:ActiveDirectoryUser user = authenticated.activeDirectoryUsers()
.define(“tirekicker”)
.withEmailAlias(“tirekicker”)
.withPassword(“StrongPass!12″)
.create();

Similarly, you can create and update users and groups in Active Directory.
Enable Storage Service Encryption for a Storage Account
You can enable storage service encryption at a storage account level when you create a storage account using a define() … create() method chain:StorageAccount storageAccount = azure.storageAccounts().define(storageAccountName)
.withRegion(Region.US_EAST)
.withNewResourceGroup(rgName)
.withEncryption()
.create();

Deploy Web apps and Functions using MS Deploy
You can use MS Deploy to deploy Web apps and functions by using the deploy() method:// Create a Web app
WebApp webApp = azure.webApps().define(webAppName)
.withExistingWindowsPlan(plan)
.withExistingResourceGroup(rgName)
.withJavaVersion(JavaVersion.JAVA_8_NEWEST)
.withWebContainer(WebContainer.TOMCAT_8_0_NEWEST)
.create();
// Deploy a Web app using MS Deploy
webApp.deploy()
.withPackageUri(“link-to-bin-artifacts-in-storage-or-somewhere-else”)
.withExistingDeploymentsDeleted(true)
.execute();

And..// Create a function app
FunctionApp functionApp = azure.appServices().functionApps()
.define(functionAppName)
.withExistingAppServicePlan(plan)
.withExistingResourceGroup(rgName)
.withExistingStorageAccount(app3.storageAccount())
.create();
// Deploy a function using MS Deploy
functionApp.deploy()
.withPackageUri(“link-to-bin-artifacts-in-storage-or-somewhere-else”)
.withExistingDeploymentsDeleted(true)
.execute();

Create Network Watcher and start Packet Capture
You can visualize network traffic patterns to and from virtual machines by creating and starting a packet capture using a define() … create() method chain, downloading the packet capture and visualizing network traffic patterns using open source tools:// Create a Network Watcher
Network Watcher networkWatcher = azure.networkWatchers().define(nwName)
.withRegion(Region.US_EAST)
.withNewResourceGroup(rgName)
.create();
// Start a Packet Capture
PacketCapture packetCapture = networkWatcher.packetCaptures()
.define(packetCaptureName)
.withTarget(virtualMachine.id())
.withStorageAccountId(storageAccount.id())
.withTimeLimitInSeconds(1500)
.definePacketCaptureFilter()
.withProtocol(PcProtocol.TCP)
.attach()
.create();

Similarly, you can programmatically:

Verify if traffic is allowed to and from a virtual machine
Get the next hop type and IP address for a virtual machine
Retrieve network topology for a resource group
Analyze virtual machine security by examining effective network security rules applied to a virtual machine
Configure network security group flow logs.
Create a Managed Cloud Search Service
You can create a managed cloud search service (Azure Search) with replicas and partitions using a define() … create() method chain:SearchService searchService = azure.searchServices().define(searchServiceName)
.withRegion(Region.US_EAST)
.withNewResourceGroup(rgName)
.withStandardSku()
.withPartitionCount(1)
.withReplicaCount(1)
.create();

Similarly, you can programmatically:

Manage query keys
Update search service with replicas and partitions
Regenerate primary and secondary admin keys.
Try it
You can get more samples from our GitHub repo. Give it a try and let us know what you think (via e-mail or comments below). You can find plenty of additional info about Java on Azure at http://azure.com/java.
Quelle: Azure

Intelligent email categorization with machine learning

You’ve probably heard the words “machine learning” thrown around a lot lately. But what exactly is it and how can it be used to improve your own services or workflows? To demystify this concept, we’ve created a series of articles that look at common problems and the different ways machine learning can be used to solve them. Our first article examines how machine learning can be used to improve customer service.
Let’s say you run a company that gets a wide variety of emails to your customer service account. There are numerous ways you can go about using these emails to make inferences about how your customers are feeling about your business. Many companies have a customer service representative manually read and categorize each and every email. But as the volume of emails you receive increases, this approach can be difficult and time consuming. The following is a look at the various ways companies are tackling this problem, and how machine learning presents a solution.

.post-content #google-cloud-embed iframe {
max-height: none;
}

Although we presented a simplified view of how this problem can be solved with and without machine learning, the power it can provide should be evident. But semi-supervised machine learning is just one of many concepts under the machine learning umbrella. In our next post, we’ll explore other models that help solve different problems.
In the meantime, if you’re interested in learning more, you can build you own intelligent email routing model with code we’ve made available in Github. You can download it here.By Saptarshi Mukherjee, Product Marketing Manager and Prashant Dhingra, Machine Learning Lead, Google Cloud 

(function() {
function setup() {
var url = ‘https://polygraph-cool.github.io/google_cloud_1/index.html';
var pymParent = new pym.Parent(‘google-cloud-embed’, url, {});
}

function check() {
var el = document.querySelector(‘#google-cloud-embed’);
if (el) setup();
else setTimeout(check, 500);
}

check();
})()

Quelle: Google Cloud Platform

What’s brewing in Visual Studio Team Services: August 2017 Digest

This post series provides the latest updates and news for Visual Studio Team Services (VSTS) and is a great way for Azure users to keep up-to-date with new features being released every three weeks. Visual Studio Team Services offers the best DevOps tooling to create an efficient continuous integration and release pipeline to Azure.

This month we’ll take a look at the new release definition editor, an update on the new wiki, improvements in pull requests, and how you can quickly get started building your own extension for VSTS. Let’s get started with a look at the latest release experience improvements.

New Release Definition Editor

The new Release Definition Editor going into preview. It is based off the new CI editor we released not long ago, and it’s a good example of the overall direction that we are going. It’s not just a cleaner experience, it is structurally different in that it lets you visualize your release process. It lets you work with Release in the way you think about your system. We are going to be bringing this same approach to the runtime views as well so that you can visualize a release as it progresses. Unlocking all of your data with richer, easier to consume visualizations is something we are trying to do across the product.

Visualization of the pipeline

The pipeline in the editor provides a graphical view of how deployments will progress in a release. The artifacts will be consumed by the release and deployed to the environments. The layout and linking of the environments reflects the trigger settings defined for each environment.

In context configuration UI

Artifacts, release triggers, pre deployment and post deployment approvals, environment properties and deployment settings are now in-context and easily configurable.

Applying deployment templates

The list of featured templates are shown when creating a new environment.

Improved task and phase editor

All the enhancements in the new build definition editor are now available in the release definition editor, too. You can search for tasks and add them either by using the Add button or by using drag and drop. You can reorder or clone tasks using drag and drop.

Code information in Release with Jenkins CI

In Release, we want to have better integration with popular CI systems like Jenkins. Today, in the release summary tab, we show code commits only if the CI build is coming from VSTS. This feature enables code information for Jenkins CI artifacts as well when the Jenkins server is reachable by the agent executing the release.

Release status badge in Code hub

Today, if you want to know whether a commit is deployed to your customer production environment, you first identify which build consumes the commit and then check all of the release environments where this build is deployed. Now this experience is much easier with the integration of the deployment status in the Code hub status badge to show the list of environments that your code is deployed to. For every deployment, status is posted to the latest commit that was part of the deployment. If a commit is deployed to multiple release definitions (with multiple environments) then each has an entry in the badge, with status shown for each environment. This improves the traceability of code commit to deployments.

Ansible extension

We have released a new extension that includes a build and release task to integrate with Ansible and execute a given Playbook on a specified list of Inventory nodes via command line interface. Ansible uses Playbooks which express configurations, deployment, and orchestration steps in YAML format. Each Playbook maps a group of hosts to a set of roles. Each role is represented by calls to Ansible tasks. An Inventory file is a description of the host nodes that can be accessed by Ansible.

The task requires that the Playbook and Inventory files be located either on a private Linux agent or on a remote machine where an Ansible automation engine has been installed. An SSH endpoint needs to be set up if the Ansible is located on a remote machine. Inventory can also be specified inline, as Dynamic Inventory, or as a Host list.

Improvements in the Wiki edit experience

As I mentioned last month, each project in VSTS now supports its own Wiki, and it continues to improve every sprint. Let’s look at some of the latest enhancements.

The new Wiki edit experience now supports HTML tags in markdown.

You can also conveniently resize images in the markdown folder.

Revert a Wiki revision

As you use Wiki more, there is a chance you’ll save unintended changes. Now you can revert a revision to a Wiki page by going to the revision details and clicking on the Revert button.

Learn more about getting started with Wiki.

Git pull request status extensibility in public preview

Using branch policies is a great way to increase the quality of your code, not only through code reviews, but also through automated builds and tests. Until now, those policies have been limited to only the integrations provided natively by VSTS. Using the new PR Status API and the corresponding branch policy, third party services can participate in the PR workflow just like native VSTS features.

When a service posts to the Status API for a pull request, it will immediately appear in the PR details view in a new Status section. The status section shows the description and creates a link to the URL provided by the service. Status entries also support an action menu that is extensible for new actions to be added by web extensions.

Status alone does not block completion of a PR – that’s where the policy comes in. Once PR status has been posted, a policy can then be configured. From the branch policies experience, a new policy is available to Require approval from external services. Select + Add service to begin the process.

In the dialog, select the service that’s posting the status from the list and select the desired policy options.

Once the policy is active, the status will be shown in the Policies section, under Required or Optional as appropriate, and the PR completion will be enforced as appropriate.

To learn more about the status API, and to try it out for yourself, check out the documentation and samples.

Automatically complete work items when completing pull requests

If you’re linking work items to your PRs (you are, right?), keeping everything up to date just got simpler. Now, when you complete a PR, you’ll have the option to automatically complete the linked work items after the PR has been merged successfully. If you’re using policies and set PRs to auto-complete, you’ll see the same option. No more remembering to revisit work items to update the state once the PR has completed – VSTS will do it for you.

Task lists in pull request descriptions and comments

When preparing a PR or commenting, you sometimes have a short list of things that you want to track but then end up editing the text or adding multiple comments. Lightweight task lists are a great way to track progress on a list of to-dos as either a PR creator or reviewer in the description or a single, consolidated comment. Click on the Markdown toolbar to get started, or apply the format to selected text.

Once you’ve added a task list, you can simply check the boxes to mark items as completed. These are expressed and stored within the comment as [ ] and [x] in Markdown. See Markdown guidance for more information.

Ability to “Like” comments in pull requests

Show your support for a PR comment with a single click on the like button. You can see the list of all people that liked the comment by hovering over the button.

Clean up stale branches

Keeping your repository clean by deleting branches you no longer need enables teams to find branches they care about and set favorites at the right granularity. However, if you have a lot of branches in your repo, it can be hard to figure out which are inactive and can be deleted. We’ve now made it easier to identify “stale” branches (branches that point to commits older than 3 months). To see your stale branches, go to the Stale pivot on the Branches page.

Search for a deleted branch and re-create it

When a branch is accidentally deleted from the server, it can be difficult to figure out what happened to it. Now you can search for a deleted branch, see who deleted it and when, and re-create it if you wish.

To search for a deleted branch, enter the full branch name into the branch search box. It will return any existing branches that match that text. You will also see an option to search for an exact match in the list of deleted branches. Click the link to search deleted branches.

If a match is found, you will see who deleted it and when. You can also restore the branch.

Restoring the branch will re-create it at the commit to which it was last pointed to. However, it will not restore policies and permissions.

Copy work item processes

You can now create a copy of an inherited process to use as a starting point for a new process, or to prepare and test process changes.

If you make a change to the process that is used by one or more team projects, each of these team projects will see these changes immediately. Often, that is not what you want. Instead, you want to bundle the changes to your process and test your changes before they are rolled out to all team projects. You can do this by following these steps:

Create a copy of the process that you want to change.
Make your changes to the duplicated process. Since no team project is using this process, these changes are not affecting anyone.
To test your changes, create a test project based on this duplicated process if you don't have any yet. If you have already created a test project before, you can change the process of the test project using the Change team project to use <process name> option from the context menu.
Now it is time to deploy the changes. To do this, you change the process of the team projects which need the new changes. Select the Change team project to use <process name> option from the context menu.
Optionally, you can disable or delete the original process.

Updated order of the last column in the Kanban board

If you added a custom state to your work item type, you might have noticed that the last column on the Kanban board always presented the card that was closed earliest. We’ve found that seeing the card closed most recently is often more helpful.

The root cause of this behavior is that the last column of the Kanban board is ordered descending on the Closed Date field. In our processes (Scrum, Agile, CMMI), each work item type includes rules to set this field when it is transitioned to the Closed or Done state (depending on the process and work item type). However, if you add a custom state we didn't automatically add rules to set the Closed Date field to support the new state. If you’d move a work item from the New state to the Closed or Done state, the Closed Date would have an empty value. Our query engine puts empty values on top when ordering descending. So on the Kanban board, you would see the cards on top that were closed earliest.

We first made sure that we are adding the right set of rules to the work items in case you are adding a custom state. You will not see an empty Closed Date anymore when closing a work item. We will not backfill existing closed work items. To ensure that you will see the most recently closed cards on the top in the Kanban board, we have also updated the ordering logic on the last column of the Kanban board to put cards with empty values for the Closed Date field at the bottom.

Velocity Widget for Analytics

The Analytics extension now includes a Velocity widget.

With this powerful widget, you can chart your team’s velocity by Story Points, work item count, or any custom field. With advanced options, you can compare what your team delivered as compared to plan, as well as highlighting work that was completed late.

The Velocity Widget provides functionality not available in the Velocity Chart displayed on the Backlog view, such as:

Show velocity for any team, not just the current team
Show velocity for any backlog level or work item type, not just the Stories backlog.
Calculate velocity by sum of any field, not just Story Points. Or, by count of any work item type.
Show planned vs. actual. Did you deliver what you actually planned?
Highlight work that was completed late, after the sprint.
It supports sizing to 1×1, for when you just want a tile to show your average velocity.

If you haven’t already, install the Analytics Extension to get access to the Velocity Widget as well as widgets for Lead Time, Cycle Time, and a Cumulative Flow Diagram.

We will be publishing more widgets for the Analytics Extension in the coming months, such as Burndown, Burnup, and Trend.

Extension of the month: SpecFlow+LivingDoc

SpecFlow+LivingDoc is now available in the Marketplace. Living documentation is the term used to describe system documentation that is up-to-date and easily understood. A prime example of this are feature files written in Gherkin, which uses natural language to describe how an application is expected to behave in a given scenario. By describing specifications in a natural language, all stakeholders (business, development, testing, requirements etc.) can understand and discuss the specifications on an equal footing. These specifications, in turn, form an important part of the system documentation, and are commonly used in agile development methods such BDD and Specification by Example.

For many .NET developers, the open source project SpecFlow is their tool of choice for automating test scenarios written in Gherkin with Visual Studio. However, these Gherkin files are plain text files, and are generally stored in a code repository and inaccessible to many team members. While the SpecFlow Visual Studio extension supports syntax highlighting for Gherkin in Visual Studio, not all stakeholders have access to Visual Studio, in particular, business stakeholders.

SpecFlow+ LivingDoc bridges this gap, making the specifications written in Gherkin accessible to all team members in VSTS. SpecFlow+ LivingDoc is part of SpecFlow+, a series of (optional) paid extensions for SpecFlow. SpecFlow+ LivingDoc takes your feature files and parses them so that they can be displayed in VSTS with syntax highlighting and formatting. This makes the feature files much easier to navigate than plain text without any formatting.

Formatting includes the following:

Gherkin keywords syntax highlighting
Tables
Alternating background colors for Given/Then/When sections
Support for images embedded via Markdown

Quickly get started writing your own extension

Over the last few years we have introduced a number of ways to extend and integrate with VSTS. For example, we have client libraries for .NET (which work with both .NET Framework and .NET Core apps) and for Node.js. We also have an extensibility model that allows extension of our web experience.

With all of these great options, the challenge is knowing what pieces you need to get started and then assembling them in the right way. We have made a lot of improvements to our integration docs and are planning another wave of improvements to our docs soon, but sometimes you need more than docs.

In a new blog post, The fastest path to a new VSTS extension, we show you how to quickly get started building your own extension.

There is always much more in each release than I can cover here. Please check out the July 14th and August 4th release notes for more information. Be sure to subscribe to the DevOps blog to keep up with the latest plans and developments for VSTS.

Happy coding!

@tfsbuck
Quelle: Azure