This is what we do in the implementation phase:
- Set up remote access from WSO2 to your Amazon EC2 instances. See Managing Remote Access.
- Set up the environments (e.g., Development, Test, Pre-Production, and Production).
- Implement monitoring and alerting. See Implementing Monitoring and Alerting for details.
- Implement backup and disaster recovery.
- Commit all scripts, diagrams, and documents to the repository for versioning and history.
Note that WSO2 can facilitate the following upon your request:
- Arrange a third-party consultant to carry out penetration tests.
- Reports and dashboards on the Production environment.
Managing remote access
WSO2 recommends you to do all Managed Cloud deployments in an Amazon Virtual Private Cloud (Amazon VPC). A VPC enables you to launch Amazon Web Services (AWS) into a virtual network that you define. A VPC improves the security of your data by providing network-level control and isolation for the AWS. You can keep your data and configurations in a private space and expose them through the DMZ. This virtual network closely resembles a traditional network, but with improved security and scalability.
To set up your Cloud environments, WSO2 requires access to your Amazon EC2 instances. We access these instances over SSH only, with a Bastion host working as the SSH gateway. The Bastian host can either reside in the VPC or in your own datacenter. The diagrams below depict both scenarios.
Bastian host in the VPC
The Bastion host is in the public subnet and allows SSH traffic only to the WSO2 network via a non-standard port. All other hosts are configured to accept SSH requests from the Bastion host only.
Bastian host in your datacenter
The Bastion host is in your datacenter, and the other hosts are configured to accept SSH requests from the Bastion host only. When WSO2 DevOps want to connect to the Bastion host via SSH, they do it remotely via a client console.
<image>
In addition to the AWS instances, WSO2 requires access to the following resources:
Need access to | Purpose | Prerequisites |
---|---|---|
AWS management console | To access and manage your AWS. | WSO2 needs separate user accounts with the following form you:
|
AWS API service | To execute automated tools to bring up the infrastructure services such as the VPC, network setup, databases etc. | WSO2 needs the following from you:
|
Implementing monitoring and alerting
WSO2 hosts all monitoring services in a separate subnet in the same VPC where your Cloud services are hosted. We collect statistics about the following:
System resource utilization (disk, CPU and memory utilization, JVM heap usage etc.)
Application health.
We configure all Linux hosts with SNMP servers, and we host the statistics that are collected via SNMP using Cacti, the the network graphing solution. We present the statistics in a dashboard that is exposed to the WSO2 network over HTTP/S.
Also Nagios NRPE extension is configured in all Linux hosts to monitor resource utilization and set thresholds. If any resource gets utilized beyond a certain threshold or if an Application isn’t responding properly alerts and notifications are triggered as depicted in the below diagram. For all stats collected via NRPE agents, ICinga is used as the presentation and dashboard tool and the dashboard will be exposed only to the WSO2 network over HTTP/S.
Since it’s required to communicate with third party services to extend alerts, all Monitoring hosts needs to have internet connectivity to reach out. This doesn’t mean that monitoring hosts should be placed in the public subnet.
Next, go to Handover.