This article is part of my #100DaysOfCode and #100DaysOfBlogging challenge. R1D16


Pragmatic Queue Processing at Scale

By Arne Blankerts, Principal Consultant at thePHP.cc and Sebastian Heuer, Developer Advocate at kartenmacherei.de

Arne and Sebastian deliver messages from real world problems they tackled together. It’s not the first presentation of the duo. These sessions belong to the highlights of the conference (Casino night is still #1 😋). The talk gave a wonderful narrative overview of queue pressing, further readings of what might be of interest as well as learnings from their experience. It’s always worthwhile to attend.

They showed how queue processing can improve performance on legacy applications without the need to refactor or rewrite the whole code base.

Start with the simplest thing that could possibly work

Instead of implementing the latest hype of technology, look at the stack you already have. If MySQL is part of your stack, that is okay for events. Though it will not scale infinitely. Take/chose a pragmatic path.

Scaling & Concurrency

Threading

  • PHP with ZTS (Zend thread safety)
  • FPM

Can PHP talk FastCGI?

The Event Listener starts a handler in its own FPM process. By using FastCGI client. You can even scale to multiple FPM servers.

FPM Pool configuration. Sequential processing of events. Controlled shutdown by signal handling (better than manually killing processes and ending up in an unknown state if handler has not finished).

Do PHP Frameworks still make Sense? Let’s go Frameworkless to focus on the Domain!

By Damiano Petrungaro

Damiano proved in this talk his expertise on the topic of framworkless and DDD.

In the beginning he described the importance of frameworks, like:

  • Pushing for innovation
  • Not reinventing the wheel
  • Defining new standards
  • Eases start for newcomers

It’s all about dependency Framework = Dependency

He gave a short introduction to frameworkless and the Frameworkless Movement, also explained that Dependencies are bad and how to avoid them.

The last part of his talk covered DDD, strategic and tactical design.

The domain is not a dependency! It enforces us to model the domain first and then adapts the framework to it.

As a conclusion, I take from this talk: Adapt the framework to your domain and not your domain to the framework.

Migrating, with a Metal Background

By Johann-Peter Hartmann, found and CTO of Mayflower GmbH

With metal Johann-Peter is referring to the on-premise server back in the days, when our monolith applications were running on them. We were taken care of everything by ourselves.

In his talk he showed possible options when moving to the cloud - rehosting aka “lift and shift”. His presentation proved him as a competent speaker on the matter with a broad knowledge. In the following, just some very few notes from his talk.

  • Scaling, reliability up. Operational costs down.

It’s 10 % cheaper than on premise

Amazon

85 % of the time it’s more expensive than on premise.

Dell

Downside of serverless: Application lock-in. Platform-specific function is not as easy to move to another platform as running plain PHP on various environments.

Razor & Blades Model (cheap razor, expensive blades. cheap printer, expensive ink) Lambda is chap, but the APIGateway is expensive.

Average lifetime of a container in orchestrated environments: 12 hours

Ephemeral containers. Everything is temporary. Start it, stop it, destroy it, replicate it, replace it, scale it.

If you have a container that is active when it is not handling data, it is a server.

Great definition of what microservices really are.

Move complexity to places where you can automate it.

External services are the new silo Kubernetes is the new OS

Web with Sense: How to build a Start-up that is not only profitable, but also improves the World

By Christian Kroll, founder of Ecosia

Christian is a self-less person, who started an initiative that might play a major role in stopping the climate change. With the revenue of his search engine Ecosia he plants trees. The company has already planted nearly 60 million trees.

You cannot solve the climate change without planting trees. But you can solve it by planting 1 trillion trees.

A tree “recycles” ~50 kg of CO2 during its lifetime. The earth has currently a capacity for ~1.2 trillion trees. It would take 1 % of military budget for the next 20 years to plant 1 trillion trees.

4 years after launch, Ecosia planted their one millionth tree. Until then 80 % of revenue went into tree planting. Then they changed the business model and are now giving away 100 % of their revenue.

For the sake of profit, we are destroying our planet.

Christian is passionate about the climate change and sharing this compassion. He challenged the audience to (1) contemplate what personal changes can be made to contribute to a positive change and (2) share those ideas with the person you sit next to. What a great exercise! I want to purchase vegetables and fruits from local producers where possible.

A fun fact: Ecosia has a TPO - Tree plant officer! 😃

Sometimes I do use Google, but don’t tell anyone

Twitter

Opening Doors with JSON Web Tokens

By Ben Dechrai, Technologist, Presenter, Auth0 Developer Evangelist, Community Advocate

Ben gave an interesting presentation on a rather unusual way to use JSON Web Tokens: Opening doors. He elaborated on the Amazon Key Vulnerability. He then demoed the usage of JSON Web Tokens as a safer way which also prevents such attacks. I did not take much notes, but really enjoyed the demo. Thank you for even bringing a door all the way from Australia.

Branching Strategies: choose wisely to minimize Costs

By Georgiana Gligor, Large-Scale Application Architect. Public Speaker. PhD Student.

Georgiana made extensive research on Branching Strategies. In this talk she presents her learnings with the audience, so they can

Choose wisely to minimize costs.

She gave a reading recommendation and an analogy on the book from HBR’s 10 must read: On Change Management. Because our code basis is about change management.

In this presentation she did not provide a ready-to-use recipe for any situation, rather aimed for:

  • a framework to make informed decisions,
  • highlight costs and
  • where to look when one needs help.

She continued on talking about various VCS, their current approximate usage. And gave a recommendation to use git, because “it is the best”.

It’s not like git got everything right, but it got all the really basic issues right in a way that no other SCM had ever done before.

Linus Torvalds

She is referring to feature branches as topic branches, as it is more suitable in her opinion.

The Merge Workflow generates more noise in the history than the Rebase Workflow.

She compared stable trunk aka trunk-based development with unstable trunk. The latter making usage of release branches.

Strategies

  • Lone wolf (one person working for a long period)
  • Git flow (high noise due to many branches) perfect in environments where clear rules are required
  • GitHub flow (stable trunk, pull requests with signoffs/approvals) great when deploying often (like daily)
  • simple git flow
  • workflow for agile teams (master as next release, qa branch for releasing)
  • Gitlab flow (master as next release, staging, production, 2-3 stable, cherry picking) agile approach
  • Gitworkflows (last stable release, next release, integration testbed, proposed updates, topic branches)

Men have become the tools of their tools

Henry David Thoreau

Don’t become dependent on your tools.

Because tools are there to help, not to block from being productive. They are just tools.