Another week went by, and I have a lot of news for you! I've been working hard to keep up with the backlog of things I intend to do and things start to get done. Here's the digest of this past week.

New blog system supported by DigitalOcean, Docker, and Traefik

As you may have noticed, since last week, I've been running my blog on a new blogging platform: Ghost. It has been a wonderful experience. What you might not know, however, is that this system is being supported by Docker and Traefik, on a cheap DigitalOcean droplet.

With Docker I can run my software on containerized environments, preventing me from installing all the required software to run my services on. It's an awesome technology that saves a lot of boilerplate. But when we pair it with Traefik, we achieve a match made in heaven!

Traefik is an edge router, which handles all outside requests and, based on the requested host information, routes the traffic to the correct service. The good about Traefik, is that I don't need to mess around with static configuration files for each service. I simply add labels to my services' containers and Traefik will pick up on that and, based on the configurations set with those labels, routes and shapes the traffic until it reaches the correct service. Besides all this, it also handles load balancing that traffic, automatically!

I won't get into too many details, now, as I want to write a dedicated article about how I have my infrastructure configured and how I use GitHub actions to automatically update my infrastructure. And on that note...

GitHub actions and CI/CD

I've also been playing a lot with GitHub actions. If you don't know what that is, it's a service that allows me to automate the workflow of any project hosted on GitHub. I'm using it to deploy any new configurations I sent to the infrastructure repository to my servers, and to constantly run all my software test suites, whenever I update the respective code bases.

It's a very easy to use technology, where you can do whatever you need, and it's integrated with every GitHub repository which facilitates it's adoption and removes the need to depend on third-party projects like Travis-CI or Drone.

I intend to continue using it to the extent of relying on it to test, deploy, and update the respective projects on live servers!

ITsoup's Organization Domain Service MVP is ready

If you follow me on Twitter, you probably saw some recent posts about this. I finally finished the MVP version for this Organization Domain Service, which is the service that handles account's related operations, like creating customers, users and help attach roles to them.

It's also this service that'll be responsible for authenticating users and generating JSON Web Tokens, which will hold relevant identification and authorization information about them. This JWT will then be passed around to other, internal, services that compose the whole ITsoup project.

All this work made me get more familiar with service-oriented architectures, and I'm enjoying a lot learning about the ins and outs, considerations, and common pitfalls of this type of software architecture.

The thing that's still preventing me from releasing this work to the public is the documentation. I'll be working on it on this next few days and expect to start another service, the Asset Active Directory, right after.

Laravel-Portugal Podcast gets a new season!

Yep, we're back for the (true) second season of the Laravel-Portugal podcast, dedicated to all the Portuguese Laravel/PHP developers. We'll be doing the first episode today, actually, and it'll be transmitted live via our official YouTube channel. Don't miss out on this!