Key roles & tools
- Introduce Docker and AWS ECS to assist in developing and deploying microservices quickly and coach MYOB team members on DevOps coding standards and quality
- Introduce continuous delivery practices by deploying and migrating to Buildkite from our previously abandoned GoCD and Concourse snowflake servers. We have seen a great increase in reliable deployments every day since its introduction.
- AWS infrastructure automation using Terraform and improving our logging, monitoring and alerting practices by using tools such as Splunk, NewRelic, AWS CloudWatch and Pagerduty.
- Take part in working groups to develop company standards for our ops, front-end and back-end practices. These revolve around our use of AWS, Terraform, Cloudformation.
About MYOB Tax online team
This is internal service for Tax-online team in MYOB at Sydney office. The team provides online accounting services, similar to Xero.
The service was still in internal testing phase, and not public accessible when we were working on this project.
There was only one development environment and one production environment for a team of 10 software developers and no QA environment.
Applications were installed and running on the EC2 hosts directly, automation deploy was managed by concourse, which had security concerns at that time – that people has to share the admin password to trigger the build and deployment jobs.
The lack of a development enviroment to test their codes, team members had no confidences to release new versions to production. It also prevented the QAs to run tests easily.
Developers/QAs asked for their own environment so that they could release new features quickly and stably.
Why Amazon Web Services
The MYOB development team already had experience in building their EC2 host-based services on AWS and they are an existing AWS Customer.
Second, after analysing their business with team requirements, we agreed to use AWS ECS to manage their service with dockerized technology.
The CICD Benefits
Within this project, Bill Wang and his team helped to:
- Create docker images for each applications, about 10+ nodejs applications, with automation builds by CICD pipeline (buildkite)
- Create terraform codes (Infracture as Code) to deploy ECS cluster and services with different environments. Environments are developer based, such as dev01, dev02, with QA and production environment. With this, all developers can work on their own ECS environments with nominated applications running in it in 5 minutes. With another schedule jobs, the develop environments will be destroyed automatically after business hours to save the cost.
- Integration Buildkite on AWS to deploy ECS cluster and services