On Github kuehne-nagel / from-hero-to-zero
Developer & Software Architect
Freelance Software Engineer
software development
operations
infrastructure
RFC
deployment notes
transfer server
deployments
server configuration
virtual machines
bottlenecks
queues
waiting times
... and asking the right questions
How do we raise the number of involved people without tipping on each others toes?
How can we put the development teams in charge?
Is there ever a perfect time for a downtime?
Are our developers available at that time?
What would be the minimal viable footprint?
How can we prepare for growth?
How do we avoid configuration drift?
How do we speed up the delivery pipeline?
Can we reduce the time a feature spends"waiting for attention"?
Unit
Integration
Acceptance
Compatibility
- name: restart rabbitmq if this is a fresh install
  supervisorctl: name=freightnet-rabbitmq state=present
  supervisorctl: name=freightnet-rabbitmq state=restarted
  when: fresh_install.changed
- name: tell slave nodes to join the master node if this is a fresh install
  command: "{{ item }}"
  with_items:
    - rabbitmqctl stop_app
    - rabbitmqctl reset
    - rabbitmqctl join_cluster {{ rabbitmq_master_node_short_name }}
    - rabbitmqctl start_app
  when: fresh_install.changed and inventory_hostname != "{{ rabbitmq_master_node }}"
  environment:
      PATH: "{{ basedir }}/rabbitmq_server-{{ rabbitmq_version }}/sbin:{{ ansible_env.PATH }}"- fail: msg="no application server group specified (variable app_server_group not set)"
  when: app_server_group is not defined
- fail: msg="no application specified (variable application not set)"
  when: application is not defined
- fail: msg="no application version specified (variable application_version not set)"
  when: application_version is not defined
- name: stop old application
  supervisorctl: name={{ application }} state=stopped
  ignore_errors: yes
- name: clean up application base directory
  file: path="{{ basedir }}/{{ application }}" state=absentTest your automation
Test for compatibility
Microservices are a valid approach...
...if your organisation is ready for them