In March 2017 I made the presentation “Delivering changes for databases and applications” especially focusing Azure platform.
This was my second time as a speaker at SQLSaturday Lisbon and this time the session was about “Delivering changes for databases and applications”. As usual was a well organized event, a great experience.
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
- Redgate SQL Source Control
- Migrations vs State
- Jenkins 2
- Travis CI
- VSTS Build
- Octopus Deploy (@ Linux)
- VSTS Release Management
- Elastic stack (Logstash, Elastic Search, Kibana)
- Azure Monitor
- Azure Resource Manager
- Web Apps
- SQL Database
- The basics – resources creation, configuration, management
- 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.
- 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.
- 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.
- Created the ELK stack – single node and cluster.
- Gained a good knowledge about Azure Monitor, Applications Insights.
- Made an introduction to Datadog and NewRelic.
- Deepened my Azure knowledge (PaaS approach)
- Made the introduction to AWS and CloudFormation.
- I’m now able to make a basic comparison between the two cloud providers.
- 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).
2016: DbOps definition
- Mercurial (TortoiseHg) vs Git (SourceTree)
- Redgate (Source Control, DLM Automation Suite)
- TFS Build vNext (2015)
- Database unit/integration tests
- Octopus Deploy
- TFS Release Management (2015)
Infrastruture as Code
- 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 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.
The event had 24 sessions in Portuguese about Microsoft data platform. My session was about state vs migrations approach for database source control.
This was my second SQLSaturday Porto as member of the organization team and my first time as speaker.
After the stressful initial preparation: conference rooms, speakers room, check-in area, networking/coffee break area and all the other logistic details, I presented my session about source control for database.
The feeling and the feedback from attendees and speakers about the event organization was globally positive. The same thing can be said about my talk.
You can find the slides here:
This was the first SQLPort event held in Aveiro. I was invited by Niko Neugebauer to deliver a session and I chose to explore the topic migrations-based approach vs state-based approach for database source control.
The purpose of my talk was to let audience know about the two existing approaches to start with source control at database level. After presenting the advantages and disadvantages of each approach I promoted a discussion with the participants so they could understand how, where and when they should apply each one of the approaches.
I would like to thanking Niko for inviting me and Ricardo Peres for the support in making this event possible.
Hope to repeat the visit to the beautiful city of Aveiro for more events.
The workshop “Agile, Scrum and DevOps – Let’s Play with LEGO” is part of TugaIT 2017 conference schedule and will happen at May 18th. TugaIT 2017 is one the greatest Portuguese IT conference and will happen between May 18th and 20th – 3 days with sessions and workshops to provide the highest possible quality training and knowledge to the community, on a variety of topics.
My friend and agile coach Nuno Rafael Gomes (@nrgomes) challenged me to take his original workshop about Lean, Agile and LEGO Serious Play (more info here) and introduce the DevOps perspective to the workshop. From our numerous discussions about Scrum and Agile he knew that I love to deconstruct Scrum, so it was easy to me to accept the challenge.
Develop software is not enough anymore, you need to deliver it. This is the trademark to my contribution to this workshop where my purpose is to introduce the DevOps values, practices and challenges. In other words, my mission is to demonstrate how DevOps can improve the way you deliver software. I like to call it the “Beyond Scrum” approach, where DevOps arises as the answer to the challenges that Scrum brought to the software development and was not able to solve.
The best part of the workshop is that we will do this playing a game using LEGO. We can garante lot of learning and fun.
Our objectives are:
- Learn through practice what the agile values really mean
- Deeply understand the roles, events and artifacts of Scrum
- Understand the power of Systems Thinking, Feedback Amplification and Continuous Learning
- Establish the relationship between Scrum and DevOps
- Understand the 3 ways of DevOps
Topics that we will cover:
- All 4 agile values
- All Scrum values, roles, events and artifacts
- The DevOps definition
- The 3 ways of DevOps
- Value Stream Mapping
- Theory of Constrains
- Continuous Improvement (kaizen)
- You just need to bring fun, good mood, and desire to learn!
This workshop is intended to everyone, independently of the knowledge level about Agile, Scrum and DevOps. If you don’t know what is Scrum,, or you never heard about DevOps or Agile, or you already know what’s each one of the topics, join us. We garante that everyone will learn something new!
You can register here: Agile, Scrum and Devops – Let’s play LEGO
Hope to see you May 18th in Lisbon with us.
2015: Hello WordPress
Introduction to WordPress
- My first wordpress post: SQLSaturday#429 Porto 2015 experience
- Recovering an old post: Arduino Christmas Lights
- My first Porto.Data presentation: XIV Porto.Data 15 December 2015
In the end of 2015 I decided to create this blog with the purpose of documenting and sharing the acquired knowledge during my professional and personal journal. Writing what I learn is a good habit and helps me to structure my knowledge. Plus, is good to share with more people and even better get some feedback and extend that knowledge.
The name “The privilege of making the wrong choice” was inspired by a music band called Zen from Porto city in the 90s. It represents the privilege of having time and space to experiment, to make mistakes, to learn from failure and success in the working place. Fortunately in Celfinet, my company at that time, I had that privilege.
My first post was about my experience as organization team member of the event SQLSaturday Porto 2015. After that I recovered one old post about a Arduino project and wrote a post about the first experience as speaker in Porto.Data community.
I was able to make my WordPress initiation: create posts and pages, add content including media, manage plugins, appearance and all the different aspects related to a WordPress website.