When planning to deploy a solution in IBM Cloud, there are several areas to carefully consider.
These include how you will set up the account, which permissions to assign to users, how to log and monitor your systems, how to design the networking configuration, which compute options to use and how to automate deployments:
Establish an enterprise account structure and standards
An important step in preparing your project is to define how you are going to structure your account. IBM Cloud introduces the concepts of Enterprise, Account, Account Group, Users, Access Groups, Resource Groups and Tags. You will want to understand these concepts to make the right decisions for your enterprise.
In this example, a project maps to an Account, and a set of standard Access Groups exist in every project to bring consistency across the Enterprise. Each Access Group would have specific IAM policies assigned based on their purpose. Resource groups could be dedicated to specify environments (e.g., Development, Test, Staging, Production):
No matter which compute options you are deploying to, there is likely a set of common shared services you are going to use. Typically, this would include services like log and metrics collection, auditing, certificate management and key management. When possible, use a dedicated resource group or account to host these services and configure compute resources to send their logs and metrics to the shared instances. Apply IAM policies to control which access groups can read/write from/to these instances:
From IP addressing scheme to rules in network access lists and security groups, the scope of the networking configuration is not to be taken lightly. Do you need to interconnect your remote network environments with IBM Cloud? Will you go over a dedicated link? Through a virtual private network? How do you plan to isolate applications within the same account and across accounts? Which IP address ranges to use? Are there any conflicts? How to protect ingress traffic while ensuring high availability requirements are met?
Embed security checks into everyday workflows to help monitor for security and compliance. Configure Security and Compliance Center to monitor and govern the use of resources in your accounts. Set up base compliance policies, scans and schedules. Set up common approaches to the management of secrets, certificates and keys:
Once you have passed the initial discovery phase of a service, using either the user interface or the command line, and you’ve made the decision to use this service as part of your solution, make sure to rely on automation to integrate, configure and operate the service. From infrastructure provisioning to production deployment, whenever possible, capture these steps as code — as repeatable and auditable processes. Tools like the IBM Cloud CLI, Terraform and Ansible will play their part in this endeavor, together with Continuous Delivery and IBM Cloud Schematics: