<img height="1" width="1" style="display: none" src="https://www.facebook.com/tr?id=976470819114134&amp;ev=PageView&amp;noscript=1">


The problem...

Cloud Application development and operations is problematic for businesses. Issues with production deployments cause impacts to timelines, deliverables and customer experiences. When applications fail, it means that more resources are spent on fixing avoidable problems and less time is spent on delivering application features.

Business may encounter the following issues:

  • Integration and deployment phases of solutions take longer than the actual development phase, and involve a lot of rework and bug fixes. This impacts timelines and delivery of solutions.
  • Monitoring the application ecosystem is manual, and incidents are hard to identify and solve.
  • Systems that are unable to respond automatically to customer demand, and an inability to identify bottlenecks on those systems.
  • Slow responses to critical events


The solution...

A clear DevOps infrastructure solution allows for faster deployments, and the ability to focus on development of solutions, rather than integration of those solutions into existing infrastructure. A clear DevOps implementation should include:

  1. Code Version Control/Repository
  2. CI/CD - Automated build and deployment tools/strategy
  3. Service Discovery/Centralized Logging/Health Monitoring
  4. Infrastructure as a Service
  5. Platform as a Service

This brings with it the following benefits:

  • Development build times are shortened, and emphasis is on testing early, to identify problems before integration.
  • Automated scaling of services, depending on traffic or business growth, through elastically distributed systems.
  • Configuration management ensures less errors, less manual work on repeatable tasks.
  • Automated health monitoring of systems enables self-healing infrastructure and forecasting incidents before they occur.
  • Centralized logging allows for easier debugging and identifying bottlenecks in systems.
  • Minimize downtime through high availability and disaster recovery.










test


Module 1 - Automated Build & Deployment

Implementing an automated build and deployment pipeline is the first step in moving towards improved cloud application deployment. This is not only limited to cloud applications, as the benefits also apply to any sort of application development. Application builds should be run regularly, to ensure that code changes are not breaking builds, and that applications are able to be released at any time. Tests should be run early, and any tests that are more likely to fail should be run earlier. That way build times are shortened, and feedback on whether a build fails or is successful is more timely.

Deployments should also be tested, as early in the development cycle as possible. Having the appropriate environments setup ensures that integration testing is able to be done as early as possible.

Risks of not implementing automated build/deployment pipelines

  • The integration phase of development can last weeks to months
  • Redo of development work once integration starts and bugs/issues are discovered
  • Long builds impact timelines and delivery
  • Deploying to the environment at time of go live means issues with deployment/integration are not rigorously tested

Benefits

  • Early testing in builds shortens build times for failing builds, and allows for shorter testing cycles
  • Testing integration early reduces rework as issues are identified early on in development
  • Shorten build times by building early and often
  • Practicing deployments means go live will be less problematic

Why Bamboo?

  • Large marketplace means less development is required to meet desired functionality
  • More functionality included in base install compared to Jenkins
  • User interface is more user friendly
Module 2 - Service Discovery and Centralised Logging/Monitoring

Service discovery allows for many services to be deployed automatically to infrastructure, without having to manually configure proxy servers or load balancers. When working with containerised applications, and horizontally scalable services, it allows for automated scaling and self healing to occur without user intervention. Paired with centralised logging and monitoring, this removes the need to manually monitor services, and to be able to search through the logs of all services from one place. If applications are developed to self register, and post logs to one centralised place, triggers can be built into these services to allow for incident forecasting, self-healing systems, and auto-scaling of nodes. This ensures that system load can be handled elastically, according to business requirements and budget constraints.

Risks of not implementing service discovery and centralised logging/monitoring

  • Manually managing configuration of ports is time consuming and brings with it issues of potential conflicts
  • Without service discovery, the benefits of distributed systems and containers would not be realised
  • Monitoring many services separately takes time, difficult to manage

  • Each user needs permission to the nodes for separate logging solutions

  • Multiple logs for single solutions make it harder to identify issues

  • Without monitoring, incidents cannot be forecast

  • Setting up logging on constantly changing services also make it difficult to identify where logs are

Benefits

  • Zero-configuration, reducing rework and user error
  • Elastically distributed systems
  • Self-registration by containers and applications
  • Combining all logs from separate services in one means access control is only required to view logs
  • Centralised logging allows a fuller view of incidents from multiple log files
  • Monitoring allows forecasting of incidents before they occur, or possible bottlenecks

Why Consul?

  • Health checking capabilities are included in the tool
  • Built in service discovery framework (through DNS or HTTP interface)

Why ELK?

  • Kibana offers a great user interface
  • The ELK stack is also free
  • Logstash accepts input from multiple sources
Module 3 - IAAS/PAAS & Configuration Management

The goal of automation is to reduce manual effort of repeatable tasks. Reducing manual effort means less time is spent doing work that can be automated, and reduces the amount of errors. IaaS paired with configuration management allows a business to quickly and easily create infrastructure, and ensure that the infrastructure is configured correctly. Using configuration management enables a business to store information about it's infrastructure in a version controlled repository, and ensures that infrastructure is easily reproduced as required. With IaaS, a business can respond quickly to critical incidents, and developer/business requirements, without impacting delivery times or project plans.

Platform as a Service means that developers do not need to be concerned with infrastructure. Developers can build their artefacts and leave the details of where to deploy, and where to add nodes when scaling, up to the PaaS.

Risks of not implementing IaaS/PaaS and Configuration Management

  • Manual effort is required each time new infrastructure is needed
  • Down time on critical systems
  • Unexpected outages to infrastructure are difficult to respond to
  • Inability to automatically scale and respond to the needs of customers
  • Slow and unresponsive to critical events (roll backs, hardware failures)

Benefits

  • Over the long term, less resources (hardware, people) are required
  • Reduced risk - of loading of manual, repetitive tasks to automated processes means less errors
  • Enhanced Support - easier and faster to scale infrastructure on demand, as well as support for Disaster Recovery and High Availability
  • Enhanced Security - visibility of changes over systems, and ensuring systems are configured correctly automatically
  • Ability to elastically scale and descale applications depending on traffic or business growth
  • Minimise downtime through high availability and disaster recovery
  • Deploy quickly
  • Self-healing infrastructure

Why Ansible Tower?

  • Provides Configuration Management, Orchestration and Provisioning all in one
  • Utilizes YAML - human readable and already widely accepted format
  • Agentless
  • Role based access control
  • Visual inventory management

Why DC/OS?

  • Built on Apache Meso, is not limited to containers orchestration but can run applications in container like environments
  • Provides data and analytics
  • Runs on public or private clouds





Want to know more?

Let us show you this in action and see how you

can start automating your apps