You need to have a beginner’s mind to create bold innovation
– Marc Benioff
- Describe the considerations when developing in a multi-tenant environment.
- Understand design frameworks, such as MVC architecture and Aura Framework, and build applications using both declarative and programmatic tools.
- Given a scenario, identify common use cases for declarative versus programmatic customizations.
As a Salesforce developer, it is essential to understand the “as-a-service model” and the key features and benefits of using and developing a cloud-based and multi-tenant architecture application.
Three widely accepted as-a-service models exist in today’s cloud services market.
-
-
- Software as Service (SaaS)
- Platform as a Service (PaaS)
- Infrastructure as a Service (IaaS)
-
Let’s do a quick review of the difference between the traditional “On-Premises” and all the three major as-a-service models.
Service Type | You Manage | Others Manage | Examples |
On-Premises | Your company manages everything. | NONE | |
IaaS | Applications, Data, Runtime, Middleware, O/S | Virtualization, Servers, Storage, Networking | Amazon Web Services (AWS), Rackspace, Microsoft Azure, Google Compute Engine (GCE) |
PaaS | Applications, Data | Runtime, Middleware, O/S, Virtualization, Servers, Storage, Networking | Force.com, AWS, Microsoft Azure, SAP Cloud, Google App Engine, Pivotal Cloud Foundry |
SaaS | NONE | Application, Data, Runtime, Middleware, O/S, Virtualization, Servers, Storage, Networking | Salesforce.com, Microsoft Office 365, Google Apps, Dropbox |
As we know, Salesforce.com is a SaaS-based offering, andforce.com is a PaaS offering; let’s quickly look at some benefits and limitations before we jump in to look at what is a multi-tenant application and how to deal with its architecture as a salesforce developer.
Software as a service (SaaS) is a cloud computing offering that provides users with access to a vendor’s cloud-based software.
Benefits of SaaS:
|
Limitations and Concerns of Saas:
|
Platform as a service (PaaS) is a set of cloud-based services that enable business users and developers to build applications faster than on-premise solutions cannot match. PaaS delivers a framework for developers that they can build upon and use to create customized applications.
Benefits of PaaS:
|
Limitations and Concerns of Paas:
|
Before we learn how to develop applications in a multi-tenant Salesforce environment, it is crucial to understand a multi-tenant cloud and change a traditional application developer to think, design, and develop applications using cloud-based development tools and processes.
As per Salesforce, “multi-tenancy means that a single instance of the software, database, and supporting infrastructure serves multiple customers, while each tenant’s data is isolated and remains invisible to other tenants.”
Let’s analyze why a multi-tenant architecture is suitable for some companies and may not be for others.
The Cloud Paradigm – Renting Vs. Owning
It is a dream of middle-class people in the USA to own a house by investing their hard-earned money so that they can get shelter and value for their money by the time they retire and relax. The point here is how much it is true that all homeowners are thinking the same thing (except those who already paid off their bank loan or bought it by paying cash). Are they happy? If they could, would they buy a house or rent an apartment?
It is the same dilemma with the IT infrastructure for any company nowadays. All companies want their IT department and their infrastructure to control the outcome and have more visibility in their IT operations. They spend loads of money on building, managing, and hiring professionals to take care of them 24/7. I know that is obvious for many companies. But what if your company has a problem dealing with ever-changing demands from your business stakeholders and the market demands. It would be more appealing for some companies to spend money on product development instead of spending on IT infrastructure and management. There you go. That means they need to spend less on owning the stuff but rent instead and focus on developing applications and enhancing business processes.
I know it is simple to say that, right? Let’s stop there for a minute and list all the questions one will ask when looking for an apartment or an office to rent.
-
- Why should I go and live in an apartment? (either you have a house that is on the short sale list or you don’t own a home)
- Which city am I going to live in? (Most probably either closer to your office or having kids, you choose a city where schools are rated high).
- How many bedrooms and bathrooms I need? (figure it out, if you are married, you will have kids. plan, plan.)
- Do I need a parking lot? (Unless you have a problem with parking in a randomly available parking lot, then better prepare to pay more )
- Do I have to sign a lease? (yes, of course, but you may get some options..)
- Do I need a furnished home just to come to start living my life and do my work? (By the way, that includes the internet, to make your life easy!)
- How much it cost per month? (Well, I think it is the first item, but thought that would drive your other options, so kept it in the last so that you decide how much money you can afford to spend on home rent)
- What about the community? Is it safe and secure? How is the building protected? (Good questions, you should ask)
Well, that is not too bad. I think this is a typical list of questions anybody would ask who rent an apartment, independent home, or for that matter, an office space. This list applies to all scenarios, who want to rent.
Let’s review those eight items in the context of application development requirements to derive the value proposition from moving to a cloud-based, Software-as-a-Service (SaaS) or Platform-as-a-Service (PAAS) for any company.
You can now ask why? and say I can have my own IT in my shop? Ok, let me tell you a few things before deciding on the best thing for your CRM application development and deployment !! What if you get the following benefits without the hassle of owning your equipment and still achieve your business goals to manage ever-growing content under the hood.
1. Require zero Installation
2. Provide the highest level of security
3. Ensure that everything was pre-installed and optimally configured for instant startup
4. Integrate with existing legacy applications and collaboration products
5. Freedom of use
Does it sound like a list of questions you asked before your rent a home/apt? I bet they did!!!
So from a Salesforce Certified Platform Developer I Exam perspective:
- Describe the considerations when developing in a multi-tenant environment
Multitenancy is a means of providing a single application to multiple organizations, such as different companies or departments within a company, from a single hardware-software stack. Instead of providing a complete set of hardware and software resources to each organization, Salesforce inserts a software layer between the single instance and each organization’s deployment. This layer is invisible to the organizations, which see only their data and schemas, while Salesforce reorganizes the data behind the scenes to perform efficient operations.
What resources are shared by Salesforce tenants?
-
- Database that includes data, metadata, indexes, filed histories, and data relationships
- Although the database is the same across other tenants in the same infrastructure, organizations or Orgs are identified with a unique identifier to ensure applications are looking at that particular Org when connected to the shared resource, database.
- Runtime Engine: to ensure that tenant-specific customizations do not breach other tenants’ security or affect their performance, Salesforce uses a runtime engine that generates application components from those customizations. By maintaining boundaries between the architecture of the underlying application and that of each tenant, Salesforce protects each tenant’s data and operations integrity.
- Runtime engine controls: resource allocations and throws exceptions when applications in excess use the allocated resources (org governor limits)
- IT resources are shared cost-efficiently and securely
- Database that includes data, metadata, indexes, filed histories, and data relationships
Sample Question:
What is an important consideration when developing in a multi-tenant environment?
A . Governor limits prevent tenants from impacting performance in multiple orgs in the same instance.
B . Unique domain names take namespaces for code developed for multiple orgs on multiple instances.
C . Polyglot persistence supports a global, multilingual user base in multiple orgs on multiple instances.
D . Org-wide data security determines whether other tenants can see data in multiple orgs in the same instance.
Let’s do deep dive into the next item in the Salesforce fundamentals for the Developer I exam in my next post.
- Understand design frameworks, such as MVC architecture and Aura Framework, and build applications using both declarative and programmatic tools.