Announcing public preview of disaster recovery for Azure IaaS virtual machines

I am excited to announce the public preview of disaster recovery for Azure IaaS virtual machines (VMs) using Azure Site Recovery (ASR). You can now easily replicate and protect IaaS based applications running on Azure to a different Azure region of your choice without deploying any additional infrastructure components or software appliances in your subscription. This new capability, along with Azure Backup for IaaS virtual machines, allows you to create a comprehensive business continuity and disaster recovery strategy for all your IaaS based applications running on Azure. As you move production applications to the cloud, Azure natively provides you the high availability and reliability that your mission critical workloads need. However, compliance requirements such as ISO 27001 still require that you have a provable disaster recovery solution in place as part of a business continuity plan (BCP). The set of features that we are announcing today for Azure IaaS fill this important need. Disaster Recovery for Azure IaaS applications extends ASR’s existing functionality, and further simplifies the onboarding experience for customers: Offered “as-a-Service” – You do not need any additional software infrastructure (VMs or appliances) in your Azure subscription to enable this functionality. You avoid all the complexity and cost associated with deploying, monitoring, patching and maintaining any DR infrastructure. Simplified experience – Enabling cross-region DR for an application is so simple that all you need to do is select the VMs you want to protect, choose a target Azure region, select replication settings and you are good to go. Application-aware recovery – Whether you are an application owner, disaster recovery admin or a managed service provider, ASR lets you stay in control at all times – you can decide when and how to orchestrate a failover. With support for best-in-class recovery point objective (RPO), recovery time objective (RTO) and ASR’s powerful Recovery Plans, your applications can meet the recovery requirements that your business demands. Non-disruptive DR drills – With ASR’s test failover capability, you can easily perform a DR drill anytime without any impact to the primary production workload or to ongoing replication, giving you the confidence that your DR solution will work when you need it. Cross-region DR feature is now available in all Azure public regions where ASR is available. Click here to get started.
Quelle: Azure

Streamlining Kubernetes development with Draft

I’m Gabe Monroy, the lead PM for containers on Microsoft Azure. I joined Microsoft in April in the acquisition of Deis. At Deis, our team was always laser-focused on making containers easier to use – and easier to deploy on Kubernetes specifically. Now as part of Microsoft, I’m thrilled to continue that mission and share the first piece of open-source software we’re releasing as part of the Azure Container Service team.

Application containers have skyrocketed in popularity over the last few years. In recent months, Kubernetes has emerged as a popular solution for orchestrating these containers. While many turn to Kubernetes for its extensible architecture and vibrant open-source community, some still view Kubernetes as too difficult to use.

Today, my team is proud to announce Draft, a tool that streamlines application development and deployment into any Kubernetes cluster. Using two simple commands, developers can now begin hacking on container-based applications without requiring Docker or even installing Kubernetes themselves.

Draft in action

Draft targets the “inner loop” of a developer’s workflow – while developers write code and iterate, but before they commit changes to version control. Let’s see it in action.

Setting sail for Kubernetes

When developers run “draft create” the tool detects the application language and writes out a simple Dockerfile and a Kubernetes Helm chart into the source tree. Language detection uses configurable Draft “packs” that can support any language, framework, or runtime environment. By default, Draft ships with support for languages including Node.js, Go, Java, Python, PHP, and Ruby.

You can customize Draft to streamline the development of any application or service that can run on Kubernetes. Draft packs are just a simple detection script, a Dockerfile, and a Helm chart.

This simple yet flexible user experience for developers is inspired by PaaS systems like Deis and Cloud Foundry which support the concept of buildpacks. However, Draft differs from buildpack-oriented PaaS systems because it writes out build and deployment configuration into the source tree, making it trivial to construct continuous integration (CI) pipelines that can bring these containers all the way to production.

Edit locally, dev remotely

Once developers run “draft create”, hacking on the application is as simple as typing “draft up”. This ships source code to any Kubernetes cluster (running either locally or in the cloud), builds it in that cluster using the Dockerfile, and deploys it into a dev environment using the Helm Chart. Developers can then test their app live, and any changes in their editor or IDE will be made available in seconds. With a Jenkins registry and a Kubernetes cluster, developers can build on a tight iteration loop from code through deployment, either in concert with an operations team or on their own laptop.

While some developers often start alone, pointing Draft at a Kubernetes cluster running on a laptop, Draft works equally well on a remote Kubernetes cluster. This allows developers to edit code locally, but have their dev environment running in the cloud where they can access all their app’s production dependencies. Three cheers for “dev” and “prod” parity!

Get started today

ACS has a long history of openness including support for multiple orchestrators and the open source ACS-Engine project, which helps customers customize their own ACS cluster. We are proud to extend that open spirit to new projects that help developers succeed with container technology. As of today, Draft is open source and available at https://aka.ms/draft. Spin up a Kubernetes Cluster on ACS and take Draft for a test drive today.
Quelle: Azure

Draft: Kubernetes container development made easy

Today’s post is by Brendan Burns, Director of Engineering at Microsoft Azure and Kubernetes co-founder.About a month ago Microsoft announced the acquisition of Deis to expand our expertise in containers and Kubernetes. Today, I’m excited to announce a new open source project derived from this newly expanded Azure team: Draft. While by now the strengths of Kubernetes for deploying and managing applications at scale are well understood. The process of developing a new application for Kubernetes is still too hard. It’s harder still if you are new to containers, Kubernetes, or developing cloud applications.Draft fills this role. As it’s name implies it is a tool that helps you begin that first draft of a containerized application running in Kubernetes. When you first run the draft tool, it automatically discovers the code that you are working on and builds out the scaffolding to support containerizing your application. Using heuristics and a variety of pre-defined project templates draft will create an initial Dockerfile to containerize your application, as well as a Helm Chart to enable your application to be deployed and maintained in a Kubernetes cluster. Teams can even bring their own draft project templates to customize the scaffolding that is built by the tool.But the value of draft extends beyond simply scaffolding in some files to help you create your application. Draft also deploys a server into your existing Kubernetes cluster that is automatically kept in sync with the code on your laptop. Whenever you make changes to your application, the draft daemon on your laptop synchronizes that code with the draft server in Kubernetes and a new container is built and deployed automatically without any user action required. Draft enables the “inner loop” development experience for the cloud.Of course, as is the expectation with all infrastructure software today, Draft is available as an open source project, and it itself is in “draft” form :) We eagerly invite the community to come and play around with draft today, we think it’s pretty awesome, even in this early form. But we’re especially excited to see how we can develop a community around draft to make it even more powerful for all developers of containerized applications on Kubernetes.To give you a sense for what Draft can do, here is an example drawn from the Getting Started page in the GitHub repository.There are multiple example applications included within the examples directory. For this walkthrough, we’ll be using the python example application which uses Flask to provide a very simple Hello World webserver. $ cd examples/pythonDraft CreateWe need some “scaffolding” to deploy our app into a Kubernetes cluster. Draft can create a Helm chart, a Dockerfile and a draft.toml with draft create:$ draft create–> Python app detected–> Ready to sail$ lsDockerfile  app.py  chart/  draft.toml  requirements.txtThe chart/ and Dockerfile assets created by Draft default to a basic Python configuration. This Dockerfile harnesses the python:onbuild image, which will install the dependencies in requirements.txt and copy the current directory into /usr/src/app. And to align with the service values in chart/values.yaml, this Dockerfile exposes port 80 from the container.The draft.toml file contains basic configuration about the application like the name, which namespace it will be deployed to, and whether to deploy the app automatically when local files change.$ cat draft.toml[environments]  [environments.development]    name = “tufted-lamb”    namespace = “default”    watch = true    watch_delay = 2Draft UpNow we’re ready to deploy app.py to a Kubernetes cluster.Draft handles these tasks with one draft up command:reads configuration from draft.tomlcompresses the chart/ directory and the application directory as two separate tarballsuploads the tarballs to draftd, the server-side componentdraftd then builds the docker image and pushes the image to a registrydraftd instructs helm to install the Helm chart, referencing the Docker registry image just builtWith the watch option set to true, we can let this run in the background while we make changes later on…$ draft up–> Building DockerfileStep 1 : FROM python:onbuildonbuild: Pulling from library/python…Successfully built 38f35b50162c–> Pushing docker.io/microsoft/tufted-lamb:5a3c633ae76c9bdb81b55f5d4a783398bf00658eThe push refers to a repository [docker.io/microsoft/tufted-lamb]…5a3c633ae76c9bdb81b55f5d4a783398bf00658e: digest: sha256:9d9e9fdb8ee3139dd77a110fa2d2b87573c3ff5ec9c045db6009009d1c9ebf5b size: 16384–> Deploying to Kubernetes    Release “tufted-lamb” does not exist. Installing it now.–> Status: DEPLOYED–> Notes:     1. Get the application URL by running these commands:     NOTE: It may take a few minutes for the LoadBalancer IP to be available.           You can watch the status of by running ‘kubectl get svc -w tufted-lamb-tufted-lamb’  export SERVICE_IP=$(kubectl get svc –namespace default tufted-lamb-tufted-lamb -o jsonpath='{.status.loadBalancer.ingress[0].ip}’)  echo http://$SERVICE_IP:80Watching local files for changes…Interact with the Deployed AppUsing the handy output that follows successful deployment, we can now contact our app. Note that it may take a few minutes before the load balancer is provisioned by Kubernetes. Be patient!$ export SERVICE_IP=$(kubectl get svc –namespace default tufted-lamb-tufted-lamb -o jsonpath='{.status.loadBalancer.ingress[0].ip}’)$ curl http://$SERVICE_IPWhen we curl our app, we see our app in action! A beautiful “Hello World!” greets us.Update the AppNow, let’s change the “Hello, World!” output in app.py to output “Hello, Draft!” instead:$ cat <<EOF > app.pyfrom flask import Flaskapp = Flask(__name__)@app.route(“/”)def hello():    return “Hello, Draft!n”if __name__ == “__main__”:    app.run(host=’0.0.0.0′, port=8080)EOFDraft Up(grade)Now if we watch the terminal that we initially called draft up with, Draft will notice that there were changes made locally and call draft up again. Draft then determines that the Helm release already exists and will perform a helm upgrade rather than attempting another helm install:–> Building DockerfileStep 1 : FROM python:onbuild…Successfully built 9c90b0445146–> Pushing docker.io/microsoft/tufted-lamb:f031eb675112e2c942369a10815850a0b8bf190eThe push refers to a repository [docker.io/microsoft/tufted-lamb]…–> Deploying to Kubernetes–> Status: DEPLOYED–> Notes:     1. Get the application URL by running these commands:     NOTE: It may take a few minutes for the LoadBalancer IP to be available.           You can watch the status of by running ‘kubectl get svc -w tufted-lamb-tufted-lamb’  export SERVICE_IP=$(kubectl get svc –namespace default tufted-lamb-tufted-lamb -o jsonpath='{.status.loadBalancer.ingress[0].ip}’)  echo http://$SERVICE_IP:80Now when we run curl http://$SERVICE_IP, our first app has been deployed and updated to our Kubernetes cluster via Draft!We hope this gives you a sense for everything that Draft can do to streamline development for Kubernetes. Happy drafting!–Brendan Burns, Director of Engineering, Microsoft AzurePost questions (or answer questions) on Stack OverflowJoin the community portal for advocates on K8sPortFollow us on Twitter @Kubernetesio for latest updatesConnect with the community on SlackGet involved with the Kubernetes project on GitHub
Quelle: kubernetes