Roadmap review and retrospective – 2017: DevOps way

2017: DevOps way


  • DevOps as Code
  • Pipeline – the ultimate cultural tool
  • Delivering changes for databases (including databases in the DevOps routine)


  • Data masking
  • Data generation

Source Control

  • Redgate SQL Source Control
  • Migrations vs State

Continuous Integration

  • Jenkins 2
  • TeamCity
  • Travis CI
  • VSTS Build

Continuous Delivery

  • Octopus Deploy (@ Linux)
  • VSTS Release Management

Configuration Management

  • Puppet


  • Elastic stack (Logstash, Elastic Search, Kibana)


  • Azure Monitor
  • Datadog


  • Azure Resource Manager
  • Web Apps
  • SQL Database


  • The basics – resources creation, configuration, management
  • CloudFormation


  • SQL Source Control
  • DLM Automation
  • DLM Dashboard
  • SQL Clone
  • SQL Monitor

Looking at this roadmap and thinking about what I was able to do, the first improvement is: making smaller roadmaps, I need to be more focused on the covered subjects.

  • DevOps
    • This year the discussion around DevOps was about it’s implementation (“how to get Devops!?”).
    • I dedicated lot of time and effort talking and writing about the deployment pipeline as a cultural and technical organization tool.
    • The same happen with the how and the why database changes should be included in deployment pipeline together with application development.
  • Database
    • Data masking – topic not covered (but since in 2018 GDPR is arriving I will comeback to this topic).
    • Data generation – topic not covered.
  • Continuous Integration
    • Gained a good knowledge and experience using TeamCity.
    • Continued to deepen my VSTS build knowledge.
    • Made the first approach to TravisCI and AppVeyor.
  • Configuration Management
    • Made a good introduction in the use of Puppet.
  • Logging
    • Created the ELK stack – single node and cluster.
  • Monitoring
    • Gained a good knowledge about Azure Monitor, Applications Insights.
    • Made an introduction to Datadog and NewRelic.
  • Azure
    • Deepened my Azure knowledge (PaaS approach)
  • AWS
    • Made the introduction to AWS and CloudFormation.
    • I’m now able to make a basic comparison between the two cloud providers.
  • Redgate
    • Topic not covered

At professional level it was a good adaptation year working at Basecone (different cultures, different way of working).

As a speaker I made my first international experience in WinOps London conference.

And in my personal life my family just got bigger – my son Vasco born in the summer (June 3rd).

Roadmap review and retrospective – 2016: DbOps definition

2016: DbOps definition

Source Control

  • Mercurial (TortoiseHg) vs Git (SourceTree)
  • Flyway
  • Redgate (Source Control, DLM Automation Suite)
  • ReadyRoll

Continuous Integration

  • Jenkins
  • TFS Build vNext (2015)
  • Database unit/integration tests
    • tSQLt
    • DbFit

Continuous Delivery

  • Octopus Deploy
  • TFS Release Management (2015)

Infrastruture as Code

  • Chef
  • Puppet
  • Powershell DSC
  • Azure Resource Manager

During 2016 the main focus around DevOps was the its definition. My DevOps definition was built around databases operations and development (hence the title “DbOps”).

The plan was to cover the 3 stages of the deployment pipeline: source control, continuous integration and continuous deliver. And include infrastructure.

  • Source Control
    • Continued to use Flyway with Git, abandoning Mercurial.
    • Unfortunately, I did not had lot of time and opportunities to use Redgate Source Control and ReadyRoll.
  • Continuous Integration
    • Went full gas with TFS (and VSTS) for building process.
    • Tried tSQLt and DbFit. tSQLt suits best my use cases because allows to write unit tests using T-SQL and for that reason it’s more powerful than DbBit.
  • Continuous Delivery
    • Made the first approach to TFS/VSTS Release.
    • Still preferring Octopus Deploy when compared with above one.
  • Infrastructure as Code
    • ARM templates (and PowerShell) became the only way to create and manage Azure resources.
    • Made the first approach to Chef and Puppet. They are both very powerful and similar, but in my point of view Chef can be more friendly when learning.

At professional level, after more the 3 and half years I left Celfinet and joined Basecone. It was  the right time for me to leave and start a new adventure.

Also, 2016 was my year as rookie speaker. It was great to share my talks, to learn with attendees and other speakers, to feel the community spirit.

In October 2016 it happened the first DevOps Porto community event/meetup. This community, created by me and my friend Miguel Alho, have the purpose to share, discuss and promote the DevOps culture, values and practices. For me was a big personal achievement.

Scrum Gathering Portugal 2016

Scrum Gathering Portugal was my last event of  2016. My good friend Miguel Alho (@MytyMyky) and I delivered the workshop “DevOps: delivering changes for applications and databases”. The purpose was to explore the key technical (and cultural) aspects of creating a continuous delivery pipeline, from code inception to getting the conde into production.

We created so much and so good material that we hope we can repeat this experience/workshop in the future.