Fast and Furious: Azure Pipelines (2) deploy your Infra and Apps or releases with automation..

Living in a world faster than ever, tools focus on provide infrastructure, applications, mobile apps in an automated way are not important but crucial to survive in a market where companies change their strategies from a week to the next. One region can be a first product market for a company today, but tomorrow it´s a different one.

Devops platforms for the most important providers assumed the principle as native. Azure Devops is focus on CI/CD as many of its competitors but include one secret weapon: flexibility to deploy infra and apps in a question of minutes anywhere, anytime..with reliability and control.

Azure Devops has compatibility with Terraform: https://azure.microsoft.com/en-us/solutions/devops/terraform/ with Ansible: https://docs.microsoft.com/en-us/azure/developer/ansible/overview as a way to provide IaC (infrastructure as code). But also can facilitate its own ARM templates https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/add-template-to-azure-pipelines to create the infrastructure previously needed to deploy the mobile APPs or releases to sell our products in the new target market.

Finally and quite interesting as a Software Company you need to ensure that your code is secure and safe of bugs..so you don´t make the life easier to hackers or governments who are more than happy to know your pillars in the market, your most important technology or science secrets.

To solve such a problem you can integrate in a very flexible manner tools like SonarQube: https://www.sonarqube.org/microsoft-azure-devops-integration/

Be aware that this is real and the last case happened to Solar Winds just some days ago of publishing this post, provoking a big impact in US security: https://www.reuters.com/article/us-global-cyber-usa-dhs-idUSKBN28O2LY

So after this clarification, let me tell you Azure Pipeline can reduce your technical debt (impact you have if you are programming your code a lot of times by choosing an easy and limited workaround causing delay and security holes and performance issues instead of using a better approach from scratch) as well as improve the speed to deliver anywhere, anytime.

So we are going to create a new release and choose an scenario i´ve created previously on Azure where we have just a simple WebAPP on a APP Service plan F1 which is free as it´s just a small lab.

We hit on “create a new release” ..and choose our infra in an Azure Tenant..this is opt to you..and the build we want to deploy over there..

Right now we have prepared our build and the infra where we want to deploy the software or release..

Just to remember, Microsoft provide two type of agent to run the jobs in charge of compile the code or deploy the releases:

Microsoft hosted agents, those run in Azure by Microsoft to support your software projects.

Self-Hosted agents, those that can be installed on a VMs or prem or a different private cloud for example to support the software projects.

We run here a Microsoft Azure agent:

We have the infra ready on Azure as well:

Finally hit on “Deploy”…and the magic happens..

You can see a sample Microsoft Lab website appear on the WebApp quite quick..

With this post we finish a global view to Devops from the Microsoft perspective. A solid respond to current times that solves many of the software life cycle challenges.

Enjoy the journey to the cloud with me…see you then in the next post.

Your code and your builds from anywhere, anytime – Azure Repos and Azure Pipelines (1)

It’s not magic, but a very versatile tool that can provide all you need to work remotely on you Continuous Integration. If you want a repository with security, SSO and integrated with the best tools to work on your builds, if you want a solution to automate the builds as well as the releases, you are in the right post.

First of all and somehow starting from the end, yes the end, you can choose Git, Github, Bit bucket (Atlassian), GitLab, etc as the origin of your code to run builds. Yes, it is opt to you where you have your code. I wanted to pointed out this to show you how flexible is the solution.

So after this clarification, let me tell you Azure Repos has by default a Git repository. You will use a Gitflow repository approach where you have the master branch on Azure repos and several branches for developers to solve issues, develop new features or fix a bug on a distribute way.

So after a pull request and some specific branch policies that maybe or maybe not you can put in place and the approval of several stakeholders involved in application development, you will merge your code with the master one on the cloud, on your azure repos for this specific project.

On repos you can maintain the code, json file, yaml files, clone, download or do some changes from your Eclipse or Visual Studio client for example.

Furthermore you have the tracking of commits and pushes done in your project code as well as a correlation of all the branches right now active.

On a perfect strategy with your builds you can prepare a new one in a very easy way…just hit on “New Pipeline”

Choose as i´ve told you at the start of this post where is your code..

Let’s say we are going to use a Yaml file. A Yaml file is nothing else than a data-oriented language configuration file where you describe all related to the application that you want to compile. As a run time, programming language and package manager to include some specific libraries..for example.

And finally save and run your build. In this case, it will be roll out manually but you can configure automation and trigger a code compilation after some changes in the code and maybe some approvals from you Project Manager.

So then if you want configure a trigger for the automation…just configure depending on your needs the triggers tab..and that´s all.

In the next post i’ll follow explaining more about azure repositories and azure pipelines so you can see the tremendous mechanism to accelerate the Continuous Deployment for the top developers performers companies.

Enjoy the journey to the cloud with me…see you then in the next post.

Work as a team on Covid times – Azure boards

Developers, Project managers, stakeholders during an application modernization project are the pillars to create a real powerful APP. This in previous times to Covid was still a challenge and now even more. Are you developers disconnected?, are your teams more than teams a silo? .

There is a component quite important within Azure Devops called Boards. This component is part of your solution as you can roll out Scrum or agile approaches quite easily to your developers and stakeholders .

So within your Organization on Azure Devops, click on new project. you can choose between a private one (requires authentication and it´s focus on a team) or public (and open source development for the Linux community for example).

So when i start a project, i can choose the methodology and strategy to follow up my project and foster collaboration?

Azure Boards support several actors: user stories, tasks, bugs, features, and epics. When you create a project, you have the option to choose if you want a basic project with just Epics (the goals that you would like to achieve. Let’s say), Issues (what kind of steps should be follow or milestones) and Tasks (they are included per Issue and means the lists of points you need to execute to get the issue done) or Agile, etc. You can then assign all these items to several people and correlate those efforts on several springs.

So you can create work items to track what happens on the follow up of your development. You can coordinate and motive your team to solve delays, problems and  you would be home and dry.

On one hand, you have all the developers working remotely on this tough times and using SSO as Azure Devops is integrated with your Azure Active Directory.

On the other hand, you can invite as guest other employees or users to access your projects if they are private. Keep in mind that you can even create public projects to open software as i mentioned previously.

Let’s see how a project manager can track an application using a Scrum approach. On the Epic you will establish the goals: some business requirements or maybe an specific enhancement to the Application. To achieve that the team will work on a Feature with a bunch of Tasks to be done. Also all this effort will be tracked on boards.

So in this case of an Agile project you can use an approach like this one where you have a goal or Epic a “New Web Service Version”, you have some user´s stories like project manager or developers and obviously some issues which involves tasks to be done.

For example, create a new CI/CD process with a pipeline where you will deploy the releases on a Web App (with an slots for staging, production or development).

Also, you can see this process including the issues or the tasks associated in each sprint. You will have as much springs as needed to achieve all the goals on the final application release. To show that just check Sprints within Azure boards. Take into account you need to determine with steps or issues/ tasks should be done on each of those springs.

Finally, pay attention to identify the timeline of your springs so the project manager can detect delays and help the team to progress properly.

Adding Azure Boards to a Tab within Teams to foster the collaboration between the stakeholders bring a lot of potential as make very flexible the access, the follow up of the project and checking of every milestone.

On Teams you can add a new tab and choose Azure DevOps…

When selecting the app, you can choose the organization, project and team..

So once you have selected all, you can hit save..

Now as a project manager, you can stay on the same page with a few clicks.

In the next post we’ll show and explain more about azure repositories and azure pipelines so you can see the tremendous mechanism to accelerate the Continuous Integration for the top developers performers companies.

Enjoy the journey to the cloud with me…see you then in the next post.

Azure Devops integrates all in one

The current landscape is full of companies with a little mess in terms of software life cycle. I mean, different repositories, several control version approaches, open source not clearly identify in some cases, several programming languages and packet management and even the CI/CD strategy can change a lot from one application to the next.

What happens here brings delay to deliver releases, developers team miscommunication, fixes for bug not clear, builds are a pain, springs extended for more than expected, poor software quality with scarce testing and in general risk on the code security.

Why Azure Devops?

Azure Devops provide all that is needed in order to cover repositories integration, tools to review the quality of the code, big actors from the open source world like Jenkins a friendly approach for several packages as NuGet, npm and Maven. Even the operational maintenance can be done with Microsoft solution as Azure monitor (Insight is now a component), Azure security center, azure policy, etc. Or even if you want you can use Nagios, splunk or Zabbix.  

If your team works mainly with Eclipse, jenkins, selenium, sonarqube, even with Jira you have a full and flexible integration with Azure Devops.

If your team works with Visual Studio and you have MSDN subscriptions you can get azure devops users subscription for free. It sounds good, isn’t it?

But what benefits in a nutshell can bring Azure Devops to our company?.

  • Timely Access to New Features

Every three weeks, DevOps users receive access to new features.

  • Remote cloud accessible anywhere, anytime, SSO

Users can access anywhere, anytime, without VPN and with SSO and MFA. So with security but adding mobility and flexibility to work remotely.

  • No Upgrades to Worry About

Users need not worry about upgrading or patching up the toolchain because the Azure DevOps is a SaaS product. Companies that run on a CI/CD model no longer need to slow things down for the sake of upgrading.

  • Reliability

Azure DevOps is backed by 24 x7 support and a 99.9% SLA.

  • Flexibility

If your DevOps team doesn’t want or need the full suite of services,they can acquire the specific components needed to fulfill your expectations. Even it´s possible to integrate Open source solutions if requiere as we´ve mentioned and other competitors as well.

  • It’s Platform-agnostic

DevOps is designed to run on any platform (Linux, macOS, and Windows) or language (Android, C/C++, Node.js, Python, Java, PHP, Ruby, .Net, and iOS apps). Woowowww!!

  • It’s Cloud-agnostic

Azure DevOps works with AWS and GCP.

In the next post we will show and explain the components within this solid and strong developers platform.

Enjoy the journey to the cloud with me…see you then in the next post.